深入理解Android源码
自上而下,由浅入深,慢慢品味Android的那一抹臭长
乌啼夜的酒痕
Android车载系统攻城狮
展开
-
深入理解AMS之应用进程创建
在安卓系统中诸多应用程序都会在桌面应用Launcher中创建一个shortcut启动图标,当我们点击这个图标就可以进入其所指示的应用程序首页,这个过程是通过调用ActivityManagerService(以下简称AMS)的方法startActivity()完成的。当调用startActivity()后AMS会首先判断当前进程是否已经创建,如果没有创建则会进入应用进程的创建流程。原创 2019-08-24 17:15:52 · 1290 阅读 · 0 评论 -
深入理解AMS之Activity管理
Activity在应用端由ActivityClientRecord负责描述其生命周期的过程与状态,但最终这些过程与状态是由ActivityManagerService(以下简称AMS)来管理和控制的。类似于应用进程在AMS中使用ProcessRecord描述,安卓四大组件在AMS中也拥有对应的对象来描述。原创 2019-08-10 14:51:53 · 949 阅读 · 0 评论 -
深入理解AMS之启动过程
ActivityManagerService(以下简称AMS)是系统服务的一部分,它在SystemServer中被启动,主要负责四大组件状态管理与查询、进程创建与状态管理、Task切换与调度、cpu或mem等辅助状态监听等工作。它是系统核心服务,也是日常我们使用得最频繁的系统服务之一。原创 2019-07-30 22:19:21 · 1550 阅读 · 0 评论 -
深入理解AMS之Activity
Activity是我们开发中使用的最多、最频繁的程序组件。通过在AndroidManifest.xml中构建一个Activity标签,我们就可以通过startActivity方法将其以一个窗口页面的形式呈现在屏幕上,用户可以通过这个窗口进行诸如发短信、聊天、打电话等操作。原创 2019-07-06 16:33:14 · 1005 阅读 · 0 评论 -
Android Init Language语法概述
init.rc概述 init.rc是Androrid的可配置初始化文件,其由init负责解析,在定制开发下可在init.rc中添加指令来改变系统启动过程。此配置文件使用的Android Init Language是一种类C风格的程序语言,主要由Actions、Commands、Services、Options四大板块的语句组成,一般一条语句占据一行,单词之间由空格分隔。 AIL语言的注释一...原创 2018-11-01 18:07:29 · 365 阅读 · 0 评论 -
android5.0.1源码编译
1.git安装sudo apt-get install gitgit config –global user.email “android_wuhongyun@163.com”git config –global user.name “wuhongyun”2.repo安装mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/g...原创 2018-07-15 18:11:22 · 839 阅读 · 1 评论 -
深入理解Binder机制
Binder概述 Binder其前身是由Be Inc.和Palm,Inc.开发的OpenBinder,而后Google将其带入Android系统作为主要的跨进程通信技术使用。Binder之所以能被Google青睐跟其优越的传输性能及安全性能是分不开的。在传输性能上,传统的linux系统IPC如Socket、管道、消息队列等在跨进程传输时数据会被拷贝2次,而Binder则利用mmap只需一次拷贝...原创 2019-05-03 12:53:23 · 2339 阅读 · 3 评论 -
深入理解Handler机制
消息机制概述 在Android系统主要的通信机制有binder机制和handler消息处理机制,前者多用于进程间的通信,后者则多用于进程内线程间的通信。其实,android进程就是基于消息驱动的。 一般而言,消息处理机制都应含以下几个要素:消息对象消息的投送者目标消息队列消息的处理(轮询器) 在Android系统中上述要素大致对应为Message、Handler、Messa...原创 2018-11-26 10:03:22 · 530 阅读 · 1 评论 -
深入理解AMS之startActivity
Activity作为作为安卓中直接与用户进行交互的页面,我们可以点击桌面Launcher的shortcut图标来进入应用程序主页面,在应用程序内也可以启动其他应用内或其他应用的Activity,虽然场景不同,但其启动方式却大同小异。原创 2019-09-14 22:02:29 · 1100 阅读 · 1 评论