【发布时间】:2022-12-18 12:03:07
【问题描述】:
我的环境:
安卓工作室 2021.3.1
科尔多瓦 11.0.0
gradle-7.5
Android Gradle 插件 7.2
JDK 11(微软开放版)- 11.0.15(微软11.0.15+10-LTS)
节点 v14.15.0
NPM 8.1.2
目标 SDK = 32
插件:media@6.0.0、insomnia、email-composer、wkwebview-file-xhr
其他:jquery、abcjs乐谱库、fontawesome
here 也有人问过类似的问题,但那是 9 多年前的事了,我正在寻找任何更新的信息和我的具体问题。
我正在为我的 Cordova 应用程序在不同 Android 设备上的各种性能而苦苦挣扎。对我来说,Android studio 仿真在 Android 7 上似乎很快,但在 Android 10 上却很慢,之后就无法使用了。该应用程序在我的 Android 7 设备上运行良好。朋友的 Android 10 设备几乎无法运行。 Android 的预启动报告给出了一次崩溃(ANR in com.android.systemui;PID:756;executing service com.android.systemui/.dump.SystemUIAuxiliaryDumpService;)8 台设备中有 2 台出现性能问题,它们都是 Android 8.1,具有从版本 8 到 12 的工作模拟器。
根据研究,该问题似乎与
- 用 JavaScript 编辑 html(由于从外部文件引入文本,需要在运行时填充数据等)(我有 142 条 document.write 语句。用 jQuery 替换 innerHTML 与编写 div 有不同的影响吗?)
- 使用 $.get(目的是允许使用 txt 文件来填充应用程序,这些文件可以很容易地自行编辑并复制到不同的项目中。它还可以防止有一个巨大的 index.html 文件。我加载了大约。 1 MB 的文本到内存中,然后根据需要替换 html。)
- for 循环(我使用结构
var i = 0, len = importArray.length; for (; i<len; i++) {) - 很多文件引用? (~9 个 css 文件,几个 .js 文件)
- 可能使用了 jQuery 或 abcjs 库(我曾经加载 jQuery Mobile 但删除了它,但这并不影响性能)
该应用程序还必须可用作网页以限制额外工作量(因此我使用 Cordova),例如:https://gospelriver.com/favhymns/。我还使用本地存储而不是数据库,这样它在网络上具有相同的功能,并且更容易维护文本文件。
以下任何一项与尝试纳入我的项目有关吗?我不知道从哪里开始进一步的故障排除。
- 线程(我们甚至可以在插件之外执行此操作吗?我看到诸如“跳过 95 帧!应用程序可能在其主线程上执行了太多工作。”之类的通知。)
- 建议使用人行横道here,但this 表示它不适用于 Android 10+(我发现该版本存在问题)。也许存在类似的 webview 工具?
- 转换为 Ionic - 消息人士称这不会提高性能,因为它是在 Cordova 上构建的
- 我已经重新设计了一次应用程序,一次将一首歌曲而不是整首赞美诗放入索引文件中,但是根据我的示例https://gospelriver.com/favhymns/,我可能需要考虑一种不同的编码方法
- 还有别的吗?我曾希望像 Crosswalk 那样快速修复,但我没有看到它。
如果问题被认为是编码问题,我怀疑我应该弄清楚 Profiler,我尝试使用它并且它显示“不支持的设备” - 但这是一个单独的问题。但是,如果该应用程序一开始几乎没有加载,我不确定它是否会起作用。
【问题讨论】:
标签: android performance cordova