Android SDK 빌드 도구, 플랫폼 도구 및 도구 란 무엇입니까? 어떤 버전을 사용해야합니까?


331

나는 이것이 매우 기초적인 질문이라는 것을 알고 있지만 놀랍게도 Android SDK Build-tools에 대한 문서를 찾을 수 없었습니다. Android SDK 도구 및 Android SDK 플랫폼 도구 외에도 첨부 된 스크린 샷과 같이 여러 가지 Android SDK 빌드 도구가 있습니다. 누구나 모든 소스를 설명하는 소스를 지적하고 특정 버전의 Android SDK Build-tools가 어떻게 사용되도록 선택했는지 명확히 할 수 있습니까?

여기에 이미지 설명을 입력하십시오

편집 (2014-02-27) :

여전히 모든 도구를 완전히 이해하지 못합니다. 다음은 Google의 최신 문서를 기반으로 한 제한된 이해입니다.

  • Android SDK Build-toolsAndroid SDK Platform-tools의 구성 요소였습니다 . 빌드 도구는 IDE (Integrated Development Environment) 컴포넌트와 독립적으로 업데이트 할 수 있도록 Android SDK Platform-tools와 분리되었습니다.
  • Android SDK 플랫폼 도구 는 최신 Android 플랫폼의 기능을 지원하도록 사용자 정의됩니다. 이전 버전과 호환되므로 항상 최신 Android SDK 플랫폼 도구 업데이트를 사용할 수 있습니다. 앱에서도 이전 Android 플랫폼을 대상으로합니다.
  • SDK 도구 는 플랫폼에 독립적이며 개발중인 Android 플랫폼에 관계없이 필요합니다.

나는 아직도 복용의 이론적 이해하지 못하는 안드로이드 SDK 빌드 - 도구 에서 안드로이드 SDK 플랫폼 도구 단일 인스턴스를 가지고 있으며, 업데이트를 쉽게 관리 할 수 있습니다. 내가 생각할 수있는 유일한 이유는 일부 앱이 이전 빌드 구성 요소를 사용하여 빌드해야하기 때문입니다. 구글 문서는 이것을 언급하지만 그 이유를 설명하지는 않는다. 릴리스 노트를 보면 Android SDK Build-tools의 업데이트 가 주로 버그를 수정하거나 새로운 플랫폼을 지원하기위한 것임을 알 수 있습니다. 이전 버전의 Android SDK Build-tools 를 사용하는 일부 앱에서 생각할 수있는 유일한 이유는 Android SDK Build-tools의 특정 버그에 의존 하기 때문입니다.. 이러한 앱은 이러한 버그로 빌드되지 않으면 정상적으로 작동하지 않습니다. 도구의 버그가 특정 앱에 중요한 이유를 보여주는 하나 또는 두 개의 예제를 제공하여 Google이 더 잘 설명 할 수 있기를 바랍니다.

답변:


88

Android SDK Build-tools 버전에 대한 대답은

기본적으로 Android SDK는 최신 다운로드 버전의 빌드 도구를 사용합니다.

출처

Eclipse sdk.buildtools에서 project.properties파일 의 특성 을 사용하여 특정 버전을 선택할 수 있습니다 .

모든 빌드 도구를 설명하는 공식 페이지가없는 것 같습니다. Android 팀이 이에 대해 말한 내용은 다음과 같습니다.

aidl, aapt, dexdump 및 dx와 같은 [build] 도구는 일반적으로 Android 빌드 도구 또는 ADT (Android Development Tools)에 의해 호출되므로 이러한 도구를 직접 호출 할 필요가 거의 없습니다. 일반적으로 빌드 도구 또는 ADT 플러그인을 사용하여 필요에 따라 호출해야합니다.

출처

