android的一个特性:android应用的生命周期不受应用本身控制,而是由系统本身来决定。当系统内存不足时,为了确保当前应用的运行,系统会干掉某些进程,释放内存。那么问题来了:系统会不会干掉我的应用进程呢?它依据什么来干掉进程呢?手机中装了这么多应用,它会率先干掉哪些进程呢?
这就需要了解下"android应用的重要性",应用的重要性(按优先级别)分为:
1 前端进程:有两种,一种简单的理解就是当前正在与用户交互的Activity所在的进程;另外一种就是存在广播接收器onReceiveon方法正在运行的进程。(只有当内存低到不够这些进程可用的时候,才会被干掉,这种情况发生的概率最小)
2可视进程:拥有一个可以看见的,但是却没有在最前端显示的Activity。最常见的就是:在一个Activity中弹出了一个Dialog.(只有前端进程所需内存不足时,才会被干掉,发生概率大于前端进程)
3服务进程:启动Service的进程。(只有当前端进程和可视进程所需内存不足时,才会被干掉,发生概率大于可视进程)
4后台进程:简单的理解所有的Activity对用户不可见了。(当前三类所需内存不足时,后台进程就会被干掉,发生概率大于服务进程)
5空进程:有任何活动的应用组件的进程。重要性最低,率先将会被干掉。
那么,我开发的应用到底属于哪一类进程呢?举个简单的例子:
1如果你的应用当前正在与用户交互,那么就属于前端进程;2如果按了HOME键,假如应用中有启动的服务,那就属于服务进程,没有的话那就是后台进程。


应用不会被系统干掉,这是不可能的。因此,在开发应用的时,对组件的恰当使用可间接的提高应用本身的重要性,从而降低应用被率先干掉的概率,个人觉得这是我们设计开发应用时,需要注意的一点。

更多相关文章

  1. 从AIDL开始谈Android进程间Binder通信机制
  2. Android跨进程通信:详解 Binder机制原理
  3. 【Android(安卓)并发编程】从进程的角度分析app的“生”与“死”
  4. Android中实现对/system/bin/surfaceflinger进程进行拦截和注入
  5. 360面试总结(Android)
  6. Android的系统启动流程和应用启动流程
  7. android studio 中aidl文件的使用并且实现跨进程的通信
  8. Android学习札记53:详解Android中的进程间通信机制Binder系列文章
  9. Android中的进程间通信(IPC机制)

随机推荐

  1. Android源码分析:HeaderViewListAdapter
  2. Android最佳实践之:代码性能优化——Stric
  3. Android源码分析:TabHost
  4. Android中读写文件
  5. Android(安卓)Skia编程系列(一):Hello Skia
  6. 如何自学 Android(安卓)编程?
  7. Android的WiFi子系统架构
  8. 做纯粹的 Android
  9. android 图片剪裁 ,从android自带图库提取
  10. android桌面画面循环滑动