Android15源码编译记录
Android源码编译
Android15 代码调试环境搭建
环境依赖:
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install libssl-dev libncurses5
代码以及编译输出文件总共500G左右硬盘就够了。
编译命令: 下载代码, 参考清华源中的下载链接; 分支名可以从android官网找到 repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-15.0.0_r22 repo sync -j8 构建目标 在代码的根目录下面执行命令 source build/envsetup.sh lunch sdk_phone64_x86_64-trunk_staging-eng m 同步清华源的代码自测最好晚上。白天非常慢。
emulator
如果是在远程连接服务器的窗口或者wsl上运行emulator,还需要做如下操作。否则的话会报kvm相关的错误。
# 安装xcb sudo apt-get install xcb sudo apt-get install libxcb-cursor0 sudo groupadd -r kvm #创建kvm用户组 sudo gpasswd -a $USER kvm #添加用户到kvm
ipr文件
source build/envsetup.sh lunch sdk_phone64_x86_64-trunk_staging-eng mmm development/tools/idegen/ ./development/tools/idegen/idegen.sh
android.iml文件
承载着项目结构和依赖关系的重要信息。
iml 文件是IDEA项目的一种配置文件,全称为 IntelliJ Module Language 文件。 android studio中,每个模块(Module)都会生成一个对应的.iml文件,例如app.iml、library.iml文件等。该文件用于描述模块的配置信息,包括源代码路径、依赖关系、库文件路径等。
源代码路径:
模块中各种源代码的路径:
库文件路径:
模块所依赖的库文件的路径,包括类文件、Javadoc和源代码。
增加swap内存
android15代码编译需要内存非常大, 最好将虚拟内存和主机内存的大小整体增加到64G, 否则很容易编译失败
参考链接:
代号、标记和build号
https://source.android.google.cn/docs/setup/reference/build-numbers?hl=zh-cn
构建android:
https://source.android.google.cn/docs/setup/build/building?hl=zh-cn
清华源下载AOSP代码:
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
android15代码编译:
https://blog.csdn.net/liaosongmao1/article/details/144019903
android13代码编译:
https://blog.csdn.net/SunIOT/article/details/130914071
android.iml文件解析:
https://www.oryoy.com/news/android-xiang-mu-pei-zhi-jie-xi-shen-ru-li-jie-android-iml-wen-jian-de-jie-gou-yu-zuo-yong.html
遇到的问题:
- 最好使用23版本以下的ubuntu进行编译,否则会编译不通过。
会报permission相关的报错。https://github.com/google/nsjail/issues/236
- 内存不够导致的报错