Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析

5年前 8693次阅读 阅读全文 »

Android应用程序与SurfaceFlinger服务的关系概述和学习计划

5年前 7711次阅读 阅读全文 »

ART运行时Java堆创建过程分析

5年前 6622次阅读 阅读全文 »

Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析

5年前 8198次阅读 阅读全文 »

从NDK在非Root手机上的调试原理探讨Android的安全机制

最近都在忙着研究Android的安全攻防技术,好长一段时间没有写博客了,准备回归老本行中--Read the funcking android source code。这两天在看NDK文档的时候,看到一句话"Na...

5年前 9157次阅读 阅读全文 »

Dalvik虚拟机Java堆创建过程分析

5年前 6595次阅读 阅读全文 »

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

5年前 6665次阅读 阅读全文 »

ART运行时Compacting GC堆创建过程分析

5年前 7588次阅读 阅读全文 »

Dalvik虚拟机JNI方法的注册过程分析

在前面一文中,我们分析了Dalvik虚拟机的运行过程。从中可以知道,Dalvik虚拟机在调用一个成员函数的时候,如果发现该成员函数是一个JNI方法,那么就会直接跳到它的地址去...

5年前 6473次阅读 阅读全文 »

Dalvik虚拟机为新创建对象分配内存的过程分析

在前面一文中,我们分析了Dalvik虚拟机创建Java堆的过程。有了Java堆之后,Dalvik虚拟机就可以在上面为对象分配内存了。在Java堆为对象分配内存需要解决内存碎片和内存不足...

5年前 3003次阅读 阅读全文 »

Android应用程序组件Content Provider的共享数据更新通知机制分析

在Android系统中,应用程序组件Content Provider为不同的应用程序实现数据共享提供了基础设施,它主要通过Binder进程间通信机制和匿名共享内存机制来实现的。关于数据共享...

5年前 7717次阅读 阅读全文 »

Android窗口管理服务WindowManagerService的简要介绍和学习计划

在前一个系列文章中,我们从个体的角度来分析了Android应用程序窗口的实现框架。事实上,如果我们从整体的角度来看,Android应用程序窗口的实现要更复杂,因为它们的类型和...

5年前 7226次阅读 阅读全文 »

Chromium硬件加速渲染的OpenGL上下文调度过程分析

Chromium的每一个WebGL端、Render端和Browser端实例在GPU进程中都有一个OpenGL上下文。这些OpenGL上下文运行在相同线程中,因此同一时刻只有一个OpenGL上下文处于运行状态...

5年前 2785次阅读 阅读全文 »

Chromium硬件加速渲染的OpenGL上下文创建过程分析

在Chromium中,WebGL端、Render端和Browser端的GPU命令都是通过GPU进程中的一个GPU线程来执行的。这三端的GPU命令是独立执行的,不能相互发生影响。为了达到这个目的,GPU...

5年前 2596次阅读 阅读全文 »

Android系统匿名共享内存Ashmem(Anonymous Shared Memory)在进程间共享的原理分析

在前面一篇文章Android系统匿名共享内存Ashmem(Anonymous Shared Memory)驱动程序源代码分析中,我们系统地介绍了Android系统匿名共享内存的实现原理,其中着重介绍了它...

5年前 4294次阅读 阅读全文 »

Chromium网页渲染调度器(Scheduler)实现分析

在采用线程化渲染方式渲染网页时,Chromium依赖一个调度器协调Main线程和Compositor线程的执行,同时也通过这个调度器决定它们什么时候该执行什么操作。调度器将Main线程和...

5年前 2376次阅读 阅读全文 »

ART运行时Mark-Compact( MC)GC执行过程分析

除了Semi-Space(SS)GC和Generational Semi-Space(GSS)GC,ART运行时还引入了第三种Compacting GC:Mark-Compact(MC)GC。这三种GC虽然都是Compacting GC,不过它们的...

5年前 3963次阅读 阅读全文 »

Chromium网页加载过程简要介绍和学习计划

5年前 2049次阅读 阅读全文 »

解开Android应用程序组件Activity的"singleTask"之谜

在Android应用程序中,可以配置Activity以四种方式来启动,其中最令人迷惑的就是"singleTask"这种方式了,官方文档称以这种方式启动的Activity总是属于一个任务的根Activit...

5年前 2734次阅读 阅读全文 »

Chromium网页Graphics Layer Tree创建过程分析

在前面一文中,我们分析了网页Render Layer Tree的创建过程。在创建Render Layer的同时,WebKit还会为其创建Graphics Layer。这些Graphics Layer形成一个Graphics Layer Tr...

5年前 2606次阅读 阅读全文 »

Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析

在前文中,我们简要介绍了Android应用程序窗口的框架。Android应用程序窗口在运行的过程中,需要访问一些特定的资源或者类。这些特定的资源或者类构成了Android应用程序的...

5年前 2927次阅读 阅读全文 »

Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

在前面几篇文章中,我们详细介绍了Android系统进程间通信机制Binder的原理,并且深入分析了系统提供的Binder运行库和驱动程序的源代码。细心的读者会发现,这几篇文章分析...

5年前 3096次阅读 阅读全文 »

Chromium分发输入事件给WebKit处理的过程分析

5年前 2604次阅读 阅读全文 »

Chromium扩展(Extension)的Content Script加载过程分析

Chromium的Extension由Page和Content Script组成。Page有UI和JS,它们加载在自己的Extension Process中渲染和执行。Content Script只有JS,这些JS是注入在宿主网页中执行的...

5年前 3126次阅读 阅读全文 »

Android Chromium WebView学习启动篇

5年前 2685次阅读 阅读全文 »

Android窗口管理服务WindowManagerService对输入法窗口(Input Method Window)的管理分析

5年前 2866次阅读 阅读全文 »

Chromium扩展(Extension)机制简要介绍和学习计划

5年前 1989次阅读 阅读全文 »

SEAndroid安全机制中的文件安全上下文关联分析

5年前 3057次阅读 阅读全文 »

Android应用程序绑定服务(bindService)的过程源代码分析

5年前 2600次阅读 阅读全文 »

如何单独编译Android源代码中的模块

第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了。以后如果我们修改了A...

5年前 3126次阅读 阅读全文 »