sdkmanager

sdkmanager là một công cụ dòng lệnh cho phép bạn xem, cài đặt, cập nhật và gỡ cài đặt các gói cho SDK Android. Nếu đang sử dụng Android Studio, thì bạn không cần dùng công cụ này mà vẫn có thể quản lý các gói SDK từ IDE.

Công cụ sdkmanager có trong gói Công cụ dòng lệnh của SDK Android. Nếu muốn sử dụng Trình quản lý SDK để cài đặt một phiên bản công cụ dòng lệnh, hãy làm theo các bước sau:

  1. Tải gói công cụ dòng lệnh mới nhất xuống từ trang Android Studio rồi giải nén gói này.
  2. Di chuyển thư mục cmdline-tools đã giải nén vào một thư mục mới mà bạn chọn, chẳng hạn như android_sdk. Thư mục mới này là thư mục SDK Android của bạn.
  3. Trong thư mục cmdline-tools chưa giải nén, hãy tạo một thư mục con có tên là latest.
  4. Di chuyển nội dung trong thư mục cmdline-tools gốc, bao gồm cả thư mục lib, thư mục bin, tệp NOTICE.txt và tệp source.properties vào thư mục latest mới tạo. Giờ đây, bạn có thể sử dụng các công cụ dòng lệnh ở vị trí này.
  5. (Không bắt buộc) Để cài đặt phiên bản trước của công cụ dòng lệnh, hãy chạy lệnh sau:

    android_sdk/cmdline-tools/latest/bin/sdkmanager --install "cmdline-tools;version"
    
    Thay thế version bằng phiên bản bạn muốn cài đặt, ví dụ: 5.0.

Cách sử dụng

Bạn có thể sử dụng sdkmanager để liệt kê các gói đã cài đặt và có sẵn, cũng như cài đặt và cập nhật gói. Để biết thêm thông tin chi tiết, hãy xem các phần sau.

Liệt kê các gói đã cài đặt và có sẵn

Để liệt kê các gói đã cài đặt và có sẵn, hãy dùng cú pháp sau:

sdkmanager --list [options] \
           [--channel=channel_id] // Channels: 0 (stable), 1 (beta), 2 (dev), or 3 (canary)

Sử dụng tuỳ chọn channel để thêm gói từ một kênh lên đến và bao gồm cả channel_id. Ví dụ: chỉ định kênh canary để liệt kê gói của tất cả các kênh.

Cài đặt gói

Để cài đặt gói, hãy dùng cú pháp sau:

sdkmanager packages [options]

Đối số packages là một đường dẫn kiểu SDK như hiển thị với lệnh --list, được đặt trong dấu ngoặc kép. Ví dụ: "build-tools;34.0.0" hoặc "platforms;android-33".

Bạn có thể truyền nhiều đường dẫn gói (được phân tách bằng một khoảng trắng) nhưng mỗi đường dẫn phải được đặt trong một cặp dấu ngoặc kép riêng. Ví dụ: dưới đây là cách cài đặt các công cụ nền tảng mới nhất và bộ công cụ SDK cho API cấp 33:

sdkmanager "platform-tools" "platforms;android-33"

Ngoài ra, bạn có thể truyền một tệp văn bản chỉ định tất cả các gói:

sdkmanager --package_file=package_file [options]

Đối số package_file là vị trí của một tệp văn bản, trong đó, mỗi dòng là một đường dẫn kiểu SDK của một gói sẽ cài đặt (không có dấu ngoặc kép).

Để gỡ cài đặt, hãy thêm cờ --uninstall:

sdkmanager --uninstall packages [options]
sdkmanager --uninstall --package_file=package_file [options]

Để cài đặt CMake hoặc NDK, hãy sử dụng cú pháp sau:

sdkmanager --install
           ["ndk;major.minor.build[suffix]" | "cmake;major.minor.micro.build"]
           [--channel=channel_id] // NDK channels: 0 (stable), 1 (beta), or 3 (canary)

Ví dụ: sử dụng lệnh sau để cài đặt phiên bản NDK đã chỉ định, bất kể phiên bản đó đang thuộc kênh nào:

sdkmanager --install "ndk;21.3.6528147" --channel=3 // Install the NDK from the canary channel (or below)
sdkmanager --install "cmake;10.24988404" // Install a specific version of CMake

Cập nhật tất cả các gói đã cài đặt

Để cập nhật tất cả các gói đã cài đặt, hãy dùng cú pháp sau:

sdkmanager --update [options]

Chấp nhận giấy phép

Bạn phải chấp nhận giấy phép cần thiết cho mỗi gói bạn đã cài đặt. Bước này diễn ra trong quy trình cài đặt, khi bạn cài đặt các gói trong Android Studio.

Nếu bạn chưa cài đặt Android Studio hoặc phải chấp nhận giấy phép trên máy chủ CI hoặc một thiết bị Linux khác không có giao diện người dùng và chưa được cài đặt GUI (Giao diện người dùng đồ hoạ), hãy nhập cú pháp như sau vào dòng lệnh:

sdkmanager --licenses

Lệnh này sẽ nhắc bạn chấp nhận mọi giấy phép chưa được chấp nhận.

Tuỳ chọn

Bảng sau trình bày các tuỳ chọn có sẵn cho những lệnh được liệt kê trong phần trước:

Tuỳ chọn tả chọn
--sdk_root=path Sử dụng đường dẫn SDK được chỉ định thay vì SDK có chứa công cụ này.
--channel=channel_id Đưa gói vào các kênh lên đến và bao gồm cả channel_id. Các kênh có sẵn là:

0 (Chính thức), 1 (Beta), 2 (Nhà phát triển) và 3 (Canary).

--include_obsolete Đưa các gói đã lỗi thời vào trang thông tin về gói hoặc thông tin cập nhật về gói. Chỉ dùng được với --list--update.
--no_https Buộc mọi kết nối phải sử dụng HTTP thay vì HTTPS.
--newer Khi sử dụng cùng với --list, chỉ hiển thị các gói mới hoặc gói có thể cập nhật.
--verbose Chế độ đầu ra chi tiết. Lỗi, cảnh báo và tin nhắn thông báo sẽ được in.
--proxy={http | socks} Kết nối qua một loại proxy cụ thể: http cho các giao thức cấp cao như HTTP hoặc FTP hoặc socks cho một proxy SOCKS (V4 hoặc V5).
--proxy_host={IP_address | DNS_address} Địa chỉ IP hoặc DNS của proxy cần sử dụng.
--proxy_port=port_number Số cổng proxy để kết nối.