Android内核学习笔记

0、android系统启动

《Android系统启动流程 -- bootloader》

《The Android boot process from power on》

《Android 启动过程介绍》

《Android培训班(86)内核运行之前的引导程序》 这是一系列文章

《Android 分区挂载》

 

1、init

《深入理解android 卷1》 第3章 深入理解init

《Android框架揭秘》第3章 init进程

《Android的init过程详解(一)》

《Android的init过程(二):初始化语言(init.rc)解析》

《Android系统初始化开始位置及流程分析》

《Android的初始化语言脚本init.rc解析》

《Android Init进程源码分析》 init.rc解析过程描述详细,图文并茂。

《Android Init进程分析》

《Android情景分析之详解init进程(以启动zygote为例)》

 

2、binder

《Android框架揭秘》第六章 -- 第十章 以生动的形式讲述了binder,其中也大量的插图,但是不够详细。值得参考。

《Android系统源代码情景分析》第五章 描叙详细,但是不够生动。值得参考。第六章的6.5小结描述BINDER_TYPE_FD。

《Android_IPC机制与Binder框架》 高焕堂著,形象的描述了从Java层到C++层的binder,偏重应用的实现。

《Android Binder通信》

《ServiceManager 进程启动源码分析》

《图解Android - Binder 和 Service》 描述别树一帜,形象生动,强烈推荐。

《Android Binder线程》 重点描述了binder线程的创建

《本地Binder框架通信原理》

《Binder 机制详解—Binder 系统架构》

《浅析android中getStrongProxyForHandle函数动态申请索引对应的内存空间》

《红茶一杯话Binder(ServiceManager篇)》

 

3、Ashmem(Anonymous Shared Memory) 匿名内存共享

《Android系统源代码情景分析》第六章 描叙详细。

《Android技术内幕》第二章 2.3.2小结 描述的比较简单,但是对于《Android系统源代码情景分析》第六章的描述可以起到补充的作用。

《3.2.1 匿名共享内存(1)》 《Android安全机制解析与应用实践》第3章

《3.2.1 匿名共享内存(2)》

《3.2.1 匿名共享内存(3)》

《Android Ashmem相关介绍》

 

4、activity

《Android系统源代码情景分析》第七章 activity启动过程描叙详细。

《Android的设计与实现》 package manager篇(第8~9章)主要讲解了package manager的机制与实现,以及apk的安装方法与过程;activity manager篇(第10~12章)深入阐述了activitymanagerservice的运行机制、应用程序和进程的启动流程,以及进程管理机制。

《Android内核剖析》第十章 AMS内部原理

《解开Android应用程序组件Activity的”singleTask”之谜》

《Activity启动分析》

《android Application Component研究之Activity(一)》比较详细的描述了“task管理”,即startActivityUncheckedLocked函数(主要是处理activity的launchMode和intent的flag)

《android Application Component研究之Activity(二)》

《android:clearTaskOnLaunch的用法》

《Android 笔记之 clearTaskOnLaunch&finishOnTaskLaunch》

《FLAG_ACTIVITY_RESET_TASK_IF_NEEDED》

《android:clearTaskOnLaunch》

《Android开发之旅:活动与任务》

《Activity启动创建 (AcitivtyManageService,ActivityThread,Activity)》

《深入理解Activity启动流程》

 

5、service

《Android系统源代码情景分析》第八章 service启动过程描叙详细。

《android Application Component研究之Service》 有Forground属性的描述,有unbind过程的分析。

《Android服务之Service(其一)》 有生命周期图,有例子。

《Service》google官方描述。

《Android 中的 Service 全面总结》

《android如何保证service不被杀死》

 

6、BroadcastReceiver

《Android系统源代码情景分析》第九章 broadcast receiver启动过程描叙详细

《android Application Component研究之BroadcastReceiver》有broadcast发送和分发过程的描述,有Protected Broadcast的讲解,有broadcast超时的过程分析。

 

7、ContentProvider

《android Application Component研究之ContentProvider》

《存储文件的ContentProvider》

 

8、Mashup设计思想

《Android开发精要》3.1 基于Mashup的应用设计

 

9、属性系统(property system)

《android property system 》

《属性系统代码分析》

《Android平台上使用属性系统(property system)》

《Android Property System | Android属性系统》

《深入理解android 卷1》 第3章 3.2.4 属性系统

《Android框架揭秘》第3章 init进程 3.6 属性服务

《Android 系统属性SystemProperty分析》

《Android情景分析之属性服务》

《SEAndroid安全机制对Android属性访问的保护分析》

《Android 的系统属性(SystemProperties)分析》

《Android 属性系统设计分析》 有__libc_prenit的分析

 

10、创建设备节点文件uevent

