为什么系统会无崩溃、ANR等异常记录地终止前台运行的硬件终端配套App?
应用无提示中断问题排查进展
配套硬件终端的前台常驻接口应用,需长期稳定运行。技术实现采用Kotlin、MVVM架构、单Activity设计,结合协程、Dagger、Retrofit、Room等技术栈完成,常规状态下运行优化充分、稳定性较好,但偶发用户正常使用过程中应用直接关闭的问题,全程无任何崩溃、ANR提示,用户体验极差。
已完成排查工作
- 配置
UncaughtExceptionHandler将异常日志落盘存储用于分析,问题发生场景下无任何崩溃日志 - 接入Firebase Crashlytics,同样未捕获到相关异常
- 使用Profiler、LeakCanary开展检测,无内存泄漏问题,应用日常内存占用约200MB
应用相关背景说明
- 大部分Fragment存入回退栈复用以提升二次开屏速度,不存在Fragment、ViewModel重复创建或内存泄漏问题
- 使用Glide加载、预览用户头像,曾怀疑存在位图相关泄漏,但1-2小时的测试周期内Profiler未检测到异常,尚未开展一周以上的超长时长测试
- 应用异常中断多集中在三类场景:设备未充电状态、刚开机(开机后10-20分钟内)、客户端WiFi信号较差的环境
- 应用包含约10个模块,多为自研Canvas库,共设置50-60个单例,设计初衷为占用更多内存换取运行速度
- 异常发生时机随机,部分客户端还存在ANR问题,已接入ANR Watchdog,后续将定位ANR根因
当前初步排查结论
初步判断问题可能来自native层崩溃或系统主动终止进程,暂无法稳定复现问题,尚未明确根本原因,面向有同类问题处理经验的开发者征集相关实践经验。
内容的提问来源于stack exchange,提问作者Georgiy Chebotarev
相关产品推荐
相关产品推荐

