Thiết bị ảo Android làm nền tảng phát triển

Để sử dụng Thiết bị ảo Android (AVD), Trình mô phỏng Android hỗ trợ Giao diện người dùng đồ họa (GUI) và Giao diện dòng lệnh (CLI). Bạn chọn quy trình làm việc tối ưu cho môi trường của mình.

Khởi chạy AOSP Car AVD bằng cách sử dụng bản dựng sẵn

Để nhanh chóng khởi chạy và thử nghiệm bằng AOSP Car AVD dựng sẵn, hãy sử dụng tập lệnh nguồn mở để tải xuống và khởi chạy bản dựng trình mô phỏng từ ci.android.com . Kịch bản đã được thử nghiệm trên MacOS và Linux.

Bạn sẽ cần Curl để sử dụng tập lệnh này.

Để chạy tập lệnh:

  1. Sao chép nội dung tập lệnh launch_emu.sh vào tệp cục bộ của bạn, giả sử bạn sử dụng launch_emu.sh làm tên tệp cục bộ.
  2. Làm cho tập lệnh cục bộ của bạn có thể thực thi được. Ví dụ: chạy chmod +x ./launch_emu.sh .
  3. Kiểm tra các tùy chọn có sẵn bằng cách chạy tập lệnh với ./launch_emu.sh -h .
  4. Trên ci.android.com , đi tới nhánh aosp-main-throttled và chọn bản dựng gần đây trong đó sdk_car_x86_64 có màu xanh lục. Ví dụ: 11370359. Nếu bạn không thấy thông tin về bản dựng, hãy đăng xuất khỏi Tài khoản Google của mình và thử lại.
  5. Tải xuống và cài đặt các tệp nhị phân liên quan đến trình mô phỏng có id bản dựng. Ví dụ: ./launch_emu.sh -i -a 11370359 .
  6. Sau đó, bạn có thể sử dụng ./launch_emu.sh để khởi chạy trình mô phỏng đã tải xuống và cài đặt (không sử dụng tùy chọn -i hoặc -a ).
  7. Để tải xuống và cài đặt id bản dựng khác, hãy chạy ./launch_emu.sh -c để dọn dẹp không gian làm việc của bạn, sau đó lặp lại Bước 4 và Bước 5 ở trên.

Để chỉ định các tùy chọn tùy chọn khởi động dòng lệnh của trình mô phỏng Android khi khởi chạy trình mô phỏng, hãy sử dụng tùy chọn -v . Ví dụ:

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

Xây dựng AVD xe AOSP

Quá trình xây dựng AOSP Car AVD tương tự như Xây dựng hình ảnh AVD cho điện thoại (ví dụ: aosp_car_x86_64):

  1. Để thiết lập môi trường phát triển và xác định một nhánh, hãy xem Công cụ kiểm soát nguồn . Sau đó xem lại Tải xuống nguồn :
    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. Xây dựng hình ảnh AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. Chạy hình ảnh AVD (thêm các tùy chọn khởi động dòng lệnh bổ sung nếu cần):
    emulator &

    Ví dụ:

    Hình 1. Màn hình Trình mô phỏng ảo Android

    Lưu ý về quá trình này:

    • Bởi vì quá trình xây dựng cũng giống như quy trình cần thiết để xây dựng Android cho một thiết bị vật lý, nên hãy dành chút thời gian để tải xuống nguồn rồi xây dựng nó.
    • Để làm việc trên các nhánh khác, hãy đặt $ANDROID_BRANCH thành nhánh/thẻ khác.
    • Hình ảnh AVD, chẳng hạn như system.img , được xây dựng tại $ANDROID_PRODUCT_OUT . Để tìm hiểu thêm về các hình ảnh chính, hãy xem thư mục hệ thống AVD .
    • Xem tệp README để tìm hiểu cách sử dụng các tệp nhị phân của trình mô phỏng dựng sẵn trong cây Android để chạy trình mô phỏng.

Tạo AVD ô tô

Thêm AVD ô tô mới gần giống với Thêm thiết bị mới . Ví dụ: 1660554 tạo AVD avd_car mới.

