Що таке інструменти для збирання Android SDK, платформи та інструменти? І яку версію слід використовувати?


331

Я знаю, що це дуже рудиментарне запитання, але, на мій подив, я не зміг знайти жодного документа про Android SDK Build-інструменти. Окрім Android SDK Tools та Android SDK Platform-інструментів, є ще маса інструментів Android SDK Build, як показано на доданому скріншоті. Чи може хтось вказати на джерело, яке пояснює їх усі, і допоможе з’ясувати, як певна версія Android SDK Build-інструментів вибирається для використання?

введіть тут опис зображення

Відредаговано (27.02.2014) :

Я все ще не повністю розумію всі інструменти. Нижче моє обмежене розуміння на основі останніх документів Google:

  • Android SDK Build-інструменти, що використовувались як компоненти платформи Android SDK . Вони були відокремлені від платформних інструментів Android SDK, завдяки чому інструменти збирання можна оновлювати незалежно від компонентів інтегрованого середовища розробки (IDE).
  • Платформи-інструменти Android SDK налаштовані для підтримки функцій останньої платформи Android. Вони сумісні з зворотним ходом, тому ви завжди використовуєте останнє оновлення платформних інструментів Android SDK, навіть ваш додаток орієнтовано на старіші платформи Android.
  • Інструменти SDK не залежать від платформи і не потрібні незалежно від того, на якій платформі Android ви розробляєте.

Я досі не розумію обґрунтування вилучення Android SDK Build-інструментів з Android SDK Platform-інструментів, який має єдиний екземпляр і легко керувати оновленням. Єдиною можливою причиною, про яку я можу придумати, є те, що деякі програми повинні будувати їх на старих компонентах побудови. Документ Google згадує це, але не пояснює, чому. Дивлячись на нотатки до випуску, ви помітите, що оновлення інструментів Android SDK Build - це насамперед для виправлення помилок або / додавання підтримки нових платформ. Єдиною причиною, яку я можу придумати для деяких додатків для використання більш старих версій Android SDK Build-інструментів, є те, що вони покладаються на певні помилки інструментів Android SDK Build.. Ці програми не функціонуватимуть нормально, не будуючись з цими помилками. Я хотів би, щоб Google міг пояснити це краще, наводячи один або два приклади, що показують, чому ці помилки в інструментах є критичними для певних програм.

Відповіді:


88

Про версію Android SDK Build-інструментів відповідь така

За замовчуванням Android SDK використовує останню завантажену версію Інструментів збирання.

Джерело

У Eclipse ви можете обрати конкретну версію, скориставшись sdk.buildtoolsвластивістю у project.propertiesфайлі.

Здається, немає офіційної сторінки, яка б пояснювала всі інструменти збирання. Ось що говорить про це команда Android.

Інструменти [build], такі як helpl, aapt, dexdump та dx, зазвичай називаються інструментами для збирання Android або інструментами розробки Android (ADT), тому вам рідко потрібно звертатися до цих інструментів безпосередньо. Як правило, вам слід покластися на інструменти збирання або плагін ADT, щоб викликати їх за потребою.

Джерело

У будь-якому випадку, тут є синтез відмінностей між інструментами, платформою та інструментами для збирання:

  • Інструменти Android SDK
    • Розташування: $ANDROID_HOME/tools
    • Основні інструменти: сценарії мурашок (для створення ваших APK) та ddms(для налагодження)
  • Платформи-інструменти Android SDK
    • Розташування: $ANDROID_HOME/platform-tools
    • Основний інструмент: adb(керування станом емулятора чи пристрою Android)
  • Android SDK Build-інструменти
    • Розташування: $ANDROID_HOME/build-tools/$VERSION/
    • Документація
    • Основні інструменти: aapt(для генерації R.java та нерівних, непідписаних APK), dx(для перетворення байт-коду Java в байт-код Далвіка) та zipalign(для оптимізації ваших APK)

Я дуже радий, що існує журнал змін для різних версій інструментів побудови
Ewoks

@lacton Я використовував старий інструмент збірки (версія 17) для свого проекту. Чи можу я відновити його за допомогою останнього інструменту збирання?
користувач1156041

Чи можемо ми використовувати ті ж інструменти sdk + build для затемнення та студії?
Мухаммед Бабар

38

Інструменти побудови Android SDK використовуються для налагодження, створення, запуску та тестування програми Android.

Інструменти побудови Android можна використовувати для розробки та роботи з командного рядка або IDE (тобто Eclipse або Android Studio).

Також використовується для підключення пристроїв Android та їх використання корінгів (fastboot, adb тощо).

Завжди використовуйте найновіші. (Рекомендовано)

Детальніше про інструменти та команди Android Build


Дякуємо за інформацію. Ви маєте на увазі, що інструменти для збирання Android використовуються для підключення пристроїв Android та їх викорінення? adbis частина інструментів Android Platform. Чи залежить функція adb від Android Build Tools? Якщо так, то як? Мені цікаво.
Гонг

