Apa alat build-up Android SDK, platform-tools dan alat-alat? Dan versi mana yang harus digunakan?

331

Saya tahu ini adalah pertanyaan yang sangat mendasar, tetapi yang mengejutkan saya, saya tidak dapat menemukan dokumen apa pun tentang Android SDK Build-tools. Selain Android SDK Tools dan Android SDK Platform-tools, ada banyak Android SDK Build-tools seperti yang ditunjukkan dalam screenshot yang ditambahkan. Adakah yang bisa menunjuk ke sumber yang menjelaskan semuanya dan membantu menjelaskan bagaimana versi tertentu dari Android SDK Build-tools dipilih untuk digunakan?

masukkan deskripsi gambar di sini

Diedit (2014-02-27) :

Saya masih belum sepenuhnya memahami semua alat. Berikut ini adalah pemahaman saya yang terbatas berdasarkan dokumen terbaru Google:

  • Android SDK Build-tools digunakan untuk menjadi komponen dari Android SDK Platform-tools . Mereka telah dipisahkan dari Android SDK Platform-tools, sehingga alat pembangunan dapat diperbarui secara terpisah dari komponen lingkungan pengembangan terintegrasi (IDE).
  • Android SDK Platform-tools disesuaikan untuk mendukung fitur platform Android terbaru. Mereka kompatibel ke belakang sehingga Anda selalu menggunakan pembaruan terbaru dari Android SDK Platform-tools bahkan aplikasi Anda menargetkan platform Android yang lebih tua.
  • Alat SDK adalah platform independen dan diperlukan tidak peduli platform Android mana yang Anda kembangkan.

Saya masih tidak mengerti alasan mengeluarkan Android SDK Build-tools dari Android SDK Platform-tools yang memiliki satu instance dan mudah mengelola pembaruan. Satu-satunya alasan yang mungkin bisa saya pikirkan adalah bahwa beberapa aplikasi harus bergantung pada komponen build yang lebih lama untuk membuatnya. Dokumen Google menyebutkan ini, tetapi tidak menjelaskan alasannya. Melihat catatan rilis, Anda akan melihat bahwa pembaruan Android SDK Build-tools terutama untuk memperbaiki bug atau / menambahkan dukungan untuk platform baru. Satu-satunya alasan yang bisa saya pikirkan untuk beberapa aplikasi untuk menggunakan versi Android SDK Build-tools yang lebih lama adalah karena mereka mengandalkan bug tertentu dari Android SDK Build-tools. Aplikasi ini tidak akan berfungsi secara normal tanpa dibangun dengan bug ini. Saya berharap Google dapat menjelaskan ini dengan lebih baik dengan memberikan satu atau dua contoh yang menunjukkan mengapa bug dalam alat ini sangat penting untuk aplikasi tertentu.

Hong
sumber

Jawaban:

88

Tentang versi Android SDK Build-tools , jawabannya adalah

Secara default, Android SDK menggunakan versi Build Tools terbaru yang diunduh.

Sumber

Di Eclipse, Anda dapat memilih versi tertentu dengan menggunakan sdk.buildtoolsproperti diproject.properties file.

Tampaknya tidak ada halaman resmi yang menjelaskan semua alat pembuatan. Inilah yang dikatakan tim Android tentang hal ini.

Alat [build], seperti aidl, aapt, dexdump, dan dx, biasanya dipanggil oleh Android build tools atau Android Development Tools (ADT), jadi Anda jarang perlu memanggil alat ini secara langsung. Sebagai aturan umum, Anda harus mengandalkan alat build atau plugin ADT untuk memanggil mereka sesuai kebutuhan.

Sumber

Bagaimanapun, ini adalah sintesis dari perbedaan antara alat, platform-alat dan alat-bangun:

  • Alat Android SDK
    • Lokasi: $ANDROID_HOME/tools
    • Alat utama: skrip semut (untuk membangun APK Anda) dan ddms(untuk debugging)
  • Android SDK Platform-tools
    • Lokasi: $ANDROID_HOME/platform-tools
    • Alat utama: adb(untuk mengelola keadaan emulator atau perangkat Android)
  • Android SDK Build-tools
    • Lokasi: $ANDROID_HOME/build-tools/$VERSION/
    • Dokumentasi
    • Alat utama: aapt(untuk menghasilkan R.java dan APK yang tidak selaras, tidak ditandatangani), dx(untuk mengkonversi bytecode Java ke bytecode Dalvik), dan zipalign(untuk mengoptimalkan APK Anda)
lakton
sumber
Saya sangat senang bahwa ada log perubahan untuk versi alat build yang berbeda
Ewoks
@lacton Saya menggunakan alat build lama (versi 17) untuk proyek saya. Bisakah saya membangun kembali dengan alat build terbaru?
user1156041
Bisakah kita menggunakan alat sdk + build yang sama untuk eclipse dan studio?
Muhammad Babar
38

Perangkat Android SDK build digunakan untuk men-debug, membangun, menjalankan dan menguji aplikasi Android.

Android Build Tools dapat digunakan untuk mengembangkan dan bekerja dari command line atau IDE (yaitu Eclipse atau Android Studio).

Juga digunakan untuk menghubungkan perangkat Android dan me-root-nya. (Fastboot, adb, dan lainnya ..)

Selalu gunakan yang terbaru. (Disarankan)

Info Lebih Lanjut tentang Android Bangun alat dan perintah