어쨌든 다음은 도구, 플랫폼 도구 및 빌드 도구의 차이점을 종합 한 것입니다.

  • 안드로이드 SDK 도구
    • 위치: $ANDROID_HOME/tools
    • 주요 도구 : 개미 스크립트 (PHP 빌드 ddms용 ) 및 (디버깅 용)
  • 안드로이드 SDK 플랫폼 툴
    • 위치: $ANDROID_HOME/platform-tools
    • 기본 도구 : adb(에뮬레이터 또는 Android 장치의 상태를 관리하기 위해)
  • Android SDK 빌드 도구
    • 위치: $ANDROID_HOME/build-tools/$VERSION/
    • 선적 서류 비치
    • 주요 도구 : aapt(R.java 및 정렬되지 않은, 서명되지 않은 APK 생성), dx(Java 바이트 코드를 Dalvik 바이트 코드로 변환 zipalign하기위한 ) 및 (PSK 최적화)

다른 빌드 툴 버전에 대한 변경 로그가 있다는 것이 정말 기쁩니다
Ewoks

@lacton 내 프로젝트에 이전 빌드 도구 (버전 17)를 사용했습니다. 최신 빌드 도구를 사용하여 다시 빌드 할 수 있습니까?
user1156041

우리는 일식과 스튜디오에 동일한 SDK + 빌드 도구를 사용할 수 있습니까?
Muhammad Babar

38

Android SDK 빌드 도구는 Android 애플리케이션을 디버깅, 빌드, 실행 및 테스트하는 데 사용됩니다.

Android 빌드 도구를 사용하여 명령 행 또는 IDE (예 : Eclipse 또는 Android Studio)에서 개발하고 작업 할 수 있습니다.

또한 안드로이드 장치를 연결하고 루팅하는 데 사용됩니다 (fastboot, adb 등).

항상 최신을 사용하십시오 (권장).

Android 빌드 도구 및 명령에 대한 추가 정보


정보 주셔서 감사합니다. Android 빌드 도구가 "Android 기기를 연결하고 루팅하는 데 사용됨"을 의미합니까? adbis는 Android 플랫폼 도구의 일부입니다. adb는 Android 빌드 도구에 의존하여 작동합니까? 그렇다면 어떻게? 궁금합니다.
Hong

adb를 사용하여 명령 줄에서 파일을 밀어 넣을 수 있습니다. (추가 기능) fastboot를 사용하여 사용자 정의 부트 로더를 플래시 할 수 있습니다. 그러나 개발에 터미널을 사용하지 않으면 이러한 명령은 Android 개발에 유용하지 않습니다. IDE 자체에서 모든 것을 사용할 수 있습니다.
mipreamble

1
내 이해는 Eclipse가 백그라운드에서 adb.exe를 사용한다는 것입니다.
Hong

@mipreamble 그래서 안드로이드 SDK의 차이점은 무엇입니까 : 도구, 플랫폼 도구 및 빌드 도구? 빌드 도구없이 앱을 빌드하고 실행할 수 있습니다.
kreker

1
@CJBS 예. 버전에 설정된 도구를 사용하면 작동합니다. 빌드 도구는 새 버전의 Android가 출시 될 때 업데이트됩니다. 최신 Android 버전에 대해 애플리케이션을 컴파일하고 테스트하려고합니다.
mipreamble

16

빌드 도구, 플랫폼 도구 및 도구의 차이점을 다른 사람과 나누겠습니다. 실용적인 관점에서 두 번째 질문에 대한 답만 알면됩니다.

어떤 버전을 사용해야합니까?

답 : 최신 버전을 사용하십시오.

Gradle과 함께 Android Studio를 사용하는 사용자 buildToolsVersionbuild.gradle(모듈 : 앱) 파일 에서 설정해야 합니다.

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    ...
}

최신 버전의 빌드 도구는 어디서 구할 수 있습니까?

Android SDK 관리자를 엽니 다.

  • Android Studio에서 도구 > Android > SDK 관리자 > 모양 및 동작 > 시스템 설정 > Android SDK로 이동하십시오.
  • SDK 도구 탭을 선택 하십시오.
  • 목록에서 Android SDK 빌드 도구 를 선택하십시오.
  • 패키지 세부 사항 표시를 선택 하십시오 .

