智能跑步机遇到如下问题:
正在跑步过程,运行视频软件,跑步机会停止。
原因分析:
系统内存512m,比较小。运行优酷视频以后,内存占用较多,导致系统开始进入低内存回收资源状态。系统回收资源是按照adj优先级进行回收。
解决办法:
adb shell dumpsys activity --oom > e:oom.txt
这样可以将进程adj打印到oom.txt文件中,打开文件,搜索oom,得到如下类似的信息:
可以看到com.vigorchip.launcher优先级是比较低的。如果期望不被回收,需要想办法提高优先级。
经过尝试,简单可行的办法是将此进程配置到system/systemui/phone任意一个进程里面(这三个进程是不会被系统回收的),需要做如下出来:
在Androidmanifest.xml中修改两处:
1.在<manifest根目录加上android:sharedUserId="android.uid.system"
2.在<Application根目录加上android:process="system"
加上以后需要验证,于是启动跑步机,打开视频软件,最后打印adj信息:
此时找不到com.vigorchip.launcher,说明已经配置到了优先级排第一的system进程里。
最后测试,发现跑步机进程不会再因为内存不足被系统回收了。