Các công cụ xây dựng, công cụ nền tảng và công cụ SDK của Android là gì? Và phiên bản nào nên được sử dụng?


330

Tôi biết đây là một câu hỏi rất thô sơ, nhưng thật ngạc nhiên, tôi không thể tìm thấy bất kỳ tài liệu nào về các công cụ xây dựng SDK Android. Bên cạnh Công cụ SDK Android và Công cụ nền tảng SDK Android, có một loạt các công cụ Xây dựng SDK Android như được hiển thị trong ảnh chụp màn hình được nối thêm. Bất cứ ai cũng có thể chỉ ra một nguồn giải thích tất cả trong số họ và giúp làm rõ cách sử dụng một phiên bản nhất định của Công cụ xây dựng SDK Android để sử dụng?

nhập mô tả hình ảnh ở đây

Đã chỉnh sửa (2014 / 02-27) :

Tôi vẫn chưa hiểu đầy đủ tất cả các công cụ. Sau đây là hiểu biết hạn chế của tôi dựa trên các tài liệu mới nhất của Google:

  • Công cụ xây dựng SDK Android được sử dụng để trở thành thành phần của công cụ Nền tảng SDK Android . Chúng đã được tách rời khỏi các công cụ Nền tảng SDK của Android, để các công cụ xây dựng có thể được cập nhật độc lập với các thành phần môi trường phát triển tích hợp (IDE).
  • Các công cụ nền tảng SDK Android được tùy chỉnh để hỗ trợ các tính năng của nền tảng Android mới nhất. Chúng tương thích ngược để bạn luôn sử dụng bản cập nhật mới nhất của Nền tảng SDK Android - ngay cả ứng dụng của bạn nhắm vào các nền tảng Android cũ hơn.
  • Các công cụ SDK độc lập với nền tảng và được yêu cầu cho dù bạn đang phát triển nền tảng Android nào.

Tôi vẫn không hiểu lý do căn bản của việc lấy các công cụ Xây dựng SDK Android ra khỏi các công cụ Nền tảng SDK Android có một phiên bản duy nhất và dễ quản lý cập nhật. Lý do duy nhất có thể mà tôi có thể nghĩ đến là một số ứng dụng phải dựa vào các thành phần xây dựng cũ hơn để xây dựng chúng. Tài liệu của Google đề cập đến điều này, nhưng không giải thích tại sao. Nhìn vào ghi chú phát hành, bạn sẽ nhận thấy rằng các bản cập nhật của Android SDK Build-tools chủ yếu để sửa lỗi hoặc / thêm hỗ trợ cho các nền tảng mới. Lý do duy nhất mà tôi có thể nghĩ đến đối với một số ứng dụng sử dụng các phiên bản cũ hơn của Công cụ xây dựng SDK Android là chúng dựa vào một số lỗi nhất định của công cụ xây dựng SDK Android. Các ứng dụng này sẽ không hoạt động bình thường nếu không được xây dựng với các lỗi này. Tôi ước Google có thể giải thích điều này tốt hơn bằng cách đưa ra một hoặc hai ví dụ cho thấy tại sao các lỗi này trong các công cụ lại nghiêm trọng đối với một số ứng dụng nhất định.

Câu trả lời:


88

Về phiên bản công cụ xây dựng SDK Android , câu trả lời là

Theo mặc định, SDK Android sử dụng phiên bản Công cụ xây dựng được tải xuống gần đây nhất.

Nguồn

Trong Eclipse, bạn có thể chọn một phiên bản cụ thể bằng cách sử dụng thuộc sdk.buildtoolstính trong project.propertiestệp.

Dường như không có trang chính thức giải thích tất cả các công cụ xây dựng. Dưới đây là những gì nhóm Android nói về điều này.

Các công cụ [build], chẳng hạn như Aidl, aapt, dexdump và dx, thường được gọi bởi các công cụ xây dựng Android hoặc Công cụ phát triển Android (ADT), vì vậy bạn hiếm khi cần phải gọi trực tiếp các công cụ này. Theo nguyên tắc chung, bạn nên dựa vào các công cụ xây dựng hoặc plugin ADT để gọi chúng khi cần thiết.

Nguồn

