首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Android-Framework源码分析
墨香
创建于2023-05-26
订阅专栏
对Framework源码常用代码进行流程和逻辑分析。
等 4 人订阅
共13篇文章
创建于2023-05-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Android系统源码分析--Process启动过程
Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制;这两个特点都是在进程的初始化过程中实现的。(引用自老罗安卓之旅-Android应用程序进程启动过程的源代码分析) …
Android系统源码分析之-ContentProvider
在之前我们分析过ContentProvider的启动比Application的启动早,所以使用时需要知道这种情况。在使用ContentResolver时是通过URI来访问的,URI的结构:content://cn.codemx.myprovider/item/123,我们划分一…
Android系统源码分析--Zygote和SystemServer启动过程
Zygote是一个孕育器,Android系统所有的应用进程以及系统服务SystemServer都是有Zygote进程孕育(fork)而生的,因此Zygote在Android启动过程中起着决定作用。Zygote的启动是从它的main函数开始的,因此我们从这个函数开始分析。整个过程…
Android系统源码分析--消息循环机制
上一章我们讲解SystemServer时涉及到了消息机制,因此这一章我们先介绍一下消息循环机制,帮助大家弄清楚消息循环的原理,有助于代码的编写和优化。 Looper-Message-MessageQueue-Handler消息处理机制 在Android系统有两个通信机制,一个是…
Android系统源码分析--Activity启动过程
我们知道Activity启动模式有四种,每一种都有不同的操作,直接影响我们App的设计,为了帮助我们理解源码,我们先分析一下这四种模式。这四种模式包括:standard, singleTop, singleTask 和 singleInstance。 standard:标准模式…
Android系统源码分析--Activity的finish过程
这里调用finish方法,传入参数DONT_FINISH_TASK_WITH_ACTIVITY,这个参数是在finish掉Activity的时候不finish掉Task。 ActivityManagerNative.getDefault()方法其实我们在前面文章提到过,得到的是…
Android系统源码分析--Service启动流程
调用当前类中的startServiceCommon方法。 首先验证Intent中传递的组件名是否为空,为什么判断下面我们介绍,接着通过代理对象ActivityManagerProxy,通过Binder调用AMS(ActivityManagerService)中的对应方法star…
Android系统源码分析--View绘制流程之-setContentView
其实这个getWindow获取的是继承Window的PhoneWindow,所以这里getWindow.setContentView是调用的PhoneWindow.setContentView方法,具体的自己可以看看代码哪里赋值的就知道了。另外这个方法还有两个类似的方法: 这三…
Android系统源码分析--View绘制流程之-inflate
LayoutInflater.inflate方法基本上每个开发者都用过,也有很多开发者了解过它的两个方法的区别,也有一些开发者去研究过源码,我这里再重复分析这个方法的源码其实一是做个记录,二是指出我认为的几个重点,帮助我们没有看过源码的人去了解将xml布局加载到代码中的过程。这…
Android系统源码分析-Broadcast注册和注销
mPackageInfo是LoadedApk类型对象,这个对象是在一个应用启动的时候创建的。 这里主要是将广播接收者receiver封装成一个实现了IIntentReceiver接口的Binder对象rd,然后将其放置到LoadedApk对象中的mReceivers中保存起来。…
Android系统源码分析-Broadcast发送
先看一张时序图,因为里面涉及到循环过程,代码中会提到,但是时序图没有绘制,所以需要注意一下。 之前我们讲过调用ActivityManagerProxy的broadcastIntent方法,然后通过Binder调用ActivityManagerService中的对应方法。 这里代…
Android系统源码分析--Context
从上面图可以看到Android系统主要分为五层:应用层,应用框架层,Native库和运行环境,硬件抽象层和Linux内核层。本章不重点讲Android系统框架,只是开始给大家展示一下,有个了解,我们先从Framework层开始学习,首先学习Context,下面进入正题。 做An…
IntelliJ IDEA导入Android源码
接着打开如下界面,找到Android源码位置,然后找到生成的android.iml文件,鼠标选中,然后点击open即可。 注:mmm命令要先执行第一条命令。 其实这个方法也不能解决,因为后面的编译中还是不支持10.12,由于对里面不熟,所以采用了另一个方法,在Xcode中添加s…