Androidソースコードのコンパイル(ubuntu16.04 64ビット)

image.png

目次##

最初の記事:androidソースコードのコンパイル(ubuntu16.04 64ビット)
第2章:[コンパイル補足(コードのダウンロードとメモリ不足について)](https://www.jianshu.com/p/abb82793dc67)

コンパイル手順##

1. ソースコードをダウンロードします; **** 2。コンパイル環境を構築します; **** 3。ソースコードをコンパイルします; **** 4。実行します。

コンパイルする前に、まずリポジトリツールとgittツールをダウンロードしてインストールします。

repoとgit

Googleは、AOSPプロジェクトのマルチウェアハウス管理にGitを使用しています。
必要性を促進するために、gitステートメントがカプセル化され、リポジトリが形成されます。

コンパイルフォルダを作成します##

$ mkdir source
$ cd source

このフォルダが配置されているディスクスペースは100Gを超える必要があり、コンパイル後に多くのスペースが必要になることに注意してください。

倉庫を初期化します##

$ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

Tsinghuaミラーサーバーを使用しました。

コードをダウンロード##

$ repo sync

同期時間は非常に長いので、夜寝る前に同期することをお勧めします。数時間かかります。

JDKをインストールします##

[AOSPオープンソース](https://android.googlesource.com/)では、メインブランチはUbuntuの長期バージョンを使用して開発およびテストされているため、Ubuntuを使用してコンパイルすることもお勧めします。以下に、これらのandroidバージョンをコンパイルできるUbuntuのさまざまなバージョンを示します。

Androidバージョン コンパイルに必要なUbuntuの最小バージョン
Android6.0からAOSPマスター Ubuntu 14.04
Android2.3.xからAndroid5.x Ubuntu 12.04
Android1.5からAndroid2.2.x Ubuntu 10.04

対応するsdkバージョン:

Androidバージョン 必要なJDKバージョンをコンパイルする
AOSPのAndroidメインライン OpenJDK8
Android5.xからandroid6.0 OpenJDK 7
Android2.3.xからAndroid4.4.x Oracle JDK 6
Android1.5からAndroid2.2.x Oracle JDK 5

* 今回はOpenJDK8を使用してください

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

依存ライブラリをインストールする##

$ sudo apt-get update
$ sudo apt-get install git-core gnupg flex bison gperf build-essential
$ sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386
$ sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache
$ sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

コンパイルを開始します##

ターゲットフォーマットの説明をコンパイルする#####

コンパイルターゲットの形式:BUILD-BUILDTYPE。たとえば、上記のaosp_arm-engのBUILDはaosp_armであり、BUILDTYPEはengです。

BUILDは、特定の機能の組み合わせの特定の名前、つまり、コンパイルされたイメージを実行できる環境を指します。その中で、aosp(Android Open Source Project)はAndroidオープンソースプロジェクトを表します。armは、システムがARMアーキテクチャプロセッサで実行されていることを意味します。 、arm64は64ビットarmアーキテクチャを指します。プロセッサ、x86はx86アーキテクチャプロセッサを指します。さらに、特定のNexusデバイスを表す単語がいくつかあります。以下は、一般的に使用されるデバイスコードとコンパイルターゲットです。

$ source build/envsetup.sh
$ lunch aosp_arm64-eng
============================================
PLATFORM_VERSION_CODENAME=Q
PLATFORM_VERSION=Q
TARGET_PRODUCT=aosp_arm64
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-131-generic-x86_64-Ubuntu-16.04.5-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=PI
OUT_DIR=out
============================================
$ make -j8

コンパイル速度を向上させるために、-jパラメーターを使用してコンパイルに参加するスレッドの数を設定します。たとえば、ここでは、同時にコンパイルする8つのスレッドを設定します。

コンパイルに関係するスレッドが多いほど、通常はマシンのカップのコア(現在のcpuのコアの2倍であるcore * 2)に従って決定されることに注意してください。

正常に実行された結果:

image.png

これを4時間コンパイルしました。 。 。 。

シミュレーターを実行します##

$ source build/envsetup.sh
$ lunch

昼食時に、設定したターゲットバージョンを選択します。

$ emulator

動作結果:

image.png

なぜ黒い画面なのかわかりませんが、とにかくコンパイルは問題ありません。勉強を続けてください! !

Recommended Posts

Androidソースコードのコンパイル(ubuntu16.04 64ビット)
Androidソースコードコンパイルの概要(ubuntu16.04 + android P)
Ubuntu18.04ソースコードはffmpeg4.1をコンパイルしてインストールします
Ubuntu環境でOpenJDK11ソースコードをダウンロードする
Ubuntu18.04はソースコードを介してOdoo14チュートリアルをインストールします
Ubuntu環境でOpenJDK11ソースコードを編集する
ubuntuカーネルコンパイル
ubuntu交換ソース
Ubuntuアップデートソフトウェアソース
UbuntuはEclipse + JDK + SDKAndroidを構築します
Ubuntuはオフラインソースを作成します
Ubuntu18.04.1のソースコードからOpenJDK8をコンパイルしてインストールします
Ubuntu sshAndroidフォン
ubuntu 14.04 16.0418.04アリババソースを使用
実行中のUbuntuバージョンに対応するカーネルソースコードを見つけます
Ubuntuチュートリアルを実行しているAndroidフォン
UbuntuにAndroidStudioをインストールする
Ubuntu12.04クロスコンパイルサーバーを構築する
CentosはJDK8ソースコードをコンパイルします
ubuntuインストールクロームブラウザ64ビット