1.application的作用?
application是Android应用的入口,保存应用进程内的全局变量,初始化操作,提供全局上下文,不用担心内存泄漏。application的生命周期和进程一样,进程在application就在,有几个进程就会创建几个application。
2.application生命周期



静态代理,mBase才是关键。
application执行顺序:构造函数-->attachBaseContex(Context base)-->onCreate()
3.application的初始化
application是最早被启动执行的,那么ActivityThread可以看一看。


bindApplication函数,将数据封装在AppBindData中,然后将数据发送出去

handleBindApplication中重点关注2个方法


传入的参数app就是makeApplication


在 attach函数中执行的就是 attachBaseContext(),所以mBase很关键。
不要早application构造函数中以及attachBaseContext()的super函数之前调用context,因为mBase没有初始化,一定是空指针异常。
注意application是单列,在makeApplication中

所以不要new MyApplication(),这样创建出来的只是一个普通的Java对象。application是系统组件,系统组件的实例是要由系统来去创建的,这样mBase会被赋值,context才不会为null。
网友评论