最初のステップは、最初に vware と ubuntu のミラー環境を構成することです.ubuntu には 18 を使用することをお勧めします.この手順については言及しません.プラットフォームが完成したら、最初にダウンロードおよびコンパイル環境を構成します
.
python3.9 をダウンロード
1、sudo apt update
2、sudo apt install software-properties-common
3、sudo add-apt-repository ppa:deadsnakes/ppa
4、sudo apt install python3.9
//查看python版本号,确认是否安装成功
5、python3.9 -V
更换为3.9
sudo ln -s /usr/bin/python3.9 /usr/bin/python
gitをインストールする
sudo apt-get upgrade
sudo apt-get install git
git config --global user.email "[email protected]"
git config --global user.name "xxxxx"
カールをインストールする
sudo apt-get install curl
レポをインストールする
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
ソースを変更
ソースを外部ネットワークではなくTsinghuaミラーに変更. もちろん, 外部ネットワークにアクセスできる場合はこのステップを無視しても構いません. コードをプルダウンできれば, で作成したbinフォルダ下のrepoファイルを開くことができます
.前のステップ。
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
と取り換える
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
インストールとコンパイルに必要:
sudo apt-get install bc bison build-essential curl flex g++-multilib gcc-multilib git gnupg gperf libxml2 lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-gtk3-dev imagemagick git lunzip lzop schedtool squashfs-tools xsltproc zip zlib1g-dev openjdk-8-jdk perl xmlstarlet virtualenv xz-utils rr jq libncurses5 pngcrush lib32ncurses5-dev git-lfs libxml2 openjdk-11-jdk-headless aapt curl fastboot adb
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 bison
この時点で、すべての環境が構成されており、Android 9 のダウンロードとコンパイルを開始します。
**Android 9 のダウンロードとコンパイルに関する最初の説明**
ファイルを作成する
mkdir android9
cd android9
清華ミラー配下のAndroid9指定ブランチを初期化
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-9.0.0_r9
同期コードダウン
repo sync -c -j32
-c は現在のブランチを同期することを意味し、-j32 はコンピューターの CPU に応じて設定された 32 のスレッドを開くことを意味します。
コンパイルを開始
source build/envsetup.sh
lunch aosp_x86_64-eng //我的电脑cpu是intel的。这里选择的是编译目标要根据自己的电脑cpu配置,选择构建目标跟下文编译成功启动模拟器时要对应,否则会出错
make -j32
コンパイルが成功したら、エミュレーターを起動します。
source build/envsetup.sh
lunch aosp_x86_64-eng
emulator -gpu off -partition-size 3048 //这里的大小3048根据情况而定
エミュレータの起動時に発生した問題
仮想マシンの電源がオンになっているかどうかを確認し、オンになっていない場合は、電源をオンにして仮想マシンを再起動します
それでも解決しない場合:
コンピューターが仮想マシンをサポートしているかどうかを確認する
egrep -c '(vmx|svm)' /proc/cpuinfo
0 が表示されている場合はサポートされていないことを意味し、それ以外の数字はサポートされていることを意味します
使用 root 权限执行以下三条命令后注销当前用户或者直接重启电脑即可
(本例子中当前登录图形界面的用户是 zjs)
groupadd kvm
usermod -G kvm -a zjs
echo 'KERNEL=="kvm",GROUP="kvm",MODE="0660"' >> /etc/udev/rules.d/androidUseKVM.rules
这三条命令的作用分别是:
#创建用户组kvm
#将用户sman添加到kvm用户组
#开机时自动赋予用户组kvm拥有0660的权限
次に、仮想マシンを再起動します
source build/envsetup.sh
lunch aosp_x86_64-eng
emulator -gpu off -partition-size 3048
Android 12 をダウンロードしてコンパイルする
上記の Android12 と Android9 のダウンロード操作は基本的に違いはありませんが、
コードをプルする際に選択した Android12 です。
mkdir android12
cd android12
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.0.0_r9
repo sync -c -j32
选择的分支是 android-12.0.0_r9 这个分支
後でエミュレーターをコンパイルして実行すると、いくつかの違いがあります。
実行するとデバイス上で
source build/envsetup.sh
lunch aosp_x86_64-eng
make -j32
コンパイルはできるのですが、エミュレータを動かしてみると立ち上がりません ランチのネット検索によると、選択したターゲットは sdk_phone_x86_64 です
あれは
source build/envsetup.sh
lunch sdk_phone_x86_64
make -j32
コンパイルする最後のことは、エミュレーターを起動することです
source build/envsetup.sh
lunch sdk_phone_x86_64
emulator -gpu off -partition-size 3048
このエラーが発生しました
エミュレータ: エラー: AdbHostServer.cpp:102: ポート: 5037 で adb デーモンに接続できません
adb ツールがまだ実行されていないことを示します。crtl + C でエミュレータを終了します
次に実行
adb start-server
この時点で再実行
emulator -gpu off -partition-size 3048
シミュレーターが立ち上がった