android源码解析
yetaoii
这个作者很懒,什么都没留下…
展开
-
Activity、Window和View的关系源码分析
Activity、Window和View的关系文章目录Activity、Window和View的关系Activity的创建Window的创建View的创建WindowManager的addViewmWindowSession.addToDisplay触摸事件是怎么传递到Activity的总结要说它们之间的关系,就要从Activity的创建说起Activity的创建在这里我们暂时不分析具体的startActivity启动过程,直接看创建Activity的部分,调用startActivity新启动了一个原创 2020-05-30 16:20:09 · 332 阅读 · 0 评论 -
AIDL设计思路
AIDL设计思路文章目录AIDL设计思路AIDL1.实现一个自定义的AIDL2.IDE自动生成IMyService.java文件3.本地IPC-Stub本地的使用4.远端IPC使用5.aidl整体流程AIDL1.实现一个自定义的AIDL// IMyService.aidlpackage com.yetao.testaidl;interface IMyService { /** * Demonstrates some basic types that you can use a原创 2020-05-14 17:48:31 · 223 阅读 · 0 评论 -
Android资源加载流程
Android资源加载流程从使用到原理使用首先来看一个从资源string获取字符串的使用public class ResourceActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { supe...原创 2020-04-22 22:07:18 · 1073 阅读 · 0 评论 -
RxJava2核心源码解析
文章目录RxJava2源码解析一、简介二、从代码看设计1、核心设计--观察者模式2、锦上添花--装饰者模式2.1 发射源切换线程2.2 订阅者切换线程总结RxJava2源码解析一、简介RxJava是一款基于事件流的链式调用,支持切换线程,使用简单。接下来,会根据RxJava2版本进行分析。本文不会讲具体详细的操作符使用,主要从下面几个问题去看待源码是如何设计实现的怎么做到响应事件发射...原创 2020-04-03 16:15:57 · 208 阅读 · 0 评论 -
源码分析Handler+Looper+MessageQueue消息模型
文章目录源码分析Handler消息模型Handler职责1.Message的发送者2.Message的处理者3.Message的移除者Looper职责Looper的创建Looper循环MessageQueue职责构造函数和部分成员变量消息入队列消息出队列消息移除退出消息循环MessageMessage设计复用总结源码分析Handler消息模型Handler职责从开发者角度来看,可分为M...原创 2020-03-26 15:05:21 · 222 阅读 · 0 评论 -
深入c++层分析Serializable和Parcelable的区别
源码角度分析Serializable和Parcelable的区别一、Serializable的源码分析Serializable是为了保存对象的属性到本地文件、网络传输等方便数据传输,由于对应使用了ObjectInputStream和ObjectOutputStream进行读写,所以在读取过程中会使用了反射以及产生过多的临时变量。由于Serializable的性能过低,不太适用于性能资源相对紧...原创 2020-03-05 19:21:21 · 655 阅读 · 0 评论 -
fastJson序列化和反序列化流程
fastJson序列化和反序列化流程一、核心源码1、SerializeWriter该类主要用于序列化,有以下成员变量public final class SerializeWriter extends Writer { /** * 储存序列化结果的字段 */ protected char buf[]; /** * 写入缓存的长度 ...原创 2020-03-04 17:31:33 · 1441 阅读 · 0 评论 -
源码分析Gson序列化和反序列化流程
源码分析Gson序列化和反序列化流程一、核心源码1.核心对象— TypeAdapter 类型适配器,里面 public abstract class TypeAdapter<T> { /** * 该方法用于toJson时写入数据序列化 **/ public abstract void write(JsonWriter out, T value) thro...原创 2019-12-12 16:46:08 · 396 阅读 · 0 评论 -
Android SystemServer启动流程详解(基于sdk版本6.0.1)
本文基于Android系统版本6.0.1,由于系统重构与4.4.4启动过程存在差异。Java类的入口是main()方法,SystemServer的main()方法代码如下:new SystemServer().run();由此开始,以SystemServer的run()作为系统启动方法,接下来我们来看run()方法做了哪些事情。private void run() {原创 2018-02-01 11:37:21 · 286 阅读 · 0 评论