Android系统开发,app多次崩溃造成系统进入recovery

问题

即将上线的车载中控系统,突然收到客户投诉。说黑屏了,严重问题!

这个recovery模式其实上面描述很清楚,只是系统数据未能加载。提示用户手动选择。但是页面比较吓人,所以着实让人头疼!

排查

通过存储的log日志,可以看到重启系统触发了救援程序。

为什么会进入这个程序呢,查看google文档可以看到:

  1. system server在5分钟内重启5次以上,

  2. 永久性系统应用在 30 秒内崩溃 5次以上。

果然在日志中看到了升级程序由于日志问题,30s内重启了6次,触发了这个救援程序。

源代码中可以看到对应逻辑部分。

解决

官方也有说明,其实这个程序是调试模式,关闭userdebug模式、插入usb、prop配置开关,都可以关闭。

这个问题在开发中,都是连接着usb调试的,不会触发。经常会被忽略。

这里因为程序还没上线,通过编译prop配置关闭

复制代码
PRODUCT_SYSTEM_PROPERTIES +=  persist.sys.disable_rescue=1 

后续

其实还有很多问题会触发本现象,比如存储写满。这个显示主要目的是帮助用户清理错误数据或保留错误现场,让用户可以选择。

更好的方式是和手机厂商学习,重新定制开发本提示页面显示。让用户清晰知道遇到问题,选择后点击选择即可。

相关推荐
消失的旧时光-19438 小时前
Android 系统层扫盲 09:AMS、ATMS、WMS、PMS 到底分别管什么?
android·wms·pms·ams·aosp·atms
千里马-horse2 天前
附录 C:AOSP 不在公共框架 API 中采用 Kotlin 的原因
aosp
千里马-horse3 天前
65 定制 Android ROM
aosp
千里马-horse3 天前
第 66 章:在 Android 上运行 Windows 游戏
android·aosp
消失的旧时光-19436 天前
Android 系统层扫盲 05:Android 开机后发生了什么?从 Bootloader 到 Launcher
android·zygote·fork·aosp·cow
千里马-horse6 天前
第 61 章:设备策略与 Android 企业版
android·aosp
千里马-horse6 天前
第 60 章 模拟器架构
架构·aosp
千里马-horse9 天前
第 55 章:OTA 更新
aosp
消失的旧时光-194310 天前
Android 系统层扫盲 03:第一次看 AOSP 源码目录,frameworks、system、packages、hardware 都是干什么的?
aosp
齊家治國平天下2 个月前
AAOS 电源管理深度解析:休眠/唤醒/功耗优化
android·车载系统·aaos·aosp·电源管理·休眠唤醒·carpowermanager