进程
进程与程序:进程是相当于一个大容器,里面放着程序以及所需要的数据,相关文件;由进程控制块,数据和程序三部分组成。
进程结束,程序可以没有结束。
Android中进程有5个状态:foreground,visible,service,background,empty;foreground优先级最高,empty最低,所以内存不足的时候最先销毁或release的是empty进程。
Foreground是处于最前端,正在与用户进行交互的一个进程;
Visible是没有完全显示出来,随时可能与用户进行交互的进程,如输入法的框,处于
paused状态;
Service是完全不显示,但是正在运行的进程,如音乐的播放;
Background是处于系统后台的进程,已经停止了,等待销毁,处于
stop状态;
Empty是用来缓存的,加快进程创建速度的。
程序启动过程
android中没有main函数,但是有一个manifest文件,这就是程序的入口。这个文件里声明了哪个活动是主要活动,并且通过包名来识别一个程序,如:<action android:name="android.intent.action.MAIN" />。
系统启动后,首先启动launcher,调用activity的onCreat()方法;然后启动packageMangerService,读取manifest中所有activity的信息,同时建立一个信息库(表);之后是点击应用程序,调用onClick()方法,此时launcher进行系统级判别(从刚才的信息库);最后activity,service等组件在需要的时候进行实例化。
Activity,Window和View
一个程序运行,首先实例化一个activity,然后这个activity就相当于一个控制器,调用getwindow()方法实例化一个window(实际上是phonewindow),然后调用setcontentview()方法进行页面布局,把参数——xml布局文件进行调用,实现布局。这里有一个layoutInflater,作用是将XML布局文件变成实际的一个布局。