展锐Android10,R,lmk怎么添加白名单
低内存lmk时,怎么添加白名单
[ANSWER]
如果要保活进程,使之不被lowmemorykiller杀掉,可以将要保活的进程加到白名单中:
lmkd_param.conf文件是lmkd杀进程的白名单配置文件,其中配置的应用是不会被lmkd杀掉的
请在device/sprd目录中搜索lmkd_param.conf文件,然后确定出和你们项目对应的lmkd_param.conf文件
然后添加配置如:
device/sprd//common/DeviceCommon.mk:
PRODUCT_COPY_FILES += \
( L O C A L P A T H ) / l m k d p a r a m . c o n f : (LOCAL_PATH)/lmkd_param.conf: (LOCALPATH)/lmkdparam.conf:(TARGET_COPY_OUT_VENDOR)/etc/lmkd_param.conf
或者
PRODUCT_COPY_FILES += \
$(call md-path-cur)/lmkd_param.conf:$(TARGET_COPY_OUT_VENDOR)/etc/lmkd_param.conf
最后,向lmkd_param.conf中添加任务名,尽量通配一些,例如:
com.antutu.ABenchMark
com.antutu.ABenchMark:push
com.antutu.benchmark.full
可以直接写成一行
com.antutu
就行了
注意,要在linux下,使用vi编辑修改lmkd_param.conf文件.
编译下载完成后,机器中的lmkd white list:
/vendor/etc/lmkd_param.conf
如果要避免被am所杀,可以参考下面的示例代码
frameworks/base/services/core/java/com/android/server/performance/policy/ram/RamPolicyExecutor.java:
private void doLRUReclaim(long idleTime, int swapKill, boolean force, int bgLimit, String reason) {
List<LRUReclaimProcessRecord> procs = getLeastRecentUsedPkg(idleTime, swapKill, force, bgLimit);
if (procs != null && procs.size() > 0) {
for (LRUReclaimProcessRecord proc : procs) {
+ if (isAgingTestTool(proc.pkgName)) {
+ Slog.e(TAG,"It is Aging test, doLRUReclaim skip kill : " + proc.pkgName);
+ continue;
+ }
if (isSpecialPackage(proc.pkgName)) {
if (DEBUG_RAMPOLICY) {
Slog.d(TAG, "Killing uid:" + proc.uid + proc.pkgName + " due to "
+ reason + "to free " + proc.rss + "KB");
}
mAm.killUid(UserHandle.getAppId(proc.uid), UserHandle.getUserId(proc.uid), "rampolicy");
} else {
Slog.d(TAG, "force-stop " + proc.pkgName + " due to " + reason
+ "to free " + proc.rss + "KB");
mAm.forceStopPackage(proc.pkgName, UserHandle.USER_CURRENT);
}
+ private boolean isAgingTestTool(String processName) {
+ return processName.contains("com.oppo.qetest") || processName.contains("com.oppo.qemonitor") || processName.contains("com.oppo.autotest.monkey");
+