https://www.elinux.org/images/2/29/Customizing_AOSP_for_my_Device.pdf
编译选项参考
Android.bp Build Docs (android-8.0.0-r9) · 零壹軒·笔记
AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
android 重新定向printf的输出:下面的data目录必须存在,且有写入权限
#include
freopen("/data/loglog.txt", "w", stdout);
aosp下载步骤
安装git
安装curl
下载repo:
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
sudo snap install curl
cp repo /usr/local/bin/
repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b master
repo sync -j1 --fail-fast --force-sync
-j1不容易出错
或repo sync -j1
出现:
1、/usr/bin/env: ‘python’: No such file or directory
whereis python3
sudo ln -s /usr/bin/python3 /usr/bin/python
2、Downloading Repo source from https://gerrit.googlesource.com/git-repo
vim ~/.bashrc
添加:export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
source ~/.bashrc
cc_binary
Android Training | Android中文API
hal层与Framework之间传递数据
1、回调函数
Android 从framework层到HAL层调用实现 - 寒风凌意 - 博客园
2、共享n
android 8.1上新增hidl接口,从hal层往framework层传共享内存_xuhui_7810的专栏-CSDN博客
下载repo:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
## 如果上述 URL 不可访问,可以用下面的:
## curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo > repo curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中 chmod a+x /usr/local/bin/repo
源码下载
拉代码用如下,good
这个文档很好关于下载aosp和编译
Android 11 源码下载+编译教程 - 走看看
repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b froyo
repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r17
repo sync -j1 --fail-fast --force-sync -j1不容易出错
repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r17
repo sync -j1 --fail-fast --force-sync
. build/envsetup.sh
lunch aosp_x86-eng
make -j16
这里我使用的是外国语大学的镜像执行的下载,Mac系统的话,一定要在区分大小写的磁盘下执行
磁盘大小要200G以上。如果是编译aosp_x86-eng版本的话,磁盘大小可以设置 250G-300G 之间
repo init -u https://mirrors.bfsu.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r17
repo sync -j1 --fail-fast --force-sync
设置j1是因为尽量不出问题,虽然下载慢,但是一次就能下好,我试过j16经常出现EOF错误,j1一次就成功了
. build/envsetup.sh
lunch aosp_x86-eng
make -j16
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=11
TARGET_PRODUCT=aosp_x86
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=x86
TARGET_ARCH_VARIANT=x86
HOST_ARCH=x86_64
HOST_OS=darwin
HOST_OS_EXTRA=Darwin-19.6.0-x86_64-10.15.7
HOST_BUILD_TYPE=release
BUILD_ID=RP1A.201105.002
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=device/generic/goldfish device/generic/goldfish-opengl hardware/google/camera hardware/google/camera/devices/EmulatedCamera device/generic/goldfish device/generic/goldfish-opengl
Could not find a supported mac sdk: ["10.10" "10.11" "10.12" "10.13" "10.14" "10.15"]
下载对应的SDK版本:https://github.com/phracker/MacOSX-SDKs/releases
然后移动到 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
目录下解压,在执行 make -j16
glob: open /Volumes/android-11/external/snakeyaml/src/main: too many open files
ulimit -S -n 2048
-writable-system
后重新启动,然后再次adb remount,就可以看见remount succeeded了emulator -writable-system
拉代码用如下,good
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
repo sync
下载指定分支:
repo init -u https://android.googlesource.com/platform/manifest
-b android-4.2_r1
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b master
repo sync -j8
//asop-2.3.x
repo init -u https://android.googlesource.com/platform/manifest.git
-b gingerbread
查看aosp所有分支
克隆代码仓库:
git clone git://mirrors.ustc.edu.cn/aosp/platform/manifest.git
$ mkdir ~/android/aosp-branches-tags
$ cd ~/android/aosp-branches-tags
$ git clone https://android.googlesource.com/platform/manifest.git
$ cd manifest
$ git tag
看远程分支:git branch -a
各种源
Arch Linux ARM 源使用帮助 — USTC Mirror Help 文档
清华大学开源软件镜像站 | Tsinghua Open Source Mirror
AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
下代码用repo sync -f -j8
Embedded Android 好书
Improving the Boot Time of the Android OS》这篇论文
优秀技术文档
Jhuster的博客_Android 内核_51CTO博客
Jhuster的博客_Android 内核_51CTO博客
Embien Technologies
外文技术文档优秀
Android Boot Time Optimization – Android boot process
官方网站
Documentation | Android 开发者 | Android Developers
https://developer.android.google.cn/
Android Development
接口和软件包 | Android 开源项目 | Android Open Source Project
学习Android
如何自学Android? - 知乎
Tutorials
优秀:
Gityuan博客 | 袁辉辉的技术博客
Android 操作系统架构开篇 - Gityuan博客 | 袁辉辉的技术博客
Gityuan的博客_CSDN博客-android领域博主
yuanhuihui (Gityuan) · GitHub
Android是怎么启动的-[Android取经之路]_IngresGe 的专栏-CSDN博客_android取经之路
Android Framework01-启动流程 - 随笔分类 - 安卓笔记侠 - 博客园
good hidl jni:
AndroidQ 打通应用层到HAL层---(JNI服务和AIDL服务实现)_DJLZPP的博客-CSDN博客
android HIDL HAL控制LED demo(一)之C++作客户端 - it610.com
JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理(八)_IngresGe 的专栏-CSDN博客
Android Framework01-启动流程 - 随笔分类 - 安卓笔记侠 - 博客园
安装投屏软件
sudo snap install scrcpy
orsudo apt-get install scrcpy
优秀,手机就是开发板
GitHub - aggresss/PHDemo: 《手机就是开发板》 所提到的文档,代码和程序
framework
Android FrameWork底层开发视频全套_简-CSDN博客
https://blog.csdn.net/huaxun66/category_7203839.html
将系统属性作为 API 实现 | Android 开源项目 | Android Open Source Project
安装管理
android studio bundle和android studio ide区别及android-studio-bundle的最新版下载地址_点滴的幸福-CSDN博客
中文指南
AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载
基础:
标签:"Android基础"相关文章 - 程序员大本营
标签:"Android基础"相关文章 - 程序员大本营
编译
编译 Android | Android 开源项目 | Android Open Source Project
Android.mk
Android.mk | Android NDK | Android Developers
Android.mk | Android NDK | Android Developers
manifest.xml
清单 | Android 开源项目 | Android Open Source Project
Android Hal
Android HAL 开发 (1)【图文】_buaadallas_51CTO博客
android HAL 教程(含实例) - f9q - 博客园
android HAL 教程(含实例) - f9q - 博客园
安卓平台下的GPS架构介绍及驱动移植记录 | 易学教程 hidl
android HAL 教程(含实例) - f9q - 博客园
linux&Android
Jollen 網路學院 2020 :: Embedded Linux Consulting and Training :: 嵌入式 Linux 顧問與教育訓練