美文网首页
Android Framework学习之Application

Android Framework学习之Application

作者: 一只二凡子 | 来源:发表于2020-11-11 00:02 被阅读0次

    1.了解Application的作用

    2.熟悉Application的类继承关系以及生命周期

    3.深入理解Application的初始化原理

    Application的生命周期和应用进程的生命周期一样长。一般用于保存应用进程内的全局变量,做一些初始化操作,提供应用上下文。

    Application的所有context的调用都是通过mBase处理的,这里用到了java的静态代理。

    ActivityThread的attach函数向AMS发起binder调用传入应用的binder句柄,AMS收到请求后会调用attachApplicationLocked函数。

    AMS向应用发起ipc调用,把参数封装到AppBindData里发消息让应用端在主线程里处理创建Application

    为Application创建context,然后在把context传入到创建的Application里

    创建的application其实只是个空壳,它的上下文是attach传入的,attachBaseContext函数就是给mBase赋值。

    再来看一下流程

    为什么不要在Application的生命周期回调里进而执行耗时操作?

    因为AMS向应用发起的调用是oneway的,而bindApplication函数是在应用主线程里执行的,所以耗时操作会阻塞线程,也会影响bindApplication之后的组件启动。

    相关文章

      网友评论

          本文标题:Android Framework学习之Application

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