?????????????????校???????????????????????????位?????????????????????????????????Android????Linux Kernel???校????????????????????????????胃?????????谢?????????????????????????芯?nice??Linux???Android???械???谩?
?????些????
???????? ?????????校????????械???澹�?????????????
??????? ????????????械?位????????????????????小???????????????锌????卸?????????
????nice????????
????Linux?校????nice value?????3??nice??????瓒�??????????????????????????????nice????????????
????nice??????围?-20??19??
???????????锟�?nice???????0??????????????????
????nice???????????????????????CPU????????????nice??小?????????????????????CPU???????????
???????nice??-20?????????????nice??19?????????????
??????????fork???????????nice??????????????????renice???????nice???????????
???????????
????nice???????????????????????????????????????????????????????????????????????????????????????????????????????械???????????????????????????械??????????????械??????????????????????????????????????????????????????????????????????nice????????????????????????????????
????renice
????????????渭???????????????????????????????瓒╪ice???
????nice -n 10 adb logcat
???????????????????????????????renice?????nice?
????sudo renice -n 0 -p 24161
????????????????root????-p???????????id??
???????renice??????Linux???邪???-n ????????????????????????Mac??-n??????????????????????? ??????Mac?锟�???????????nice???19???10??????????????sudo renice -n -9 -p 24161???????????????????????
????Android?械?nice
????????Android????Linux Kernel????Android???????nice?????????????????????????????????锟�?
????Android????????????Linux???邪????????????nice?????????
????renice???root?????????????????
??????????
????????????????????????????????????????????????????械??????????????Android???????????????????????Android API?姹�????????? Java ????姹�??
????Android API
????Android?械??????????????婕�?????锟�????????????????nice???????????????????????????????????????
????THREAD_PRIORITY_DEFAULT??????????????????0??
????THREAD_PRIORITY_LOWEST?????????????19??
????THREAD_PRIORITY_BACKGROUND ?????????????????????????10??
????THREAD_PRIORITY_FOREGROUND ????????????UI???????????????????????????????????????????????????-2??
????THREAD_PRIORITY_DISPLAY ?????UI???????????????????????THREAD_PRIORITY_FOREGROUND??????????????????????????????????????-4??
????THREAD_PRIORITY_URGENT_DISPLAY ??????????????????????????????????????????????????贸???????????-8??
????THREAD_PRIORITY_AUDIO ??????????????????????????????????????? -16??
????THREAD_PRIORITY_URGENT_AUDIO ???????????????????THREAD_PRIORITY_AUDIO?????????????????????????????-19??
????THREAD_PRIORITY_MORE_FAVORABLE ???THREAD_PRIORITY_DEFAULT??????????-1??
????THREAD_PRIORITY_LESS_FAVORABLE ???THREAD_PRIORITY_DEFAULT???????些????1??
???????Android API????????????????????????????????????android.os.Process.setThreadPriority???????伞?????????????????????????????效??????renice??
????new Thread () {
????@Override
????public void run() {
????super.run();
????android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
????}
????}.start();
????Java???API
????Java?Thread??????????????????
????MAX_PRIORITY??????android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY????10??
????MIN_PRIORITY??????android.os.Process.THREAD_PRIORITY_LOWEST????0??
????NORM_PRIORITY??????android.os.Process.THREAD_PRIORITY_DEFAULT????5??
???????setPriority????????????????????????????getPriority????????????????????
??????Android???校??????????Java?????API?????Android????API??????????????????Android???薪????瓒�??渭????????
???????
????Android API????????????Java???API????????????????????????? android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND) ?????Java???API??Thread.getPriority()?????????????????????
????new Thread() {
????@Override
????public void run() {
????super.run();
????Log.i(LOGTAG?? "Java Thread Priority Before=" + Thread.currentThread().getPriority());
????Process.setThreadPriority(Process.THREAD_PRIORITY_LOWEST);
????Log.i(LOGTAG?? "Java Thread Priority=" + Thread.currentThread().getPriority());
????}
????}.start();
?????????????????????
????I/MainActivity( 3679): Java Thread Priority Before=5  I/MainActivity( 3679): Java Thread Priority=5
???????????????????????????????????ANR trace??????????????ANR???????校?prio=5??proi????????Java???API??????????????nice=-6?械?nice?????Android API?姹�????????????
????"main" prio=5 tid=1 NATIVE
????| group="main" sCount=1 dsCount=0 obj=0x41690f18 self=0x4167e650
????| sysTid=1765 nice=-6 sched=0/0 cgrp=apps handle=1074196888
????| state=S schedstat=( 0 0 0 ) utm=5764 stm=3654 core=2
????#00  pc 00022624  /system/lib/libc.so (__futex_syscall3+8)
????#01  pc 0000f054  /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
????#02  pc 0000f0b4  /system/lib/libc.so (__pthread_cond_timedwait+64)
????????ANR
??????????????????Android?械?ANR???????WorkerThread??????IO??????????WorkerThread??????????????????IO???????????????????????????????????workerThread??????THREAD_PRIORITY_BACKGROUND??????????????????????????