赞
踩
一、电脑硬件配置要求
1、Ubuntu 22.04.2系统内存至少16G,实测建议配置32G及以上
2、Ubuntu 22.04.2系统磁盘至少512G,实测建议配置1T及以上
3、Ubuntu 22.04.2系统内存不足会导致无法编译或编译中断,可以增加交换分区来扩充内存,访问速度相对会慢一点,建议配置与分配的内存一致,比如:有16G内存,则增加16G的交换分区内存。交换分区shell脚本setup_swapfile.sh如下:
#!/bin/bash set -euo pipefail # Check current swap status sudo swapon --show # Disable the swap file sudo swapoff /swapfile # Create a swap file #sudo fallocate -l 16G /swapfile sudo dd if=/dev/zero of=/swapfile bs=1G count=16 # Set the permissions sudo chmod 600 /swapfile # Set up the file as a swap file sudo mkswap /swapfile # Enable the swap file sudo swapon /swapfile # Verify the swap status sudo swapon --show # Automatically enable the swap file on boot sudo echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab
二、Ubuntu系统基础环境配置
1、配置网络
#install net-tools
sudo apt-get install net-tools
#check net info
ifconfig
2、配置Vim
sudo apt-get install vim sudo vi /etc/vim/vimrc #add the following content to the end of /etc/vim/vimrc set number set autoindent set tabstop=4 set shiftwidth=4 set expandtab set cursorline set ruler set hlsearch set nocompatible filetype plugin on set omnifunc=syntaxcomplete#Complete syntax on inoremap { {<ENTER>}<UP><RIGHT><ENTER> inoremap ( ()<ESC>i inoremap [ []<ESC>i inoremap < <><ESC>i inoremap ' ''<ESC>i inoremap " ""<ESC>i
3、配置Samba
mkdir ~/workspace chmod 777 ~/workspace chmod 755 ~ sudo vi /etc/samba/smb.conf #add the following content to the end of /etc/samba/smb.conf [workspace] comment = workspace share #path must be absolute path = /home/gary/workspace guest ok = yes browseable = yes writable = yes read only = no #restart Samba service sudo service smbd restart #check net info,get ip [inet 192.168.206.134] ifconfig
4、在Windows上,映射网络驱动器,填入\\192.168.206.134\workspace,之后可以无密码访问
三、Android13编译环境配置
1、依赖和工具安装
sudo apt-get install curl wget zip unzip git git-core python3 gnupg flex bison gperf build-essential zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc fontconfig openjdk-11-jdk #git git config --global user.name 'xxx' git config --global user.email 'xxx@xxx.com' #repo mkdir ~/bin PATH=~/bin:$PATH curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo chmod +x ~/bin/repo #source code url export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' #python sudo ln -s /usr/bin/python3 /usr/bin/python
2、Android13源码下载
#查看 https://source.android.google.cn/docs/setup/about/build-numbers?hl=zh-cn#source-code-tags-and-builds 来选取需要的版本。
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-13.0.0_r44
#此处为了加快速度使用了-c参数,表示只同步当前分支,-j8表示使用8个线程今天同步代码,使用多少个线程请根据自己的机器配置自行修改。
repo sync -c -j8
3、Android13源码编译
#编译环境初始化 source build/envsetup.sh #或者: . build/envsetup.sh #选择构建目标 #因为要编译成模拟器运行的Android镜像,模拟器的环境是x86_64,所以要选择x86_64,userdebug后缀表示是可以调试的版本 #本例中,选择的是sdk_pc_x86_64-userdebug lunch #或者 lunch sdk_pc_x86_64-userdebug #编译ROM镜像 make -j8 #在out/target/product目录可以看到编译后生成了一个文件夹:emulator64_x86_64 #打包Android镜像,打包完成后会生成sdk-repo-linux-system-images为前缀的AVD镜像zip文件 #比如我的路径是:out/target/product/emulator64\_x86\_64/sdk-repo-linux-system-images-eng.gary.zip make emu_img_zip
4、编译清理
#清理产品对应的编译,删除out/target/product/[product_name]
make clean
#清理所有编译,删除out目录
make clobber
四、在Windows挂载AVD镜像启动模拟器
1、打开Android Studio,创建一个Pixel 5模拟器AVD,选择Android13的镜像,AVD命名为Pixel_5_Android13
2、将sdk-repo-linux-system-images为前缀的AVD镜像zip文件解压到一个文件夹,如:
E:\sdk-repo-linux-system-images-eng.gary
3、将Android SDK目录adb和emulator工具目录添加到系统环境变量中,打开cmd窗口后可以直接使用,如:C:\Users\Admin\AppData\Local\Android\Sdk\platform-tools
C:\Users\Admin\AppData\Local\Android\Sdk\emulator
4、打开cmd窗口,执行命令,使用编译生成的镜像挂载来启动模拟器AVD
emulator -avd Pixel_5_Android13 -sysdir E:\sdk-repo-linux-system-images-eng.gary\x86_64 -dns-server 8.8.8.8,114.114.114.114 -verbose
5、在Ubuntu进行framework开发,编译framework、services相关模块,将out目录下编译产生的相关jar包重新命名成手机模拟器AVD中system/framework目录下的对应jar包名称,Android Studio使用compileOnly导入jar包,jar包可能会和Android SDK相关jar包有冲突,需要解决冲突,同时也使用adb push将jar包推到手机模拟器AVD中system/framework目录下替换掉对应的jar包
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。