关于崩溃

Android 崩溃分为 Java 崩溃和 Native 崩溃。
Native 崩溃捕获中最成熟的方案。使用Breakpad (传送门)工具。

ANR(Application Not Responding,程序没有响应)这问题。怎么去发现应用中的 ANR 异常呢?

  1. 使用 FileObserver 监听 /data/anr/traces.txt 的变化。非常不幸的是,很多高版本的 ROM,已经没有读取这个文件的权限了。可以使用 Google Play 服务,而国内微信利用Hardcoder框架向厂商获取了更大的权限。
  2. 从卡顿的性能入手。

HC 框架是一套独立于安卓系统实现的通信框架,它让 App 和厂商 ROM 能够实时“对话”了,目标就是充分调度系统资源来提升 App 的运行速度和画质,切实提高大家的手机使用体验

耗电优化

检测耗电。可以使用谷歌提供的Android Vitals 工具。在国内不好用。
长时间获取 WakeLockWiFi 和蓝牙的扫描等。
耗电优化的第二个方向是符合系统的规则,让系统认为你耗电是正常的。

实际上,所有和屏幕亮度相关的 WakeLock 的 Flag ,在 API level 17+ 之上,都已经被标记废弃了。WakeLock 是全局的,比较重。如果是保持屏幕亮,建议使用window flag FLAG_KEEP_SCREEN_ON(结合clearFlags()使用)。或者使用View的属性android:keepScreenOn

后台任务的处理,参考传送门

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