Để tạo AVD ô tô:

  1. Tạo một công ty và một thư mục thiết bị nếu cần. Ví dụ này sử dụng $ANDROID_BUILD_TOP/device/google_car/avd_car .
  2. Tạo tệp tạo sản phẩm, avd_car.mk , xác định cách xây dựng AVD.
  3. Tạo một thư mục thiết bị, avd_car_device , trong đó chứa BoardConfig.mksource.properties .
  4. Thêm makefile mới và lựa chọn lunch mới vào AndroidProducts.mk .
  5. Để xây dựng và chạy avd_car AVD mới:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Bây giờ bạn đã sẵn sàng tạo nguyên mẫu cho hầu hết các tính năng ứng dụng và HMI trên AVD mới của mình.

Đóng gói tệp zip hình ảnh AVD

Bạn có thể đóng gói và chia sẻ AVD của mình với người khác hoặc sử dụng nó trên máy tính khác. Sử dụng emu_img_zip.mk để tạo tệp zip hình ảnh AVD:

  1. Sau khi bạn xây dựng AVD, hãy đặt emu_img_zip làm mục tiêu:
    m emu_img_zip
  2. Tệp zip hình ảnh AVD, có tiền tố là sdk-repo-linux-system-images , được tạo trong thư mục có tên $ANDROID_PRODUCT_OUT .

Xây dựng hạt nhân AVD

Nhân AVD tương tự như các nhân Android khác ở chỗ tất cả đều là hình ảnh dựng sẵn. Thông thường, bạn có thể sử dụng các hình ảnh dựng sẵn của hạt nhân cá vàng tiêu chuẩn như trong mỗi bản phát hành Android.

Để thử nghiệm các thay đổi kernel:

  1. Chạy chuỗi hướng dẫn sau:
    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. Thay thế nhị phân hạt nhân trong cơ sở mã theo tệp tạo AVD. Ví dụ: x86_64-vendor.mk bao gồm x86_64-kernel.mk .

Mã kernel và cấu hình được đặt như sau:

Mục Giá trị
Chi nhánh common-android11-5.4 (được sử dụng trong Android 11)
Rõ ràng kernel/manifest/common-android11-5.4
mô-đun chung/thiết bị ảo kernel/common-modules/virtual-device/android11-5.4
hạt nhân kernel/common/android11-5.4

Tạo hồ sơ thiết bị mới

Để cho phép người dùng tạo AVD cụ thể trong Trình quản lý AVD của Android Studio, hãy xem Tạo và quản lý thiết bị ảo . Các nhà sản xuất thiết bị có thể xác định thông số kỹ thuật phần cứng của riêng họ, chẳng hạn như kích thước màn hình và PPI, thông qua việc sử dụng tệp devices.xml có trong hình ảnh AVD.

  • Ví dụ: xem cấu hình Thiết bị ô tô trong automotive.xml .
  • Để phát triển hoặc tạo mẫu HMI, nhiều thiết bị có thể được thêm vào tệp cho cùng một hình ảnh AVD.
  • Bao gồm tệp trong tệp zip hình ảnh OEM AVD trong thư mục [ABI] . Ví dụ: như x86_64 .
  • Các nhà sản xuất thiết bị cũng có thể Tạo giao diện giả lập . Ví dụ: để xác định các nút phần cứng bổ sung nhằm mang lại trải nghiệm người dùng có độ trung thực cao hơn. Điều này không chỉ hữu ích cho quy trình làm việc của nhà phát triển mà còn cho các nhiệm vụ khác như nghiên cứu và đánh giá UX.

Tạo tệp XML hình ảnh AVD

Các nhà sản xuất thiết bị có thể tạo tệp XML hình ảnh AVD cho Android Studio để tải xuống.

  • Ví dụ: xem tệp XML hình ảnh AAOS AVD, sys-img2-1.xml .
  • Các nhà sản xuất thiết bị có thể xác định thỏa thuận cấp phép OEM AVD của riêng họ cho người dùng mục tiêu của họ (sử dụng hệ thống danh dự), với giấy phép dành cho Trình mô phỏng Android. Android Studio nhận được sự đồng thuận của người dùng khi có giấy phép như vậy.

