技术解答

App Process died时改进建议
1、APP程序覆盖onLowMemory函数,监控系统内存不足信号。发生该信号时,弹出对话框“提示终端内存不足”,让用户进行内存清理操作
2、申请大块内存空间时,做好终端内存监控,发现不满足时给出相应日志,避免程序意外终止
3、检查APP性能数据,分析是否存在内存泄露的情况
4、配置适用最低版本号的终端(如:4.0),避免配置低的老旧终端,内存不足无法运行
Process died引发原因
1、内存不足被杀掉,意外终止(90%)
2、app自身问题崩溃,意外终止,但日志里无更多堆栈信息(10%)
3、被测app被切换到后台,意外终止
LowMemoryKiller知识点补充
Android在内存管理上与linux有些小的区别。其中一个就是引入了Low memory killer .
1、引入原因:
Android是一个多任务系统,也就是说可以同时运行多个程序,这个大家应该很熟悉。
一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程序时,可以很快的启动。
随着系统中保留的程序越来越多,内存肯定会出现不足,low memory killer就是在系统内存低于某值时,清除相关的程序,保障系统保持拥有一定数量的空闲内存。
2、基本原理和重要概念:
Low memory killer根据两个原则,进程的重要性和释放这个进程可获取的空闲内存数量,来决定释放的进程。
Android根据进程的重要性分成以下几类,按照重要性依次降低的顺序:
名称                            oom_adj                                   解释
FOREGROUD_APP           0              前台程序,可以理解为你正在使用的程序
VISIBLE_APP                    1                                 用户可见的程序
SECONDARY_SERVER     2               后台服务,比如说QQ会在后台运行服务
HOME_APP                     4                              HOME,就是主界面
HIDDEN_APP                  7                                   被隐藏的程序
CONTENT_PROVIDER    14                                    内容提供者
EMPTY_APP                    15              空程序,既不提供服务,也不提供内容

 
已邀请:

要回复问题请先登录注册