• Android-进程理解/进程的优先级别


    进程理解

    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);

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

     

  • 相关阅读:
    10.6比赛 T1
    10.5比赛 T3
    10.5比赛 T2
    10.5比赛 T1
    最大子序列问题
    Python编程快速上手_第 4 章 列表
    Python编程快速上手_第 3 章 函数
    Python编程快速上手_第 2 章 控制流
    Python编程快速上手_第 1 章 Python基础
    Python 编程快速上手 ——让繁琐工作自动化
  • 原文地址:https://www.cnblogs.com/android-deli/p/10140545.html
Copyright © 2020-2023  润新知