Để tạo hình ảnh:

  1. Chuẩn bị tệp zip hình ảnh AVD.
  2. Giải nén ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip .
  3. Thêm devices.xml vào thư mục x86_64 rồi nén tệp dưới dạng tệp zip. Ví dụ: như oem_avd_img_x86_64.zip .
  4. Cập nhật oem-sys-img2-1.xml .
  5. Cập nhật tên, kích thước và shasum của tệp zip (các tệp XML mẫu được cung cấp trong tools ).

Ví dụ: để lưu trữ AVD trên Google Cloud Storage , hãy xem Tạo nhóm lưu trữ .

Để tải lên và đặt AVD ở chế độ có thể truy cập công khai, hãy xem Công khai dữ liệu :

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

Định dạng URL bổ trợ SDK hình ảnh AVD có dạng: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml . Ví dụ: nếu BUCKET_NAME là aaos-avd thì URL sẽ là: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml .

Chia sẻ hình ảnh AVD với người dùng Android Studio

Để người dùng của bạn có thể tải xuống hình ảnh AVD và sử dụng AVD của bạn bằng Android Studio, bạn có thể cung cấp tệp XML bổ trợ SDK. Để biết chi tiết, hãy xem Cập nhật Công cụ IDE và SDK .

Để tải xuống AVD từ mạng:

  1. Lưu trữ tệp zip hình ảnh và tệp XML trên máy chủ.
  2. Cung cấp URL cho người dùng mục tiêu của bạn.
  3. ( Tùy chọn ) Giới hạn quyền truy cập theo tên người dùng và mật khẩu.

Ngoài ra, để tăng tốc độ phát triển, hãy tải AVD xuống thư mục cục bộ:

  1. Lưu các tệp XML và tất cả các tạo phẩm được chỉ định trong tệp XML vào một thư mục (ví dụ: tất cả các tệp zip hình ảnh AVD) có tên ADDON_DIR .
  2. Chỉ định URL là file://$ADDON_DIR/oem-sys-img2-1.xml .
,

Để sử dụng Thiết bị ảo Android (AVD), Trình mô phỏng Android hỗ trợ Giao diện người dùng đồ họa (GUI) và Giao diện dòng lệnh (CLI). Bạn chọn quy trình làm việc tối ưu cho môi trường của mình.

Khởi chạy AOSP Car AVD bằng cách sử dụng bản dựng sẵn

Để nhanh chóng khởi chạy và thử nghiệm bằng AOSP Car AVD dựng sẵn, hãy sử dụng tập lệnh nguồn mở để tải xuống và khởi chạy bản dựng trình mô phỏng từ ci.android.com . Kịch bản đã được thử nghiệm trên MacOS và Linux.

Bạn sẽ cần Curl để sử dụng tập lệnh này.

Để chạy tập lệnh:

  1. Sao chép nội dung tập lệnh launch_emu.sh vào tệp cục bộ của bạn, giả sử bạn sử dụng launch_emu.sh làm tên tệp cục bộ.
  2. Làm cho tập lệnh cục bộ của bạn có thể thực thi được. Ví dụ: chạy chmod +x ./launch_emu.sh .
  3. Kiểm tra các tùy chọn có sẵn bằng cách chạy tập lệnh với ./launch_emu.sh -h .
  4. Trên ci.android.com , đi tới nhánh aosp-main-throttled và chọn bản dựng gần đây trong đó sdk_car_x86_64 có màu xanh lục. Ví dụ: 11370359. Nếu bạn không thấy thông tin về bản dựng, hãy đăng xuất khỏi Tài khoản Google của mình và thử lại.
  5. Tải xuống và cài đặt các tệp nhị phân liên quan đến trình mô phỏng có id bản dựng. Ví dụ: ./launch_emu.sh -i -a 11370359 .
  6. Sau đó, bạn có thể sử dụng ./launch_emu.sh để khởi chạy trình mô phỏng đã tải xuống và cài đặt (không sử dụng tùy chọn -i hoặc -a ).
  7. Để tải xuống và cài đặt id bản dựng khác, hãy chạy ./launch_emu.sh -c để dọn dẹp không gian làm việc của bạn, sau đó lặp lại Bước 4 và Bước 5 ở trên.

