![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
frameworks
gufunhua&android
anroid专家
展开
-
android广播框架分析:动态注册过程
1.注册过程:动态注册:通过对应的Context对象的registerReceiver方法,通过LoadedApk的registerReceiverInternal方法注册,首先获取到BroadcastReceiver的IIntentReceiver对象,再通过AMS进行注册。获取IIntentReceiver是通过getReceiverDispatcher方法。LoadedApk里面有个mReceiver的Map,通过它维护每个context所对应的BroadcastReceiver和IInt原创 2020-08-13 01:23:00 · 156 阅读 · 0 评论 -
Context分析
Context分析1.主要的context如下: Activity和Application都是直接或间接继承ContextWrapper的。ContextWrapper类使用了装饰者模式,它里面的mBase实际上是指向的ContextImpl。Application和Context的对象在创建前都会创建对应的ContextImpl,然后通过attachBaseContext方法传入给mBase对象。 DecorContext是在PhoneWindow里面初始化的,只有...原创 2020-07-01 01:25:13 · 187 阅读 · 0 评论 -
ActivityThread分析
ActivityThread分析App进程创建好之后,执行ActivityThread的main方法。main方法执行如下几项重要工作:1.主线程的Looper循环初始化,looper对象在对象创建的时候已经创建好了,这里执行Looper.prepareMainLooper();2.初始化ActivityThread对象,并执行ActivityThread的attach方法。attach方法:1.非system进程,需要调用AMS的attachApplication方法将当前进程的A原创 2020-06-30 02:09:10 · 399 阅读 · 0 评论 -
Application对象初始化过程
App进程创建好之后,执行ActivityThread的main方法。main方法执行如下几项重要工作:1.主线程的Looper初始化,Looper.prepareMainLooper();2.初始化ActivityThread对象,并执行ActivityThread的attach方法。attach方法:1.非system进程,需要调用AMS的attachApplication方法将当前进程的ApplicationThread对象传递给AMS,AMS在执行完attachApplicati原创 2020-06-30 02:00:40 · 536 阅读 · 0 评论