《Android框架揭秘》第3章 init进程 3.4创建设备节点文件

《基于android2.3.5系统:开天辟地Android启动机制[二]》

《基于android2.3.5系统:开天辟地Android启动机制[三]》

《android之init进程-uevent》

《为Android应用程序读取/dev下设备而提权》

《android ueventd 本地native部分源码分析》

《Android设备节点的动态管理》

《android提权漏洞CVE-2010-EASY修复》

《Android uevent进程源码分析》

 

11、zygote和system_server

 

《深入理解android 卷1》 第4章 深入理解zygote

《Android框架揭秘》第5章 Zygote

《Android系统源代码情景分析》第11章 Zygote和System进程的启动过程

《Android内核剖析》第15章 15.6 Framework资源

《Zygote进程启动过程源代码分析》

《SystemServer进程启动过程源码分析》

《图解Android - Zygote, System Server 启动分析》

 

12、进程管理和OOM

《深入理解Android 卷2》 第6章 6.6 AMS中的进程管理 从部分代码角度讲解,不是很详细;

《Android开发精要》第5章 组件生命周期解析 5.2 应用进程托管 -- 从上层角度描述为何要进程托管及托管的算法

《Android内核剖析》第十章 AMS内部原理 10.2 内存管理

《Android 操作系统的内存回收机制》

《android 2.3 应用管理机制分析》

《Android内存管理机制详解》

《Android内存阀值修改--内存回收机制配置》

《Linux 2.6 中的页面回收与反向映射》

《Android内存管理原理》

《Android Low memory killer》

《Android 系统内存分析》

《Android开发:性能最佳实践-管理应用内存》

《Android代码内存优化建议-OnTrimMemory优化》

 

13、Android编译系统

《Android内核剖析》 第18章 Android编译系统
《Android核心原理与系统应用高效开发》 第2章 编译结构和各种构建

《Android编译系统参考手册》

 

14、WMS

《Android 4.4(KitKat)窗口管理子系统 - 体系框架》

 

15、电池

《android 电池(一):锂电池基本原理篇》

《android 电池(二):android关机充电流程、充电画面显示》

《android 电池(三):android电池系统》

《android电池(四):电池 电量计(MAX17040)驱动分析篇》

《android电池(五):电池 充电IC(PM2301)驱动分析篇》

《android 2.3 电量管理》

 

16、input系统

《android 物理按键》

《InputMonitor笔记》

《Android之input系统流程》

《Android之Input子系统事件分发流程》

《Android Input Framework(一)》

《Android4.0 input事件输入流程详解(中间层到应用层)》

《Android 4.2 Input 流程分析》

《安卓4.1: input系统从frameworks到kernel 》

《Android输入输出机制之来龙去脉之前生后世》

《android发现之旅之输入事件如何在应用端传递》

 

17、内存泄露

《Android中native进程内存泄露的调试技巧》

 

18、intent

《Android开发之旅: Intents和Intent Filters(理论部分)》

 

20、Dalvik

《 Dalvik虚拟机进程和线程的创建过程分析》

《Android开发工具ADB教程之三:Dalvik虚拟机之jdwp线程》

《Android培训班(54)虚拟机的历史》 这是一个系列文章

《Android 信号处理面面观 之 trace 文件含义》

《Java中System.loadLibrary() 的执行过程》

 

21、View

《android文本布局引擎》

《Android Text Layout 框架》

《ViewGroup源码分析》

《Android TextView显示中文不对齐问题》

《Android 属性动画 源码解析 深入了解其内部实现》

《Android应用程序UI硬件加速渲染的动画执行过程分析》

 

22、AMS

《ActivityManagerService分析一:AMS的启动》

 

23、资源

《framework资源文件》

《如何在Android中写和使用一个自定义的java库》

《如何为Android系统添加一个新的资源包》

《浅谈Android的资源编译过程》

《在android中增加公用资源包(类似framework-res.apk)》

《Android APK应用安装原理(1)-解析AndroidManifest原理-PackageParser.parserPackage》

《Android 资源类型 整理》

《res与res-auto的区别》

《Android中自定义属性的两种方法》

《Android应用资源---样式资源类型(Style)》

《Android应用资源---其他资源类型(More Types)(一)》

《Android应用资源---其他资源类型(More Types)(二)》

《Android应用资源---其他资源类型(More Types)(三)》

《Android xml资源文件中@、@android:type、@*、?、@+含义和区别》

《android三个特殊的资源目录 /res/xml /res/raw 和 /assets》

《Android字符串进阶之三:字体属性及测量(FontMetrics)》

《Styling Views on Android (Without Going Crazy)》

《Android学习系列(39)--Android主题和样式之系统篇(上)》

《Android学习系列(40)--Android主题和样式之系统篇(下)》

