Android框架源码解析
文章平均质量分 85
笔沫拾光
生有热烈,藏与俗常。
展开
-
Android框架源码阅读指南(博客专栏)
第一步:应用程序入口Android应用程序入口源码解析第二步:Android跨进程通信Binder通信机制原理解析Android跨进程通信方式(IPC)解析第三步:Activity的启动流程Activity启动流程源码分析(应用中)Activity启动流程源码分析(Launcher中)第四步:Activity的布局加载流程 Activity布局加载流程源码分析(...原创 2018-03-26 19:54:11 · 580 阅读 · 1 评论 -
Android应用程序入口源码解析
我们在写C、C++或java应用时,都会有一个main函数,但Android的main函数在哪里呢?偶记得从第一个HelloWorld应用开始,就知道,只要在AndroidManifest配置表中对Activity的intent-filter进行配置,action为android.intent.action.MAIN,category为android.intent.category.LAUNCHE...原创 2017-11-23 21:40:33 · 1813 阅读 · 0 评论 -
Binder通信机制原理解析
Binder是什么?Binder有啥用?作为一个应用开发者,如果我们开发的应用不涉及跨进程通信(IPC),我想我们也不会去接触Binder。但不知你有没有发现,近来的Andorid面试,都会问及Android跨进程通信方面的知识,这又是为什么呢?如果你喜欢看Android源码,你就会发现Binder无处不在,Android系统中很多服务都是通过Binder来进行跨进程通信,了解Binder,弄懂Bi原创 2017-12-14 20:40:17 · 2007 阅读 · 0 评论 -
Android跨进程通信方式(IPC)解析
在Android的圈子里,一直有一个声音,那就是:要学会看Android源码。在前期,android开发者比较缺乏阶段,似乎大家也没那么重视,但随着时间的发展,Android开发者早已供大于求,需要具备的技能也不在仅限于应用开发,还需要对Android运行机制原理有一个深度的了解,从而更好的为项目服务。所以,阅读Android源码,也就成为Android开发人员必须要做的事。在阅读Androi...原创 2017-12-15 18:02:29 · 1114 阅读 · 0 评论 -
Activity启动流程源码分析(Launcher中)
Activity的启动方式,严格来说有两种形式。第一种是在Android应用中启动,第二种是从Launcher中点击应用快捷图标启动。Android应用中Activity启动流程,在上篇博文Activity启动流程源码分析(应用中)已介绍过了,想了解的同学,可以看看一下。本篇博文将会介绍从Launcher中启动Activity具体流程。在开始介绍之前,我们需要了解一些概念,如:ActivityTh原创 2017-12-27 18:37:58 · 935 阅读 · 0 评论 -
Activity启动流程源码分析(应用中)
在移动应用开发中,Android四大组件之一Activity是最常用的。很多界面,如:闪屏、主界面、次功能界面等都需要Activity来作为主要的载体;界面与界面之间,即不同的Activity之间也都存在跳转切换,弄懂这其中跳转切换原理,将有助于我们更好的理解Android中Activity之间的交互逻辑,从而更好的开发Android应用。本篇博文将会重点介绍Android应用中的Activity的原创 2017-12-26 20:14:33 · 1253 阅读 · 0 评论 -
Activity布局加载流程源码分析(I)
最近阅读Android源码,似乎有点发现新大陆的感觉。以前经常接触Android知识,在阅读源码中,开始变得豁然开朗。前两天才写完两篇博文Activity启动流程源码分析(应用中)和Activity启动流程源码分析(Launcher中),今天,就急不可耐的想写写Activity布局加载流程,其实,也就是想趁热打铁,好好梳理梳理这部分知识。在开始梳理之前,我们需要了解一些概念,如:Window: 是原创 2017-12-29 19:19:01 · 1041 阅读 · 0 评论 -
Activity布局加载流程源码分析(II)
在Activity布局加载流程源码分析(I)文章中,已经详细分析了setContentView()加载流程,但对于装饰器DecorView怎么被加载到Window上的,怎么被绘制到Window上的,上篇博文没有说到,所以本篇博文将会接着上篇博文,继续分析Activity布局的加载流程。在开始分析之前,我们需要了解一些概念,如:Window: 是一个抽象类,表示是一个窗口。Android系统中的界面原创 2018-01-03 18:51:59 · 987 阅读 · 0 评论 -
Activity布局加载流程源码分析(III)
在Activity布局加载流程源码分析(I)、Activity布局加载流程源码分析(II)、DecorView绘制流程源码分析与View绘制三大流程源码分析等四篇文章中,已经很详细分析了Acitivity的布局加载过程及布局内容的绘制过程。但在Activity布局加载流程源码分析(I) 中,对于setContentView(“资源文件”)怎么转化View的,没有细说,本篇博文主要想分析这部分内容(...原创 2019-06-27 19:23:50 · 243 阅读 · 0 评论 -
DecorView绘制流程源码分析
通过Activiyt布局加载流程源码分析(I)和Activiyt布局加载流程源码分析(II)两篇博文,我们知道,首先,Activity的布局内容被加载进入装饰器DecorView中,然后WindowManager将DecorView添加到PhoneWindow中,也即Window中,最后ViewRootImpl对DecorView进行绘制操作,将其内容显示到手机上。但前两篇博文中,对于DecorV原创 2018-01-05 17:19:55 · 1504 阅读 · 0 评论 -
View绘制三大流程源码分析
在上篇博文DecorView绘制流程源码分析中,关于DecorView作为Activity、Window中的顶级View的绘制,我们已经作了一个详细的分析。但在具体说到View的绘制的时候,我们没有详细说明,所以本篇博文将会对View的绘制原理作深度分析。在开始分析之前,我们需要了解一些概念,如:View:是所有UI组件的基类,是Android平台中用户界面体现的基础单位。ViewGr原创 2018-01-08 19:38:55 · 779 阅读 · 0 评论 -
Android显示原理源码分析
在博文DecorView绘制流程源码分析中,我们对Android的显示原理简单的说了一下,但没有深入。在博文中我们只知道Choreographer(舞蹈指挥者)只是post了一个操作,但后面到底怎么执行的?按啥逻辑执行的?我们都不清楚,作为一个喜欢刨根问底的程序员,是必须要分析分析的。在开始分析之前,我们需要了解一些概念,如:ViewRootImpl:是View的绘制的辅助类,所有Vie...原创 2018-03-05 20:43:41 · 1830 阅读 · 0 评论 -
Android消息机制源码解析(Handler)
Android消息机制,其实也就是Handler机制,主要用于UI线程和子线程之间交互。众所周知,一般情况下,出于安全的考虑,所有与UI控件的操作都要放在主线程及UI线程,而一些耗时操作应当放在子线程中。当在子线程中完成耗时操作并要对UI控件进行操作时,就要用Handler来控制。另外,Android系统框架内,Activity生命周期的通知等功能也是通过消息机制来实现的。本篇博文主要是想通过Han原创 2017-11-21 15:29:58 · 1709 阅读 · 1 评论 -
Android屏幕适配原理解析
最近在玩Android看到一篇文章一种极低成本的Android屏幕适配方式。细细阅读发现,其适配原理主要是根据dp/sp与px的转换,而dp/sp与px的转换又与DisplayMetrics的density相关,所以可以通过改变DisplayMetrics的density,scaledDensity和densityDpi的值来适配不同分辨率机型。这其中是怎么做到的呢,本篇博文将会从源码的角度来分析...原创 2018-06-19 19:59:56 · 2994 阅读 · 4 评论 -
Android Event事件分发机制源码分析
昨天我们对View绘制三大流程源码已做了深入分析,所以关于View的绘制流程,我相信大家也有了一个大致的了解(如果不了解,请回看博文)。然而对于View,还有一个知识点,也是极其重要的,那就是View的事件分发机制(也即Android事件分发机制)。所以,今天我们就来谈谈View的事件分发机制,从源码的角度,跟随Touch事件流,走一遍流程。在开始分析之前,我们需要了解一些概念,如一次Touc原创 2018-01-09 19:07:46 · 597 阅读 · 1 评论 -
Android悬浮窗原理解析(Window)[源码]
悬浮窗,在大多数应用中还是很少见的,目前我们接触到的悬浮窗,差不多都是一些系统级的应用软件,例如:360安全卫士,腾讯手机管家等;在某些服务行业如金融,餐饮等,也会在应用中添加悬浮窗,例如:美团的偷红包,博闻金融快捷联系等。但两种悬浮窗还是有区别的:系统悬浮窗:所有界面都会展示,包括主屏、锁屏应用悬浮窗:只在应用Activity中展示。一、窗口Window在了解悬浮窗之前,首先我们需要认识一下原创 2017-10-17 19:47:59 · 6214 阅读 · 0 评论