【问题标题】:android process died with (adj *), what is adj?android进程死于(adj *),什么是adj?
【发布时间】:2013-11-07 12:18:10
【问题描述】:

在我的 Galaxy S III 上,使用 logcat 我可以经常看到该进程死亡。

(adj 5)、(adj 8)、(adj 9) 和 (adj 10) 是什么意思?

以下是设备日志:-

I/ActivityManager( 2258): Process com.google.android.partnersetup (pid 32242) (adj 10) has died.

I/ActivityManager( 2258): Process com.metago.astro (pid 32446) (adj 10) has died.

D/dalvikvm(32602): WAIT_FOR_CONCURRENT_GC blocked 0ms
I/ActivityManager( 2258): Process com.google.android.gms (pid 32272) (adj 10) has died.

I/ActivityManager( 2258): Process com.whatsapp (pid 12041) (adj 8) has died.

D/KeyguardViewMediator( 2258): setHidden false
D/WindowManager( 2258): mInputFocus is not null.
I/ActivityManager( 2258): Process com.sec.spp.push (pid 19839) (adj 8) has died.

I/ActivityManager( 2258): Process com.test.happ.jiffy (pid 556) (adj 5) has died.

【问题讨论】:

标签: android


【解决方案1】:

当内存不足时,android系统会杀死一些后台进程,每个进程都有一个adj值,代表它的重要性。 adj 值越低,过程的重要性就越高。高调整进程将首先被杀死。

ProcessList.java 中定义的值

class ProcessList {
    // The minimum time we allow between crashes, for us to consider this
    // application to be bad and stop and its services and reject broadcasts.
    static final int MIN_CRASH_INTERVAL = 60*1000;

    // OOM adjustments for processes in various states:

    // This is a process only hosting activities that are not visible,
    // so it can be killed without any disruption.
    static final int HIDDEN_APP_MAX_ADJ = 15;
    static int HIDDEN_APP_MIN_ADJ = 9;

    // The B list of SERVICE_ADJ -- these are the old and decrepit
    // services that aren't as shiny and interesting as the ones in the A list.
    static final int SERVICE_B_ADJ = 8;

    // This is the process of the previous application that the user was in.
    // This process is kept above other things, because it is very common to
    // switch back to the previous app.  This is important both for recent
    // task switch (toggling between the two top recent apps) as well as normal
    // UI flow such as clicking on a URI in the e-mail app to view in the browser,
    // and then pressing back to return to e-mail.
    static final int PREVIOUS_APP_ADJ = 7;

    // This is a process holding the home application -- we want to try
    // avoiding killing it, even if it would normally be in the background,
    // because the user interacts with it so much.
    static final int HOME_APP_ADJ = 6;

更多android内存管理可以参考http://developer.android.com/guide/components/processes-and-threads.html

【讨论】:

    猜你喜欢
    • 2011-06-04
    • 2021-09-16
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2012-05-10
    • 2011-06-03
    相关资源
    最近更新 更多