Binder 多线程分析
1. Native 层多线程分析
1.1 客户端线程相关初始化
在 [Binder 程序示例之C...
Binder之Java 层服务过程分析
1. Framework 层的 JNI 函数封装
Framework 对常用的 JNI 函数做了封装:
n...
如何深入掌握 Android Binder
0. 为什么要深入学习 Binder
Binder 是整个 Android 的基石
所有的系统服...
Android Binder 驱动框架设计与分析
1. Binder 应用层框架
在应用层,Binder 是一个 CS 架构,涉及了 Client ...
Hal 层接口之直通模式
以上是通过 hwbinder 跨进程通信的方式,来实现的。对于效率较高的模块,我们还是...
Hal 层添加访问 linux 驱动的接口
写给应用开发的 Android Framework 教程是一个系列教程,目前已更新以下内容:
...
Kernel 下载与编译
1. 内核下载
下载适用于模拟器的内核
git clone https://aosp.tuna.tsinghu...
Linux 驱动开发入门
1. 编写一个简单的 Linux 内核模块
首先,我们需要理解什么是内核模块?简单来...
如何阅读 Android 系统源码 —— Java 篇
1. 工具篇 —— AIDEGen + Android Studio
AIDEGen,我叫它 “爱得跟”,大概是 An...
如何阅读 Android 系统源码 —— C/C++ 篇
1. 工具篇
对于 Android 系统源码中的 C/C++ 代码,CLion 是一个不错的工具。
...
Apk 预装详解
文章基于 Aosp Android10_r41 版本。
本文介绍如何在 Aosp 中预装已经编译好的...
添加开机自启动 Shell 脚本
很多时候,我们想在系统启动的时候干一些“私活”,这个时候,我们就可以添加开机自...
SeAndroid 使用极速上手
1. 基本概念
SEAndroid 是一种安全系统,相关的概念和术语对于初学者来说都相...
使用 Android Studio 开发系统 App
本文基于 AOSP Android10_r41 源码环境。
1. 编译 framework 模块
系统应用...
AOSP 之系统 App 源码添加
1. 如何新建一个系统 App 项目
使用 Android Studio 新建一个空项目 FirstSyst...
AOSP添加配置文件与删除已有模块
本文基于 AOSP Android10_r41 源码环境。
1. 添加配置文件
PRODUCT_COPY_FI...
Android Studio 导入 AOSP 源码
有了 AOSP 源码,接下来就是如何看了,可以直接文本看,可以用 Source Insight,...
AOSP添加 C/C++、Java 库
本文基于 AOSP Android10_r41 源码环境。
1.添加 C/C++ 程序库
1.1 源码方...
AOSP 篇之添加可执行程序
本文基于 AOSP Android10_r41 源码环境。
AOSP 添加的可执行程序,可以分为两...