อุปกรณ์เสมือน Android เป็นแพลตฟอร์มการพัฒนา

หากต้องการใช้อุปกรณ์เสมือน Android (AVD) โปรแกรมจำลอง Android จะรองรับอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) และอินเทอร์เฟซบรรทัดคำสั่ง (CLI) คุณเลือกเวิร์กโฟลว์ที่เหมาะสมที่สุดสำหรับสภาพแวดล้อมของคุณ

เปิด AVD รถยนต์ AOSP โดยใช้เวอร์ชันที่สร้างไว้ล่วงหน้า

หากต้องการเปิดและทดสอบอย่างรวดเร็วโดยใช้ AVD รถยนต์ AOSP ที่คอมไพล์ไว้ล่วงหน้า ให้ใช้สคริปต์โอเพนซอร์สเพื่อดาวน์โหลดและเปิดใช้งานบิลด์โปรแกรมจำลองจาก ci.android.com สคริปต์ได้รับการทดสอบใน macOS และ Linux

คุณจะต้องมี Curl จึงจะใช้สคริปต์นี้ได้

วิธีเรียกใช้สคริปต์

  1. คัดลอกเนื้อหาสคริปต์ launch_emu.sh ไปยังไฟล์ในเครื่อง โดยสมมติว่าคุณใช้ launch_emu.sh เป็นชื่อไฟล์ในเครื่อง
  2. ทำให้สคริปต์ในเครื่องเรียกใช้ได้ เช่น เรียกใช้ chmod +x ./launch_emu.sh
  3. ตรวจสอบตัวเลือกที่ใช้ได้โดยการเรียกใช้สคริปต์ด้วย ./launch_emu.sh -h
  4. ใน ci.android.com ให้ไปที่สาขา aosp-main-throttled แล้วเลือกบิลด์ล่าสุดที่ sdk_car_x86_64 เป็นสีเขียว เช่น 11370359 หากไม่เห็นข้อมูลบิลด์ ให้ออกจากระบบบัญชี Google แล้วลองอีกครั้ง
  5. ดาวน์โหลดและติดตั้งไฟล์ไบนารีที่เกี่ยวข้องกับโปรแกรมจำลองด้วยรหัสบิลด์ เช่น ./launch_emu.sh -i -a 11370359
  6. หลังจากนั้น คุณจะใช้ ./launch_emu.sh เพื่อเปิดโปรแกรมจำลองที่ดาวน์โหลดและติดตั้งไว้ได้ (อย่าใช้ตัวเลือก -i หรือ -a)
  7. หากต้องการดาวน์โหลดและติดตั้งรหัสบิลด์อื่น ให้เรียกใช้ ./launch_emu.sh -c เพื่อล้างเวิร์กสเปซ แล้วทำตามขั้นตอนที่ 4 และ 5 ด้านบนซ้ำ

หากต้องการระบุตัวเลือกตัวเลือกการเริ่มต้นบรรทัดคำสั่งของโปรแกรมจำลอง Android เมื่อเปิดใช้งานโปรแกรมจำลอง ให้ใช้ตัวเลือก -v เช่น

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

สร้าง AVD รถยนต์ AOSP

กระบวนการสร้าง AVD สำหรับรถยนต์ AOSP จะคล้ายกับการสร้างอิมเมจ AVD สำหรับโทรศัพท์ (เช่น aosp_car_x86_64) ดังนี้

  1. หากต้องการตั้งค่าสภาพแวดล้อมการพัฒนาและระบุสาขา ให้ดูเครื่องมือควบคุมแหล่งที่มา จากนั้นตรวจสอบการดาวน์โหลดซอร์สโค้ด
    ANDROID_BRANCH="android12L-release"
    REPO_URL="https://android.googlesource.com/platform/manifest"
    mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8
  2. สร้างอิมเมจ AVD โดยทำดังนี้
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. เรียกใช้ภาพ AVD (เพิ่มตัวเลือกการเริ่มต้นบรรทัดคำสั่งเพิ่มเติมตามต้องการ)
    emulator &

    เช่น

    รูปที่ 1 หน้าจอโปรแกรมจำลองเสมือนของ Android

    หมายเหตุเกี่ยวกับกระบวนการนี้

    • เนื่องจากกระบวนการบิลด์เหมือนกับที่ต้องใช้บิลด์ Android สำหรับอุปกรณ์จริง โปรดรอสักครู่เพื่อดาวน์โหลดซอร์สโค้ดแล้วจึงบิลด์
    • หากต้องการทำงานกับสาขาอื่นๆ ให้ตั้งค่า $ANDROID_BRANCH เป็นสาขา/แท็กอื่น
    • รูปภาพ AVD เช่น system.img สร้างขึ้นที่ $ANDROID_PRODUCT_OUT ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปภาพหลักได้ที่ไดเรกทอรีระบบ AVD
    • ดูไฟล์ README เพื่อดูวิธีใช้ไบนารีของโปรแกรมจำลองที่คอมไพล์ไว้ล่วงหน้าในต้นไม้ Android เพื่อเรียกใช้โปรแกรมจำลอง

