不同Android版本下Cordova应用性能差异问题排查求助
开发环境
- Android Studio 2021.3.1
- Cordova 11.0.0
- Gradle 7.5
- Android Gradle Plugin 7.2
- JDK 11(微软开源版)11.0.15(Microsoft 11.0.15+10-LTS)
- Node v14.15.0
- NPM 8.1.2
- Target SDK=32
使用的插件与依赖
插件
- media@6.0.0
- insomnia
- email-composer
- wkwebview-file-xhr
其他依赖
- jQuery
- abcjs乐谱库
- FontAwesome
问题现象
Cordova应用在不同Android设备上性能差异极大:Android 7模拟器及真机运行流畅;Android 10及以上模拟器卡顿甚至无法使用,朋友的Android 10设备几乎无法运行。Android预启动报告显示1次ANR(com.android.systemui;PID:756;执行服务com.android.systemui/.dump.SystemUIAuxiliaryDumpService),8台测试设备中有2台Android 8.1设备存在性能问题。
怀疑的性能关联点
- JavaScript编辑HTML:包含142条
document.write语句,疑问:jQuery替代innerHTML与直接写入div的性能差异? - 使用
$.get加载约1MB的文本文件 - 使用
var i = 0, len = importArray.length; for (; i<len; i++) {结构的for循环 - 引用约9个CSS文件、多个JS文件
- jQuery或abcjs库的使用
注:应用需支持网页端,因此采用Cordova开发,使用localStorage而非数据库以保持跨端一致性,已优化为单次加载单首歌。
咨询问题
- 非插件场景下能否实现线程处理?当前有主线程工作过载提示
- 有无替代Crosswalk的WebView工具(Crosswalk不支持Android 10+)
- 转用Ionic能否提升性能?
- 其他编码优化方案
- 其他快速优化方案
补充:若问题源于编码,计划用Profiler排查,但Profiler显示“无支持设备”,且应用加载困难可能影响排查。
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

