Android源码学习
文章平均质量分 79
David_Chen528
看博客右边的滚动条就知道聊程短见效快!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【私人备忘录】深入理解Android之读书笔记
一、init工作流程:1、解析两个配置文件,一个是系统配置文件init.rc,另一个是与硬件平台相关的配置文件。init.硬件平台名称.rc。2、执行各个阶段的动作,创建zygote的工作就是在其中的某个阶段完成的。3、调用property_init初始化属性相关的资源,并且通过property_start_service启动属性服务。4、init进入一个无限循环,并且等待一些事情...原创 2020-02-05 19:53:43 · 11645 阅读 · 1 评论 -
【私人备忘录】Android P ActivityManagerService(五)ContentProvider的工作过程
一、Activity中调用getContentResolver()获取ContentResolverContextWrapper.javagetContentResolver();Activity.java调用的是爷爷类ContextWrapper.java的getContentResolver()ContextImpl.javagetContentResolver()二、调用Cont...原创 2019-05-13 13:49:00 · 24559 阅读 · 0 评论 -
【私人备忘录】Android P ActivityManagerService(四)BroadcastReceiver的工作过程
静态注册的广播是有PMS完成注册的,不在AMS系列中讨论,只看动态注册。一、注册广播代码流程ContextWrapper.javaregisterReceiver();Activity.java调用的是爷爷类ContextWrapper.java的registerReceiver()ContextImpl.javaregisterReceiver() → registerReceive...原创 2019-05-13 13:43:33 · 30356 阅读 · 0 评论 -
【私人备忘录】Android P ActivityManagerService(三)Service启动和绑定
一、startService代码流程Activity.javastartService(mBase.startService())Context.javastartService()ContextImpl.javastartService() → startServiceCommon(ActivityManager.getService().startService())Activity...原创 2019-05-13 09:52:06 · 36087 阅读 · 0 评论 -
【私人备忘录】Android P ActivityManagerService(六)进程管理
Android中参与进程管理的主要模块是ActivityManager,其依赖于LRU weight,OOM adj和lmkd机制(新版Low Memory Killer)共同完成进程管理。一、LRU weight机制LRU是Least Recently Used,最近最少使用的意思,LRU weight用于衡量最近最少使用的权重。根据关键类说明中提到,进程启动后都会在AMS的成员变量中保...原创 2019-05-16 19:04:49 · 21833 阅读 · 0 评论 -
【私人备忘录】Android P ActivityManagerService(二)关键类说明
一、类说明ActivityThread:代表的就是Android应用程序进程中的主线程,Android应用程序进程的入口函数是ActivityThread类的main函数,也就是说一个ActivityThread类对应于一个应用程序进程。ApplicationThread:是ActivityThread的内部类,也是一个Binder类型的对象,作为应用进程的服务端,接收AMS的指令并将...原创 2019-05-08 17:43:28 · 1063 阅读 · 0 评论 -
【私人备忘录】Android P 数据业务开启代码流程(一)
一、上层:上层调用TelephonyManager.setDataEnabled(true)二、Telephony Services:TelephonyManager.setDataEnabled(true) → PhoneInterfaceManager.setUserDataEnabled(phone.setUserDataEnabled) → GsmCdmaPhone.setUser...原创 2019-04-30 10:19:23 · 2393 阅读 · 0 评论 -
【私人备忘录】Android P 网络变化代码流程
一、RILD层:Vendor Ril → ril_service.cpp(networkStateChangedInd)(mRadioIndication->networkStateChanged) → RadioIndication.java(networkStateChanged)备注:1、ril_unsol_commands.h中定义: {RIL_UNSOL_RESPONSE_V...原创 2019-04-29 14:30:09 · 35082 阅读 · 1 评论 -
【私人备忘录】Android P 去电代码流程
一、Dialer:DialpadFragment.handleDialButtonPressed(PreCall.start()) → DialerUtils.startActivityWithErrorToast(placeCallOrMakeToast(context, intent)) → TelecomUtil.placeCall(getTelecomManager(context).p...原创 2019-04-29 14:29:10 · 38383 阅读 · 2 评论 -
【私人备忘录】Android P 来电代码流程
一、RILD层:Vendor Ril → ril_service.cpp(callStateChangedInd)(mRadioIndication->callStateChanged) → RadioIndication.java(callStateChanged)备注:1、ril_unsol_commands.h中定义: {RIL_UNSOL_RESPONSE_CALL_STATE...原创 2019-04-29 14:27:03 · 37421 阅读 · 4 评论 -
【私人备忘录】Android P 数据业务开启代码流程(二)
ConnectivityService的工作总结起来就是:通过WIFI,移动数据业务,热点,VPN 等方式来获取路由配置信息。无论通过哪种方式,获取到路由配置信息后,需要交给ConnectivityService来处理,ConnectivityService通过ping网络来检查网络的有效性,进而影响到各个数据业务方式的评分值,ConnectivityService通过这些评分值来决定以哪个数据业...原创 2019-05-05 17:03:03 · 1508 阅读 · 1 评论 -
【私人备忘录】Android P ActivityManagerService(一)Activity启动代码流程
一、Launcher通过AIDL通知ActivityManagerService,它要启动一个Activity;Launcher.javastartActivitySafely() → startActivity()Activity.javastartActivity() → startActivityForResult(mInstrumentation.execStartActivity...原创 2019-05-08 11:01:52 · 37807 阅读 · 4 评论
分享