สร้าง AVD สำหรับรถยนต์

การเพิ่ม AVD ของรถยนต์คันใหม่เกือบจะเหมือนกับการเพิ่มอุปกรณ์ใหม่ เช่น 1660554 จะสร้าง AVD avd_car ใหม่

วิธีสร้าง AVD ของรถยนต์

  1. สร้างโฟลเดอร์บริษัทและโฟลเดอร์อุปกรณ์ตามต้องการ ตัวอย่างนี้ใช้ $ANDROID_BUILD_TOP/device/google_car/avd_car
  2. สร้างไฟล์ Make ของผลิตภัณฑ์ avd_car.mk ซึ่งกำหนดวิธีสร้าง AVD
  3. สร้างโฟลเดอร์อุปกรณ์ avd_car_device ที่มี BoardConfig.mk และ source.properties
  4. เพิ่มตัวเลือก makefile ใหม่และ lunch ใหม่ลงใน AndroidProducts.mk
  5. วิธีสร้างและเรียกใช้ avd_car AVD ใหม่
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
ตอนนี้คุณพร้อมที่จะสร้างต้นแบบ HMI และฟีเจอร์ส่วนใหญ่ของแอปใน AVD ใหม่แล้ว

แพ็กไฟล์ ZIP รูปภาพ AVD

คุณสามารถแพ็กและแชร์ AVD กับผู้อื่นหรือใช้ AVD บนคอมพิวเตอร์เครื่องอื่นได้ ใช้ emu_img_zip.mk เพื่อสร้างไฟล์ ZIP รูปภาพ AVD

  1. หลังจากสร้าง AVD แล้ว ให้ทําให้ emu_img_zip เป็นเป้าหมาย ดังนี้
    m emu_img_zip
  2. ระบบจะสร้างไฟล์ ZIP รูปภาพ AVD ที่ขึ้นต้นด้วย sdk-repo-linux-system-images ในโฟลเดอร์ชื่อ $ANDROID_PRODUCT_OUT

สร้างเคอร์เนล AVD

เคอร์เนล AVD คล้ายกับเคอร์เนล Android อื่นๆ ตรงที่เป็นอิมเมจที่สร้างไว้ล่วงหน้าทั้งหมด โดยปกติแล้ว คุณสามารถใช้อิมเมจเคอร์เนล goldfish มาตรฐานที่สร้างไว้ล่วงหน้าได้ตามที่เป็นจาก Android แต่ละรุ่น

วิธีทดสอบการเปลี่ยนแปลงเคอร์เนล

  1. เรียกใช้ชุดคำสั่งต่อไปนี้
    mkdir goldfish-kernel-54
    cd goldfish-kernel-54
    repo init -u https://android.googlesource.com/kernel/manifest -b
    common-android11-5.4
    repo sync
    BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh
    BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64
    build/build.sh
    ls -l ./out/android11-5.4/dist/
  2. แทนที่ไบนารีเคอร์เนลในโค้ดเบสตามไฟล์ make ของ AVD เช่น x86_64-vendor.mk ประกอบด้วย x86_64-kernel.mk

โค้ดและการกำหนดค่าเคอร์เนลอยู่ดังนี้

รายการ ค่า
สาขา common-android11-5.4 (ใช้ใน Android 11)
ไฟล์ Manifest kernel/manifest/common-android11-5.4
common-modules/virtual-device kernel/common-modules/virtual-device/android11-5.4
ฟองสบู่แตก kernel/common/android11-5.4

สร้างโปรไฟล์อุปกรณ์ใหม่

