
点此查看原文
priority :【-20, 19】,高优先级 ->低优先级。
priority :【1, 10】,低优先级 ->高优先级。
测试后发现,使用方法一(android.os.Process.setThreadPriority )设置优先级,对线程调度影响显著。
在处理app启动速度的时候,可以设置主线程的优先级,保证主线程占用的cpu足够久。进程的oom_adj,决定了当内存不够的时候,lmk会根据oom_adj的大小依次释放内存。
android中对线程等级划分如下:
设置线程的优先级分为:android 提供的api和java sdk自带的api
注意: 要使用android提供的api设置,用java提供的作用不够显著
作用: 可以在主线程设置主线层等级;在Glide加载图片的时候设置低优先级。当图片量很大的时候可以降低加载图片线程的等级
android内存不够了,会触发oom机制,lowMemoryKiller会根据每个进程的oom_adj的等级,依次杀死进程,释放内存。
lom会根据free的内存的值,来判断kill掉哪个等级下的进程。例如当空闲内存只有64M了。会kill掉oom_adj 为12-15的进程
真实案例:应用A跳到第三方应用B,在第三方应用B中播放视频,加载大量图片,导致返回的时候,应用A走了SplashActivity。通过logcat发现A应用被kill掉了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)