Để chỉ định các tùy chọn tùy chọn khởi động dòng lệnh của trình mô phỏng Android khi khởi chạy trình mô phỏng, hãy sử dụng tùy chọn -v . Ví dụ:

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

Xây dựng AVD xe AOSP

Quá trình xây dựng AOSP Car AVD tương tự như Xây dựng hình ảnh AVD cho điện thoại (ví dụ: aosp_car_x86_64):

  1. Để thiết lập môi trường phát triển và xác định một nhánh, hãy xem Công cụ kiểm soát nguồn . Sau đó xem lại Tải xuống nguồn :
    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. Xây dựng hình ảnh AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. Chạy hình ảnh AVD (thêm các tùy chọn khởi động dòng lệnh bổ sung nếu cần):
    emulator &

    Ví dụ:

    Hình 1. Màn hình Trình mô phỏng ảo Android

    Lưu ý về quá trình này:

    • Bởi vì quá trình xây dựng cũng giống như quy trình cần thiết để xây dựng Android cho một thiết bị vật lý, nên hãy dành chút thời gian để tải xuống nguồn rồi xây dựng nó.
    • Để làm việc trên các nhánh khác, hãy đặt $ANDROID_BRANCH thành nhánh/thẻ khác.
    • Hình ảnh AVD, chẳng hạn như system.img , được xây dựng tại $ANDROID_PRODUCT_OUT . Để tìm hiểu thêm về các hình ảnh chính, hãy xem thư mục hệ thống AVD .
    • Xem tệp README để tìm hiểu cách sử dụng các tệp nhị phân của trình mô phỏng dựng sẵn trong cây Android để chạy trình mô phỏng.

Tạo AVD ô tô

Thêm AVD ô tô mới gần giống với Thêm thiết bị mới . Ví dụ: 1660554 tạo AVD avd_car mới.

Để tạo AVD ô tô:

  1. Tạo một công ty và một thư mục thiết bị nếu cần. Ví dụ này sử dụng $ANDROID_BUILD_TOP/device/google_car/avd_car .
  2. Tạo tệp tạo sản phẩm, avd_car.mk , xác định cách xây dựng AVD.
  3. Tạo một thư mục thiết bị, avd_car_device , trong đó chứa BoardConfig.mksource.properties .
  4. Thêm makefile mới và lựa chọn lunch mới vào AndroidProducts.mk .
  5. Để xây dựng và chạy avd_car AVD mới:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Bây giờ bạn đã sẵn sàng tạo nguyên mẫu cho hầu hết các tính năng ứng dụng và HMI trên AVD mới của mình.

Đóng gói tệp zip hình ảnh AVD

Bạn có thể đóng gói và chia sẻ AVD của mình với người khác hoặc sử dụng nó trên máy tính khác. Sử dụng emu_img_zip.mk để tạo tệp zip hình ảnh AVD:

  1. Sau khi bạn xây dựng AVD, hãy đặt emu_img_zip làm mục tiêu:
    m emu_img_zip
  2. Tệp zip hình ảnh AVD, có tiền tố sdk-repo-linux-system-images , được tạo trong thư mục có tên $ANDROID_PRODUCT_OUT .

Xây dựng hạt nhân AVD

Nhân AVD tương tự như các nhân Android khác ở chỗ tất cả đều là hình ảnh dựng sẵn. Thông thường, bạn có thể sử dụng các hình ảnh dựng sẵn của hạt nhân cá vàng tiêu chuẩn như trong mỗi bản phát hành Android.

Để thử nghiệm các thay đổi kernel:

  1. Chạy chuỗi hướng dẫn sau:
    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. Thay thế nhị phân hạt nhân trong cơ sở mã theo tệp tạo AVD. Ví dụ: x86_64-vendor.mk bao gồm x86_64-kernel.mk .

Mã kernel và cấu hình được đặt như sau:

