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 

后续

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

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

相关推荐
贤泽6 天前
Android View 触摸事件分发机制
android·aosp
贤泽1 个月前
Android15 ContentProvider 深度源码分析(上)
android·aosp
贤泽1 个月前
Android15 ContentProvider 深度源码分析(下)
android·aosp
贤泽1 个月前
android 15 AOSP Broadcast 广播机制源码分析
android·aosp
奔跑吧 android1 个月前
【车载Audio】【AudioHal 07】【高通音频架构】【从逻辑策略到物理执行】
音视频·audio·aosp·android15·8295·音频子系统
不会Android的潘潘2 个月前
受限系统环境下的 WebView 能力演进:车载平台 Web 渲染异常的根因分析与优化实践
android·java·前端·aosp
奔跑吧 android2 个月前
【车载audio开发】【Qualcomm PAL 详解 6】【PAL 总体架构与模块交互指南】
audio·aosp·pal·高通音频框架·8155·8295
奔跑吧 android2 个月前
【车载audio开发】【Qualcomm PAL 详解 4】【Session 模块 介绍】
audio·aosp·高通·车载音频
不会Android的潘潘2 个月前
adb指令扩展方案
android·adb·aosp