美文网首页
重翻已生灰的Android书---对application的理解

重翻已生灰的Android书---对application的理解

作者: 就是这么简简单单 | 来源:发表于2019-10-08 10:35 被阅读0次

    1.application的作用?

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

    2.application生命周期

    image.png
    image.png image.png

    静态代理,mBase才是关键。
    application执行顺序:构造函数-->attachBaseContex(Context base)-->onCreate()

    3.application的初始化

    application是最早被启动执行的,那么ActivityThread可以看一看。


    image.png image.png

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


    image.png

    handleBindApplication中重点关注2个方法


    image.png image.png

    传入的参数app就是makeApplication


    image.png image.png

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

    注意application是单列,在makeApplication中

    image.png

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

    记住mBase才是关键。

    相关文章

      网友评论

          本文标题:重翻已生灰的Android书---对application的理解

          本文链接:https://www.haomeiwen.com/subject/vwauyctx.html