android lmkd

低内存终止守护程序 即 Low Memory Killer
Offical Doc
源码路径 system/memory/lmkd/lmkd.cpp

android 进程优先级

/proc/<pid>/oom_score_adj

adb shell 查看进程被杀阈值

#cat /sys/module/lowmemorykiller/parameters/minfree
输出6个数字,分别是provider(?)、前台进程、可见进程、服务进程、后台进程、空进程对应的被杀的内存阈值,单位是4k

adb shell查看activity task

dumpsys window displays 中查看:

Application tokens in top down Z order

android主线程闲时执行

  Looper.myQueue().addIdleHandler(new IdleHandler() {} )

Android adb 查看进程优先级

cat proc/<pid>/oom_adj

数值的定义在 frameworks/base/services/java/com/android/server/am/ProcessList.java

另外,

dumpsys activity processes
oom: max=16 curRaw=0 setRaw=0 cur=0 set=0这一行中的cur=0也是该进程的优先级

android录屏

MediaProjectionManager

8k分辨率的图的全部或部分显示在1080p手机屏上,怎么做方案最优?

java正则 . 转义

//[]里的. 转不转都可以
Pattern pattern = Pattern.compile("[\\.]");
System.out.println(pattern.matcher("").find());     //false
System.out.println(pattern.matcher(".").find());    //true
System.out.println(pattern.matcher("a").find());    //false

pattern = Pattern.compile("[.]");
System.out.println(pattern.matcher("").find());     //false
System.out.println(pattern.matcher(".").find());    //true
System.out.println(pattern.matcher("a").find());    //false

java 正则一例

Pattern.compile("\\$[\\u4e00-\\u9fa5\\-./\\s]{1,50}\\([a-zA-Z0-9_,\\-.]{1,50}\\)\\$")

    \\u4e00-\\u9fa5\\   ==>汉字
    \\( , \\$ , \\-     ==>转义
    \\s                 ==>空格