Android运行时ART加载OAT文件的过程分析

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

Chromium为视频标签<video>全屏播放的过程分析

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

Android应用程序组件Content Provider的启动过程源代码分析

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

Chromium网页输入事件捕捉和手势检测过程分析

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

Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)的过程分析

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

Chromium网页Render Object Tree创建过程分析

在前面一文中,我们分析了网页DOM Tree的创建过程。网页DOM Tree创建完成之后,WebKit会根据它的内容创建一个Render Object Tree。Render Object Tree是和网页渲染有关的一...

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

Android应用程序UI硬件加速渲染技术简要介绍和学习计划

Android系统的流畅性一直被拿来与iOS比较,并且认为不如后者。这一方面与Android设备硬件质量参差不齐有关,另一方面也与Android系统的实现有关。例如在3.0前,Android应用...

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

Chromium网页Frame Tree创建过程分析

Chromium在加载一个网页之前,需要在Browser进程创建一个Frame Tree。Browser进程为网页创建了Frame Tree之后,再请求Render进程加载其内容。Frame Tree将网页抽象为Render...

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

Android视图SurfaceView的实现原理分析

在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可...

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

Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析

在Android系统中,针对移动设备内存空间有限的特点,提供了一种在进程间共享数据的机制:匿名共享内存,它能够辅助内存管理系统来有效地管理内存,它的实现原理我们在前面...

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

SEAndroid安全机制框架分析

我们知道,Android系统基于Linux实现。针对传统Linux系统,NSA开发了一套安全机制SELinux,用来加强安全性。然而,由于Android系统有着独特的用户空间运行时,因此SELinux...

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

Chromium扩展(Extension)的页面(Page)加载过程分析

Chromium的Extension Page其实就是网页,因此它们的加载过程与普通网页相同。常见的Extension Page有Background Page和Popup Page。其中,Background Page在浏览器窗口初始...

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

Chromium插件(Plugin)实例(Instance)创建过程分析

Chromium在解析网页时,每遇到一个标签,就会创建一个Plugin Instance。一般来说,Plugin Instance是在Plugin进程中创建和运行的。一个Plugin Module对应一个Plugin进程,...

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

Android应用程序组件Content Provider应用实例

上文简要介绍了Android应用程序组件Content Provider在应用程序间共享数据的原理,但是没有进一步研究它的实现。本文将实现两个应用程序,其中一个以Content Provider的形...

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

Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析

通过前面几篇文章的学习,我们知道了在Android系统中,无论是普通的Activity窗口,还是特殊的输入法窗口和壁纸窗口,它们都是被WindowManagerService服务组织在一个窗口堆...

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

Android编译系统简要介绍和学习计划

在Android源码环境中,我们开发好一个模块后,再写一个Android.mk文件,就可通过m/mm/mmm/make等命令进行编译。此外,通过make命令还可制作各种系统镜像文件,例如system.i...

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

Android应用程序UI硬件加速渲染的Display List渲染过程分析

在硬件加速渲染环境中,Android应用程序窗口的UI渲染是分两步进行的。第一步是构建Display List,发生在应用程序进程的Main Thread中;第二步是渲染Display List,发生在应...

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

Android应用程序发送广播(sendBroadcast)的过程分析

前面我们分析了Android应用程序注册广播接收器的过程,这个过程只完成了万里长征的第一步,接下来它还要等待ActivityManagerService将广播分发过来。ActivityManagerServic...

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

《Android系统源代码情景分析》连载回忆录:灵感之源

上个月,在花了一年半时间之后,写了55篇文章,分析完成了Chromium在Android上的实现,以及Android基于Chromium实现的WebView。学到了很多东西,不过也挺累的,平均不到两...

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

Chromium插件(Plugin)机制简要介绍和学习计划

在Chromium中,除了可以使用Extension增强浏览器功能,还可以使用Plugin。两者最大区别是前者用JS开发,后者用C/C++开发。这意味着Plugin以Native Code运行,在性能上要优...

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

Android运行时ART加载类和方法的过程分析

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

Android窗口管理服务WindowManagerService对壁纸窗口(Wallpaper Window)的管理分析

在Android系统中,壁纸窗口和输入法窗口一样,都是一种特殊类型的窗口,而且它们都是喜欢和一个普通的Activity窗口缠绵在一起。大家可以充分地想象这样的一个3W场景:输入...

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

Chromium硬件加速渲染的OpenGL命令执行过程分析

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

Android进程间通信(IPC)机制Binder简要介绍和学习计划

在Android系统中,每一个应用程序都是由一些Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进...

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

Android源代码编译命令m/mm/mmm/make分析

在前文中,我们分析了Android编译环境的初始化过程。Android编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了。当然,这要求每一个模块都有一个Android.m...

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

Android应用程序窗口(Activity)的测量(Measure)、布局(Layout)和绘制(Draw)过程分析

在前面一篇文章中,我们分析了Android应用程序窗口的绘图表面的创建过程。Android应用程序窗口的绘图表面在创建完成之后,我们就可以从上到下地绘制它里面的各个视图了,即...

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

Chromium多线程通信的Closure机制分析

为了充分利用CPU多核特性,Chromium在启动时会创建很多线程,来负责执行不同的操作。这样就涉及到了多线程通信问题。Chromium为每一个线程都创建了一个消息队列。当一个线...

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

Android应用程序窗口(Activity)的视图对象(View)的创建过程分析

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

Dalvik虚拟机简要介绍和学习计划

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

Android窗口管理服务WindowManagerService显示窗口动画的原理分析

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