Android SDKビルドツール、プラットフォームツール、ツールとは何ですか?そして、どのバージョンを使用する必要がありますか?


331

これは非常に初歩的な質問であることはわかっていますが、驚いたことに、Android SDKビルドツールに関するドキュメントは見つかりませんでした。Android SDKツールとAndroid SDKプラットフォームツールの他に、添付のスクリーンショットに示すように、Android SDKビルドツールがたくさんあります。誰かがそれらすべてを説明しているソースを指摘し、Android SDK Build-toolsの特定のバージョンがどのように選択されて使用されるのかを明確にするのに役立ちますか?

ここに画像の説明を入力してください

編集済み(2014-02-27)

私はまだすべてのツールを完全には理解していません。以下は、Googleの最新のドキュメントに基づく私の限られた理解です。

  • Android SDK Build-toolsは、以前はAndroid SDK Platform-toolsのコンポーネントでした。これらはAndroid SDK Platform-toolsから分離されているため、統合開発環境(IDE)コンポーネントとは無関係にビルドツールを更新できます。
  • Android SDKプラットフォームツールは、最新のAndroidプラットフォームの機能をサポートするようにカスタマイズされています。これらは下位互換性があるため、アプリが古いAndroidプラットフォームをターゲットにしている場合でも、常にAndroid SDK Platform-toolsの最新のアップデートを使用できます。
  • SDKツールはプラットフォームに依存しないため、開発しているAndroidプラットフォームに関係なく必要です。

単一のインスタンスを持ち、更新の管理が簡単なAndroid SDK Platform-toolsからAndroid SDK Build-toolsを削除する根拠はまだわかりません。私が考えることができる唯一の考えられる理由は、一部のアプリがそれらをビルドするために古いビルドコンポーネントに依存する必要があることです。Googleのドキュメントではこれについて言及していますが、その理由については説明していません。リリースノートを見ると、Android SDK Build-toolsのアップデートは主にバグの修正または新しいプラットフォームのサポートの追加にあることがわかります。いくつかのアプリは、以前のバージョンを使用するために私は考えることができることを唯一の理由のAndroid SDKのビルド・ツールは、彼らが特定のバグに依存しているということであるAndroidのSDKのビルドツール。これらのアプリは、これらのバグが組み込まれていないと正常に機能しません。ツールのこれらのバグが特定のアプリにとって重要である理由を示す1つまたは2つの例を挙げて、Googleがこれをよりよく説明できればと思います。

回答:


88

Android SDK Build-toolsのバージョンについて、答えは

デフォルトでは、Android SDKはビルドツールの最新のダウンロードバージョンを使用します。

ソース

Eclipseではsdk.buildtoolsproject.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バイトコードに変換する)、(zipalignAPKを最適化する)

ビルドツールのさまざまなバージョンの変更ログがあることを本当に嬉しく思います
Ewoks '18

@lacton私はプロジェクトに古いビルドツール(バージョン17)を使用しました。最新のビルドツールで再ビルドできますか?
user1156041 2016年

日食とスタジオに同じSDK +ビルドツールを使用できますか?
Muhammad Babar

38

Android SDKビルドツールは、Androidアプリケーションのデバッグ、ビルド、実行、テストに使用されます。

Android Build Toolsを使用して、コマンドラインまたはIDE(EclipseまたはAndroid Studio)から開発および作業できます。

Androidデバイスの接続とルート化にも使用されます(fastboot、adbなど)。

常に最新のものを使用してください。(推奨)

Androidビルドツールとコマンドの詳細


情報をありがとう。Androidビルドツールは「Androidデバイスの接続とルート化に使用されます」という意味ですか?adbisはAndroidプラットフォームツールの一部です。adbは、機能するためにAndroidビルドツールに依存していますか?もしそうなら、どうですか?気になります。
香港

adbは、コマンドラインからファイルをプッシュおよびプルするために使用できます。(より多くの機能。)fastbootを使用して、カスタムブートローダーをフラッシュできます。ただし、ターミナルを開発に使用しない限り、これらのコマンドはAndroid開発には役立ちません。IDE自体ですべてを利用できます。
ミプリアンブル2013年

1
私の理解では、Eclipseはadb.exeをバックグラウンドで使用しています。
香港

@mipreambleでは、Android SDKの違いは何ですか:ツール、プラットフォームツール、ビルドツール?ビルドツールなしでアプリをビルドして実行できます。
kreker 14年

