![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android 源码分析
文章平均质量分 88
本栏目主要积累Android源码的分析以及灵感,将源码中优秀的设计与风格应用到平时的开发中,提升自身的能力
若之灵动
专注于移动应用研发
展开
-
Android RecyclerView 源码解析四级缓存的使用以及缓存流程
RecyclerView 缓存的是ViewHolderRecyclerView采用了四级缓存:缓存的分类是根据功能区分mAttachedScrap : 缓存可见的ViewHolder 用于 执行onLayout的时候 ArrayList 集合mCacheView:缓存将要隐藏ViewHolder 下次将要显示的ViewHolder 先从这个缓存里边获取 ArrayList 集合mViewChcheExtension:需要用户自己实现的缓存。原创 2022-10-09 15:00:25 · 1676 阅读 · 0 评论 -
Android 系统启动流程解析
Boot ROM:当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行Boot Loader:引导程序是在Android操作系统开始运行前的一个小程序。引导程序是运行的第一个程序,因此它是针对特定的主板与芯片的。引导程序分两个阶段执行:第一个阶段,检测外部的RAM以及加载对第二阶段有用的程序;第二阶段,引导程序设置网络、内存等等。这些对于运行内核是必要的,为了达到特殊的目标,引导程序可以根据配置参数或者输入数据设置内核。Kernel:Android内核与桌面原创 2022-09-14 21:46:27 · 1407 阅读 · 0 评论 -
Android Binder 进程间通信机制一
本篇对Binder通信机制的大体流程进行分析原创 2022-07-10 19:17:01 · 576 阅读 · 0 评论 -
Android 虚拟机与类加载机制
1.java虚拟机跟android虚拟机的区别从执行文件的角度来看:Android应用程序运行在Dalvik/ART虚拟机,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。Dalvik虚拟机是在Java虚拟机的基础上做了优化,区别是Android虚拟机执行的Dex文件,java虚拟机执行的是class文件。从指令集的角度来看:Dalvik虚拟机与Java虚拟机共享有差不多的特性,差别在于两者执行的指令集是不一样的,前者的指令集是基本寄存器的,而后者的指令集是基于堆栈的。2.基于栈原创 2022-05-23 15:32:03 · 256 阅读 · 0 评论 -
Android Handle 源码解析
1.对Handle的认识Handle机制是一个消息管理机制,Handle在Android的整个系统架构中处于核心的位置。所有的点击事件、滑动事件、页面跳转、服务启动等等,都是Handle消息机制驱动的,线程切换只是Handle的一个附属功能,所以做Android移动端研发必须对Handle机制有深入的理解。2.Handle消息机制的运转流程分析2.1消息的发送流程源码分析 //发送消息 public final boolean sendMessage(@NonNull Message m原创 2022-05-15 17:42:06 · 345 阅读 · 0 评论 -
Android ItemTouchHelper 源码分析
当需要进行Recyclerview进行Item交换位置或者侧滑删除等操作的时候,就需要用到ItemTouchHelper,它是实现Recyclerview 拖拽效果的帮助类。和和用户进行交互的主要环节就是:Callback类ItemTouchHelper源码分析阅读源码的目标:了解ItemTouchHelper的执行流程如何实现触摸跟随动画如何实现的触摸结束的Item切换动画效果带着问题去看才能有所收获,否则很容易迷失在源码里边。1.从attachToRecyclerView这个方法是入原创 2022-04-09 00:51:49 · 724 阅读 · 0 评论 -
Android 系统源码以及结构
1.系统源码目录结构art 全新的ART运行环境bionic:Goolgle开发系统C库,以BSD许可形式开源(c++)bootable系统引导相关代码build 存系统编译规则以及generic等基础开发包配置cts android兼容性测试套件标准dalvik Dalvik虚拟机developor 开发者目录development 与应用程序开发相关device 设备相关配置docs 参考文档目录external 开源模组相关sqite:轻量级关系型数据库SQLite(c+原创 2022-03-12 21:30:37 · 5246 阅读 · 0 评论 -
Android Studio 导入系统源码并对源码进行debug调试
Android9系统源码下载Android9源码编译之前阅读Android源码都是使用直接从百度云盘下载源码,并导入Source Insight进行阅读,这个工具也很强大,类的查找搜索都很方便,源码也不需要进行编译,但是,是不能进行类的关联以及进行调试。如果你已经将源码进行编译,得到了Android Studio项目配置文件,就可以直接导入Android Studio了。优势是,各种快捷键随心使用,而且可以进行系统源码调试。1.编译好的Android源码导入Android Studio在源码目录,原创 2022-03-30 11:45:38 · 6343 阅读 · 1 评论 -
ubuntu 20.04 编译Android9.0的android源码
Android AOSP资源的下载安装 jdk8sudo apt-get updatesudo apt-get install openjdk-8-jdk安装以下依赖包sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev原创 2022-01-09 20:30:19 · 3123 阅读 · 0 评论 -
Android AOSP资源的下载
AOSP通俗来讲就是一个Android系统源码项目,通过它可以定制 Android 操作系统,国内手机厂商都是在此基础上开发的定制系统。如果无法连接谷歌服务器获取AOSP源码,可以从 清华大学镜像站。repo工具repo是一个多个git仓库的代码管理工具安装gitsudo apt-get install git创建bin,并加入到PATH中mkdir ~/bin PATH=~/bin:$PATH安装curl库:sudo apt-get install curl下载repo并设置权原创 2022-01-09 20:14:56 · 2611 阅读 · 0 评论 -
使用 VirtualBox 安装 ubuntu20.04
使用VirtualBox 安装 ubuntu20.04,以及增强功能的添加原创 2022-01-08 15:22:07 · 1152 阅读 · 0 评论