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 

后续

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

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

相关推荐
AFinalStone6 天前
Android7 多用户源码解析(五)应用安装与管理隔离机制
系统架构·aosp·多用户
AFinalStone6 天前
Android7 多用户源码解析(二)核心数据结构深度剖析
系统架构·aosp·多用户
AFinalStone6 天前
Android7 多用户源码解析(六)数据隔离与存储机制详解
系统架构·aosp·多用户
AFinalStone6 天前
Android7 多用户源码解析(一)功能演进与系统架构总览
系统架构·aosp·多用户·usermanaher
AFinalStone7 天前
Android7 多用户源码解析(十)Work Profile 企业模式与开发实战指南
系统架构·aosp·多用户
AFinalStone7 天前
Android7 多用户源码解析(九)权限系统与多用户的交互机制
系统架构·aosp·多用户
消失的旧时光-194321 天前
Android 系统层扫盲 09:AMS、ATMS、WMS、PMS 到底分别管什么?
android·wms·pms·ams·aosp·atms
千里马-horse23 天前
附录 C:AOSP 不在公共框架 API 中采用 Kotlin 的原因
aosp
千里马-horse24 天前
65 定制 Android ROM
aosp
千里马-horse25 天前
第 66 章:在 Android 上运行 Windows 游戏
android·aosp