หากต้องการอนุญาตให้ผู้ใช้สร้าง AVD ที่เฉพาะเจาะจงในเครื่องมือจัดการ AVD ของ Android Studio โปรดดูหัวข้อสร้างและจัดการอุปกรณ์เสมือน ผู้ผลิตอุปกรณ์สามารถกำหนดข้อกำหนดเฉพาะของฮาร์ดแวร์ของตนเองได้ เช่น ขนาดหน้าจอและ DPI โดยใช้ไฟล์ devices.xml ที่รวมอยู่ในภาพ AVD

  • เช่น ดูโปรไฟล์อุปกรณ์ยานยนต์ใน automotive.xml
  • สําหรับการพัฒนาหรือการสร้างต้นแบบ HMI คุณสามารถเพิ่มอุปกรณ์หลายเครื่องลงในไฟล์สําหรับภาพ AVD เดียวกันได้
  • รวมไฟล์ไว้ในไฟล์ ZIP ของภาพ AVD ของ OEM ในโฟลเดอร์ [ABI] เช่น x86_64
  • นอกจากนี้ ผู้ผลิตอุปกรณ์ยังสร้างสกินโปรแกรมจำลองได้ด้วย เช่น เพื่อกำหนดปุ่มฮาร์ดแวร์เพิ่มเติมสำหรับ UX ที่สมจริงยิ่งขึ้น ซึ่งไม่เพียงมีประโยชน์สำหรับเวิร์กโฟลว์ของนักพัฒนาแอปเท่านั้น แต่ยังมีประโยชน์สำหรับงานอื่นๆ เช่น การวิจัยและตรวจสอบ UX ด้วย

สร้างไฟล์ XML ของภาพ AVD

ผู้ผลิตอุปกรณ์สามารถสร้างไฟล์ XML รูปภาพ AVD เพื่อให้ Android Studio ดาวน์โหลดได้

  • เช่น ดูไฟล์ XML ของภาพ AVD ของ AAOS sys-img2-1.xml
  • ผู้ผลิตอุปกรณ์สามารถกำหนดข้อตกลงการอนุญาตให้ใช้สิทธิ AVD ของ OEM ของตนเองสำหรับผู้ใช้เป้าหมาย (ใช้ระบบการให้เกียรติ) ด้วยใบอนุญาตสำหรับโปรแกรมจำลอง Android Android Studio จะได้รับความยินยอมจากผู้ใช้เมื่อมีใบอนุญาตดังกล่าวรวมอยู่ด้วย

วิธีสร้างรูปภาพ

  1. เตรียมไฟล์ ZIP รูปภาพ AVD
  2. แตกไฟล์ ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip
  3. เพิ่ม devices.xml ลงในโฟลเดอร์ x86_64 แล้วบีบอัดไฟล์เป็นไฟล์ ZIP เช่น oem_avd_img_x86_64.zip
  4. อัปเดต oem-sys-img2-1.xml
  5. อัปเดตชื่อ ไฟล์ขนาด และ shasum ของไฟล์ ZIP (มีไฟล์ XML ตัวอย่างให้ใน tools)

เช่น หากต้องการโฮสต์ AVD ใน Cloud Storage ของ Google ให้ดูการสร้างที่เก็บข้อมูล

หากต้องการอัปโหลดและทำให้ AVD เข้าถึงได้แบบสาธารณะ โปรดดูการทำให้ข้อมูลเป็นแบบสาธารณะ

BUCKET_NAME="aaos-avd"
gsutil mb gs://$BUCKET_NAME
gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME
gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME
gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME

รูปแบบ URL ของส่วนเสริม SDK รูปภาพ AVD คือ https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml ตัวอย่างเช่น หาก BUCKET_NAME คือ aaos-avd URL จะเป็น https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml

แชร์รูปภาพ AVD กับผู้ใช้ Android Studio

คุณสามารถระบุไฟล์ XML ของส่วนเสริม SDK เพื่อให้ผู้ใช้ดาวน์โหลดภาพ AVD และใช้ AVD ของคุณผ่าน Android Studio ได้ โปรดดูรายละเอียดที่หัวข้ออัปเดตเครื่องมือ IDE และ SDK

วิธีดาวน์โหลด AVD จากเครือข่าย

  1. โฮสต์ไฟล์ ZIP ของรูปภาพและไฟล์ XML บนเซิร์ฟเวอร์
  2. ระบุ URL ให้กับผู้ใช้เป้าหมาย
  3. (ไม่บังคับ) จำกัดการเข้าถึงตามชื่อผู้ใช้และรหัสผ่าน

หรือหากต้องการเร่งการพัฒนา ให้ดาวน์โหลด AVD ลงในไดเรกทอรีในเครื่องโดยทำดังนี้

  1. บันทึกไฟล์ XML และอาร์ติแฟกต์ทั้งหมดที่ระบุไว้ในไฟล์ XML ไปยังโฟลเดอร์ (เช่น ไฟล์ ZIP รูปภาพ AVD ทั้งหมด) ที่ชื่อ ADDON_DIR
  2. ระบุ URL เป็น file://$ADDON_DIR/oem-sys-img2-1.xml