sdkmanager

sdkmanager เป็นเครื่องมือบรรทัดคำสั่งที่ช่วยให้คุณดู ติดตั้ง อัปเดต และถอนการติดตั้งแพ็กเกจสำหรับ Android SDK ได้ หากคุณใช้ Android Studio ก็ไม่จำเป็นต้องใช้เครื่องมือนี้ แต่สามารถ จัดการแพ็กเกจ SDK จาก IDE แทนได้

เครื่องมือ sdkmanager มีให้ในแพ็กเกจ เครื่องมือบรรทัดคำสั่ง Android SDK หากต้องการใช้เครื่องมือจัดการ SDK เพื่อติดตั้งเครื่องมือบรรทัดคำสั่งเวอร์ชันใดเวอร์ชันหนึ่ง ให้ทำตามขั้นตอนต่อไปนี้

  1. ดาวน์โหลดแพ็กเกจเครื่องมือบรรทัดคำสั่งเวอร์ชันล่าสุดจากหน้า Android Studio แล้วแตกไฟล์แพ็กเกจ
  2. ย้ายไดเรกทอรี cmdline-tools ที่แตกไฟล์แล้วไปยังไดเรกทอรีใหม่ ที่คุณเลือก เช่น android_sdk ไดเรกทอรีใหม่นี้คือ ไดเรกทอรี Android SDK
  3. ในไดเรกทอรี cmdline-tools ที่แตกไฟล์แล้ว ให้สร้าง ไดเรกทอรีย่อยชื่อ latest
  4. ย้ายเนื้อหาไดเรกทอรี cmdline-tools เดิม ซึ่งรวมถึงไดเรกทอรี lib, ไดเรกทอรี bin, ไฟล์ NOTICE.txt และไฟล์ source.properties ไปยังไดเรกทอรี latest ที่สร้างขึ้นใหม่ ตอนนี้คุณใช้เครื่องมือบรรทัดคำสั่งจากตำแหน่งนี้ได้แล้ว
  5. (ไม่บังคับ) หากต้องการติดตั้งเครื่องมือบรรทัดคำสั่งเวอร์ชันก่อนหน้า ให้เรียกใช้คำสั่งต่อไปนี้

    android_sdk/cmdline-tools/latest/bin/sdkmanager --install "cmdline-tools;version"
    
    แทนที่ version ด้วยเวอร์ชันที่ต้องการติดตั้ง เช่น 5.0

การใช้งาน

คุณสามารถใช้ sdkmanager เพื่อแสดงรายการแพ็กเกจที่ติดตั้งและพร้อมใช้งาน ติดตั้งแพ็กเกจ และอัปเดตแพ็กเกจ ดูรายละเอียดเพิ่มเติมได้ในส่วนต่อไปนี้

แสดงรายการแพ็กเกจที่ติดตั้งและพร้อมใช้งาน

หากต้องการแสดงรายการแพ็กเกจที่ติดตั้งและพร้อมใช้งาน ให้ใช้ไวยากรณ์ต่อไปนี้

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

ใช้ตัวเลือก channel เพื่อรวมแพ็กเกจจากช่องทางหนึ่งจนถึงช่องทาง channel_id (รวมช่องทางนี้ด้วย) เช่น ระบุช่องทาง Canary เพื่อแสดงรายการ แพ็กเกจจากทุกช่องทาง

ติดตั้งแพ็กเกจ

หากต้องการติดตั้งแพ็กเกจ ให้ใช้ไวยากรณ์ต่อไปนี้

sdkmanager packages [options]

อาร์กิวเมนต์ packages คือเส้นทางรูปแบบ SDK ดังที่แสดงด้วย คำสั่ง --list ซึ่งอยู่ในเครื่องหมายคำพูด เช่น "build-tools;36.0.0" หรือ "platforms;android-36"

คุณส่งเส้นทางแพ็กเกจหลายเส้นทางได้โดยคั่นด้วยช่องว่าง แต่ละเส้นทางต้องอยู่ในเครื่องหมายคำพูดของตัวเอง ตัวอย่างเช่น วิธีติดตั้งเครื่องมือแพลตฟอร์มและเครื่องมือ SDK เวอร์ชันล่าสุดสำหรับ API ระดับ 36 มีดังนี้

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

