欢迎参加我的常识星球Android体系开发攻略
代码下载
装备
装置下载代码所需东西
sudo apt install curl repo git
下载装备repo
mkdir ~/bin/
curl mirrors.tuna.tsinghua.edu.cn/git/git-rep… -o ~/bin/repo
chmod +x ~/bin/repo
vim ~/.bashrc
最终一行参加下面内容
export REPO_URL=’mirrors.tuna.tsinghua.edu.cn/git/git-rep…’
source ~/.bashrc
装备git环境,email和name装备成自己的名称
git config –global user.email “you@example.com”
git config –global user.name “Your Name”
下载
创立保存代码的目录,我下载分支为android-13.0.0_r35,假如想下载其他分支,请查看
source-code-tags-and-builds
mkdir -p ~/work/android/aosp/android-13.0.0_r35
cd ~/work/android/aosp/android-13.0.0_r35
repo init -u mirrors.tuna.tsinghua.edu.cn/git/AOSP/pl… -b android-13.0.0_r35
repo sync -j16
-j后边的数字为运用cpu的线程数,我的电脑是20线程,我挑选16避免电脑卡顿,后边编译也是如此。
假如下载时呈现提示找不到Python的错误,请履行如下过程:
sudo apt install python2.7
sudo ln -s /usr/bin/python2.7 /usr/bin/python
代码编译
编译东西装置
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 ccache libgl1-mesa-dev libxml2-utils xsltproc unzip libncurses5 openjdk-8-jdk
编译代码
cd ~/work/android/aosp/android-13.0.0_r35
source build/envsetup.sh
下面挑选自己想要的版别,假如想要发动模拟器的话,要挑选sdk开头的,比如aosp_car_x86_64-userdebug是无法发动模拟器的,sdk_car_x86_64-userdebug 能够发动模拟器
lunch sdk_car_x86_64-userdebug
make -j8
等待编译完成,我编译了一个半小时,假如挑选-j16的话应该会更快。
发动模拟器
编译完成后在同一窗口履行:
emulator
假如切换了终端窗口,则履行
source build/envsetup.sh
lunch sdk_car_x86_64-userdebug
emulator -writable-system // -writable-system表示体系可写,不加的话无法adb push文件到体系
下面是发动后的页面截图:
在这里刺进图片描绘
代码调试
调试东西装置
装置adb调试东西
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb
装置完成后履行
adb devices
能够看到模拟器正在运转
在这里刺进图片描绘
修正代码验证
咱们把首页的文字改掉,先找到途径:
packages/services/Car/car-maps-placeholder/res/values/strings.xml
在这里刺进图片描绘
修正一下
在这里刺进图片描绘
经过查看Android.bp文件,咱们知道要编译CarMapsPlaceholder
source build/envsetup.sh
lunch sdk_car_x86_64-userdebug
make CarMapsPlaceholder -j16
编译完成后把编译产物apk push到体系进行验证,先履行
adb root
adb remount
提示要reboot体系
在这里刺进图片描绘
adb reboot
再次履行
adb root
adb remount
adb push out/target/product/emulator_car_x86_64/system/app/CarMapsPlaceholder/CarMapsPlaceholder.apk /system/app/CarMapsPlaceholder/
退出首页从头进入一下,看到咱们的修正现已生效