《Android系统自带样式(android:theme)》

《浅谈Android的资源编译过程》

 

24、android:persistent属性

《android persistent属性研究》

《Android: HowTo设置app不被系统kill掉》

《android里面的进程回收机制》

《说说Android应用的persistent属性》

 

25、Handler、Looper和MessageQueue

《Handler Looper MessageQueue 详解》

 

26、debuggerd

《Android debuggerd 源码分析》

 

27、log

《解读Android LOG机制的实现》

《Android架构分析之LOG模块》

《Android系统开发中LOG的输出与使用》

《打开Android C文件中的LOG》

《Android日志系统驱动程序Logger源代码分析》

《Android应用程序框架层和系统运行库层日志系统源代码分析》

《Android日志系统Logcat源代码简要分析》

《android log 和logcat 分析(一)》

《android log你不知道的小技巧》

《android中BuildConfig.DEBUG的使用》

《android 代码优化:关闭输出日志》

 

28、DropBox

《介绍 Android DropBoxManager Service》

 

29、AppOpsManager

《Android Kitkat的AppOps》

《Android 4.3 隐藏功能 App Ops 分析》

《AppOpsManager 一次简单应用》

 

30、ADB

《android adb adbd analyse》

《android2.3-adb源码分析》

《Android系统root破解原理分析》

 

31、BackupManagerService

《第十五篇 Android 的Backup服务管理机制与架构分析》

《BackupManager的使用与解析》

《关于BackupManagerService》

 

32、UserManager 多用户机制

《Android4.2多用户模式的结构与实现》

 

33、DisplayManager 多屏幕机制

《DisplayContent、StackBox、TaskStack笔记》

《android 扩展屏幕 多屏显示》

《第十七篇 --ANDROID DisplayManager 服务解析一》

《android wifi display》

《Android WifiDisplay分析一:相关Service的启动》

 

34、Vold

《Android vold 工作流程分析》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker系列第02部分:Docker安装与启动

1 安装环境说明 这里将Docker安装到CentOS上。注意:这里建议安装在CentOS7.x以上的版本,在CentOS6.x的版本中,安装前需要安装其他很多的环境而且Docker很多补丁不支持更新。 2 Docker安装与使用 2.0 windows安装 1 windows安装&#xff08…

ORA-00918:未明确定义列解决

ORA-00918:未明确定义列解决 问题:ORA-00918:未明确定义列 eg. select name, name from a left join b on a.flag b.flag 原因:列名重复了(select后面跟了两个 name) 解决办法: 每个列名,都加上其所在表的表名作为前缀 e…

Docker系列第03部分:列出镜像+搜索镜像+拉取镜像+删除镜像

1.什么是Docker镜像 Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一…

RK方案 manifest.xml编译问题,并解决方案

编译出错 Install: out/target/product/rk3288/system/priv-app/TeleService/TeleService.apk Install: out/target/product/rk3288/system/priv-app/Telecom/Telecom.apk Install: out/target/product/rk3288/system/priv-app/TelephonyProvider/TelephonyProvider.apk …

c语言sort函数_C语言的那些经典程序 第八期

戳“在看”一起来充电吧!C语言的那些经典程序 第八期上期带大家欣赏的指针经典程序,感觉如何?这期我们准备了几个新指针的内容,灵活运用指针可以大大减少程序的复杂度,接下来就让小C来说说这三个有关指针应用的经典程序吧&#xf…

BJFU 质数相关

1 /*2 BJFU 质数相关3 http://101.200.220.237/contest/19/problem/116/4 二分图5 按质因数奇偶性建立二分图6 *7 *8 */9 #include <cstdio>10 #include <algorithm>11 #include <cstring>12 #include <cmath>13 #include <vector>14 #i…

Docker系列第04部分:查看容器+创建容器+启动容器+文件挂载+删除容器

1 容器的创建和启动 1.1 虚拟机的生命周期 1.2 容器的生命周期 2、容器操作 2.1 查看容器 查看正在运行容器&#xff1a; docker ps 查看所有的容器&#xff08;启动过的历史容器&#xff09; docker ps –a 查看最后一次运行的容器&#xff1a; docker ps -l 查看停止的容…

嵌入式软件面试(基础题)总结,不断更新

C/C/各种基础啊 1. static有什么用途&#xff1f;&#xff08;请至少说明两种&#xff09; 1.限制变量的作用域 2.设置变量的存储域 2. 引用与指针有什么区别&#xff1f; 1) 引用必须被初始化&#xff0c;指针不必。 2) 引用初始化以后不能被改变&#xff0c;指针可以改…

java程序设计及实践实践代码_杭+新闻:姚争为老师把程序设计讲“活”了,满是代码的枯燥课程被学生“秒杀”...