마지막 항목에는 최신 버전이 표시됩니다.

여기에 이미지 설명을 입력하십시오

설치되어 있는지 확인한 다음 (모듈 : 앱) buildToolsVersion에 해당 번호를 쓰십시오 build.gradle.


1
24.0.2가있는 경우 24.0.1 및 24가 더 이상 사용되지 않는 것으로 표시되지 않은 이유는 무엇입니까 (독립 실행 형 관리자가 사용되지 않는 패키지를 표시하거나 숨길 수 있음)?
user1803551

3
@ user1803551에서 최신 빌드 도구 버전을 자동으로 사용하는 것이 항상 바람직하지는 않습니다. 예를 들어, 특정 빌드 도구 버전으로 앱을 이미 철저히 테스트했다고 가정 해보십시오. 빌드 도구를 업데이트하면 변경으로 인해 앱에서 무언가가 깨질 수 있습니다. 개발자가 이전 빌드 도구 버전을 계속 사용할 수있게하면 빌드가 예상대로 계속 작동 할 수 있습니다. 더 이상 사용되지 않는 것으로 선언 된 패턴을 보면 24 및 24.0.1이 결국 사용되지 않는 것으로 선언 될 수 있습니다.
Suragch

13

Android 에서 자세한 내용을 확인할 수 있습니다 -명령 행 도구


tl; dr :

SDK 도구 :

  1. Android SDK 관리자 (sdkmanager)
  2. AVD 관리자 (avdmanager)
  3. Dalvik 디버그 모니터 서버 (ddms)

빌드 도구 :

  1. 서명자
  2. 프로 가드
  3. zipalign

플랫폼 도구 :

  1. adb
  2. aidl, aapt, dexdump 및 dx
  3. bmgr
  4. 로그 캣

1
aidl, aapt, dexdump 및 dx 이들은 플랫폼 도구가 아닌 빌드 도구의 구성 요소입니다
Masum

9

정답은

빌드 도구를 IDE (Integrated Development Environment) 컴포넌트와 독립적으로 업데이트 할 수 있도록 Android SDK의 빌드 특정 컴포넌트를 플랫폼 도구 컴포넌트에서 분리했습니다.

링크 (확장 개정 17)


4
정보 주셔서 감사합니다. 최신 버전이 이전 버전으로 개선 된 경우 Google에 빌드 도구가 하나만 있고 SDK 도구 및 플랫폼 도구처럼 계속 업데이트하지 않는 이유는 무엇입니까? 즉, 이전 버전을 사용하는 이유는 무엇입니까?
Hong

2
방금이 답변을 찬성하려고했지만 작년에 이미 찬성했습니다. @Hong, 그들은 도구를 업데이트 할 때 일부 기능이 더 이상 사용되지 않기 때문에 기존 빌드 도구를 유지합니다. 그러나 앱 개발자는 이러한 기능에 의존하는 소스 코드를 가지고 있으므로 이전 코드 기반을 지원하기 위해 이전 버전을 계속 사용할 수 있습니다.
mateor

1
이 경우 개발자가 더 이상 이전 버전을 사용해야하는지 정확히 알 수 있도록 더 이상 사용되지 않는 기능 목록을 제공해야합니까?
Hong

@Hong : 정확히 내가 찾던 질문입니다. 이제 ... 답을 찾기 위해 벗어
났습니다.

2

Android SDK 빌드 도구는 이름 그대로의 이름입니다. 최신 빌드 도구 버전 (Android SDK를 통해 IDE에서 자동으로 선택)을 사용하는 것이 매우 중요하지만 이전 버전이 남아있는 이유는 이전 버전과의 호환성을 지원해야하기 때문입니다. 이전 버전의 빌드 도구

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.