Mục Giá trị
Chi nhánh common-android11-5.4 (được sử dụng trong Android 11)
Rõ ràng kernel/manifest/common-android11-5.4
mô-đun chung/thiết bị ảo kernel/common-modules/virtual-device/android11-5.4
hạt nhân kernel/common/android11-5.4

Tạo hồ sơ thiết bị mới

Để cho phép người dùng tạo AVD cụ thể trong Trình quản lý AVD của Android Studio, hãy xem Tạo và quản lý thiết bị ảo . Các nhà sản xuất thiết bị có thể xác định thông số kỹ thuật phần cứng của riêng họ, chẳng hạn như kích thước màn hình và PPI, thông qua việc sử dụng tệp devices.xml có trong hình ảnh AVD.

  • Ví dụ: xem cấu hình Thiết bị ô tô trong automotive.xml .
  • Để phát triển hoặc tạo mẫu HMI, nhiều thiết bị có thể được thêm vào tệp cho cùng một hình ảnh AVD.
  • Bao gồm tệp trong tệp zip hình ảnh OEM AVD trong thư mục [ABI] . Ví dụ: như x86_64 .
  • Các nhà sản xuất thiết bị cũng có thể Tạo giao diện giả lập . Ví dụ: để xác định các nút phần cứng bổ sung nhằm mang lại trải nghiệm người dùng có độ trung thực cao hơn. Điều này không chỉ hữu ích cho quy trình làm việc của nhà phát triển mà còn cho các nhiệm vụ khác như nghiên cứu và đánh giá UX.

Tạo tệp XML hình ảnh AVD

Các nhà sản xuất thiết bị có thể tạo tệp XML hình ảnh AVD cho Android Studio để tải xuống.

  • Ví dụ: xem tệp XML hình ảnh AAOS AVD, sys-img2-1.xml .
  • Các nhà sản xuất thiết bị có thể xác định thỏa thuận cấp phép OEM AVD của riêng họ cho người dùng mục tiêu của họ (sử dụng hệ thống danh dự), với giấy phép dành cho Trình mô phỏng Android. Android Studio nhận được sự đồng thuận của người dùng khi có giấy phép như vậy.

Để tạo hình ảnh:

  1. Chuẩn bị tệp zip hình ảnh AVD.
  2. Giải nén ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip .
  3. Thêm devices.xml vào thư mục x86_64 rồi nén tệp dưới dạng tệp zip. Ví dụ: như oem_avd_img_x86_64.zip .
  4. Cập nhật oem-sys-img2-1.xml .
  5. Cập nhật tên, kích thước và shasum của tệp zip (các tệp XML mẫu được cung cấp trong tools ).

Ví dụ: để lưu trữ AVD trên Google Cloud Storage , hãy xem Tạo nhóm lưu trữ .

Để tải lên và đặt AVD ở chế độ có thể truy cập công khai, hãy xem Công khai dữ liệu :

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

Định dạng URL bổ trợ SDK hình ảnh AVD có dạng: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml . Ví dụ: nếu BUCKET_NAME là aaos-avd thì URL sẽ là: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml .

Chia sẻ hình ảnh AVD với người dùng Android Studio

Để người dùng của bạn có thể tải xuống hình ảnh AVD và sử dụng AVD của bạn bằng Android Studio, bạn có thể cung cấp tệp XML bổ trợ SDK. Để biết chi tiết, hãy xem Cập nhật Công cụ IDE và SDK .

Để tải xuống AVD từ mạng:

  1. Lưu trữ tệp zip hình ảnh và tệp XML trên máy chủ.
  2. Cung cấp URL cho người dùng mục tiêu của bạn.
  3. ( Tùy chọn ) Giới hạn quyền truy cập theo tên người dùng và mật khẩu.

Ngoài ra, để tăng tốc độ phát triển, hãy tải AVD xuống thư mục cục bộ:

  1. Lưu các tệp XML và tất cả các tạo phẩm được chỉ định trong tệp XML vào một thư mục (ví dụ: tất cả các tệp zip hình ảnh AVD) có tên ADDON_DIR .
  2. Chỉ định URL là file://$ADDON_DIR/oem-sys-img2-1.xml .