通讯员 陈鑫 杨鹏飞记者 方秀芬作为专业选修课&#xff0c;Java程序设计和Web程序设计&#xff0c;这两门满是代码的课程&#xff0c;看似很枯燥&#xff0c;但在杭师大信息科学与工程学院却爆红&#xff0c;每学期都遭“秒杀”&#xff0c;以前线下课&#xff0c;提前20分钟准…

Docker系列第05部分:实战部署应用全流程

1 MySQL部署 1.1拉取MySQL镜像 docker pull mysql 查看镜像&#xff1a; 1.2创建MySQL容器 docker run -di --namepinyougou_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD123456 mysql:5.7 # -p 代表端口映射&#xff0c;格式为 宿主机映射端口:容器运行端口 # -e 代表添加…

SQL-ALTER-change和modify区别

ALTER 对于列的应用&#xff1a;1.更改列名格式&#xff1a;CHANGE old_col_name new_col_name column_definition保留old和new列名列名&#xff1a;a ---->b 列类型ALTER TABLE t1 CHANGE a b INTEGER;2.更改列类型&#xff0c;不改列名保留old和new的列名&#xff0c;即使…

Vim安装插件在命令行下看代码

这几天我又想抛弃source insight 了&#xff0c;主要是太慢了 安装如下 VIM万能插件 或者使用 sudo apt-get installexuberant-ctags 安装 我主要是使用函数跳转功能&#xff0c;需要记住几个指令 1、生成tags用来实现函数跳转 这样会生成一个tags文件&#xff0c;作为跳…

Docker系列第06部分:备份与迁移+dockerfile

1 备份与迁移 1.1 容器保存为镜像 docker commit pinyougou_nginx mynginx# pinyougou_nginx是容器名称 # mynginx是新的镜像名称 # 此镜像的内容就是你当前容器的内容&#xff0c;接下来你可以用此镜像再次运行新的容器1.2 镜像备份 docker save -o mynginx.tar mynginx #…

流浪地球开机动画包zip_影视日报|合家欢动画电影quot;许愿神龙quot;定档1.15;流浪地球加长版定档11.26...

1、合家欢动画电影"许愿神龙"定档1.15动画电影《许愿神龙》正式定档2021年1月15日&#xff0c;并发布定档海报。2、白客等万万兄弟助力易小星"沐浴之王"由易小星执导&#xff0c;彭昱畅、乔杉领衔主演&#xff0c;卜冠今、苇青主演&#xff0c;金世佳友情出…

Git 分布式版本控制工具01:Git介绍+下载+安装

1. 前言 1.1 什么是Git Git 是一个分布式版本控制工具&#xff0c;通过Git 仓库来存储和管理源代码文件文件。 在IDEA开发工具中可以集成Git&#xff1a; 集成后在IDEA中可以看到Git相关图标&#xff1a; 可以通过启动两个IDEA窗口模拟两个开发人员来展示Git的使用&#xf…

无法解析的外部符号,无法解析的外部命令

1.这个是因为有相关的lib包没有被引用进去 解决办法&#xff1a; 1. 2. 转载于:https://www.cnblogs.com/hcfan/p/6638980.html

Android Adb 源码分析

扭起屁股得意洋洋 最近&#xff0c;我负责的项目因为临近量产&#xff0c;把之前的userdebug版本关闭&#xff0c;转成了user版本&#xff0c;增加selinux的权限&#xff0c;大家都洋溢在项目准备量产的兴奋和喜悦之中不能自拔 谁知&#xff0c;好景不长&#xff0c;user版本…

kvm虚拟化_KVM 虚拟化环境搭建 - WebVirtMgr

前文《KVM 虚拟化环境搭建 - ProxmoxVE》已经给大家介绍了开箱即用的 PVE 系统&#xff0c;PVE 是方便&#xff0c;但还是有几点问题&#xff1a;第一&#xff1a;始终是商用软件&#xff0c;虽然可以免费用&#xff0c;但未来版本还免费么&#xff1f;商用的法律风险呢&#x…

Git 分布式版本控制工具02:Git代码托管服务列表与使用

1常用的Git代码托管服务 Git中存在两种类型的仓库&#xff0c;即本地仓库和远程仓库。 Git远程仓库中比较常用的有GitHub、码云、GitLab等。 名称网址说明gitHubGitHub: Where the world builds software GitHub一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持…

Android系统root破解原理分析

上一篇文章 Android adb 源码分析 理论基础 root破解过程的终极目标是替换掉系统中的su程序。但是要想替换掉系统中su程序本身就是需要root权限的&#xff0c;怎样在root破解过程中获得root权限&#xff0c;成为我们研究的重点了。下面我们先清点一下我们需要破解系统情况&a…