Dù sao, đây là tổng hợp của sự khác biệt giữa các công cụ, công cụ nền tảng và công cụ xây dựng:

  • Công cụ SDK Android
    • Vị trí: $ANDROID_HOME/tools
    • Các công cụ chính: ant script (để xây dựng APK của bạn) và ddms(để gỡ lỗi)
  • Công cụ nền tảng SDK Android
    • Vị trí: $ANDROID_HOME/platform-tools
    • Công cụ chính: adb(để quản lý trạng thái của trình giả lập hoặc thiết bị Android)
  • Công cụ xây dựng SDK Android
    • Vị trí: $ANDROID_HOME/build-tools/$VERSION/
    • Tài liệu
    • Các công cụ chính: aapt(để tạo R.java và APK không dấu, không dấu), dx(để chuyển đổi mã byte Java sang mã byte Dalvik) và zipalign(để tối ưu hóa APK của bạn)

Tôi thực sự vui mừng vì có nhật ký thay đổi cho các phiên bản công cụ xây dựng khác nhau
Ewoks

@lacton Tôi đã sử dụng công cụ xây dựng cũ (phiên bản 17) cho dự án của mình. Tôi có thể xây dựng lại nó bằng công cụ xây dựng mới nhất không?
dùng1156041

Chúng ta có thể sử dụng cùng một công cụ xây dựng sdk + cho nhật thực và studio không?
Muhammad Babar

38

Các công cụ xây dựng SDK Android được sử dụng để gỡ lỗi, xây dựng, chạy và kiểm tra ứng dụng Android.

Công cụ xây dựng Android có thể được sử dụng để phát triển và hoạt động từ dòng lệnh hoặc IDE (tức là Eclipse hoặc Android Studio).

Cũng được sử dụng để kết nối các thiết bị Android và root chúng. (Fastboot, adb và hơn thế nữa ..)

Luôn luôn sử dụng mới nhất. (Khuyến nghị)

Thông tin thêm về các công cụ và lệnh của Android Build


Cảm ơn bạn về thông tin. Bạn có nghĩa là Android Build Tools là "được sử dụng để kết nối các thiết bị Android và root chúng"? adbis là một phần của Công cụ nền tảng Android. Adb có phụ thuộc vào Android Build Tools để hoạt động không? Nếu vậy thì thế nào? Tôi tò mò.
Hồng

adb có thể được sử dụng để đẩy và kéo tập tin từ dòng lệnh. (Nhiều chức năng hơn.) Fastboot có thể được sử dụng để flash bộ tải khởi động tùy chỉnh. Tuy nhiên, các lệnh này không hữu ích cho phát triển Android trừ khi bạn sử dụng thiết bị đầu cuối để phát triển. Mọi thứ đều có sẵn trong IDE.
mipreamble

1
Hiểu biết của tôi là Eclipse sử dụng adb.exe trong nền.
Hồng

@mipreamble vậy sự khác biệt giữa sdk android: công cụ, công cụ nền tảng và công cụ xây dựng là gì? Tôi có thể xây dựng và chạy ứng dụng của mình mà không cần công cụ xây dựng.
kreker

1
@CJBS Vâng. Gắn bó với các công cụ thiết lập cho một phiên bản sẽ hoạt động. Các công cụ xây dựng được cập nhật khi có phiên bản Android mới. Bạn muốn biên dịch và kiểm tra ứng dụng cho các phiên bản Android mới nhất.
mipreamble

16

Tôi sẽ để lại cuộc thảo luận về sự khác biệt giữa Công cụ xây dựng, Công cụ nền tảng và Công cụ cho người khác. Từ quan điểm thực tế, bạn chỉ cần biết câu trả lời cho câu hỏi thứ hai của mình:

Phiên bản nào nên được sử dụng?

Trả lời: Sử dụng phiên bản mới nhất.

Đối với những người sử dụng Android Studio với Gradle, buildToolsVersionphải đặt trong build.gradletệp (Mô-đun: ứng dụng).

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    ...
}

Tôi lấy số phiên bản mới nhất của Công cụ xây dựng ở đâu?

Mở Trình quản lý SDK Android.

  • Trong Android Studio, đi tới Công cụ > Android > Trình quản lý SDK > Giao diện & Hành vi > Cài đặt hệ thống > SDK Android
  • Chọn tab Công cụ SDK .
  • Chọn Công cụ xây dựng SDK Android từ danh sách
  • Kiểm tra Hiển thị chi tiết gói .