หรือจะส่งไฟล์ข้อความที่ระบุแพ็กเกจทั้งหมดก็ได้ โดยทำดังนี้

sdkmanager --package_file=package_file [options]

อาร์กิวเมนต์ package_file คือตำแหน่งของไฟล์ข้อความที่ แต่ละบรรทัดเป็นเส้นทางรูปแบบ SDK ของแพ็กเกจที่จะติดตั้ง (ไม่มีเครื่องหมายคำพูด)

หากต้องการถอนการติดตั้ง ให้เพิ่มแฟล็ก --uninstall ดังนี้

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

หากต้องการติดตั้ง CMake หรือ NDK ให้ใช้ไวยากรณ์ต่อไปนี้

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

เช่น ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง NDK เวอร์ชันที่ระบุ ไม่ว่าปัจจุบันจะอยู่ในช่องทางใด

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

อัปเดตแพ็กเกจที่ติดตั้งทั้งหมด

หากต้องการอัปเดตแพ็กเกจที่ติดตั้งทั้งหมด ให้ใช้ไวยากรณ์ต่อไปนี้

sdkmanager --update [options]

ยอมรับใบอนุญาต

คุณต้องยอมรับใบอนุญาตที่จำเป็นสำหรับแพ็กเกจแต่ละรายการที่ติดตั้ง ขั้นตอนนี้จะเกิดขึ้นในระหว่างขั้นตอนการติดตั้งเมื่อคุณติดตั้งแพ็กเกจจากภายใน Android Studio

หากคุณไม่ได้ติดตั้ง Android Studio หรือติดตั้งไว้สำหรับเซิร์ฟเวอร์ CI หรืออุปกรณ์ Linux แบบไม่มี GUI อื่นๆ ให้ทำดังนี้จากบรรทัดคำสั่ง

sdkmanager --licenses

ระบบจะแจ้งให้คุณยอมรับใบอนุญาตที่ยังไม่ได้ยอมรับ

ตัวเลือก

ตารางต่อไปนี้แสดงตัวเลือกที่มีสำหรับคำสั่งที่ระบุไว้ในส่วนก่อนหน้า

ตัวเลือก คำอธิบาย
--sdk_root=path ใช้เส้นทาง SDK ที่ระบุแทน SDK ที่มีเครื่องมือนี้
--channel=channel_id รวมแพ็กเกจในช่องทางจนถึง channel_id ช่องทางที่มีให้บริการ มีดังนี้

0 (เวอร์ชันเสถียร), 1 (เวอร์ชันเบต้า), 2 (เวอร์ชันที่กำลังพัฒนา) และ 3 (เวอร์ชัน Canary)

--include_obsolete รวมแพ็กเกจที่เลิกใช้แล้วไว้ในข้อมูลแพ็กเกจหรือการอัปเดตแพ็กเกจ สำหรับใช้กับ --list และ --update เท่านั้น
--no_https บังคับให้การเชื่อมต่อทั้งหมดใช้ HTTP แทน HTTPS
--newer เมื่อใช้ --list ให้แสดงเฉพาะแพ็กเกจใหม่หรือแพ็กเกจที่อัปเดตได้
--verbose โหมดเอาต์พุตแบบละเอียด ระบบจะพิมพ์ข้อความแสดงข้อผิดพลาด คำเตือน และเพื่อแจ้งข้อมูล
--proxy={http | socks} เชื่อมต่อผ่านพร็อกซีประเภทที่ระบุ ได้แก่ http สำหรับ โปรโตคอลระดับสูง เช่น HTTP หรือ FTP หรือ socks สำหรับพร็อกซี SOCKS (V4 หรือ V5)
--proxy_host={IP_address | DNS_address} ที่อยู่ IP หรือ DNS ของพร็อกซีที่จะใช้
--proxy_port=port_number หมายเลขพอร์ตของพร็อกซีที่จะใช้เชื่อมต่อ