Androidソースコードコンパイルの概要(ubuntu16.04 + android P)

前書き#

1 環境構成###

最初に私のコンピューターの構成を見てください

computer.png

1.1 VMware #####をインストールします

ここでは、仮想マシンを使用してubuntuをインストールします。 VMwareの具体的なインストール方法は、自分でバイドゥできます。私が使用しているバージョンはここに掲載されています。

vmware.png

VMwareをインストールした後、ubuntuをインストールします。最初にシステムイメージをダウンロードする[ubuntu](https://link.jianshu.com/?t=http://www.ubuntu.org.cn/download/desktop)

ubuntu.png

1.2 ubuntuをインストールします#####

次のステップは、vmwareにubuntuをインストールすることです。自分でBaiduの手順を実行できるので、ここでは繰り返しません。ただし、** ubuntuに割り当てられたスペースで十分であることに注意する必要があります。 150G **以上をお勧めします。そうしないと、コンパイルの半分がそれまでに行われ、十分なスペースがないと恥ずかしいことになります。私はこの損失に苦しんでいるので、誰もがこのピットをスキップしようとします。ここに私の構成を投稿してください:

ubuntu_set.png

上記のubuntuをインストールした後。 ubuntuを起動し、必要なソフトウェアのインストールを開始します。

1.3 git #####をインストールします
sudo apt-get install git

次に、ユーザー情報を構成します

$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"

その他の操作については、[Git CommonCommands](https://www.jianshu.com/p/d68a4fa57108)を参照してください。

1.4 openjdk #####をインストールします

Ubuntu 16.04のインストールソースにはデフォルトでopenjdkがないため、自分でウェアハウスを手動で追加する必要があります

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update

インストールを開始します

sudo apt-get install openjdk-8-jdk 

ここで最新のandroidソースコードをコンパイルしているので、jdk8がインストールされています。他のバージョンをコンパイルする場合は、必要に応じて対応するバージョンをインストールしてください。

1.5 必要な依存関係をインストールします#####
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

ここでは、インストール中に問題がないことを個人的にテストしました。これまでにコンパイル環境が準備されました。次のステップはソースコードをダウンロードすることです

2 ソースコードをダウンロード###

アンドロイドのソースコードは非常に大きく、いくつかの場所は外国のウェブサイトにアクセスする必要があるためです。そこで、清華大学の鏡像を使用します。詳細な手順[Androidミラーリングヘルプ](https://link.jianshu.com/?t=https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/)に詳細な手順があります。ここでは、手順を簡単に書き留めます。

2.1 リポジトリツールの構成:#####
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo >~/bin/repo
chmod a+x ~/bin/repo

開始するたびにPATHを設定する必要がないように、環境変数に追加することをお勧めします

vim ~/.bashrc

bashrc.png

最後の2行にPATHを設定します。最後に更新します。

source ~/.bashrc
2.2 初期化パッケージ#####をダウンロードします

ソースコードが大きいため、直接ダウンロードが失敗したり、途中で遅くなったりする可能性があるため、ここでは最初に[初期化パッケージをダウンロード](https://link.jianshu.com/?t=http://mirrors.ustc.edu.cn/aosp-monthly/)します。約30ギガバイト

2.3 ダウンロード後、解凍してaospフォルダーを取得します#####
2.4 同期コード#####

すべてのコードは非表示の.repoディレクトリからチェックアウトされるため、aosp解凍後の.repoディレクトリのみがチェックアウトされます。 aosp同期を入力して、コードを取得します。

repo sync

3 コンパイル###

3.1 コンパイル環境を初期化します#####

ソースコードのルートディレクトリに移動します

source build/envsetup.sh
3.2 コンパイルオプション#####を選択します
lunch aosp_arm64-eng

または直接ランチを入力してください。

142377- 030890 ab8be7bc46.jpg

次に、必要なタイプを選択します。ここでは、最初のaosp_arm-engを選択します。

3.3 コンパイルを開始します#####
make -j4

ここでの-j4は、マシンのcpuコアの数に依存することに注意してください。ここでは4つのスレッドを使用します。次に、コンパイルプロセスに入ります。これは長いプロセスになります。消費される時間は必ずしもあなたのマシンの構成によるとは限りません、そして私はここでほぼ1時間40分を過ごしました(私のマシンはまだかなり素晴らしいようです、ハハ!)。緑の「####ビルドが正常に完了しました**** ####」の最後の文字列が表示されたら、成功したことを意味します

QQスクリーンショット20170929230721.png

3.4 シミュレーターを起動します#####

現在の端末に直接入力します

emulator

  1. png

QQスクリーンショット20170929231629.png

それでおしまい。

3.5 ミラーファイル#####

コンパイルされたファイルはoutディレクトリにあります。最後の3つの画像ファイルramdisk.img、system.img、userdata.img、およびそれらに対応するディレクトリツリールートは、 out / target / product / genericの下にあります。

3つのミラーファイルと3つのディレクトリツリー間の生成関係は、ROM生成の基礎です。

img.png

3.6 コンパイルによって生成されたファイルをクリーンアップします#####
make clobber

つまり、outディレクトリと以下のすべてのファイルが削除されます。

Recommended Posts

Androidソースコードコンパイルの概要(ubuntu16.04 + android P)
Androidソースコードのコンパイル(ubuntu16.04 64ビット)
centos7ソースコードからopensshをインストールする方法
ポッドマン入門
01.Pythonの概要
Pythonの紹介