Mục cuối cùng sẽ hiển thị phiên bản mới nhất.

nhập mô tả hình ảnh ở đây

Hãy chắc chắn rằng nó đã được cài đặt và sau đó viết rằng con số như buildToolsVersiontrong build.gradle(Học phần: ứng dụng).


1
Nếu có 24.0.2, tại sao 24.0.1 và 24 không được đánh dấu là lỗi thời (trình quản lý độc lập cho phép hiển thị / ẩn các gói lỗi thời)?
dùng1804551

3
@ user1804551, không phải lúc nào cũng mong muốn tự động sử dụng phiên bản công cụ xây dựng gần đây nhất. Ví dụ: giả sử bạn đã kiểm tra kỹ ứng dụng của mình với phiên bản công cụ xây dựng cụ thể. Nếu bạn cập nhật các công cụ xây dựng của mình, có thể một thay đổi ở đó có thể phá vỡ một cái gì đó trong ứng dụng của bạn. Cho phép các nhà phát triển tiếp tục sử dụng các phiên bản công cụ xây dựng cũ cho phép họ chắc chắn rằng bản dựng của họ sẽ tiếp tục hoạt động như mong đợi. Nếu bạn nhìn vào mô hình của những gì được tuyên bố là lỗi thời, bạn có thể thấy rằng 24 và 24.0.1 cuối cùng sẽ được tuyên bố là lỗi thời.
Suragch

13

Bạn có thể tìm thấy chi tiết về những điều này trong Android - Công cụ dòng lệnh


tl; dr:

Công cụ SDK:

  1. Trình quản lý SDK Android (sdkmanager)
  2. Trình quản lý AVD (avdmanager)
  3. Máy chủ theo dõi gỡ lỗi Dalvik (ddms)

Công cụ xây dựng:

  1. người ký
  2. proGuard
  3. zipalign
  4. công việc

Công cụ nền tảng:

  1. quảng cáo
  2. viện trợ, aapt, dexdump, và dx
  3. bmgr
  4. logcat

1
Aidl, aapt, dexdump và dx đây là những thành phần của công cụ xây dựng không phải công cụ nền tảng
Masum

9

Câu trả lời đúng là

Phân tách các thành phần dành riêng cho xây dựng của SDK Android khỏi thành phần công cụ nền tảng, để các công cụ xây dựng có thể được cập nhật độc lập với các thành phần môi trường phát triển tích hợp (IDE).

liên kết (mở rộng Sửa đổi 17)


4
Cảm ơn bạn đã thông tin. Nếu các phiên bản mới hơn chỉ là phiên bản cũ được cải tiến, tại sao Google không có một Công cụ xây dựng và tiếp tục cập nhật nó như Công cụ SDK và Công cụ nền tảng? Nói cách khác, lý do để có các phiên bản cũ hơn ở đó là gì?
Hồng

2
Tôi chỉ cố gắng nâng cao câu trả lời này nhưng hóa ra tôi đã nâng cấp nó vào năm ngoái! @Hong, họ giữ các công cụ xây dựng cũ bởi vì khi họ cập nhật các công cụ, một số tính năng trở nên không dùng nữa. Nhưng các nhà phát triển ứng dụng có thể có mã nguồn dựa trên các tính năng đó để họ giữ các phiên bản cũ có sẵn để hỗ trợ các cơ sở mã cũ đó.
đời

1
Trong trường hợp này, họ có nên có một danh sách các tính năng không dùng nữa để các nhà phát triển có thể biết chính xác liệu họ có còn phải sử dụng các phiên bản cũ không?
Hồng

@Hong: Đó chính xác là câu hỏi tôi đang tìm kiếm. Bây giờ ... tắt để tìm câu trả lời :)
DerpyNerd

2

Công cụ xây dựng SDK Android là chính xác những gì tên gọi chúng là; Các công cụ để xây dựng Ứng dụng Android. Điều rất quan trọng là sử dụng phiên bản công cụ xây dựng mới nhất (được IDE tự động chọn thông qua SDK Android) nhưng lý do các phiên bản cũ còn lại là để hỗ trợ khả năng tương thích ngược, đó là nếu các dự án của bạn phụ thuộc vào các phiên bản cũ hơn của Công cụ xây dựng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.