.net

.net

博客园 首页 新随笔 联系 订阅 管理

方法:

对于放在/system/app下的应用,需要在其Manifest.xml文件中设置persistent属性,如应用程序'Phone'的AndroidManifest.xml文件:

    <application android:name="PhoneApp"

                 android:persistent="true"

                 android:label="@string/dialerIconLabel"

                 android:icon="@drawable/ic_launcher_phone">

         ...

    </application>

设置后app提升为系统核心级别,任何情况下不会被kill掉, settings->applications里面也会屏蔽掉stop操作。

原理:

Android中的进程是托管的,当系统进程空间紧张的时候,会依照优先级自动进行进程的回收。由此带来三个问题:

    1) 回收规则:  什么时候回收与回收哪一个?

    2) 避免误杀:  如何阻止被回收?

    3) 数据恢复与保存:  被回收了怎么办?

 

Android将进程分为6个等级,它们按优先级顺序由高到低依次是:

   1.前台进程( FOREGROUND_APP)

   2.可视进程(VISIBLE_APP )

   3. 次要服务进程(SECONDARY_SERVER )

   4.后台进程 (HIDDEN_APP)

   5.内容供应节点(CONTENT_PROVIDER)

   6.空进程(EMPTY_APP)

 

特征:

1.如果一个进程里面同时包含service和可视的activity,那么这个进程应该归于可视进程,而不是service进程。

2.另外,如果其他进程依赖于它的话,一个进程的等级可以提高。例如,一个A进程里的service被绑定到B进程里的组件上,进程A将总被认为至少和B进程一样重要。

3.系统中的phone服务被划分到前台进程而不是次要服务进程.

posted on 2014-03-26 11:06  航宇  阅读(1463)  评论(0编辑  收藏  举报