1
@CJBSはい。バージョンの設定ツールにこだわると機能します。ビルドツールは、新しいバージョンのAndroidがリリースされると更新されます。最新のAndroidバージョン用にアプリケーションをコンパイルしてテストすることをお勧めします。
ミプリアンブル2015

16

ビルドツール、プラットフォームツール、ツールの違いの説明は、他の人に任せます。実用的な観点からは、2番目の質問に対する答えを知っていれば十分です。

どのバージョンを使用する必要がありますか?

回答:最新バージョンを使用してください。

GradleでAndroid Studioを使用buildToolsVersionしている場合は、build.gradle(Module:app)ファイルでを設定する必要があります。

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    ...
}

ビルドツールの最新バージョン番号はどこで入手できますか?

Android SDK Managerを開きます。

  • アンドロイドStudioでに行くツール > アンドロイド > SDKマネージャー > 外観&行動 > [システム設定 ]> [ AndroidのSDK
  • [ SDKツール ]タブを選択します。
  • リストからAndroid SDK Build Toolsを選択します
  • [パッケージの詳細を表示]をオンにします。

最後のアイテムは最新バージョンを表示します。

ここに画像の説明を入力してください

必ずそれがインストールされていることを確認してからなど、その番号を書きbuildToolsVersionbuild.gradle(モジュール:アプリ)。


1
24.0.2がある場合、24.0.1と24が廃止としてマークされていないのはなぜですか(スタンドアロンマネージャーでは廃止されたパッケージを表示/非表示にできます)?
user1803551 16

3
@ user1803551、最新のビルドツールバージョンを自動的に使用することが常に望ましいとは限りません。たとえば、特定のビルドツールバージョンでアプリを完全にテストしたとします。ビルドツールを更新する場合、変更によりアプリの一部が破損する可能性があります。開発者が古いビルドツールバージョンを引き続き使用できるようにすることで、開発者はビルドが期待どおりに機能し続けることを確認できます。廃止と宣言されたもののパターンを見ると、24と24.0.1が最終的に廃止と宣言されることがわかります。
Suragch 16

13

これらの詳細については、この Android-コマンドラインツールをご覧ください。


tl; dr:

SDKツール:

  1. Android SDK Manager(sdkmanager)
  2. AVDマネージャー(avdmanager)
  3. Dalvikデバッグモニターサーバー(ddms)

ビルドツール:

  1. 歌手
  2. proGuard
  3. ジップアライン
  4. 仕事

プラットフォームツール:

  1. adb
  2. aidl、aapt、dexdump、dx
  3. bmgr
  4. logcat

1
aidl、aapt、dexdump、dxこれらは、プラットフォームツールではなくビルドツールのコンポーネントです
Masum

9

正解は

Android SDKのビルド固有のコンポーネントをplatform-toolsコンポーネントから分離し、統合開発環境(IDE)コンポーネントとは独立してビルドツールを更新できるようにしました。

リンク(リビジョン17を展開)


4
情報ありがとうございました。新しいバージョンが改善されたばかりの古いバージョンである場合、Googleが1つのビルドツールしかなく、SDKツールやプラットフォームツールのように更新し続けないのはなぜですか?言い換えれば、そこに古いバージョンがある理由は何ですか?
香港、

2
私はこの回答に賛成票を投じようとしたところ、昨年すでに反対票を投じていることが判明しました。@Hong、ツールを更新すると一部の機能が非推奨になるため、古いビルドツールを保持します。ただし、アプリ開発者は、これらの機能に依存するソースコードを使用している場合があるため、古いコードベースをサポートするために古いバージョンを引き続き使用できます。
mateor

1
この場合、開発者が古いバージョンを使用する必要があるかどうかを正確に把握できるように、廃止予定の機能のリストを用意する必要がありますか?
香港

@ホン:それはまさに私が探していた質問です。今...答えを見つけるためにオフ:)
DerpyNerd

2

Android SDKビルドツールは、その名のとおりです。Androidアプリケーションをビルドするためのツール。最新のビルドツールバージョン(Android SDKを介してIDEによって自動的に選択される)を使用することは非常に重要ですが、古いバージョンが残されている理由は、下位互換性をサポートするためです。つまり、プロジェクトが古いバージョンのビルドツール。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.