Android-历程生命周期

Android-进程生命周期
Android-进程生命周期
一 进程等级
按照优先级排列如下:
1 活动进程:Active Process
存在时期
正处于Activity Resume()[Activity重启]状态
正处于与bound服务交互的状态
正处于服务在前台运行的状态(setForeground()被调用, 该函数将创建指定窗口的线程设置到前台,并且激活该窗口)
Service生命周期函数正在被执行(onCreate(), onStrat(), onDestory())
Broadcast Receiver正在执行onReceiver()方法
杀死Foreground Process需要用户相应,因为这个安全优先级最高
安全优先级最高,不会轻易被杀死


2 可见进程:Visble Process
当前进程不是焦点进程,Activity不在前端显示
但也没有完全隐藏,能够看得见,比如弹出一个对话框


3 服务进程:Started Service Process
正在运行的,不在上述两种状态的Service


4 后台进程:Backgroud Process
不可见状态的Activity进程,又没有任何相关Service运行(onStop()被调用),系统有个后台
进程列表,一般情况采取后进先出(队列)的原则释放后台进程资源


5 空进程:Empty Process
没有运行任何Components的进程,保留这个进程主要是为了缓存的需要,例如下次启动这个进程可以更加快速


二 Android app的启动和消亡过程
启动
由PackageManage(依赖PackageManageService,还与manifest文件有关系)开始->start主Activity->主Activity不存在->向zygote系统守护进程
实例化一个虚拟机进程->装载dex文件


退出
自动释放

内核->dirvers(驱动)->misc->LowMemoryKiller.c文件(实现机制)软驱动


程序代码退出的3种方法
finish();
System.exit(0);暴力退出
Process.killProcess(Process.myPid());暴力退出