Android混合开发(二)——JSBridge传值注意点
本文出自:https://stilljin.blog.csdn.net/article/details/89164231
一丶概述
半年前做手机投屏功能,要求将同一局域网的设备列表传给前端进行交互,国庆前上线,然而就在测试前一天出问题反映情况是:iOS可以Android不行!Android的问题,加班给我改!
混合开发最最烦的事就是iOS,Android,前端配合开发,连调沟通。
二丶注意点
(1) JSBridge只能传String
查看传值源码
只能传String!!!
切忌勿撕逼
前端要JSON
对不起,我只能传String,我帮你拼接,你那边转。
为什么iOS可以你Android不行呢?
对不起,我只能传String
(2) 切勿在for循环里拼接字符串
拼接局域网内设备列表很容易写这样的代码
/*** 设备信息传给前端* @param list* @return*/private String listToJSON(List<TCLDeviceInfo> list) {if (null != list) {String tYlist = "";for (int i = 0; i < list.size(); i++) {String deviceList = "{" + "\"deviceIP\"" + ":" + " \"" + list.get(i).getIp() + " \"" + ","+ "\"deviceName\"" + ":" + " \"" + list.get(i).getName() + " \"" + "," + "\"isConnected\"" + ":" + list.get(i).isConnected() + "}";if (i == 0) {tYlist = tYlist + deviceList;} else {tYlist = tYlist + "," + deviceList;}}LogUtils.d(TAG, "[" + tYlist + "]");return "[" + tYlist + "]";} else {return "";}}
功能能实现,但是会被diao
为什么阿里巴巴不建议在for循环中使用"+"进行字符串拼接
从结果可以看出,用时从短到长的对比是:
StringBuilder < StringBuffer < concat < + < StringUtils.join
正确写法:
// This is badString s = "";for (int i = 0; i < field.length; ++i) {s = s + field[i];}// This is betterStringBuilder buf = new StringBuilder();for (int i = 0; i < field.length; ++i) {buf.append(field[i]);}String s = buf.toString();
(1) StringBuffer buf = new StringBuffer();在for循环外
(2).append 替代 +
三丶总结
1.切勿撕逼(浪费时间)
2.string拼接效率
StringBuilder > StringBuffer > concat > + > StringUtils.join
Android混合开发(二)——JSBridge传值注意点相关推荐
- Android画板开发(二) 橡皮擦实现
Android画板开发(一) 基本画笔的实现 Android画板开发(二) 橡皮擦实现 Android画板开发(三) 撤销反撤销功能实现 Android画板开发(四) 添加背景和保存画板内容为图片 A ...
- Unity和Android混合开发
Unity和Android混合开发 通用的流程 https://blog.csdn.net/zhangdi2017/article/details/65629589 应用场景 Unity游戏中一些功能 ...
- 【Android游戏开发二十七】讲解游戏开发与项目下的hdpi 、mdpi与ldpi资源文件夹以及游戏高清版本的设置...
今天一个开发者问到我为什么游戏开发要删除项目下的hdpi.mdpi和ldpi文件夹:下面详细给大家解答一下: 首先童鞋们如果看过我写的<[Android游戏开发二十一]Android os设备谎 ...
- H5+Android混合开发电视APP
最近公司搞"黑马"项目,想到H5在手机app上的应用很多,但是目前在我们公司电视端的应用几乎为零,所以就拟定题目为<基于H5技术的新型电视应用>,经过43小时的奋 ...
- H5混合开发二维码扫描教程之大圣众娱十人牛牛源码搭建架设
今天用H5调用本地摄像头进行扫描二维码,我之前有做过原生安卓的二维码扫一扫,主要是通过调用zxing插件进行操作的,其中还弄了个闪光灯.但是纯H5的没接触过,心里没底,于是晚上回家开始网上各处找方案. ...
- flutter开发android部分页面,Flutter(Android 混合开发)
前言 Flutter 支持作为 android Moudle 出现在项目中.这样就可以在 已有的项目中 使用. 虽然现在Flutter 比较受关注,但是和weex 一样 ,大部分都只是在观望 不是真正 ...
- unity android 版本,Unity2019与Android混合开发
0. 开始前的版本对齐 Unity版本:Unity2019.3.4f1 AndroidStudio版本:3.5.3 1. Unity -- 准备项目 新建项目 打开File -> Build S ...
- Android 混合开发之仿微信朋友圈
开发之前 大约从去年开始吧, 也可能是前年 Html5好像火得不得了, 不得了-总能从网上听说到 XXX混合开发, 为了紧跟潮流(虽然有点儿晚了), 咱们也看看Android+Html5混合开发是怎样 ...
- Android混合开发-(Android与Web的交互)
在Android开发中,越来越多的商业项目使用了Android原生控件与WebView进行混合开发,当然不仅仅就是显示一个WebView那么简单,有时候还需要本地Java代码与HTML中的JavaSc ...
最新文章
- 2018-8-22-粒子滤波
- selenium根据文本匹配定位
- oracle中的java无法_Java无法连接oracle
- 部署linux的环境,Jenkins安装与配置
- sklearn 决策树(分类树、回归树)的 重要参数、属性、方法理解
- [Pyramid 杂记]Static Routes,静态路由是用来干什么的?
- IOS应用程序发布到苹果APP STORE完整流程使用教程
- centos7下docker设置阿里云镜像(自定义阿里云镜像)
- python——pandas库之DataFrame数据结构基础
- 划重点!Android 11 首个开发者预览版新功能抢先看
- 将两个不同格式的XML文件,进行节点对照,并生成一个用于对照功能的XML
- amazon sqs java_Amazon SQS消息多传递
- 运放的电压比较器电路
- python break怎么用_怎么使用Python中的break
- Java中的UTF-8、UTF-16编码字符所占字节数
- Js鼠标放上去图片变大变小
- java graphics2d 绘图_java GUI Graphics2D 绘图
- SUT计算机测试,调试功能测试(徽标) | Microsoft Docs
- Java精准地图坐标转换 高德 百度 谷歌 腾讯 高德 批量转换工具类达到项目生产精度
- matlab中for循环的简单使用