进程理解

Android系统最小的控制单元是:进程 process

应用/CPU最小的控制单元是:线程 thread

一个应用一个 process 进程

一个应用一个 package(包是唯一的)

一个应用一个 dalvik vm(一个应用一个dalvik vm,这样才能保证数据的安全性)

一个应用一个 user(一个应用一个用户,因为Linux把每一个进程看作一个用户,进程与进程之间 权限验证很严格)


在Android4.4之前,每一个进程是 dalvik vm 模式,这种方式长时间运行会导致性能低

ART 模式:Android 5.0后,这种模式之后,以后的安卓就是苹果的性能


进程的优先级别

当Android系统内存空间不足的时候,系统会自动杀进程,怎么杀进程呢,就是按照进程的优先级别来杀的,优先级别 最低的 最先杀

1.前台进程:

      1.1 可以看到的/可以操作的/属于前台进程

      1.2 A应用 去绑定 B应用的服务,然后B应用是回到桌面状态的,B应用也属性前台进程

      1.3 只要是Service在执行生命周期方法的时候,也属于前台进程

      1.4 只要是BroadcastReceiver-->onReceiver()生命周期方法的时候,也属于前台进程

2.可视进程:

      2.1 当A应用 被 B应用挡住来一部分, A应用可以看到,却不能操作,A应用属于可视进程

      2.2 当A应用 被 B应用挡住来一部分, A应用可以看到,却不能操作,同时A应用绑定了S应用的Service,那么S应用和A应用都属于可视进程

3.服务进程:

      3.1 当C应用启动了一个Service,C应用回到桌面,C应用属于服务进程

4.后台进程:

      4.1 当D应用的任务栈还有Activity应用,D应用回到桌面,D应用属于后台进程(直接按了Home键盘)

5.空进程:

      5.1 当F应用的任务栈被弹栈弹完了,没有一个任务栈了,F应用属于空进程(不停的按Back键) 

后台进程演示:

空进程演示:

 


进程的提升

进程的提升:例如:在之前的的博客,Android-bindService本地服务-音乐播放(后台播放)-下,介绍了,如何把服务进程提升为前台进程

为什么要把服务进程提升为前台进程?

答:因为把服务进程提升为前台进程,是最稳定的(例如:一些山寨应用播放器,播放过程中,系统内存不足,应用突然被系统回收了,如果提升为前台进程,就不会被回收了)

Service:

// id=通知到唯一标示  notification=通知
startForeground(1, builder1.getNotification());

Activity:

// 既然是后台播放,就是要把当前Activity切换到后台
moveTaskToBack(true);

假设 当系统内存不足的时候,都是后台进程,系统会怎么杀

Android-进程理解/进程的优先级别的更多相关文章

  1. Android应用程序进程启动过程的源代码分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址: http://blog.csdn.net/luoshengyang/article/details/6747696 Android 应用程序框架层创 ...

  2. Android中通过进程注入技术改动广播接收器的优先级

    前言 这个周末又没有吊事,在家研究了怎样通过进程的注入技术改动广播接收器的优先级.关于这个应用场景是非常多的.并且也非常重要.所以就非常急的去fixed了. Android中的四大组件中有一个广播:B ...

  3. 图文详解 Android Binder跨进程通信机制 原理

    图文详解 Android Binder跨进程通信机制 原理 目录 目录 1. Binder到底是什么? 中文即 粘合剂,意思为粘合了两个不同的进程 网上有很多对Binder的定义,但都说不清楚:Bin ...

  4. C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 VC中进程与进程之间共享内存 .net环境下跨进程、高频率读写数据 使用C#开发Android应用之WebApp 分布式事务之消息补偿解决方案

    C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing). ...

  5. Android中通过进程注入技术修改广播接收器的优先级

    前言 这个周末又没有吊事,在家研究了如何通过进程的注入技术修改广播接收器的优先级,关于这个应用场景是很多的,而且也很重要,所以就很急的去fixed了. Android中的四大组件中有一个广播:Broa ...

  6. Android 组件和进程的一些关系

    1.Service 如果没有单独指定线程的话,那么和主activity是在同一个线程的,就是主线程,那么也不能够在这个service中做耗时操作,否则一定会中断退出. 2.默认情况下,一个Androi ...

  7. Android 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护

    本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context  ↳an ...

  8. 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护

    本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context  ↳an ...

  9. Android应用程序进程启动过程(后篇)

    前言 在前篇中我们讲到了Android应用程序进程启动过程,这一篇我们来讲遗留的知识点:在应用程序进程创建过程中会启动Binder线程池以及在应用程序进程启动后会创建消息循环. 1.Binder线程池 ...

随机推荐

  1. WebDriverException: Message: 'phantomjs.exe' executable needs to be in PATH.

    本文转载自:http://blog.csdn.net/sinat_36764186/article/details/55520444 网上的某测试代码: from selenium import we ...

  2. 在eclipse中使用mybatis-generator自动创建代码

    1.eclipse中安装插件,地址:http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/ ...

  3. nodejs+express+ejs+mongoose实例

    nodejs+express+ejs+mongoose实例 nodejs学得异常痛苦,在这里将学的东西做一番整理,算是自我安慰吧.根据网上todo示例,用express和mongoose重写了部分代码 ...

  4. Web Api HelpPage

    为了方面APP开发人员,服务端的接口都应当提供详尽的API说明.但每次有修改,既要维护代码,又要维护文档,一旦开发进度紧张,很容易导致代码与文档不一致. Web API有一个Help Page插件,可 ...

  5. 获取中文的首字母demo

    import net.sourceforge.pinyin4j.PinyinHelper; /** * * @Title: getPinYinHeadChar * @Description: TODO ...

  6. 给iOS开发新手送点福利,简述UITextField的属性和用法

    UITextField属性 0.     enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. ...

  7. Python之分布式监控系统开发

    为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个简版的类Zabbix监控系统 –掌握自动化开发项目的程序设计思路及架构解藕原则 常用监控系统设计讨论 Zabbix Nagios 监控系统需求 ...

  8. 网络通信和TCP详解

    交换机.路由器.服务器组网 1. 通信过程(pc+switch+router+server) 较为复杂的通信过程如:访问 www.baidu.com 注意:一定要配置 PC:IP.NETMASK.DF ...

  9. Python/Java读取TXT文件

    JAVA: public static void readTextFile(String filePath) { try { String encoding = "GBK"; Fi ...

  10. Git----远程仓库01

    到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了 可是用过集中式版本控制系统SVN的童鞋们会站出来说,这些功能在SVN里早就有了,没看出Git ...