Android
官网
- Android Open Source Project
- 搭建构建环境
ubuntu18及以上:sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig rsync
- 代码库
- 源码下载
- Android 操作系统文档
- Gerrit:
https://android-review.googlesource.com/q/status:merged - Issue Tracer:
https://issuetracker.google.com/issues
- 搭建构建环境
- Android Code Search
- Android开发者
- Android Studio开发环境
- 入门
- 核心主题
- Automotive
- 模拟器
- Android Developers YOUTUBE
- 视频教程
- 命令行工具
- 所有的Android版本
其他专栏
代码在线阅读
镜像源
Android构建系统
- 编译和构建文档
- 可以使用
m soong_docs
生成这些html格式的文档
- 可以使用
- Soong
- Bazel
- AOSP Build 背后涉及的相关知识汇总
- AOSP Soong 创建过程详解
- Bazel 和 AOSP 介绍
APEX
技术博客
- 大佬博客
- 千里马学框架
- 林栩link
- Android车载开发教程
- Android车载操作系统开发揭秘
- Framework系统全解析
- AOSP on RISC-V 工作组
- 深度解析Android稳定性优化
- Android开发太难了,Native Crash的一切
- 基于 Core 文件的 Android 调试与分析套件
- 如何理解Native Crash问题
- 浅谈安卓离线内存分析项目
- 基于安卓墓碑文件制作 FakeCore 原理
eBPF
uftrace
Cuttlefish
- 搭建 Cuttlefish 运行环境
- 基于 Cuttlefish 调试 Android 内核
- Kleaf - Building Android Kernels with Bazel
- 编译cuttlefish内核遇到的问题
- 使用cuttlefish学习android
Crosvm
调试工具
adb
性能
- https://www.androidperformance.com/
- 评估性能
- 应用性能指南
- Android Studio 分析应用性能
- 性能可观测性工具在安卓系统性能优化中的应用&使用CoreSight技术调试
- eBPF/BCC - A better low-level instrumentation tool on Android
- BCC (BPF compiler collection) for Android
- Android binder 性能测试
- 使用 eBPF 扩展内核
- 启动时间优化
atrace
Perfetto
- 主页:
- 文档:https://perfetto.dev/docs/
- 系统跟踪
- 高级性能分析工具:Perfetto 跟踪
- Perfetto分析进阶
- Systrace 和 Perfetto的使用
- 快速部署你自己的 Perfetto 服务器
- Perfetto中SQL语句
- pefetto原理简析
- Perfetto工具集之traced_perf
- 性能分析工具 之 Perfetto基本使用
- systrace/perfetto中需要actrace打tag相关方法
- Perfetto —— 靠谱的trace利器
- 使用Perfetto查看内存与调用栈之间的泄露
- 关于使用perfetto(systrace)对卡顿进行分析-实战分析
- 命令
adb shell perfetto --out /data/misc/perfetto-traces/perf.perfetto-trace --buffer 100mb --time 10s sched freq idle ss am wm pm gfx view binder_driver hal dalvik camera input res memory bionic
Simpleperf
- Simpleperf 理论与实践指南
- https://android.googlesource.com/platform/system/extras/+/master/simpleperf/doc/README.md
Systrace
Ftrace
uftrace
strace
启动时间
卡顿
资源消耗
内存
卡顿黑屏
关键技术
运行时
Binder
- Binder Trace
- https://github.com/weidongshan/APP_0003_Binder_C_App
- Android Bander设计与实现 - 设计篇
- Android Binder 进程间通讯机制梳理
- Android10.0 Binder通信原理(一)Binder、HwBinder、VndBinder概要
内存
调度
存储
输入子系统
兼容性
日志
功耗
安全
hook
SELinux
- Android SELinux 权限问题处理
- Android 使用 audit2allow 工具添加SELinux权限
- 简单selinux部分的解决
- SEAndriod
- The SELinux Notebook
- 罗升阳
Android 权限
启动时验证
MTE
地址排错
HIDL/AIDL
显示
SurfaceFlinger
调试
- scrcpy
- 调试 Android 平台原生代码
- LLDB Debugger:gdb的替代者
- bugreport
- tombstone
- xx
杂项
- Compiling an Android kernel with Clang
- adeb
- eadb
- aosp-build-docker-images
- elf-dump-fix
- rwProcMem33
- Linux ARM64内核硬件进程内存读写驱动、硬件断点调试驱动。硬件级读写Linux进程内存、硬件级下断点。
- PRoot
- hide-memory
- Android-eBPF监控所有系统调用
- Android使用硬件断点调试app
- 基于ReDroid搭建云手机
- busybox
- 各种工具在不同平台的静态编译版本
- 将Android机器的时间跟host时间进行同步
adb root; date "+%m%d%H%M%Y.%S" | xargs adb shell date
本文来自博客园,作者:摩斯电码,未经同意,禁止转载