本文出自: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传值注意点相关推荐

  1. Android画板开发(二) 橡皮擦实现

    Android画板开发(一) 基本画笔的实现 Android画板开发(二) 橡皮擦实现 Android画板开发(三) 撤销反撤销功能实现 Android画板开发(四) 添加背景和保存画板内容为图片 A ...

  2. Unity和Android混合开发

    Unity和Android混合开发 通用的流程 https://blog.csdn.net/zhangdi2017/article/details/65629589 应用场景 Unity游戏中一些功能 ...

  3. 【Android游戏开发二十七】讲解游戏开发与项目下的hdpi 、mdpi与ldpi资源文件夹以及游戏高清版本的设置...

    今天一个开发者问到我为什么游戏开发要删除项目下的hdpi.mdpi和ldpi文件夹:下面详细给大家解答一下: 首先童鞋们如果看过我写的<[Android游戏开发二十一]Android os设备谎 ...

  4. H5+Android混合开发电视APP

     最近公司搞"黑马"项目,想到H5在手机app上的应用很多,但是目前在我们公司电视端的应用几乎为零,所以就拟定题目为<基于H5技术的新型电视应用>,经过43小时的奋 ...

  5. H5混合开发二维码扫描教程之大圣众娱十人牛牛源码搭建架设

    今天用H5调用本地摄像头进行扫描二维码,我之前有做过原生安卓的二维码扫一扫,主要是通过调用zxing插件进行操作的,其中还弄了个闪光灯.但是纯H5的没接触过,心里没底,于是晚上回家开始网上各处找方案. ...

  6. flutter开发android部分页面,Flutter(Android 混合开发)

    前言 Flutter 支持作为 android Moudle 出现在项目中.这样就可以在 已有的项目中 使用. 虽然现在Flutter 比较受关注,但是和weex 一样 ,大部分都只是在观望 不是真正 ...

  7. unity android 版本,Unity2019与Android混合开发

    0. 开始前的版本对齐 Unity版本:Unity2019.3.4f1 AndroidStudio版本:3.5.3 1. Unity -- 准备项目 新建项目 打开File -> Build S ...

  8. Android 混合开发之仿微信朋友圈

    开发之前 大约从去年开始吧, 也可能是前年 Html5好像火得不得了, 不得了-总能从网上听说到 XXX混合开发, 为了紧跟潮流(虽然有点儿晚了), 咱们也看看Android+Html5混合开发是怎样 ...

  9. Android混合开发-(Android与Web的交互)

    在Android开发中,越来越多的商业项目使用了Android原生控件与WebView进行混合开发,当然不仅仅就是显示一个WebView那么简单,有时候还需要本地Java代码与HTML中的JavaSc ...

最新文章

  1. 2018-8-22-粒子滤波
  2. selenium根据文本匹配定位
  3. oracle中的java无法_Java无法连接oracle
  4. 部署linux的环境,Jenkins安装与配置
  5. sklearn 决策树(分类树、回归树)的 重要参数、属性、方法理解
  6. [Pyramid 杂记]Static Routes,静态路由是用来干什么的?
  7. IOS应用程序发布到苹果APP STORE完整流程使用教程
  8. centos7下docker设置阿里云镜像(自定义阿里云镜像)
  9. python——pandas库之DataFrame数据结构基础
  10. 划重点!Android 11 首个开发者预览版新功能抢先看
  11. 将两个不同格式的XML文件,进行节点对照,并生成一个用于对照功能的XML
  12. amazon sqs java_Amazon SQS消息多传递
  13. 运放的电压比较器电路
  14. python break怎么用_怎么使用Python中的break
  15. Java中的UTF-8、UTF-16编码字符所占字节数
  16. Js鼠标放上去图片变大变小
  17. java graphics2d 绘图_java GUI Graphics2D 绘图
  18. SUT计算机测试,调试功能测试(徽标) | Microsoft Docs
  19. Java精准地图坐标转换 高德 百度 谷歌 腾讯 高德 批量转换工具类达到项目生产精度
  20. matlab中for循环的简单使用

热门文章

  1. 双目视觉三维重建框架
  2. JS 基础篇(音量调节器)
  3. 一、Linux 教程-基础
  4. 不登录微信怎么查看电脑里的微信聊天DAT图片
  5. AFM成像表面形貌和表面粗糙度
  6. 基于Stm32的WiFi多功能LED
  7. 隐藏win10任务栏输入法M图标
  8. 文档级关系抽取:A Densely Connected Criss-Cross Attention Network for Document-level Relation Extraction
  9. Macbook无法开机?如何尝试自救
  10. 正方教务系统新版php,正方教务系统最新sql注射漏洞修复 | CN-SEC 中文网