当前位置:   article > 正文

Ubuntu 22.04.2系统Android13源码编译_ubuntu22编译android13

ubuntu22编译android13

Ubuntu 22.04.2系统Android13源码编译

一、电脑硬件配置要求

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

二、Ubuntu系统基础环境配置

1、配置网络

#install net-tools
sudo apt-get install net-tools
#check net info
ifconfig
  • 1
  • 2
  • 3
  • 4

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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
  • 1
  • 2
  • 3
  • 4
  • 5

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

4、编译清理

#清理产品对应的编译,删除out/target/product/[product_name]
make clean

#清理所有编译,删除out目录
make clobber
  • 1
  • 2
  • 3
  • 4
  • 5

四、在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
  • 1

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包

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/909817
推荐阅读
相关标签
  

闽ICP备14008679号