1、下载Ubuntu
这个下载清华大学镜像下载嘎嘎快,我用的20.04版本。 ubuntu20
2、下载VMware
这个是VMware16 里面有key,可以直接用
链接:https://pan.baidu.com/s/1w3-zGZ_rYCWNRGRjaXtxzg?pwd=1111 提取码:1111
3、设置交换分区
编译这个比较吃性能,难免有内存不够的情况,这里提一嘴噢,电脑的性能肯定是越高越好,万一电脑性能不好也不是没办法,交换分区就很好用。
什么是交换分区呢
交换分区(swap),或者叫内存置换空间(swap space),Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。交换分区的作用是,当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,也就是常说的 swap out 和 swap in。
可以提供过free -m命令查看虚拟内存与交换空间大小
或者 swapon -s
设置交换分区的步骤
停用交换文件
sudo swapoff /swapfile
删除文件
sudo rm /swapfile
设置交换内存
sudo fallocate -l 30G /swapfile
设置权限
sudo chmod 600 /swapfile
挂载
sudo mkswap /swapfile
启用
sudo swapon /swapfile
接着把交换信息写入系统配置,不然Ubuntu重启后以上配置swap空间工作得重新来一遍。 打开配置文件 sudo vim /etc/fstab 在最后一行插入 /swapfile swap swap defaults 0 0
如果报错vim: command not found
那就安装一下
sudo apt update
sudo apt install vim
系统只有当虚拟内存不足才会启动Swap,我们可以挑高一点触发交换的条件,避免卡死 终端输入命令: sudo vim /etc/sysctl.conf
在最后面添加如下语句按i进入编辑模式,光标移到最后,插入语句
vm.min_free_kbytes=1500000 #1.5G
保存退出(按ESC退出编辑模式,输入:wq保存退出)然后重启开机。
4、安装
git:sudo apt install git
5、安装依赖工具
一行搞定
sudo apt install git-core libssl-dev libffi-dev gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libz-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
6、下载与安装Python
cd Downloads
#下载python3
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
#解压
tar xvf Python-3.7.1.tgz
#编译与安装Python3
./configure
#或指定路径
./configure --prefix=/usr/local/python3.7
#安装
sudo make install
下载python2
sudo apt update
sudo apt install python2
#设置或切换python版本 python2 设置为1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
#python3 设置为2
sudo update-alternatives --install /usr/bin/python python /usr/local/python3.7/bin/python3.7 2
#切换
sudo update-alternatives --config python
# 验证Python版本
python --version
7、把源码同步下来
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
mkdir Android12
cd Android12
#下载
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-12.1.0_r27
可能出现的问题
权限问题
chmod 755 /home/zyz/bin/repo
连接问题
如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的: REPO_URL = "mirrors.tuna.tsinghua.edu.cn/git/git-rep…" 如果提示无法进行SSL证书校验,执行:
SSL证书校验
git config --global http.sslverify false
git config --global https.sslverify false
git身份
如果出现git身份不存在:
git config --global user.email "********.com"
git config --global user.name zyz
同步
这个估计要好几个小时
repo sync
如果报错 error: Unable to fully sync the tree.
error: Downloading network changes failed.
Try re-running with "-j1 --fail-fast" to exit at the first error.
#执行:
repo sync -j1 --fail-fast
出现repo sync has finished successfully. 就成功了
8、编译
. build/envsetup.sh
#lanch 选择lunch sdk_car_x86_64-userdebug 车载
lanch
#最后make -j后面的线程根据你的电脑cpu来设定 一般是自己电脑的1.5杯
make -j18 2>&1 | tee build.log
9、打开模拟器
cd 源码目录
emulator
第一次编译后重启虚拟机,可能你的虚拟机emulator的指令就用不了的,会报错找不到emulator指令 这时候重新编译一次就可以,第一次编译后后面都是增量编译,速度比较快
. build/envsetup.sh
#lanch 选择
lunch sdk_car_x86_64-userdebug
#最后make -j后面的线程根据你的电脑cpu来设定 一般是自己电脑的1.5
make -j14 2>&1 | tee build.log
但是总不能一直要编译一次才可以启动模拟器吧 我们可以保存编译后的环境变量,然后每次进入都可以吧环境变量刷进去
# 查看当前会话的环境变量
echo $PATH
# 然后把输出的环境变量放到 ~/.bachrc 配置文件
nano ~/.bashrc
# 把光标挪到最后 添加下面这行 PATH:$HOME后面写你的 PATH
export PATH=$PATH:你的PATH.......
# 最后 生效这些改动
source ~/.bashrc
10、安装 多个版本jdk
sudo apt update
sudo apt install openjdk-8-jdk
sudo apt install openjdk-11-jdk
#配置jdk 选择器
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 2
#切换jdk版本 选择序号即可
sudo update-alternatives --config java
11、使用aidegan 导入源码
#先安装你的as
wget https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2022.1.1.21/android-studio-2022.1.1.21-linux.tar.gz
#解压
mkdir -p ~/AndroidStudio
tar -xzf android-studio-2022.1.1.21-linux.tar.gz -C ~/AndroidStudio
#然后配置环境变量
nano ~/.bashrc
#文件末尾添加 (按 `Ctrl + O` 保存,按 `Ctrl + X` 退出)
export ANDROID_STUDIO_HOME=$HOME/AndroidStudio/android-studio export PATH=$PATH:$ANDROID_STUDIO_HOME/bin
#让环境变量生效
source ~/.bashrc
aidegan 是一个自动生成项目配置文件,针对不同的主流ide都是可以的,比如 Android Studio
#环境初始化和选择编译目标
source build/envsetup.sh && lunch full_k62v1_64_bsp-userdebug
#然后选择你要改的模块就好 会自动打开as噢
aidegen Settings framework
12、使用idegen 导入源码
如果你编译的系统比较老,或者高度自定义过的 ,没有aidegan
#回到源码目录 执行
make idegen -j4
#生成文件android.iml & android.ipr
sudo development/tools/idegen/idegen.sh
#如果文件图标有锁头,as打不开ipr
sudo chown 你的用户名字:你的用户名字 android.ipr