adb може використовуватися для натискання та витягування файлів з командного рядка. (Більше функціональних можливостей.) Fastboot можна використовувати для прошивки користувальницьких завантажувачів. Однак ці команди не корисні для розробки Android, якщо ви не використовуєте термінал для розробки. Все доступно в самому IDE.
недіагноз

1
Я розумію, що Eclipse використовує adb.exe у фоновому режимі.
Гонг

@mipreamble. Яка різниця між Android sdk: інструментами, платформою та інструментами для збирання? Я можу створювати та запускати свою програму без інструментів збирання.
крекер

1
@CJBS Так. Дотримуватися встановлених інструментів для версії буде працювати. Інструменти збирання оновлюються як коли з’являється нова версія Android. Ви хочете скласти та протестувати додаток для останніх версій Android.
неділя

16

Про різницю між інструментами збирання, інструментами платформи та інструментами я залишу інших. З практичної точки зору вам потрібно знати лише відповідь на ваше друге питання:

Яку версію слід використовувати?

Відповідь: Використовуйте останню версію.

Для тих, хто використовує Android Studio з Gradle, buildToolsVersionнеобхідно встановити у build.gradleфайлі (Модуль: додаток).

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    ...
}

Де я можу отримати останню кількість версій Інструментів збирання?

Відкрийте диспетчер SDK для Android.

  • У Android Studio перейдіть до Інструменти > Android > Менеджер SDK > Зовнішній вигляд та поведінка > Налаштування системи > Android SDK
  • Виберіть вкладку Інструменти SDK .
  • Виберіть зі списку інструменти побудови SDK для Android
  • Поставте прапорець Показати деталі пакета .

В останньому пункті буде показана остання версія.

введіть тут опис зображення

Переконайтесь, що він встановлений, а потім запишіть це число як buildToolsVersionв build.gradle(Модуль: додаток).


1
Якщо є 24.0.2, чому 24.0.1 і 24 не позначаються застарілими (автономний менеджер дозволяє показувати / приховувати застарілі пакети)?
user1803551

3
@ user1803551, не завжди бажано автоматично використовувати найсвіжішу версію інструментів побудови. Наприклад, скажіть, що ви вже ретельно протестували свій додаток із певною версією інструментів збирання. Якщо ви оновлюєте інструменти збирання, можливо, що-небудь зміна може зламати щось у вашому додатку. Дозволити розробникам продовжувати використовувати старі версії інструментів збирання дозволяє їм бути впевненими, що їх збірка буде працювати як слід. Якщо ви подивитеся на шаблон того, що оголошено застарілим, ви можете побачити, що 24 і 24.0.1 згодом будуть оголошені застарілими.
Сурагч

13

Детальну інформацію про них ви можете знайти в цьому інструменті Android - Command Line


tl; dr:

Інструменти SDK:

  1. Android SDK Manager (sdkmanager)
  2. AVD Manager (avdmanager)
  3. Сервер монітора налагодження Dalvik (ддмс)

Інструменти побудови:

  1. підписант
  2. proGuard
  3. zipalign
  4. роботаb

Інструменти платформи:

  1. adb
  2. helpl, aapt, dexdump та dx
  3. bmgr
  4. logcat

1
aidl, aapt, dexdump та dx - це компоненти інструментів побудови, а не платформні інструменти
Masum

9

Правильна відповідь

Розв'язуйте специфічні для збірки компоненти Android SDK від компонента платформи-інструменти, щоб інструменти збирання можна було оновити незалежно від компонентів інтегрованого середовища розробки (IDE).

посилання (розгорнути редакцію 17)


4
Спасибі за інформацію. Якщо новіші версії - це лише вдосконалені старіші версії, чому Google не має лише одних інструментів Build і не оновлює їх як інструменти SDK та платформи? Іншими словами, що є причиною існування старих версій?
Hong

2
Я просто намагався підтримати цю відповідь, але виявилося, що я вже схвалив її минулого року! @Hong, вони зберігають старі інструменти збирання, оскільки під час оновлення інструментів деякі функції старіють. Але розробники додатків можуть мати вихідний код, який покладається на ці функції, тому вони підтримують старі версії для підтримки цих старих баз кодів.
товариш

1
У цьому випадку, чи повинен вони мати перелік застарілих функцій, щоб розробники могли точно знати, чи їм все-таки доводиться використовувати старі версії?
Гонг

@Hong: Саме це питання я шукав. Тепер ... піти, щоб знайти відповідь :)
DerpyNerd

2

Інструменти збирання SDK для Android - це саме те, про що говорить назва; інструменти для створення Android-додатків. Дуже важливо використовувати останню версію інструментів збирання (вибрану автоматично вашим IDE через SDK для Android), але причина, коли старі версії залишаються там, - це підтримка відсталої сумісності, тобто якщо ваші проекти залежать від старіші версії Інструментів збирання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.