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 篇之添加 Product
1. 什么是 Product
在 App 的开发中,我们要去打渠道包,根据不同应用市场的要...
AOSP 篇之添加可执行程序
本文基于 AOSP Android10_r41 源码环境。
AOSP 添加的可执行程序,可以分为两...
AOSP 极速上手
今天分享的内容是怎么快速上手 AOSP,主要分为以下几个步骤:
硬件要求
虚...
JNI 编程上手指南之多线程
核心要点
JNI 环境下,进行多线程编程,有以下两点是需明确的:
JNIEnv 是...
JNI 编程上手指南之 JNI 调用性能优化
为什么要做性能优化
Java 程序中,调用一个 Native 方法相比调用一个 Java 方...
JNI 编程上手指南之从内存角度再看引用类型
1. Java 程序使用的内存
Java 程序使用的内存从逻辑上可以分为两个部分:
...
JNI 编程上手指南之异常处理
JNI 程序中的异常分为以下几种:
Native 程序原生异常,一般通过函数返回值和...
JNI 编程上手指南之 Native 访问 Java
本文接着介绍如何在 C/C++ 中访问 Java,主要从以下几个方面来讲述:
访问 Ja...
JNI 编程上手指南之数组访问
1. 引子
JNI 中的数组分为基本类型数组和对象数组,它们的处理方式是不一样的...