Android源码环境搭建(aosp Ubuntu 16.04 20.04)

Android源码环境搭建(aosp Ubuntu 16.04 20.04)

作者:千里马
课程要求:
电脑配置:双核,内存最少 16G,硬盘 200G 以上
(为了以后高版本安卓兼容,建议20.04)独立安装 Ubuntu16.4或者20.04 系统(http://releases.ubuntu.com/16.04/下面的ubuntu-16.04.7-desktop-amd64.iso,如果网速慢自己百度找一个阿里镜像https://mirrors.aliyun.com/ubuntu-releases/focal/ubuntu-20.04.6-desktop-amd64.iso)
(优先考虑直接电脑安装Ubuntu > windows和Ubuntu双系统 > windows上安装VMware方式,不要不建议安装virtualbox)
学员要求:最少 1 年以上应用开发经验,推荐在 3 年左右 Android 应用开发经验,
熟悉 Java 语言,可以看懂 C/C++
1、安装 ubuntu16.04 20.04(因为这个版本可以直接安装 openjdk-8,如果其他版本自行找方法)(为了以后高版本安卓兼容,建议20.04)
2、openjdk 8 的安装
sudo apt-get install openjdk-8-jdk
3、设置默认 java 和 javac(可选)
由于本人当前 Ubuntu 上没有安装其他版本的 jdk,所以跳过此步骤
sudo update-alternatives --config java
sudo update-alternatives --config javac
4、 检查版本
java -version
打印如下:
openjdk version “1.8.0_252”
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~16.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
5、安装所需的软件软件包(注意一定要拷贝换行问题,最好先拷贝到txt上,再拷贝到命令行)

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

注意:如果是ubuntu 20.04编译需要额外配置一些:
1、安装两个包:python 和 libncurses5

sudo apt-get install python libncurses5

2、同时还需要在用户目录下的 .bashrc文件中加入以下一行,用vi命令既可以:

export LC_ALL=C

最后还需要source命令:

source .bashrc

注意如果是Ubuntu 23版本以上比如Ubuntu 24需要如下方式安装libncurses5

wget https://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2_amd64.deb && sudo dpkg -i libtinfo5_6.3-2_amd64.deb && rm -f libtinfo5_6.3-2_amd64.deb
wget https://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libncurses5_6.3-2_amd64.deb && sudo dpkg -i libncurses5_6.3-2_amd64.deb && rm -f libncurses5_6.3-2_amd64.deb

6、源码下载
6.1 网络下载方法:
国内不可以访问 google 故无法下载 aosp 源码,国内清华大学源有相关镜像
参考链接:
https://mirror.tuna.tsinghua.edu.cn/help/AOSP/
6.2 本地解压方式
下载链接地址:https://pan.baidu.com/s/1Jwsrb-zwrQO-HEHo5eo9Jg 提取码:uu1j
注意下载完成后md5进行一下校验,如果和这里不一样请重新下载

test@test-Lenovo:~$ md5sum android-8.1.0_r1.7z 
9c68e5b226494e8ba3accd0d4bcdd744  android-8.1.0_r1.7z

百度云下载相关的源码包,进行本地解压,下载我提供的百度云链接 android-8.1.0_r1.7z 文件

  1. sudo apt-get install p7zip
  2. 7zr x android-8.1.0_r1.7z
    会有一个 overwirte 提示直接输入:y 同意既可以 (注意:这里最后会出现一个Sub Item error大家可以忽略)
    7、编译 aosp 代码
    1、 . build/envsetup.sh
    2、lunch
    这里我们选择:6 –-- > aosp_x86_64
    3、make ANDROID_COMPILE_WITH_JACK=false (建议直接 :make,但是会产一个jackserver错,解决方法点击这里
    经历大概几个小时等待
    出现如下打印代表成功:

(如果有的机器有dex2oatd 时候报错,直接core dumped了,请使用关闭优化命令:
make WITH_DEXPREOPT=false)

build completed successfully (05:44:08 (hh:mm:ss))

4、执行命令:emulator,出现如下图界面
在这里插入图片描述(注意只要terminal关闭后就需要重新进行
1、 . build/envsetup.sh
2、lunch
然后可以直接emulator,没有修改不需要make,有修改需要make
)

8、修改自己的第一行代码,在框架运行
安装 vim:
sudo apt-get install vim
下载 android studio:
链接: https://pan.baidu.com/s/1ReBs0rx2yE-5bmxIRCerFw?pwd=gyij 提取码: gyij
9、初始化仓库(因为压缩包只有代码,没有 git仓库,因为 git仓库空间太大,只需要对会修改地方建
立仓库)
cd framework
git init
git add *
git commit -m “init first version”
如过还没有设置 git邮箱等
git config --global user.email “test@example.com”
git config --global user.name “test”
10、添加自己的一句 log打印在 framework上
cd framework/base
find -name Activity.java
vi ./core/java/android/app/Activity.java
在添加 onCreate中添加一句 android.util.Log.i(“test1”, “Activity is onCreate”);
回到根目录:
make
或者单独编译单模块make framework,然后push framwork.jar(但是不适合模拟器,只适用于实体debug手机)
11、加载源代码到 AndroidStudio
执行以下四条命令:

  1. “. build/envsetup.sh” (source可以用 .代替,即". build/envsetup.sh")
  2. “lunch”,并选择要编译的项目
  3. “make idegen -j4” (这里的 -j4表示用 4线程来编译,可以不加)
  4. “development/tools/idegen/idegen.sh” (报错find: ‘out/target/product/generic_x86_64/root/d’: Permission denied没有关系不影响ipr和iml文件生成)

详细导入as查看链接:https://blog.csdn.net/learnframework/article/details/141384068

学完8.1后,aosp12/13高版本android环境搭建:

ubuntu 20.04 android 12/13
https://blog.csdn.net/learnframework/article/details/121345533

手把手教你aosp android 12 pixel 解锁oem 编译刷入大全
https://blog.csdn.net/learnframework/article/details/125269456

aosp 12/13/lineageos19.1 framework学习编译刷入小米手机,努比亚
https://blog.csdn.net/learnframework/article/details/128438325

### 关于AOSP下载、编译及相关文档 #### 下载AOSP源代码 为了获取最新的AOSP源代码,可以使用`repo`工具来初始化并同步仓库。以下是操作的关键步骤: 1. 安装必要的依赖项以及设置Git和Python环境[^2]。 2. 初始化Repo客户端并通过以下命令克隆AOSP存储库: ```bash repo init -u https://android.googlesource.com/platform/manifest ``` 3. 同步源代码至本地机器: ```bash repo sync ``` 此过程可能会花费较长时间,具体时间取决于网络速度和计算机性能。 #### 配置编译环境Ubuntu LTS版本上进行开发时,需确保安装了合适的Java Development Kit (JDK),因为不同版本的Android对JDK的要求有所不同[^4]。例如,在master分支下推荐使用OpenJDK 8;而在更早的分支(如Lollipop或Marshmallow),则应选用JDK 7。 完成基础软件包安装之后,还需要执行特定脚本来准备构建环境: ```bash source build/envsetup.sh ``` 这一步骤会加载一系列辅助函数到当前shell session中,并允许通过简单的命令访问它们[^3]。 #### 执行实际编译工作 一旦完成了上述准备工作,则可以通过运行如下指令之一来进行整个项目的构建: - 使用传统的Makefile系统: ```bash make -j$(nproc) ``` - 或者借助Soong/Kati框架加速进程: ```bash m ``` 无论哪种方式都可以实现自动化多线程处理从而缩短整体耗时。最终产物会被放置在一个预定义好的out目录里等待进一步部署或者调试用途。 如果遇到诸如“Cannot launch background server”的错误消息阻止正常结束的话,请核查是否有足够的磁盘空间可用以及其他潜在冲突因素存在[^5]。 #### 查找更多官方资料链接 对于希望深入学习如何贡献给该项目的人士来说,可以直接查阅由Google维护的相关指南页面获得最权威的信息支持。这些网页不仅涵盖了从零起步直至精通各个层面的知识要点而且还提供了常见问题解答区域能够有效帮助解决疑惑之处。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值