mipreamble
sumber
Terimakasih atas infonya. Apakah maksud Anda bahwa Android Build Tools "digunakan untuk menghubungkan perangkat Android dan me-rootingnya"? adbis bagian dari Alat Platform Android. Apakah adb bergantung pada Android Build Tools agar berfungsi? Jika ya, bagaimana caranya? Saya penasaran.
Hong
adb dapat digunakan untuk mendorong dan menarik file dari baris perintah. (Lebih banyak fungsi.) Fastboot dapat digunakan untuk mem-flash loader boot kustom. Namun perintah ini tidak berguna untuk pengembangan Android kecuali Anda menggunakan terminal untuk pengembangan. Semuanya tersedia di IDE itu sendiri.
mipreamble
1
Pemahaman saya adalah Eclipse menggunakan adb.exe di latar belakang.
Hong
@mipreamble jadi apa perbedaan antara SDK android: alat, platform-alat dan alat-bangun? Saya dapat membangun dan menjalankan aplikasi saya tanpa alat bantu pembangunan.
kreker
1
@ CJBS Ya. Tetap menggunakan alat set untuk suatu versi akan berfungsi. Alat Bangun dimutakhirkan ketika versi baru Android masuk. Anda ingin mengkompilasi dan menguji aplikasi untuk versi Android terbaru.
mipreamble
16

Saya akan meninggalkan diskusi tentang perbedaan antara Alat Bangun, Alat Platform, dan Alat untuk orang lain. Dari sudut pandang praktis, Anda hanya perlu mengetahui jawaban untuk pertanyaan kedua Anda:

Versi mana yang harus digunakan?

Jawab: Gunakan versi terbaru.

Bagi mereka yang menggunakan Android Studio dengan Gradle, buildToolsVersionharus diatur dalam file build.gradle(Module: app).

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    ...
}

Di mana saya mendapatkan nomor versi terbaru dari Alat Bangun?

Buka Android SDK Manager.

  • Di Android Studio, buka Tools > Android > SDK Manager > Appearance & Behavior > System Settings > Android SDK
  • Pilih Alat SDK tab .
  • Pilih Android SDK Build Tools dari daftar
  • Periksa Tampilkan Detail Paket .

Item terakhir akan menampilkan versi terbaru.

masukkan deskripsi gambar di sini

Pastikan sudah terpasang lalu tulis nomor itu sebagai buildToolsVersionin build.gradle(Module: app).

Suragch
sumber
1
Jika ada 24.0.2, mengapa 24.0.1 dan 24 tidak ditandai sebagai usang (manajer mandiri memungkinkan untuk menampilkan / menyembunyikan paket usang)?
user1803551
3
@ user1803551, tidak selalu diinginkan untuk secara otomatis menggunakan versi alat build terbaru. Misalnya, Anda telah menguji aplikasi Anda secara menyeluruh dengan versi alat bangun khusus. Jika Anda memperbarui alat bangunan Anda, ada kemungkinan bahwa perubahan di sana dapat merusak sesuatu di aplikasi Anda. Mengizinkan pengembang tetap menggunakan versi alat build lama memungkinkan mereka memastikan bahwa build mereka akan tetap berfungsi seperti yang diharapkan. Jika Anda melihat pola apa yang dinyatakan usang, Anda dapat melihat bahwa 24 dan 24.0.1 pada akhirnya akan dinyatakan usang.
Suragch
13

Anda dapat menemukan detailnya di Android ini - Command Line Tools


tl; dr:

Alat SDK:

  1. Android SDK Manager (sdkmanager)
  2. AVD Manager (avdmanager)
  3. Dalvik Debug Monitor Server (ddms)

Alat Bangun:

  1. penandatangan
  2. proGuard
  3. zipalign
  4. pekerjaanb

Alat Platform:

  1. adb
  2. aidl, aapt, dexdump, dan dx
  3. bmgr
  4. logcat
Suhaib
sumber
1
aidl, aapt, dexdump, dan dx ini adalah komponen alat bangun bukan alat platform
Masum
9

Jawaban yang benar adalah

Memisahkan komponen build-spesifik dari Android SDK dari komponen platform-tools, sehingga tools build dapat diperbarui secara terpisah dari komponen-komponen lingkungan pengembangan terintegrasi (IDE).

tautan (perluas Revisi 17)

Kreker
sumber
4
Terima kasih untuk informasinya. Jika versi yang lebih baru hanya versi yang lebih lama, mengapa Google tidak hanya memiliki satu Build-tools dan terus memperbaruinya seperti SDK Tools dan Platform-tools? Dengan kata lain, apa alasan untuk memiliki versi yang lebih lama di sana?
Hong
2
Saya baru saja mencoba untuk memvotasikan jawaban ini tetapi ternyata saya sudah menaikkannya tahun lalu! @Hong, mereka menyimpan tool build lama karena ketika mereka memperbarui tools, beberapa fitur menjadi usang. Tetapi pengembang aplikasi mungkin memiliki kode sumber yang bergantung pada fitur-fitur itu sehingga mereka menyediakan versi lama untuk mendukung basis kode lama itu.
mateor
1
Dalam hal ini, haruskah mereka memiliki daftar fitur usang sehingga pengembang dapat mengetahui dengan pasti apakah mereka masih harus menggunakan versi lama?
Hong
@ Yong: Itulah pertanyaan yang saya cari. Sekarang ... pergi untuk mencari jawaban :)
DerpyNerd
2

Android SDK Build Tools persis seperti yang dikatakan namanya; alat untuk membangun Aplikasi Android. Sangat penting untuk menggunakan versi alat alat terbaru (dipilih secara otomatis oleh IDE Anda melalui Android SDK) tetapi alasan mengapa versi lama dibiarkan ada adalah untuk mendukung kompatibilitas mundur, yaitu jika proyek Anda bergantung pada versi Alat Bangun yang lebih lama.

Ojonugwa Jude Ochalifu
sumber