これは非常に初歩的な質問だとは思いますが、驚いたことに、Android SDK ビルド ツールに関するドキュメントが見つかりませんでした。Android SDK ツールと Android SDK プラットフォーム ツールのほかに、添付のスクリーンショットに示すように、Android SDK ビルド ツールがたくさんあります。それらすべてについて説明しているソースを示して、特定のバージョンの Android SDK ビルド ツールがどのように選択されるかを明確にするのを手伝ってくれる人はいませんか?
編集済み (2014-02-27) :
私はまだすべてのツールを完全に理解しているわけではありません。以下は、Google の最新のドキュメントに基づいた私の限られた理解です。
- Android SDK ビルド ツールは、以前は Android SDK プラットフォーム ツールのコンポーネントでした。Android SDK プラットフォーム ツールから分離されたため、ビルド ツールは統合開発環境 (IDE) コンポーネントから独立して更新できます。
- Android SDK プラットフォーム ツールは、最新の Android プラットフォームの機能をサポートするようにカスタマイズされています。下位互換性があるため、アプリが古い Android プラットフォームをターゲットにしている場合でも、常にAndroid SDK プラットフォーム ツールの最新のアップデートを使用できます。
- SDK ツールはプラットフォームに依存せず、どの Android プラットフォームで開発する場合でも必要です。
Android SDK Build-tools を、インスタンスが 1 つしかなく更新の管理が容易なAndroid SDK Platform-toolsから取り除く理由がまだわかりません。考えられる唯一の理由は、一部のアプリがビルドに古いビルド コンポーネントに頼らなければならないことです。Google のドキュメントにはこれについて書かれていますが、その理由は説明されていません。リリース ノートを見ると、Android SDK Build-tools の更新は主にバグの修正や新しいプラットフォームのサポート追加を目的としていることがわかります。一部のアプリが古いバージョンの Android SDK Build-toolsを使用する唯一の理由は、それらのアプリがAndroid SDK Build-toolsの特定のバグに依存しているためです。これらのアプリは、これらのバグなしでビルドしないと正常に機能しません。Google が、ツールのこれらのバグが特定のアプリにとってなぜ重大なのかを示す例を 1 つまたは 2 つ挙げて、この点をもっとわかりやすく説明してくれるといいのですが。
ベストアンサー1
Android SDK Build-toolsのバージョンについては、答えは
デフォルトでは、Android SDK はビルド ツールの最新のダウンロード バージョンを使用します。
sdk.buildtools
Eclipse では、ファイル内のプロパティを使用して特定のバージョンを選択できますproject.properties
。
すべてのビルド ツールを説明する公式ページはないようです。Android チームがこれについて述べている内容は次のとおりです。
aidl、aapt、dexdump、dx などの [ビルド] ツールは、通常、Android ビルド ツールまたは Android 開発ツール (ADT) によって呼び出されるため、これらのツールを直接呼び出す必要はほとんどありません。原則として、必要に応じてビルド ツールまたは ADT プラグインを使用して呼び出す必要があります。
とにかく、ツール、プラットフォーム ツール、ビルド ツールの違いをまとめると次のようになります。
- Android SDK ツール
- 位置:
$ANDROID_HOME/tools
- 主なツール: ant スクリプト (APK をビルドするため) と
ddms
(デバッグ用)
- 位置:
- Android SDK プラットフォームツール
- 位置:
$ANDROID_HOME/platform-tools
- メインツール:
adb
(エミュレータまたは Android デバイスの状態を管理するため)
- 位置:
- Android SDK ビルドツール
- 位置:
$ANDROID_HOME/build-tools/$VERSION/
- ドキュメンテーション
- 主なツール:
aapt
(R.java および非整列、非署名 APK を生成する)、dx
(Java バイトコードを Dalvik バイトコードに変換する)、zipalign
(APK を最適化する)
- 位置: