Ubuntu20.04.06/Deepin20.9系统版本配置Android R源码下载方式
Ubuntu20.04.06/Deepin20.9系统版本配置Android R源码下载方式
针对Deepin系统,有些环境配置是存在的,在安装系统的时候,就已经安装好了,例如git,但是针对Ubuntu系统,基本上还是零状态,所以我们以Ubuntu系统为例,如遇到Deepin系统需要特别注意的,再进行标注;。
AOSP 源码下载环境配置
1.jdk配置(使用的是jdk 8)
- 安装 jdk
dupz@dupz-pc:~$ sudo apt-get install openjdk-8-jdk
- 查看jdk版本信息
dupz@dupz-pc:~$ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01)
OpenJDK 64-Bit Server VM (build 25.212-b01, mixed mode)
2.git配置
- 如果没有安装git,则通过apt命令安装git
dupz@dupz-pc:~$ sudo apt install git
- 查看Ubuntu有没有安装git
dupz@dupz-pc:~$ git --version
- 给git设置用户名和邮箱,用户名和邮箱随意设置
dupz@dupz-pc:~$ git config --global user.email "you@example.com"
dupz@dupz-pc:~$ git config --global user.name "Your Name"
- 查看设置的用户名和邮箱是否生效
dupz@dupz-pc:~$ git config --global user.name
dupz@dupz-pc:~$ git config --global user.email
3.Python配置
- 安装python
dupz@dupz-pc:~$ sudo apt-get install python
这里需要注意一下,从ubuntu 18之后(同样也包括deepin20.9),python默认软连接着python2,即使已经安装了python3,但是也无法使用,而在后续使用repo init和sync代码的时候,会提示repo指令错误,其实就是因为引用的python版本不正确导致的;
- 需要手动的配置一下python的软连接
# 进入python指令存放路径
dupz@dupz-pc:~$ cd /usr/bin/
# 查看和python相关的文件
dupz@dupz-pc:/usr/bin$ ls -l | grep python
-rwxr-xr-x 1 root root 1056 Mar 4 2019 dh_python2
lrwxrwxrwx 1 root root 23 Oct 9 2022 pdb2.7 -> ../lib/python2.7/pdb.py
lrwxrwxrwx 1 root root 23 Nov 1 2022 pdb3.7 -> ../lib/python3.7/pdb.py
lrwxrwxrwx 1 root root 31 Mar 26 2019 py3versions -> ../share/python3/py3versions.py
lrwxrwxrwx 1 root root 16 Sep 9 12:42 python -> python2
lrwxrwxrwx 1 root root 9 Mar 4 2019 python2 -> python2.7
-rwxr-xr-x 1 root root 3423088 Oct 9 2022 python2.7
lrwxrwxrwx 1 root root 9 Mar 26 2019 python3 -> python3.7
-rwxr-xr-x 2 root root 4877856 Nov 1 2022 python3.7
-rwxr-xr-x 2 root root 4877856 Nov 1 2022 python3.7m
lrwxrwxrwx 1 root root 10 Mar 26 2019 python3m -> python3.7m
lrwxrwxrwx 1 root root 29 Mar 4 2019 pyversions -> ../share/python/pyversions.py
- 手动更改python的软连接
# 将python软连接的绑定修改为python3
dupz@dupz-pc:/usr/bin$ sudo ln -s python3 python
-rwxr-xr-x 1 root root 1056 Mar 4 2019 dh_python2
lrwxrwxrwx 1 root root 23 Oct 9 2022 pdb2.7 -> ../lib/python2.7/pdb.py
lrwxrwxrwx 1 root root 23 Nov 1 2022 pdb3.7 -> ../lib/python3.7/pdb.py
lrwxrwxrwx 1 root root 31 Mar 26 2019 py3versions -> ../share/python3/py3versions.py
lrwxrwxrwx 1 root root 16 Sep 9 12:42 python -> /usr/bin/python3
lrwxrwxrwx 1 root root 9 Mar 4 2019 python2 -> python2.7
-rwxr-xr-x 1 root root 3423088 Oct 9 2022 python2.7
lrwxrwxrwx 1 root root 9 Mar 26 2019 python3 -> python3.7
-rwxr-xr-x 2 root root 4877856 Nov 1 2022 python3.7
-rwxr-xr-x 2 root root 4877856 Nov 1 2022 python3.7m
lrwxrwxrwx 1 root root 10 Mar 26 2019 python3m -> python3.7m
lrwxrwxrwx 1 root root 7 Mar 4 2019 python_bat -> python2
lrwxrwxrwx 1 root root 29 Mar 4 2019 pyversions -> ../share/python/pyversions.py
4.安装curl
- 通过apt命令安装curl
dupz@dupz-pc:~$ sudo apt install curl
5.搭建repo
# 进入主目录
dupz@dupz-pc:~$ cd ~
# 创建bin文件夹
dupz@dupz-pc:~$ mkdir bin
# 将bin文件夹加入系统路径中
dupz@dupz-pc:~$ PATH=~/bin:$PATH
# 清华aosp
dupz@dupz-pc:~$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
dupz@dupz-pc:~$ chmod a+x ~/bin/repo
这里推荐直接使用清华源的repo,一般的工作环境无法连接google,使用google的repo可能后续会有一些问题;
6.修改repo的源链接
- 打开bin文件夹下的repo文件
dupz@dupz-pc:~$ gedit bin/repo
- 更换清华镜像站下载链接
# 原先的镜像地址
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
# 更换为清华源
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
7.更新.bashrc文件
dupz@dupz-pc:~$ gedit .bashrc
- 同时还需要在用户目录下的 .bashrc文件中加入以下一行,最后保存;
# 这一句的做用是为了去除全部本地化的设置,让命令能正确执行
export LC_ALL=C
- 最后还需要source命令使其生效;
dupz@dupz-pc:~$ source .bashrc
上述下载aosp R的环境配置就完成了;
AOSP 源码编译环境配置
1.创建AOSP源码目录
dupz@dupz-pc:~$ mkdir code_r
dupz@dupz-pc:~$ cd code_r
# 初始化仓库
dupz@dupz-pc:~/code_r$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r36
# 同步源码树
dupz@dupz-pc:~/code_r$ repo sync
android-11.0.0_r36这个是需要用户自己去配置,配置自己需要的分支;
2.配置AOSP编译环境
这里面也是参考别人书写的博客,我将其中的apt-get项都取过来了,后续在配置的时候,最好两组都执行一次,保证环境的完整性;
第一组
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
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 libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-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 libncurses5
第二组
一般情况下,ubuntu 16版本需要配置的:
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版本还需要新增两项配置:
sudo apt-get install python libncurses5
上述的两组,绝大部分都是重复的,所以看情况而定吧。
3.AOSP 源码编译
dupz@dupz-pc:~/code_r$ source build/envsetup.sh
# 一般通过emulator指令启动Android模拟器,选择的都是这个lunch = aosp_x86_64-eng
dupz@dupz-pc:~/code_r$ lunch aosp_x86_64-eng
dupz@dupz-pc:~/code_r$ make -j8
Android Studio 导入 AOSP源码
这个过程,需要保证处于可编译状态,即:
dupz@dupz-pc:~/code_r$ source build/envsetup.sh
# 一般通过emulator指令启动Android模拟器,选择的都是这个lunch = aosp_x86_64-eng
dupz@dupz-pc:~/code_r$ lunch aosp_x86_64-eng
1.编译idegen
- 编译idegen,生成idegen.jar
mmm development/tools/idegen/
2.执行idegen.sh
- 执行idegen.sh,生成 android.ipr 和 android.iml
development/tools/idegen/idegen.sh
3.AS 导入 source code
- File -> Open,选择源码目录刚刚生成的android.ipr就可以导入了,这个过程第一次是比较慢的,大家需要耐心等待;
Ubuntu 模拟器
在ubuntu中,Android的模拟器有可能会出现闪退情况,这个大概是因为ubuntu安装的显卡驱动和设备主机的显卡驱动不匹配导致的,这个需要自己根据实际的情况处理,更新一下驱动即可;
不是所有的都是470型号的显卡,需要先查询一下自己的显卡型号,然后再选择对应的显卡驱动,切记,显卡驱动要选择Server Driver版本;