安卓源码解析
文章平均质量分 94
hfyd_
这个作者很懒,什么都没留下…
展开
-
安卓5.1源码解析 : RecyclerView解析 从绘制流程,ViewHolder复用机制,LayoutManger,ItemAnimator等流程全面讲解
最近一直在研究安卓中几个常用控件的源码,希望能通过学习源码学习到google大牛在封装一些复杂view的思想,为以后自己造轮子提供更好的思路.RecyclerView是一个用户可以全面定制的组件,本文将全面分析RecyclerView的各种机制,包括viewholder复用机制,LayoutManager布局机制,ItemAnimatoritem动画等RecyclerView暴露给使用者的所有可以自原创 2016-12-28 17:17:06 · 25666 阅读 · 9 评论 -
安卓5.1源码解析 : ListView解析 从绘制,刷新机制到Item的回收机制全面讲解
最近一直在研究关于安卓中常用控件的源码实现,也参考了不少文章,希望通过自己的总结加深一下记忆,我会从一个view的绘制流程去分析这个控件作为安卓中最常用的控件ListView,我觉很很有必要学习一下Google的大牛是如何实现这种比较复杂的控件,包括ListVIew的绘制流程,ListView的缓存机制,以及封装思想,对今后自己能早出更好的轮子有所帮助.注 : 所有的源码都是来自安卓5.1版本.本文原创 2016-12-20 20:26:46 · 20139 阅读 · 20 评论 -
安卓源码解析:Binder进程间通讯机制(2)-内核空间Binder驱动详解(基础数据结构)
Binder驱动存在于Linux kernel层,知识点如要包括基础数据结构(结构体),初始化过程,以及binder的打开open,映mmap,ioctl,管理内核缓冲区等操作.基础数据结构1.binder_workstruct binder_work { struct list_head entry; enum { ...原创 2018-08-22 12:27:02 · 627 阅读 · 0 评论 -
安卓源码解析:Binder进程间通讯机制(3)-内核空间Binder驱动详解(Binder驱动内存管理)
Binder初始化binder初始化从kernel/drivers/staging/android/binder.c的binder_init方法开始 https://www.androidos.net.cn/androidkernel/2.6.29/xref/drivers/staging/android/binder.cstatic int __init binder_init(voi...原创 2018-08-22 17:23:55 · 725 阅读 · 0 评论 -
安卓源码解析:Binder进程间通讯机制(5)-从ServiceManager的角度分析IPC原理
ServiceManager作为Binder进程间通讯的上下文管理者,负责进程间通讯组件的注册,以及提供组件的代理对象.ServiceManager本身也运行在一个独立的进程中,因此,Service组件和Client组件也需要进程间通讯调用他,通讯机制也是使用进程间通讯,所以ServiceManager也是一个特殊的Binder间进程通讯的Service组件.ServiceManager的启动...原创 2018-08-27 19:46:22 · 394 阅读 · 0 评论 -
安卓源码解析:Binder进程间通讯机制(1)-简况
什么是Binder? Android是基于Linux内核开发的操作系统,在Android中,每个新开启的应用程序App启动时都会通过ActivityManagerService调用Dalvik虚拟机fork出一个新的进程,这个进程与Linux进程一样,拥有独立地址空间中,代码在其独立的空间中单独运行,互不干涉. 那么,一个拥有独立空间的应用程序进程如何向其他进程发送消息呢?显然需要开辟...原创 2018-08-21 14:35:06 · 363 阅读 · 0 评论 -
安卓源码解析:Binder进程间通讯机制(4)-内核空间Binder驱动详解(Binder驱动库 C/C++接口简介)
Binder由Service组件和Client组件组成,两个组件通过Binder内核进行通信,Service组件继承BnInterface,包含BnXXXX开头的所有类,Service组件被称为本地对象对应Binder驱动实体对象,Client组件被称为代理对象对应BInder驱动中的引用对象.中的最终功能的实现是继承了BnXXXX的Service类,数据通过IPCThreadState和Proc...原创 2018-08-25 23:44:41 · 435 阅读 · 0 评论