Ghi chú phát hành của trình mô phỏng

Trình mô phỏng Android được đưa vào gói Android Studio.

Các phiên bản của trình mô phỏng trước bản phát hành 25.3.0 được phân phối kèm theo Bộ công cụ SDK Android.

Để đảm bảo bạn có phiên bản mới nhất, hãy kiểm tra Trình quản lý SDK để biết thông tin cập nhật.

Để tải xuống các phiên bản trước của Trình mô phỏng Android, hãy xem Bản lưu trữ tải xuống của Trình mô phỏng.

Để biết ghi chú phát hành cho các phiên bản Trình mô phỏng trước phiên bản 25.3.0, hãy xem Ghi chú phát hành của Công cụ SDK Android.

31.2.10 (Ngày 20 tháng 4 năm 2020)

  • Thêm tiện ích để tải các hàm Vulkan bằng tính năng dự phòng
  • [Sửa lỗi] Sửa lỗi bản dựng gcc8

31.2.9 (23 Tháng 3 năm 2022)

  • [Sửa lỗi] Bỏ qua áp suất bộ nhớ khi lưu ảnh chụp nhanh trên M1

31.2.8 (7 tháng 2 năm 2022)

  • [Sửa lỗi] Không đăng nhập được vào ứng dụng
  • [Sửa lỗi] Vấn đề #215368358: "adb reboot" ("khởi động lại adb") trên nền tảng Intel sẽ làm avd gặp sự cố với "vcpu shutdown request" ("yêu cầu tắt vcpu")

31.2.7 (ngày 1 tháng 2 năm 2022)

  • [Sửa lỗi] Lỗi treo trình mô phỏng trên máy M1.

31.2.6 (ngày 20 tháng 1 năm 2022)

  • Thêm nút của thiết bị đeo vào trình mô phỏng Wear OS.
  • Cho phép chỉnh sửa tất cả thuộc tính phương tiện xe trong thẻ VHAL.
  • [Sửa lỗi] Xác thực tài khoản Google không thành công trên GmsCore v21.42.18.
  • [Sửa lỗi] Netshaper không hoạt động tốt với VirtioWifi.
  • [Sửa lỗi] Sự kiện lệnh bảng điều khiển chuột không hoạt động.
  • Bổ sung tính năng kiểm tra KVM để tạo AVD cục bộ.

31.1.3 (ngày 18 tháng 1 năm 2022)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau đây:

  • Bật cổng bảng điều khiển cho Fuchsia.
  • Khi đổi kích thước cửa sổ nhiều màn hình, hướng sẽ bị bỏ qua.
  • Wi-Fi: Bổ sung tính năng hỗ trợ tuỳ chọn lọc các gói unicast dựa trên địa chỉ MAC MAT.
  • Wi-Fi: Khắc phục sự cố khi sử dụng vmnet.

30.9.5 (ngày 15 tháng 12 năm 2021)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau đây:

  • Thêm chức năng dễ dàng thay đổi kích thước cho cửa sổ mang kích thước máy tính hoặc máy tính bảng.
  • Bổ sung tính năng hỗ trợ nhập bằng cách nhấn nhiều lần qua thiết bị lưu trữ tương thích.
  • VirtioWifi: Bổ sung tính năng hỗ trợ cho mạng nhấn.
  • Bật phương thức nhập dữ liệu xoay cho ảnh hệ thống Wear.
  • Khắc phục vấn đề về cấu hình âm thanh gRPC.
  • Cập nhật tính năng trình mô phỏng phát lại SensorReplay để hỗ trợ cảm biến Android tiêu chuẩn.
  • Kết nối trình mô phỏng với thiết bị ngoại vi và thiết bị sử dụng USB có khả năng truyền qua USB.

30.4.5 (ngày 23 tháng 2 năm 2021)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau đây:

  • macOS: Khắc phục vấn đề méo tiếng đầu vào âm thanh.
  • Bổ sung tính năng hỗ trợ virtio-ockock trong không gian người dùng.
  • Ảnh hệ thống sau này sẽ sử dụng bảng điều khiển virtio cho thông điệp logcat và nhân.
  • Tăng tốc độ kết xuất Vulkan.
  • Bổ sung tính năng hỗ trợ gỡ lỗi tổng quan nhanh khi kiểm thử không thành công.
  • virtio-gpu: cập nhật định nghĩa để hỗ trợ tài nguyên blob enum mới nhất.
  • Bổ sung tính năng hỗ trợ tổng quan nhanh cho các kiểu truyền tải đồ hoạ "asg".
  • macOS: Bổ sung tính năng hỗ trợ xây dựng cho SDK macOS 11.1 trở lên.
  • Theo mặc định, KVMPLURAL được bật trên các ảnh hệ thống mới hơn.
  • Bổ sung tính năng hỗ trợ cho cảm biến nhịp tim vào trình mô phỏng Wear.
  • Xoá phần phụ trợ Vulkan libportability.
  • Hỗ trợ thêm nhiều tính năng trong trình mô phỏng modem.

30.0.26 (ngày 16 tháng 8 năm 2020)

Bản cập nhật này có một số tính năng mới, cải thiện một số tính năng hiện có và khắc phục một số lỗi.

Hỗ trợ thiết bị có thể gập lại có cảm biến bản lề ảo và khung xem 3D

  • Bổ sung tính năng hỗ trợ cảm biến bản lề cho thiết bị có thể gập lại. Tính năng này yêu cầu ảnh hệ thống Android 11 và cấu hình AVD trong tương lai. Khung xem 3D có thể gập và thông số bản lề hiện được tích hợp với các giá trị đặt trước hiện có cho thiết bị có thể gập lại. Bạn có thể sử dụng nội dung sau với tệp config.ini của AVD có thể gập lại 7.3 chẳng hạn:

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
    
  • Giờ đây, thiết bị có thể gập lại cũng có kiểu thông số phụ. Hiện đã có thuộc tính config.ini hw.sensor.hinge.sub_type = hinge/fold. Hãy xem bài đăng trên blog Phát triển cho Android 11 bằng Trình mô phỏng Android để biết thêm chi tiết.

  • Giờ đây, cảm biến bản lề được bật theo mặc định.

  • Nếu thiết bị có thể gập lại được định cấu hình, trình mô phỏng giờ đây sẽ gửi cho khách thông tin cập nhật cảm biến góc bản lề cũng như thay đổi về tư thế. Thiết bị có thể gập lại nay sẽ cập nhật góc và tư thế của cảm biến bản lề khi người dùng nhấn nút gập hoặc mở màn hình của thanh công cụ.

Trình mô phỏng cho máy chủ ARM64

  • Mã nguồn trình mô phỏng Linux hiện hỗ trợ biên dịch chéo từ máy chủ x86_64 sang arm64, cho phép chạy ảnh hệ thống arm64 với công nghệ ảo hoá KVM. Hiện tại, chỉ -gpu swiftshader_indirect (kết xuất máy chủ Swiftshader arm64) được hỗ trợ, nhưng bạn cũng có thể sử dụng một bộ thư viện GPU lưu trữ (trên máy chủ) libEGL/libGLESv2 tương thích bằng cách thay thế lib64/gles_swiftshader với các thư viện đó rồi chạy lại với -gpu swiftshader_indirect. Tính năng tổng quan nhanh cũng có thể không hoạt động (thêm -no-snapshot vào dòng lệnh). Hướng dẫn:

    mkdir emu
    cd emu
    repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1
    repo sync -qcj 12
    cd external/qemu
    pip install absl-py
    pip install urlfetch
    sudo apt-get install crossbuild-essential-arm64
    python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
    
  • Đang trong quá trình chuẩn bị hỗ trợ Apple Silicon.

Hỗ trợ virtio-gpu

  • Hỗ trợ thêm về máy chủ cho các tài nguyên blob ổn định dành cho máy chủ lưu trữ virtio-gpu sắp tới.
  • Do cách hoạt động của tính năng kết xuất trình mô phỏng, chúng tôi hiện xử lý cơ chế xếp hàng ảo virtio-gpu trong luồng vcpu (vì quá trình kết xuất sẽ giảm tải sang các luồng khác). Tính năng kết xuất virtio-gpu sẽ được bật trong một ảnh hệ thống và phiên bản trình mô phỏng trong tương lai.
  • Trong một ảnh hệ thống trong tương lai, trình mô phỏng sẽ có thể chạy tất cả hình ảnh có ngăn xếp dựa trên virtio-gpu.

Tính năng mới và tính năng nâng cao khác

  • Tính năng truyền qua USB hiện đã có trên Windows nhờ -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>. (Tính năng này hẳn cũng đã hoạt động trên Linux và macOS)
  • Cập nhật thư viện WebRTC thành M83.
  • Trình mô phỏng hiện hỗ trợ truyền phát âm thanh trong vùng chứa qua WebRTC.
  • Xoá điểm cuối của ống darwinn.
  • Trình giải mã CUDA VPx cho video hiện đã được đưa vào sử dụng cho tính năng giải mã CUDA VPx có sẵn trong phần cứng thông qua biến môi trường ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.
  • Trên macOS, SSE 4.1 và 4.2 hiện có sẵn trong hệ điều hành Android khách.
  • Theo mặc định trên macOS, INVTSC hiện đang bật. Tính năng này có thể cải thiện độ chính xác của kết quả đo lường thời gian từ chế độ khách.
  • Chúng tôi hiện theo dõi ngăn điều khiển mở rộng đã được người dùng chọn trong chỉ số.
  • Trình mô phỏng Linux hiện sử dụng đồng hồ ảo hoá song KVM khi phiên bản hạt nhân khách >= 5.4 (ảnh hệ thống R trở lên).
  • Trình mô phỏng hiện sử dụng LZ4 để giải nén các hạt nhân khách, giúp ứng dụng này tương thích với quy trình nhân hiện đại.
  • Thêm các lệnh trong bảng điều khiển để lấy thư mục AVD của trình mô phỏng, đường dẫn đến tệp khám phá (trong trường hợp sử dụng Studio nhúng) và đường dẫn tới ảnh tổng quan nhanh:

    adb emu avd path # Obtains path to AVD directory
    adb emu avd discoverypath # Obtains path to discovery file
    adb emu avd snapshotspath # Obtains path to snapshots folder
    adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
    
  • Để giúp dễ dàng tiết kiệm không gian màn hình dọc, chúng tôi đã thêm tuỳ chọn ẩn khung thiết bị cho thiết bị ảo Android (AVD) hiện tại trong Extended Controls (Chế độ điều khiển mở rộng) > Settings (Cài đặt). Để ẩn khung thiết bị cho tất cả AVD, chúng tôi đã cung cấp cờ tính năng NoDeviceFrame. Cờ này có thể được kích hoạt bằng cách chạy trình mô phỏng qua dòng lệnh có khung -feature NoDevice, hoặc để khoá cờ, hãy thêm NoDeviceFrame = on vào ~/.android/advancedFeatures.ini (Hãy tạo tệp này nếu chưa có).

  • Thêm một mục thả xuống trên trang dành cho thiết bị di động để bật và tắt tính năng hỗ trợ đo lường dữ liệu. Đây là tuỳ chọn không hoạt động cho những ảnh hệ thống cũ không hỗ trợ nút bật/tắt tuỳ chọn đo lường dữ liệu 5G.

    • Đồng thời thêm lệnh điều khiển có cùng mục đích: gsm meter on|off
  • Nâng cấp chuỗi công cụ/bản dựng lên C++17.

Sửa lỗi: trình mô phỏng được nhúng

  • Bảng nhớ tạm hiện đã hoạt động được.
  • Khắc phục vấn đề ký tự viết hoa được phân phối dưới dạng ký tự viết thường trong trình mô phỏng.
  • Sửa mã thông báo bảng điều khiển qua một đường dẫn unicode trong cửa sổ.
  • Sửa thông báo lỗi SO_REUSEPORT trên linux.
  • Khắc phục vấn đề hỏng ảnh tổng quan nhanh khi gửi các lệnh chụp nhanh thông qua gRPC, cũng như khi nhấn nút lưu tổng quan nhanh trong trình mô phỏng nhúng của Android Studio.
  • Khi sử dụng trình mô phỏng Linux được nhúng trong Studio, chúng tôi nhận thấy rằng nếu quá trình này được thực hiện qua Chrome Remote Desktop, có một lỗi XDG_RUNTIME_DIR không được đặt và có thể khiến trình mô phỏng được nhúng không xuất hiện do tệp khám phá trình mô phỏng đang được đặt trong XDG_RUNTIME_DIR. Bạn có thể kiểm tra trạng thái của vấn đề tương ứng trong Công cụ theo dõi lỗi Chrome.

    Để khắc phục, trình mô phỏng nay sẽ quay lại sử dụng tệp khám phá trong một thư mục có thể khác biệt dựa trên UID của người dùng: /run/user/&lt;uid>.

  • Trình mô phỏng được nhúng: Giờ đây, các thiết bị có góc/khía tròn được làm tròn sẽ thay đổi bố cục một cách phù hợp để tạo không gian cho các góc và khía. Việc này yêu cầu bạn phải khởi động nguội các trình mô phỏng đó.

  • Điểm cuối gRPC hiện đã hỗ trợ gửi SMS tới thiết bị.

Bản sửa lỗi chung

  • Chúng tôi nhận thấy vấn đề về khả năng tương thích khi chạy trình mô phỏng Windows với Riot Vanguard đang hoạt động. Trình mô phỏng Windows nay phát hiện tính năng chống gian lận của Vanguard và bật lên một thông báo cảnh báo nếu phát hiện Vanguard.
  • Sửa lỗi FD_SETSIZE trên Windows. Hiện tại, chúng tôi sử dụng WSAEventSelect() thay vì select() để thiết lập kết nối không bị chặn tới máy chủ loopback
  • Bổ sung tính năng hỗ trợ CPUID F16C vào trình mô phỏng Linux kèm theo sửa các vấn đề khi chạy một số ứng dụng ARM64 thông qua bản dịch NDK; macOS/Windows đang trong quá trình thêm tính năng này.
  • Sửa việc phát định tuyến gpx/kml theo các dấu thời gian.
  • Sửa lỗi không truy cập được biểu tượng khi khởi động cho MacOS.
  • Nếu hw.audioInput=nohw.audioOutput=no trong config.ini, thì âm thanh của trình mô phỏng nay đã được tắt đúng cách.
  • Khắc phục vấn đề: cửa sổ trình mô phỏng bị thu nhỏ trong khi cửa sổ điều khiển mở rộng đang mở nhưng không hoạt động, cửa sổ điều khiển mở rộng sẽ vẫn hiện khi bạn thay đổi kích thước cửa sổ trình mô phỏng. Chúng tôi sẽ xoá hoàn toàn hành vi này (trường hợp cửa sổ chế độ điều khiển mở rộng đang hoạt động) trong một bản cập nhật sau này.
  • Sửa lỗi không ổn định khi không có kết nối Wi-Fi lúc trình mô phỏng khởi động.
  • Khắc phục vấn đề chờ thoát khi trình mô phỏng đưa ra các lệnh shell với thời gian chờ dài hoặc vô thời hạn.
  • Dùng các bản sửa lỗi để cập nhật pc-bios nhằm hỗ trợ tốt hơn những hình ảnh lớn được truyền đến -initrd; BIOS từng sử dụng một phương pháp rất không hiệu quả.
  • Sửa sự cố xảy ra trong thời gian chấm dứt khi sử dụng tuỳ chọn -wifi-server-port.
  • Trình mô phỏng nay in cảnh báo nếu các tuỳ chọn không được hỗ trợ được chuyển tới -prop (Chỉ hỗ trợ vật thể qemu.*)
  • Khi xây dựng trình mô phỏng trên Windows, bạn sẽ ít có khả năng gặp lỗi ghi tệp không ổn định. Để biết thêm thông tin, hãy xem bài viết hướng dẫn cho bản dựng Windows.
  • Nút Zoom (Thu phóng) đã bị tắt cho AVD có thể gập lại và gây ra vấn đề.
  • Trình mô phỏng nay báo cáo chính xác thời gian khởi động đến từ một lần khởi động lại thiết bị.
  • Linux: Trong trường hợp không có đủ quyền KVM, trình mô phỏng sẽ in hướng dẫn gỡ lỗi nhanh hơn.
  • Khắc phục vấn đề trình mô phỏng không khởi động được ảnh hệ thống gần đây khi không có tính năng tăng tốc.
  • Sửa sự cố hỏng hoặc lỗi bộ nhớ khi khởi động qua một trình phát hiện hoàn tất khởi động.
  • Sửa lỗi rò rỉ bộ nhớ trong các phiên ghi màn hình dài.
  • Biểu tượng trình mô phỏng được cập nhật để thể hiện thương hiệu Studio 4.1.
  • Hỗ trợ tốt hơn để phát hiện các phiên từ xa trên Windows.

Sửa lỗi: đồ hoạ và trình giải mã video

  • Khắc phục vấn đề trò chơi Asphalt 9 bản mới nhất kết xuất màn hình đen.
  • Xoá nội dung vi phạm về xoá bản đồ ánh xạ bộ đệm với NULL.
  • Sửa một điều kiện thực hiện khi phá vỡ trạng thái Vulkan khi một ứng dụng Vulkan của chế độ khách đã thoát ra.
  • Trình tạo bóng mô phỏng Vulkan ASTC/ETC2 nay được đưa vào thư viện libOpenglRender. Cách này sẽ đáng tin cậy hơn so với việc đọc qua hệ thống tệp.
  • Khắc phục một vấn đề trong Vulkan, trong đó nếu chạy bằng phiên bản Vulkan 1.0 trên máy chủ, vkGetImageMemoryRequirements2KHR sẽ xoá không chính xác trường pNext của cấu trúc VkMemoryRequirements2 được trả về.
  • Khắc phục vấn đề rò rỉ bộ nhớ trong trình kết xuất Vulkan.
  • Sửa một phiên hồi quy gần đây trong đó chương trình đổ bóng GLSL ES 1.00 có tên biến như isampler2D không thể biên dịch.
  • Cập nhật trình dịch đổ bóng OAuth với nhiều bản sửa lỗi giải quyết việc trình đổ bóng trên Linux có thể bị lỗi dịch biên.
  • Giờ đây, nhằm theo dõi hiện tượng này, chúng tôi để trình mô phỏng gặp sự cố nếu trình đổ bóng đệm hàm blit cơ bản không biên dịch.
  • Cập nhật trình dịch bóng đổ ANGLE để cập nhật ANGLE ngược dòng (upstream). Điều chỉnh này giúp Khắc phục vấn đề hỏng bộ nhớ khi dịch và lặp lại hằng số chương trình đổ bóng OpenGL ES sử dụng ma trận không vuông. Trình dịch bóng đổ giờ đây là một thư viện dùng chung riêng biệt, libshadertranslator.dll.
  • Khắc phục vấn đề khởi tạo Vulkan trên một số trình điều khiển GPU không tìm thấy một số chức năng thiết bị 1.1.
  • Vulkan: Chúng tôi đã quay lại sử dụng trình tải trước được tạo sẵn vì ưu tiên dùng trình tải Vulkan hệ thống đã gây ra sự cố trong một số thiết lập; sẽ tìm ra giải pháp tốt hơn.
  • Khắc phục vấn đề khi sử dụng bộ nhớ ngoài Vulkan, bộ nhớ này có thể đã nhập các chỉ mục loại bộ nhớ không khớp trên máy chủ.
  • Khắc phục vấn đề trong việc mô phỏng GL_ALIASED_POINT_SIZE_RANGE khi enum không được hỗ trợ trên máy chủ.
  • Khắc phục vấn đề trong đó một số GPU lưu trữ (trên máy chủ), trình tạo bóng trên Skia không thể biên dịch do lỗi liên quan đến GL_EXT_shader_framebuffer_fetch.
  • Do bản sao trình kết xuất D3D9 ANGLE đã bị xoá từ vài phiên bản trước, nêngiờ đây chúng tôi cũng sẽ tự động chuyển đổi những người dùng đã sử dụng trình kết xuất đó sang d3d11 ANGLE nếu trình kết xuất đó được chọn trong tuỳ chọn giao diện người dùng.
  • Thêm nhiều thông tin gỡ lỗi khác vào quá trình khởi chạy WGL trên Windows để theo dõi lỗi.
  • Khi hw.gltransport=virtio-gpu-pipe, hiệu suất sẽ được cải thiện bằng cách không xoay vòng trên máy chủ trong quá trình chuyển từ máy chủ sang khách.
  • Thêm tính năng ghi nhật ký gỡ lỗi khi quá trình mô phỏng OpenGLES không khởi chạy được.
  • Khắc phục vấn đề video YouTube nhấp nháy hoặc không xuất hiện khi bản tải tổng quan nhanh.
  • Trở lại giải mã phần mềm cho libvpx vì chúng tôi nhận thấy vấn đề liên quan đến mã giải mã phần cứng CUDA của libvpx. Nếu đã triển khai phương thức giải mã phần cứng CUDA được hỗ trợ ở phía máy chủ, bạn có thể bật lại trình giải mã phần cứng của libvpx qua biến môi trường ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.

30.0.10 (ngày 30 tháng 4 năm 2020)

Bản cập nhật này có hỗ trợ việc chạy trình mô phỏng trực tiếp trong Android Studio và các thiết bị ảo đang mặc định kích hoạt Chế độ cửa sổ dạng tự do.

Chạy trình mô phỏng trong Android Studio

Giờ đây, bạn có thể chạy trực tiếp Trình mô phỏng Android trong Android Studio. Hãy sử dụng tính năng này để bảo toàn không gian màn hình, để di chuyển nhanh giữa trình mô phỏng và cửa sổ trình chỉnh sửa bằng cách sử dụng phím tắt, cũng như để sắp xếp quy trình IDE và trình mô phỏng trong một cửa sổ ứng dụng duy nhất.

Chế độ cửa sổ dạng tự do

Nay bạn có thể tạo AVD đã bật Chế độ cửa sổ tự do bằng cách chọn cấu hình phần cứng máy tính bảng Freeform 13.5” khi tạo thiết bị ảo trong Android Studio. Cấu hình phần cứng này yêu cầu ảnh hệ thống Bản dùng thử Android 11 cho nhà phát triển 3 trở lên.

Vấn đề đã biết

Trình đổi kích thước cửa sổ dạng tự do hiện không sử dụng được vì các vấn đề khi chuyển tiêu điểm sang Trình quản lý cửa sổ. Tình trạng này sẽ được giải quyết trong bản phát hành ảnh hệ thống Android 11 trong tương lai.

30.0.0 (ngày 19 tháng 2 năm 2020)

Bản cập nhật này bao gồm ảnh hệ thống Android 11 (API cấp 30) và cải thiện hiệu suất khi chạy tệp nhị phân ARM.

Ảnh hệ thống Android 11

Nay bạn có thể tạo AVD chạy Android 11 bằng cách chọn một trong các ảnh hệ thống API cấp 30 hiện có:

  • x86: Bao gồm cả Giao diện nhị phân ứng dụng (ABI) x86 và ARMv7.
  • x86_64: Bao gồm các ABI x86, x86_64, ARMv7 và ARM64.

Hỗ trợ tệp nhị phân ARM trên ảnh hệ thống Android 9 và 11

Nếu trước đây bạn không thể sử dụng Trình mô phỏng Android vì ứng dụng phụ thuộc vào tệp nhị phân ARM, thì giờ đây, bạn có thể sử dụng ảnh hệ thống Android 9 x86 hoặc ảnh hệ thống Android 11 bất kỳ để chạy ứng dụng này – bạn không còn cần phải tải một ảnh hệ thống cụ thể xuống để chạy tệp nhị phân ARM. Theo mặc định, những ảnh hệ thống Android 9 và Android 11 này hỗ trợ ARM và có hiệu suất được cải thiện đáng kể so với khi sử dụng chế độ mô phỏng ARM đầy đủ.

Vấn đề đã biết

  • Một số tệp nhị phân ARMv7 không chạy được trên ảnh hệ thống Android 11 x86 và x86_64. Cân nhắc xây dựng cho ARM64 khi chạy trên hệ điều hành Android 11.

29.0.11 (ngày 29 tháng 5 năm 2019)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau đây:

  • Windows: Trình mô phỏng hiện dựa vào DLL libgcc chúng tôi gửi thay vì được biên dịch bằng libgcc tĩnh.
  • Linux: Thêm tính năng hỗ trợ logcat vào gRPC API. Để biết thêm thông tin về gRPC, hãy xem nội dung trình mô phỏng truyền trực tuyến gRPC (Linux).
  • Trình mô phỏng hiện có một bản dựng không có giao diện người dùng cho phiên bản 32-bit x86 (qemu-system-i386). Tính năng này cho phép hình ảnh x86 32 bit cho API cấp 26 trở xuống chạy với bản dựng không có giao diện người dùng. Lưu ý rằng đối với chế độ khách 38 bit x86 có API 27 trở lên, trình mô phỏng sẽ sử dụng công cụ 64 bit (qemu-system-x86_64) vì trong những ảnh hệ thống này, không gian người dùng là 32 bit còn nhân là 64 bit. Android Studio sử dụng hạt nhân để chọn công cụ mô phỏng.
  • Bạn hiện có thể chỉ định đường dẫn thư viện Qt tuỳ chỉnh bằng cách sử dụng biến môi trường ANDROID_QT_LIB_PATH.
  • Bạn hiện có thể chạy trình mô phỏng với các tệp nhị phân trước đó sử dụng QEMU1 nếu các tệp thực thi QEMU1 (emulator[64]-[x86|arm|etc]) được đặt trong thư mục trình mô phỏng.
  • Windows: Khắc phục vấn đề đôi khi có thể khiến trình mô phỏng không khởi động với thông báo "yêu cầu tắt vCPU".
  • Khắc phục vấn đề về rào cản đường ống không cần thiết trong kết cấu nén mô phỏng trong Vulkan.
  • Sửa lỗi xảy ra với các yêu cầu proxy http khi phương pháp mã hoá chuyển dữ liệu chia nhỏ đã được sử dụng. Để biết thêm thông tin, hãy xem chi tiết về cam kết.

29.0.9 (ngày 7 tháng 5 năm 2019)

Bản cập nhật này bao gồm bản sửa lỗi sau:

  • Windows: Khắc phục vấn đề máy quay cảnh ảo và webcam không hoạt động trên trình mô phỏng.

29.0.8 (ngày 6 tháng 5 năm 2019)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau đây:

  • Thêm hỗ trợ cho nhiều màn hình phần cứng ảo khi có một dịch vụ khách để liệt kê và đặt từng màn hình. Nhiều màn hình phần cứng ảo sẽ được đưa vào bản cập nhật ảnh hệ thống trình mô phỏng sau này.
  • Thêm tuỳ chọn dòng lệnh mới: -delay-adb. Tuỳ chọn này chặn việc xử lý các gói ADB cho đến khi chế độ khách hoàn tất khởi động (tắt khởi động nguội). Tuỳ chọn này giúp giải quyết các vấn đề có thể xảy ra nếu bạn sử dụng trình mô phỏng trong một môi trường CI khởi động lại trình mô phỏng và sử dụng DDMS cùng lúc.
  • Sửa lỗi xảy ra khi tải bản tổng quan nhanh, glIsRenderbuffer sẽ trả về giá trị không chính xác.
  • Sửa một số vấn đề về trạng thái cũ khi hệ điều hành Android khách khởi động lại.
  • Windows: Sửa các vấn đề ngăn trình mô phỏng khởi động khi tên người dùng Windows có các ký tự hoặc dấu cách không phải ký tự ASCII.

Vấn đề đã biết

  • Giao diện người dùng của trang Tổng quan nhanh đã bị tắt đối với ảnh của hệ thống Automotive vì các bản tổng quan nhanh này hiện không hỗ trợ ảnh hệ thống.

29.0.6 (ngày 1 tháng 5 năm 2019)

Bản cập nhật này có một số tính năng mới, cải thiện một số tính năng hiện có và khắc phục một số lỗi.

Ngừng hỗ trợ trình máy ảo QEMU1 và Windows 32 bit

Để duy trì trình mô phỏng tốt hơn, chúng tôi không còn gửi tệp nhị phân QEMU1 và Windows 32 bit. Nếu đang sử dụng Windows 32 bit, bạn không thể nâng cấp lên bản phát hành 29.0.6.

Yêu cầu đối với ảnh hệ thống Android Q

Nếu muốn chạy AVD sử dụng ảnh hệ thống Android Q, giờ đây bạn phải sử dụng bản phát hành 29.0.6 (phiên bản phát hành này) trở lên.

Cải tiến trong Project Marble

Bản cập nhật này tiếp nối nỗ lực của chúng tôi trong sáng kiến Project Marble được công bố tại Hội nghị dành cho nhà phát triển Android tháng 11 năm 2018. Để biết thêm thông tin về những điểm cải tiến khác của Project Marble trong các bản phát hành trước, hãy xem nội dung Trình mô phỏng Android: Điểm cải tiến trong Project Marble.

Trong lần cập nhật này, hầu hết hoạt động của chúng tôi về Project Marble đều dành riêng cho việc giảm mức sử dụng tài nguyên của trình mô phỏng, chẳng hạn như giảm mức sử dụng CPU của trình mô phỏng khi ở trạng thái rảnh. Chúng tôi cũng đưa ra những thay đổi giúp bạn dễ dàng làm việc trên trình mô phỏng trong nhiều môi trường hơn. Đồng thời, chúng tôi đã giải quyết các vấn đề chung về chất lượng.

Các phần sau đây mô tả các điểm cải tiến về Project Marble trong bản cập nhật này:

Cải tiến về hành vi âm thanh của máy chủ

Kể từ bản phát hành 28.0.3, theo mặc định, trình mô phỏng chặn âm thanh đầu vào từ máy chủ.

Nếu muốn sử dụng dữ liệu âm thanh của máy chủ, bạn có thể bật tuỳ chọn đó bằng cách chuyển tới phần Extended Controls (Chế độ điều khiển mở rộng) > Microphone (Micrô) rồi bật Virtual microphone uses host audio input (Micrô ảo sử dụng đầu vào âm thanh của máy chủ). Tuỳ chọn này tự động tắt bất cứ khi nào trình mô phỏng khởi động lại.

Nếu đang sử dụng dòng lệnh, bạn cũng có thể bật âm thanh của máy chủ bằng cách sử dụng tuỳ chọn -allow-host-audio, đồng thời có thể sử dụng các lệnh ADB sau đây để lần lượt bật hoặc tắt dữ liệu âm thanh của máy chủ:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Cải tiến đối với bản dựng trình mô phỏng không có giao diện người dùng

Kể từ phiên bản 28.0.25, trình mô phỏng có một tuỳ chọn bản dựng không có giao diện người dùng có thể chạy mà không cần giao diện người dùng. Bạn có thể sử dụng bản dựng không có giao diện người dùng để thiết lập trình mô phỏng cho Docker và quy trình làm việc tích hợp liên tục (CI).

Với bản cập nhật này, chúng tôi đã cải thiện thêm để cho phép trình mô phỏng chạy với số lượng phần phụ thuộc tối thiểu. Trên Linux, các bản dựng không có giao diện người dùng sẽ không còn chứa thư viện pulseaudio hoặc libX11 nữa. Các thư viện dùng chung hệ thống không được đóng gói với trình mô phỏng đã bị giảm xuống thành danh sách sau:

  • Linux-vdso.so.1
  • Libutil.so.1
  • Libm.so.6
  • Libdl.so.2
  • Librt.so.1
  • Libpthread.so.0
  • Libgcc_s.so.1
  • Libc.so.6
  • ld-linux-x86-64.so.2

Nâng cấp thư viện giao diện người dùng Qt lên phiên bản hỗ trợ dài hạn 5.12

Bản cập nhật này bao gồm các điểm cải tiến sau từ bản phát hành LTS (hỗ trợ dài hạn) Qt 5.12:

  • Để tránh xảy ra sự cố trong bộ giải mã libpng của Qt khi khởi động một số ảnh hệ thống, trình mô phỏng giờ đây sử dụng bản sao libpng riêng để giải mã hình ảnh PNG.
  • Để giải quyết vấn đề xảy ra với một số lượt cài đặt trên Linux chứa các phiên bản không tương thích của một số thư viện phụ thuộc Qt, nay chúng tôi đóng gói libfreetype, libsoftokn, libsqlite3libxkbcommon bằng trình mô phỏng.
  • Trình mô phỏng nay sử dụng thư viện cửa sổ gốc của nền tảng để lấy kích thước màn hình, thay vì sử dụng những thư viện Qt trả về kết quả không đáng tin cậy.

Tự động tối ưu hoá CPU sau khi khởi động nguội

Để giải quyết vấn đề mức sử dụng CPU, giờ đây trình mô phỏng sẽ chạy các lệnh ADB sau đây trên một phiên khởi động nguội sau khi nhận được tín hiệu boot complete:

adb shell settings put screen_off_timeout 214783647
Lệnh này làm tăng thời gian chờ tắt màn hình để bạn có thể sử dụng trình mô phỏng ở chế độ pin mà không cần sạc. Ở chế độ pin, mức sử dụng CPU trong nền sẽ giảm đáng kể.
Trong chế độ sạc nguồn AC, các thao tác chạy trong nền tảng GMSCore, chẳng hạn như bản cập nhật ứng dụng, có thể chiếm tất cả lõi CPU của thiết bị – và sâu hơn là toàn bộ máy của người dùng – mà không có cảnh báo.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
Lệnh này thu hồi quyền sử dụng micrô của ứng dụng Google Tìm kiếm. Điều này giúp giảm đáng kể mức sử dụng CPU trong nền trên màn hình chính và trong trình chạy khi ứng dụng Google Tìm kiếm đang hoạt động.
Lệnh này chạy ngoài hành vi mặc định của trình mô phỏng là tắt âm thanh của máy chủ cho máy chủ. Hơn nữa, lệnh này còn tự động giảm thiểu mức sử dụng CPU theo mô tả cho tính năng phát hiện cụm từ kích hoạt từ bản phát hành 28.0.23.

Biến môi trường mới để theo dõi hiệu suất

Bạn hiện có thể sử dụng hai biến môi trường mới để theo dõi được hiệu suất và mức sử dụng tài nguyên của trình mô phỏng một cách chi tiết.

SHOW_PERF_STATS=1
Biến môi trường này giúp bạn theo dõi cả mức sử dụng CPU và RAM. Tính năng theo dõi mức sử dụng RAM được phân biệt giữa mức sử dụng đồ hoạ và tổng bộ nhớ thường trú.
ANDROID_EMU_TRACING=1
Biến môi trường này cho phép in mỗi khi một thao tác nhập hoặc đồ hoạ mất nhiều thời gian (dài hơn 1 mili giây).
Chúng tôi cũng đang sử dụng biến môi trường này để giúp chẩn đoán các vấn đề mà người dùng Windows gặp phải do giật (khung hình bị sụt) nhiều hơn so với trải nghiệm người dùng trên macOS hoặc Linux.

Cải tiến chung trong Project Marble

Bản cập nhật này cũng bao gồm các điểm cải tiến chung sau đây trong sáng kiến Project Marble:

  • Bạn hiện có thể tạm dừng tất cả vCPU trên trình mô phỏng thông qua các lệnh trong bảng điều khiển sau:
    • adb emu avd pause
    • adb emu avd resume
  • Giảm đáng kể mức hao tổn của bản vẽ OpenGL. Điểm cải tiến này làm giảm mức sử dụng CPU trong khi trình mô phỏng đang phát ảnh động.
  • Khôi phục hỗ trợ cho thiết bị mạng ảo e1000 của QEMU. Bạn có thể sử dụng thiết bị này để thiết lập trình mô phỏng trong môi trường mạng cầu nối. Trong môi trường mạng cầu nối, trình mô phỏng sẽ xuất hiện trên mạng máy chủ và mạng máy chủ sẽ xuất hiện trên trình mô phỏng.
  • Bạn hiện có thể dùng các tệp nhị phân BIOS phù hợp với QEMU 2.12 để khởi động trình mô phỏng.
  • Nâng cấp phiên bản ffmpeg lên phiên bản 3.4.5 để mã hoá và giải mã video.
  • Giảm đáng kể mức hao tổn vòng lặp chính I/O của QEMU trên macOS bằng cách thay thế vòng lặp chính dựa trên select() bằng vòng lặp chính dựa trên kqueue.
  • Dung lượng bộ nhớ đệm logcat tăng lên 2 MB để giải quyết các vấn đề EOF gây gián đoạn ngoài dự kiến khi chạy logcat với trình mô phỏng.
  • Theo mặc định, giờ đây trình mô phỏng sẽ xuất biến môi trường LC_ALL=C. Thay đổi này giải quyết các sự cố và vấn đề không tương thích liên quan đến việc chạy trình mô phỏng ở nhiều ngôn ngữ.
  • Bạn hiện có thể theo dõi mức sử dụng CPU và RAM của trình mô phỏng bằng cách sử dụng số liệu thống kê hiệu suất tại phần Extended Controls (Chế độ điều khiển mở rộng) > Settings (Cài đặt) > Advanced (Nâng cao) > Performance Stats (Số liệu thống kê về hiệu suất). Hãy dùng số liệu thống kê này để chẩn đoán nhanh các vấn đề nếu trình mô phỏng có vẻ đang sử dụng quá nhiều CPU hoặc RAM.
  • glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE hiện sử dụng kết quả của GPU lưu trữ (trên máy chủ) thay vì kết quả mô phỏng. Thay đổi này sẽ giúp sửa các vấn đề mà hình ảnh và tài sản không xuất hiện do định dạng đọc không chính xác.
  • Thêm tuỳ chọn hỗ trợ cho các tiện ích OpenGL ES GL_EXT_texture_format_BGRA8888GL_APPLE_texture_format_BGRA8888 nếu các tiện ích này được máy chủ hỗ trợ.
  • Thêm nhiều thông tin chẩn đoán hơn vào giao diện người dùng Báo cáo lỗi. Ngoài ra, bạn có thể truy cập các báo cáo lỗi trên bảng điều khiển bằng các lệnh sau:
    • telnet localhost 5554
    • avd bugreport
  • Trên ảnh hệ thống Android Q, trình mô phỏng tăng kích thước RAM tối thiểu lên 2 GB.
  • Thêm tính năng ghi nhật ký và in bất cứ khi nào OpenGL hoặc trình điều khiển ảo hoá không khởi động được.
  • Nếu trình mô phỏng không thể khởi động đồng thời một phiên bản -read-only của AVD, thì trình mô phỏng sẽ cố gắng chạy lại AVD -read-only thêm 3 lần trong 3 giây. Thay đổi này làm tăng khả năng trình mô phỏng sẽ khởi chạy đồng thời các phiên bản -read-only của AVD nếu các phiên bản có thể ghi của AVD đó vẫn chưa xoá các tệp lỗi thời.
  • Đối với ảnh hệ thống sắp tới, trình mô phỏng hiện đã hỗ trợ Hardware Composer (Trình tổng hợp phần cứng) 2.0. Thay đổi này sẽ giảm mức hao tổn của trình điều khiển khi chạy hầu hết ảnh động.
  • Bản dựng trình mô phỏng nay dựa trên CMake/Ninja.
  • Trong giao diện người dùng của các tính năng điều khiển mở rộng của trình mô phỏng, các đường phân chia trong bảng phím tắt đã được khôi phục.
  • Người dùng hiện có thể chọn cung cấp cho nhóm của chúng tôi các chỉ số sử dụng CPU và RAM trong khoảng thời gian 10 giây. Chúng tôi sử dụng các chỉ số này để làm phong phú dữ liệu về việc sử dụng tài nguyên trình mô phỏng trong nhiều trường hợp sử dụng của người dùng. Việc này cho phép chúng tôi cải thiện hiệu suất và khả năng phản hồi của trình mô phỏng.

Bản sửa lỗi chung trong Project Marble

Bản cập nhật này cũng bao gồm các điểm sửa lỗi chung sau đây trong sáng kiến Project Marble:

  • Khắc phục vấn đề khung hình giật và không hiển thị chính xác trên các hệ thống có GPU Intel khi sử dụng ảnh hệ thống Android Q.
  • Khắc phục vấn đề hiển thị màn hình màu đen khi sử dụng ảnh hệ thống Android Q trên các giao diện của Pixel 2 XL (hoặc giao diện bất kỳ có khía hoặc các góc tròn).
  • Khắc phục vấn đề tuỳ chọn dòng lệnh -partition-size không đặt kích thước phân vùng dữ liệu.
  • Khắc phục vấn đề trình pulseaudio trên trình mô phỏng Linx sẽ quay vòng (spin) và chiếm toàn bộ lõi CPU trong một số trường hợp.
  • Sửa các vấn đề xảy ra khi quyền truy cập bộ nhớ vượt quá giới hạn khi xử lý các kết cấu nén.
  • Sửa lỗi GL xảy ra trên máy chủ trong glTexSubImage2D khi cập nhật một số vùng đệm gralloc (có định dạng RGB 565, RGB10A2, RGB(A)16F).
  • Khắc phục vấn đề hiển thị trong ảnh hệ thống Android Q có tính năng tổng quan nhanh nhưng hình học của ngăn thông báo được kết xuất bằng chế độ cài đặt số chia thực thể (instance divisor) không hợp lệ.
  • Sửa một số vấn đề khó tái tạo và bị treo khi mới phát hành do Qt mất tín hiệu hoặc có trạng thái không nhất quán khi khởi động.
  • Khắc phục nhiều vấn đề đồng thời. Chúng tôi hiện có thể xây dựng trình mô phỏng Linux bằng ThreadSanitizer (TSAN). Lệnh này có thể dễ dàng phát hiện các lỗi khó tái tạo được.
  • Đối với người dùng Linux: chúng tôi nhận thấy rằng trên một số nhân hệ thống lưu trữ, chế độ khách của nhân Android có thể gặp lỗi và thoát trong KVM kèm theo lỗi phần cứng chung. Trình mô phỏng sẽ abort() khi điều này xảy ra để tăng khả năng gỡ lỗi (trước đây, trình mô phỏng bị treo mỗi khi gặp vấn đề này).
  • Đối với người dùng Linux: để thuận tiện cho việc thiết lập CI, bạn có thể sử dụng tuỳ chọn dòng lệnh -stdouterr-file <file-name> mới để chuyển hướng cả stdoutstderr đến một tệp.
  • Khắc phục vấn đề dùng sai SO_REUSEADDR. Để biết thêm thông tin, hãy xem chi tiết về cam kết.
  • Sửa một vấn đề dai dẳng trong trình mô phỏng Windows, trong đó các quy trình phụ, chẳng hạn như lệnh ADB, không thể bắt đầu nếu tên người dùng có dấu cách.
  • Khắc phục vấn đề thiếu thông tin khởi động RCU trong các luồng HAXM vCPU. Bản sửa lỗi này có thể giải quyết một số sự cố và điều kiện thực hiện.
  • Sửa sự cố xảy ra với một số mẫu lưu và tải bản tổng quan nhanh qua giao diện người dùng tổng quan nhanh bằng cách sử dụng ảnh hệ thống Android Q mới tạo gần đây.
  • Khắc phục vấn đề máy ảnh cảnh ảo sẽ bị trống khi trình mô phỏng được khởi động qua bản tổng quan nhanh, trong lúc macro AR đang phát khi bản tổng quan nhanh đó đã được lưu.
  • Khắc phục vấn đề một số người dùng thiết lập máy tính từ xa gặp phải lỗi màn hình đen khi khởi chạy trình mô phỏng trên Linux. Để tránh điều này, trình mô phỏng giờ đây sẽ định cấu hình MESA_RGB_VISUAL một cách rõ ràng. Để biết thêm thông tin, hãy xem chi tiết về cam kết.
  • Khắc phục vấn đề về các nút xoay sẽ xuất hiện trên AVD TV.
  • Khắc phục vấn đề trình mô phỏng luôn được đặt ở trên cùng, cửa sổ chế độ điều khiển mở rộng sẽ xuất hiện mỗi khi trình mô phỏng được xoay.

Cấu hình phần cứng cho thiết bị có thể gập lại

Trình mô phỏng giờ đây có cả cấu hình phần cứng cho thiết bị có thể gập lại. Để sử dụng những cấu hình phần cứng mới này, bạn phải sử dụng Android Studio 3.5 Canary 10 trở lên.

Có hai cấu hình phần cứng có thể gập lại mà bạn có thể sử dụng để tạo AVD:

  • Thiết bị có thể gập lại 7.3": 1536x2152 khi mở, 4.6" 840x1960 khi gập
  • Thiết bị có thể gập lại 8": 2200x2480 khi mở, 6.6" 1480x2480 khi gập

Khi chạy trình mô phỏng bằng một trong các cấu hình phần cứng sau, bạn có thể gập và mở thiết bị bằng thao tác gập và mở màn hình trong thanh công cụ của trình mô phỏng, các lệnh trên bảng điều khiển hoặc các phím tắt sau đây:

  • Gập màn hình: Ctrl + F (Command + F trên macOS)
  • Mở màn hình: Ctrl + U (Command + U trên macOS)

Macro AR

Trình mô phỏng hiện bao gồm các macro AR có thể giúp bạn kiểm thử các hành động thực tế tăng cường phổ biến. Ví dụ: bạn có thể dùng macro để đặt lại tất cả cảm biến trên thiết bị về trạng thái mặc định.

Để biết thêm thông tin, hãy xem nội dung Kiểm thử các hành động thực tế tăng cường phổ biến với các macro.

Hỗ trợ Vulkan (Windows, Linux)

Người dùng Windows và Linux hiện có thể kiểm thử các ứng dụng Vulkan bằng Trình mô phỏng Android lên đến Vulkan 1.1 khi sử dụng ảnh hệ thống tương thích (Android Q Beta 3 trở lên cho Vulkan 1.1, Android Q Beta 2 cho Vulkan 1.0) và GPU lưu trữ (trên máy chủ) tương thích (bao gồm hầu hết GPU Intel, NVIDIA và AMD từ năm 2014 trở đi).

Để bật dịch vụ hỗ trợ Vulkan, bạn phải thêm cờ tính năng sau vào tệp ~/.android/advancedFeatures.ini (tạo tệp nếu chưa có):

  • Vulkan = on
  • GLDirectMem = on

Hỗ trợ ban đầu cho nhà phát triển ROM

Các nhà phát triển ROM đang tạo mục tiêu sdk_phone_x86 hoặc sdk_phone_x86_64 (userdebug, eng) trên nhánh AOSP master hiện có thể chạy trình mô phỏng hỗ trợ Vulkan.

Hoạt động hỗ trợ này vẫn đang trong giai đoạn thử nghiệm và chủ yếu dành cho các nhà phát triển làm việc về ảnh hệ thống, trình điều khiển và công cụ phát triển trò chơi. Nhiều phần mở rộng vẫn còn thiếu. Tuy nhiên, bộ nhớ HOST_COHERENT được hỗ trợ và bạn hiện có thể chạy Mẫu hướng dẫn API Vulkan.

Nếu đang sử dụng linux, bạn có thể thử thao tác này bằng cách dùng những lệnh sau:

mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem

Kết xuất Skia bằng Vulkan

Các GPU NVIDIA và AMD hỗ trợ Vulkan cũng hỗ trợ khả năng tương tác 0 bản sao với OpenGL thông qua phần mở rộng GL_EXT_memory_objects. Trình mô phỏng sẽ sử dụng khả năng này để cung cấp một cách hoàn chỉnh cách kết xuất giao diện người dùng Android bằng các API Skia Vulkan.

Nếu bạn có một GPU NVIDIA hoặc AMD hỗ trợ Vulkan, hãy sử dụng các lệnh sau để kiểm thử kết xuất Skia với ảnh hệ thống tương thích (Android Q Beta 3 trở lên):

adb shell
su
setprop debug.hwui.renderer skiavk
stop
start

Hỗ trợ dành cho Vulkan trên macOS

Tính năng hỗ trợ macOS vẫn còn đang chạy thử nghiệm, nhưng trình mô phỏng nay đã có Swiftshader, MoltenVK và các API libportability (gfx-rs). Bạn có thể thử nghiệm với các API này bằng cách đặt các biến môi trường sau:

  • Swiftshader: ANDROID_EMU_VK_ICD=swiftshader
  • MoltenVK: ANDROID_EMU_VK_ICD=moltenvk
  • libportability: ANDROID_EMU_VK_ICD=portability

Vấn đề đã biết

Đôi khi, HAXM không thể liên kết bộ nhớ nhất quán (coherent memory) Vulkan với chế độ khách và tắt trình mô phỏng. Vấn đề này sẽ được giải quyết trong bản cập nhật HAXM sắp tới.

Trình mô phỏng truyền trực tuyến gRPC (Linux)

Chúng tôi luôn cố gắng làm cho trình mô phỏng linh hoạt nhất có thể bằng cách cho phép kết xuất GPU lưu trữ (trên máy chủ) và tính tương tác trong ngữ cảnh hoạt động rộng nhất. Người dùng CI và máy tính từ xa của chúng tôi gặp phải các vấn đề dai dẳng sau đây:

  • Việc gửi các lệnh đầu vào cho trình mô phỏng theo phương thức lập trình sẽ bao gồm lệnh shell chạy adb có thể gặp mức hao tổn cao hoặc sử dụng bảng điều khiển telnet mang lại tốc độ nhanh hơn nhưng có thể không hoạt động được trên một số cấu hình mạng.
  • Người dùng CI thường chạy các trình mô phỏng không có giao diện người dùng. Điều này có thể gây khó khăn cho việc chú ý các sự cố yêu cầu màn hình phải hiển thị hoặc tương tác được.
  • Người dùng máy tính từ xa thường không thể tương tác với trình mô phỏng khi sử dụng tính năng kết xuất GPU lưu trữ (trên máy chủ) vì chế độ kết xuất GPU thường gắn với các màn hình không ảo của máy chủ.

Để giải quyết vấn đề này, khi chạy trên hệ điều hành Linux, trình mô phỏng hiện sẽ phân phát dịch vụ gRPC. gRPC là một khung chung cho RPC hoạt động qua HTTP.

Theo mặc định, dịch vụ gRPC của trình mô phỏng bị tắt, nhưng bạn có thể kích hoạt dịch vụ này bằng cách sử dụng tuỳ chọn dòng lệnh sau, trong đó <port> là cổng mà trình mô phỏng sẽ phân phát các yêu cầu gRPC (thường là 5556) ):

-grpc <port>

Sau khi bắt đầu cung cấp dịch vụ, các lệnh gRPC có thể được phát hành qua máy khách. Bộ lệnh hiện tại cho phép gửi cả sự kiện đầu vào và nhận bản tổng quan nhanh. Những lệnh này giúp giải quyết các vấn đề sau:

  • Bạn có thể gửi lệnh đầu vào đến trình mô phỏng với mức hao tổn thấp qua HTTP. HTTP cũng cho phép gửi các lệnh trong cấu hình mạng bổ sung.
  • Bạn có thể gửi các lệnh chụp ảnh màn hình để truy vấn màn hình hiện tại, ngay cả khi trình mô phỏng đang chạy không có giao diện người dùng. Đối với mức độ tương tác, sự kiện đầu vào cũng có thể được gửi lại cho trình mô phỏng.
  • Người dùng máy tính từ xa có thể chạy trình mô phỏng không có giao diện người dùng trên màn hình chính với tính năng kết xuất tăng tốc GPU trong khi sử dụng gRPC để có được ảnh chụp màn hình và gửi các sự kiện đầu vào để tương tác với trình mô phỏng.

Để xem danh sách đầy đủ các lệnh có sẵn, hãy xem protobuf này.

Để giúp bạn bắt đầu sử dụng gRPC, chúng tôi đã cung cấp một số ứng dụng mẫu có thể tham khảo.

Hiện tại, chúng tôi có các mẫu sau:

  • Dịch vụ dựa trên Go có thể dùng để truy vấn trạng thái trình mô phỏng.
  • Một ứng dụng React minh hoạ khả năng tương tác từ xa thông qua ảnh chụp màn hình và các RPC đầu vào. Mẫu này yêu cầu bản protobuf phiên bản 3.7.0 trở lên.
  • Mẫu Python truy vấn cấu hình máy ảo của trình mô phỏng rồi gửi một loạt lệnh sau đó.

28.0.25 (ngày 29 tháng 3 năm 2019)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau đây:

Bản dựng trình mô phỏng không có giao diện người dùng

Trình mô phỏng khó thiết lập với Docker và các quy trình làm việc tích hợp liên tục (CI) khác do kỳ vọng ngầm của hệ thống có thể hỗ trợ Qt cùng với các phần phụ thuộc thư viện được chia sẻ (cùng các vấn đề khác).

Bước đầu tiên để giải quyết vấn đề này là chúng tôi đã giới thiệu một biến thể của trình chạy trình mô phỏng với các tệp thực thi QEMU không phụ thuộc vào Qt. Trên Linux, vẫn còn một đường liên kết đến libX11, nhưng chúng tôi hy vọng cũng sẽ sớm loại bỏ được đường liên kết đó.

Để sử dụng trình mô phỏng không có giao diện người dùng, hãy chạy trình mô phỏng từ dòng lệnh như bình thường, nhưng thay thế lệnh gọi nhị phân của trình mô phỏng bằng emulator-headless. Để biết thêm thông tin, hãy xem bản cập nhật bản phát hành 28.1.8 Canary.

  • Khắc phục sự cố hiển thị khung hình giật và không chính xác trên GPU Intel khi chạy ảnh hệ thống Android Q.
  • Khắc phục vấn đề màn hình đen xuất hiện khi sử dụng ảnh hệ thống Android Q với các giao diện của Pixel 2 XL.
  • Các tệp nhị phân BIOS mới nhất hiện được dùng để khởi động trình mô phỏng. Thay đổi này có thể giúp giảm các lỗi "yêu cầu tắt vCPU" đôi khi xảy ra khi chạy trình mô phỏng trên Windows.
  • Điều chỉnh cho phiên bản cũ đối với lỗi "wrong display when resuming Android Q system images from a snapshop" ("hiển thị sai khi tiếp tục dùng ảnh hệ thống Android Q từ bản tổng quan nhanh").
  • Người dùng đang gặp phải vấn đề về trình mô phỏng "unauthorized" ("chưa được uỷ quyền") do có sự thay đổi không tương thích trong ADB trong công cụ dành cho nền tảng 28.0.2. Bạn hiện có thể sử dụng ADB từ các công cụ của nền tảng 28.0.2 với trình mô phỏng một cách an toàn. Nếu bạn đang gặp sự cố với trình mô phỏng "chưa được uỷ quyền", hãy thực hiện các bước khắc phục sự cố sau:
    1. Thoát khỏi tất cả trình mô phỏng.
    2. Xoá cả tệp ~/.android/adbkey~/.android/adbkey.pub.
    3. Chạy lệnh sau: adb kill-server
    4. Chạy lệnh sau: adb devices
    5. Xoá sạch dữ liệu AVD.
    6. Chạy lại trình mô phỏng.

28.0.23 (ngày 29 tháng 1 năm 2019)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau đây:

Tắt đầu vào âm thanh máy chủ theo mặc định

Một bài đăng gần đây trên Reddit đã cung cấp thông tin chi tiết về cách hệ điều hành Android khách luôn sử dụng âm thanh của micrô trên máy chủ, từ đó cho phép "Ok Google" hoạt động đột ngột. Chúng tôi xin lỗi về việc này và sẽ làm việc với đội ngũ Android để đảm bảo tính năng phát hiện cụm từ kích hoạt cũng bị vô hiệu hoá trong ảnh hệ thống.

Để giải quyết vấn đề này, chúng tôi đã thực hiện các thay đổi sau:

  • Theo mặc định, dữ liệu âm thanh thực tế trên máy chủ sẽ được chặn. Khi chế độ khách sử dụng micrô, tiếng im lặng sẽ được chuyển qua thay vì âm thanh của máy chủ.
  • Nếu muốn sử dụng dữ liệu âm thanh của máy chủ, hiện bạn có thể bật tuỳ chọn đó bằng cách chuyển đến Extended Controls > Microphone (Điều khiển mở rộng > Micrô) và bật Virtual microphone uses. (Micrô ảo sử dụng đầu vào âm thanh máy chủ) Tuỳ chọn này tự động tắt bất cứ khi nào trình mô phỏng được khởi động lại.

Cập nhật quá trình điều tra mức sử dụng CPU

Trong quá trình điều tra dự án Marble, chúng tôi nhận thấy rằng mức sử dụng CPU cao trên trình mô phỏng thường thuộc 3 danh mục sau:

Khi ở trạng thái rảnh: Tự động cập nhật ứng dụng trong hình ảnh trên Cửa hàng Play

Chúng tôi nhận thấy rằng trong các khoảng thời gian ngẫu nhiên, tất cả ứng dụng đã cài đặt đều được cập nhật, ngay cả khi người dùng không đăng nhập. Trong quá trình này, mức sử dụng CPU được thúc đẩy đến số lượng lõi x 100% (thường là ~400%) trong GMSCore và dex2oat. Bạn có thể giảm thiểu vấn đề này bằng cách tắt tính năng tự động cập nhật ứng dụng trong ứng dụng Cửa hàng Play.

Khi ở trạng thái rảnh: Phát hiện cụm từ kích hoạt

Khi ở trên màn hình chính và không có ứng dụng nào chạy trên nền trước, mức sử dụng CPU có thể tăng vọt (~25% với mức tăng đột biến lên đến 50%). Việc này là do tính năng phát hiện cụm từ kích hoạt liên tục ping máy chủ. Bạn không thể giảm thiểu vấn đề này bằng cách tắt đầu vào âm thanh máy chủ vì chi phí CPU chủ yếu do thời gian cần để di chuyển từ máy khách đến máy chủ. Tuy nhiên, bạn có thể giảm thiểu vấn đề này bằng cách thu hồi quyền truy cập micrô của ứng dụng Google.

Đang hoạt động, nhưng đôi khi ở trạng thái rảnh: Ảnh động

Nguồn thứ ba gây ra vấn đề mức sử dụng CPU cao là ảnh động. Chúng tôi nhận thấy bằng cách tối ưu hoá ngăn xếp trình điều khiển đồ hoạ, chúng tôi cũng có thể giảm mức sử dụng CPU ngay cả khi trình mô phỏng hoạt động. Chúng tôi sẽ dần triển khai tính năng tối ưu hoá trình điều khiển đồ hoạ trong Project Marble.

28.0.22 (ngày 21 tháng 12 năm 2018)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau đây:

  • Khắc phục vấn đề dai dẳng trong một số tuỳ chọn cài đặt, trình mô phỏng máy Mac sẽ khởi động lại hoặc hoảng loạn hạt nhân trên bản lưu tính năng Khởi động nhanh. (Vấn đề 120951634)
  • Khi sử dụng một tệp đã ánh xạ làm tổng quan nhanh RAM, trình mô phỏng giờ đây sẽ huỷ ánh xạ tệp ánh xạ một cách rõ ràng khi thoát.

28.0.20 (ngày 11 tháng 12 năm 2018)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau đây:

  • Khắc phục vấn đề trên Windows khiến trình mô phỏng bị treo khi tải tổng quan nhanh với một số mẫu GPU Intel.
  • Khắc phục vấn đề đã xảy ra trạng thái unauthorized của thiết bị ADB khi sử dụng vị trí ANDROID_SDK_HOME không chuẩn.
  • Sửa sự cố trên Windows khiến trình mô phỏng gặp vấn đề khi khởi động ảnh hệ thống được tắt tính năng tăng tốc CPU.
  • Khắc phục vấn đề hiển thị trình mô phỏng tạo pixel. Tính năng giảm tần số lấy mẫu hiện đã hoạt động trở lại.
  • Sửa sự cố trên macOS 10.14 trở lên, trong đó tuỳ chọn kiểm soát giao diện máy ảnh cảnh ảo có thể trở nên quá nhạy cảm do có sự tương tác với các chế độ cài đặt bảo mật hỗ trợ tiếp cận mới.
  • Sửa lỗi tính toán múi giờ có thể khiến đồng hồ trình mô phỏng thay đổi ngẫu nhiên.
  • Sửa lỗi kết xuất trong các công cụ ứng dụng cocos2d và Unreal.
  • Bổ sung tính năng hỗ trợ Wi-Fi ngang hàng cho trình mô phỏng. Hai trình mô phỏng hiện có thể trò chuyện trực tiếp với nhau qua Wi-Fi nếu sử dụng hình ảnh Cửa hàng Play Pie mới nhất. Để sử dụng Wi-Fi ngang hàng, hãy bắt đầu 2 AVD với cùng các đối số -wifi-server-port-wifi-client-port:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • Bổ sung tính năng hỗ trợ nhiều webcam trên Windows hơn bằng cách chụp bất kỳ kích thước khung không tương thích và tự động đổi kích thước cho vừa với chế độ cài đặt của camera trong hệ điều hành Android khách.

28.0.16 (tháng 11 năm 2018)

Bản cập nhật này có một số tính năng mới, cải thiện một số tính năng hiện có và khắc phục một số lỗi.

Sử dụng tài nguyên

Trình mô phỏng hiện sử dụng ít RAM tổng thể hơn, đặc biệt là khi sử dụng ảnh hệ thống có API cấp 28 trở lên. Các ảnh hệ thống này bao gồm việc sử dụng bộ nhớ cải tiến cho trình điều khiển đồ hoạ phía khách.

Ngoài ra, chúng tôi cũng đã cải thiện việc sử dụng tài nguyên trong các mục sau:

  • Giảm mức sử dụng bộ nhớ của trình mô phỏng trong các kiểm thử lâu dài. Nếu bạn vẫn gặp vấn đề với việc sử dụng bộ nhớ trong các kiểm thử lâu dài, vui lòng tạo vấn đề mô tả trường hợp sử dụng trong Công cụ theo dõi lỗi.
  • Giảm mức sử dụng CPU khi chạy ứng dụng có ảnh động.
  • Khắc phục vấn đề ngữ cảnh QEMU AIO có thể bị rò rỉ trên Windows.

Chạy đồng thời nhiều phiên bản của một thiết bị ảo Android (AVD)

Bạn hiện có thể khởi chạy nhiều phiên bản của cùng một AVD và chạy đồng thời các phiên bản đó. Những phiên bản bạn khởi chạy sau phiên bản đầu tiên sẽ ở chế độ chỉ đọc và các thay đổi của các phiên bản này đối với ổ đĩa ảo khách sẽ bị huỷ khi thoát.

Để chạy nhiều phiên bản của một AVD cùng lúc, hãy khởi chạy mọi phiên bản sau phiên bản đầu tiên từ dòng lệnh bằng cách sử dụng cờ -read-only.

Bạn có thể thực hiện tính năng này bằng cách sao chép các tệp QCOW2 được liên kết với các phần có thể ghi của ảnh Android. Để giúp bạn quản lý dung lượng ổ đĩa, chúng tôi cũng đã đóng gói công cụ dòng lệnh qemu-img để cho phép cam kết trước các tệp QCOW2 trước khi khởi chạy nhiều phiên bản.

Ngoài ra, khi được sử dụng song với tính năng Tạo tệp sao lưu tổng quan nhanh dung lượng RAM cho máy khách , nhiều phiên bản AVD chia sẻ tổng quan nhanh Khởi động nhanh của AVD phiên bản chính dưới dạng nguồn phổ biến của Bộ nhớ RAM khách sao chép khi ghi. Thuộc tính này có nghĩa các phiên bản chia sẻ nhiều dung lượng RAM chung. Hãy sử dụng tính năng này để chạy các kiểm thử yêu cầu nhiều thiết bị chạy song.

Chúng tôi rất trân trọng ý kiến đóng góp của bạn về các trường hợp sử dụng có thể là một phần trong quy trình làm việc tương tác hoặc CI thông thường. Vui lòng tạo hoặc tán thành các vấn đề trong Trình theo dõi vấn đề.

Tạo tệp sao lưu tổng quan nhanh dung lượng RAM cho máy khách

Bằng cách phân bổ trước và ánh xạ RAM khách dưới dạng tệp, trình mô phỏng giờ đây có thể lưu tổng quan nhanh Khởi động nhanh trong thời gian chạy, thay vì chỉ thực hiện thao tác đó khi thoát. Nếu hiện tại bạn phải đợi một khoảng thời gian dài để lưu lại tác vụ khi đóng trình mô phỏng, hãy bật tính năng này để cải thiện hiệu suất Khởi động nhanh. Theo mặc định, tổng quan nhanh Khởi động nhanh sẽ được lưu khi thoát và tải lại mỗi lần khởi động, tương tự như tạm ngưng và đánh thức một thiết bị thực.

Theo mặc định, vì RAM khách trên Android hiện được tự động lưu, nên nếu bạn muốn xác định trạng thái của thiết bị và liên tục tải từ trạng thái trên, bạn cần yêu cầu trình mô phỏng huỷ các thay đổi sau mỗi phiên hoạt động. Bạn có thể thực hiện việc này theo các cách sau:

  • Sử dụng cờ -no-snapshot-save hoặc -read-only khi chạy trình mô phỏng trong dòng lệnh.
  • Chuyển đến mục Extended Controls (Chế độ điều khiển mở rộng) > Snapshots (Tổng quan nhanh) > Settings (Cài đặt) rồi chuyển tuỳ chọn Auto-savecurrent state to Quickboot? (Tự động lưu trạng thái hiện tại vào chế độ Khởi động nhanh?) thành No (Không).
  • Bạn sẽ cần khởi động lại trình mô phỏng sau khi chọn tuỳ chọn này. Nếu đã thiết lập trình mô phỏng sang chế độ tự động lưu, bạn có thể chạy lệnh sau để đặt giá trị cho điểm kiểm tra:
    adb emu avd snapshot remap 0
    
    Sau khi chạy lệnh này, bản tổng quan nhanh cho tính năng Khởi động nhanh của trình mô phỏng sẽ vẫn lưu ở điểm kiểm tra đó. Chạy lại chính lệnh này để tải trình mô phỏng qua điểm kiểm tra.

Bản tổng quan nhanh được chụp và tải thông qua chức năng Giao diện người dùng tổng quan nhanh như trước đây mà không có bản đồ ánh xạ tệp.

Vì đây là một thay đổi lớn trong cách hoạt động của tính năng Khởi động nhanh, nên chúng tôi rất mong nhận được ý kiến phản hồi của bạn về việc tính năng này có cải thiện được hiệu suất Khởi động nhanh hay không cũng như vấn đề bạn gặp phải khi sử dụng. Nếu gặp khó khăn, bạn có thể tắt tính năng này bằng cách thêm dòng sau vào tệp ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off

Khi bạn khởi động trình mô phỏng từ một bản tổng quan nhanh (sử dụng tuỳ chọn dòng lệnh -snapshot hoặc khởi chạy qua một bản tổng quan nhanh trong trình quản lý AVD), trình mô phỏng sẽ tắt cả tính năng lưu tự động bản tổng quan nhanh cho tính năng Khởi động nhanh lẫn tính năng lưu bản tổng quan nhanh cho tính năng Khởi động nhanh khi thoát. Điều này làm giảm khả năng bản tổng quan nhanh cho tính năng Khởi động nhanh vô tình bị ghi đè và tránh việc đường dẫn dự phòng chậm không sử dụng tệp sao lưu tổng quan nhanh cho tính năng Khởi động nhanh.

QEMU 2.12

Chúng tôi đã chuyển đổi (rebase) biến thể QEMU từ QEMU 2.9 sang QEMU 2.12. Bản cập nhật này có các thay đổi sau liên quan đến QEMU:

Sau đây là một số thay đổi đáng chú ý ảnh hưởng đến Trình mô phỏng Android:

  • x86: gdbstub nay cung cấp quyền truy cập vào thanh ghi SSE.
  • Hình ảnh đĩa: Theo mặc định, tính năng khoá hình ảnh được bật và bổ sung. Chừng nào máy chủ còn hỗ trợ khoá OFD hoặc posix, nhiều quy trình QEMU không thể ghi vào cùng một hình ảnh trừ phi có tuỳ chọn khác được chỉ định.
  • qemu-img: qemu-img resize hỗ trợ việc sắp xếp trước các phần mới của hình ảnh.
  • Tính năng thu gọn tệp QCOW2 hiện đã được hỗ trợ trong qemuqemu-img.

Hỗ trợ tiếp cận

  • Sửa sự cố với trình đọc màn hình và hỗ trợ tốt hơn cho công cụ này trong Giao diện người dùng Screen Record and Snapshot (Quay phim và chụp nhanh màn hình).
  • Thiết kế các biểu tượng thông báo Khởi động nhanh dễ tiếp cận hơn với những người dùng bị mù màu.

Đồ hoạ

  • Khắc phục vấn đề mảng con trỏ đỉnh OpenGL ES có thể gặp khó khăn với quyền truy cập bộ nhớ nằm ngoài giới hạn.
  • Một số GPU cũ không hỗ trợ OpenGL 2.1 trở lên (bắt buộc) hoặc có các vấn đề khác về độ ổn định. Những vấn đề này có thể khiến trình mô phỏng gặp sự cố khi khởi động, bị treo hoặc không sử dụng được trên tuỳ chọn cài đặt GPU mặc định. Trình mô phỏng hiện sẽ tự động chuyển sang trình kết xuất Swiftshader nếu phát hiện thấy những GPU này đang được sử dụng.
  • Khắc phục vấn đề trình mô phỏng không đăng đúng vùng đệm khung nếu FBO != 0 bị liên kết tại thời điểm eglSwapBuffers.
  • Sửa sự cố màn hình Android ảo chỉ xuất hiện ở góc trên cùng bên trái. Chúng tôi tin rằng vấn đề này do biến môi trường Qt bị định cấu hình sai. Trình mô phỏng hiện ghi đè tất cả biến môi trường liên quan đến tỷ lệ Qt.
  • Khắc phục vấn đề trình mô phỏng gặp vấn đề khi tải các ứng dụng GLES1 từ một tổng quan nhanh.
  • Sửa các vấn đề đồng thời trong OpenGL và khởi chạy các luồng kết xuất đồ hoạ có thể khiến dữ liệu giải phóng hai lần hoặc bị hỏng.
  • Android Emulator hiện hỗ trợ tính năng hỗ trợ kết cấu nén ASTC LDR (GL_KHR_texture_compression_astc_ldr) cho những ảnh hệ thống sử dụng API cấp 28 trở lên.
  • Theo mặc định, hầu hết các GPU hiện đại đều có thể khởi chạy trình mô phỏng với OpenGL ES 3.x được bật mà không cần sử dụng cờ tính năng GLESDynamicVersion.
  • -gpu guest (tính năng kết xuất phần mềm trong máy khách) đã ngừng hoạt động. Ảnh hệ thống cho API cấp 28 trở lên giờ sẽ tự động chuyển sang dùng Swiftshader (-gpu swiftshader_indirect).
  • Nếu trình mô phỏng khởi chạy từ dòng lệnh bằng cờ -no-window, thì trình kết xuất mặc định hiện sẽ là Swiftshader.

Vị trí

  • Trình mô phỏng hiện có thể cập nhật góc phương vị cùng với vị trí vĩ độ và kinh độ. Cảm biến từ kế ảo sẽ tự điều chỉnh linh hoạt theo hướng bắc từ tính bằng cách dự đoán chuyển động khi phát lại tệp GPX hoặc KML.
  • Hiện bạn có thể đặt tốc độ của thiết bị trên trang Location (Vị trí).
  • Khi phát lại một tệp GPX hoặc KML, tốc độ sẽ được đặt tự động và được đặt thành 0 khi lượt phát kết thúc.
  • Độ cao không còn bị giới hạn trong khoảng từ -1.000 đến hơn 10.000 mét.
  • Khắc phục vấn đề vị trí GPS ảo không được cập nhật định kỳ trừ phi cửa sổ Extended Controls (Điều khiển mở rộng) được mở ít nhất một lần.

Máy ảnh

Trên Windows, hiện có thêm nhiều webcam được hỗ trợ vì trình mô phỏng tự động đổi kích thước khung máy ảnh được phân phối qua webcam. Tính năng này cũng giúp ngăn chặn lỗi trong việc phân phối khung khiến trình mô phỏng bị treo.

Cửa hàng Play

Để giải quyết các vấn đề về hết dung lượng ổ đĩa trên hình ảnh Cửa hàng Play, trình mô phỏng giờ đây sẽ tự động đổi kích thước phân vùng dữ liệu người dùng thành 6 GB khi chạy bằng AVD mới của Cửa hàng Play.

Cải thiện chất lượng chung và sửa lỗi

  • Một số người dùng báo cáo rằng trình mô phỏng đang chạy chậm. Chúng tôi đã xác định được nguyên nhân có thể xảy ra, đó là do thư mục tạm thời của trình mô phỏng chứa quá nhiều tệp lỗi thời. Để giải quyết vấn đề này, trình mô phỏng không còn lưu trữ các tệp kiểm tra tính trực tiếp của ADB trong thư mục đó. Tuy nhiên, bạn cũng có thể xoá nội dung của thư mục đó. Thư mục này được đặt ở một trong các vị trí sau đây, tuỳ thuộc vào hệ điều hành:
    • Windows: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS hoặc Linux: /tmp/android-<username>/*
  • Nếu trình mô phỏng không thể khởi động do không đủ dung lượng RAM trống, thì thông báo lỗi sẽ xuất hiện. Nếu bạn đang dùng Windows và nhận thấy có RAM, nhưng bạn vẫn không thể khởi động trình mô phỏng, thì có thể bạn đã vượt quá RAM dự trữ. Để được trợ giúp về vấn đề này, hãy xem trang Khắc phục sự cố trình mô phỏng.
  • Tuỳ chọn dòng lệnh -sysdir giờ đây sẽ ghi đè đúng thư mục ảnh hệ thống được suy đoán.
  • Modem ảo hiện hỗ trợ truy vấn về thông tin hoạt động của mô hình +MAI.
  • Khắc phục nhiều vấn đề về rò rỉ bộ nhớ, hỏng bộ nhớ và mức sử dụng CPU. Nếu bạn gặp sự cố, rò rỉ bộ nhớ hoặc mức độ sử dụng tài nguyên quá lớn, vui lòng tạo vấn đề trong Công cụ theo dõi lỗi.
  • Khắc phục vấn đề xuất hiện lại trên macOS 10.14, trong đó việc sử dụng tai nghe Bluetooth với trình mô phỏng sẽ làm giảm toàn bộ chất lượng âm thanh. Để ngăn chặn điều này, trình mô phỏng giờ đây sẽ tránh sử dụng âm thanh Bluetooth khi chạy trên macOS. (Vấn đề 37070892)
  • Khắc phục vấn đề trên Windows trong đó đồng hồ trình mô phỏng không ở đúng múi giờ.
  • Khắc phục vấn đề làm chậm và treo trình mô phỏng trên hệ thống Linux có ổ cứng quay (HDD).
  • Sửa một số cảnh báo biên dịch có thể dẫn đến tình trạng hỏng ngăn xếp trên macOS.
  • Khắc phục các vấn đề có thể khiến báo cáo treo gây hiểu lầm.
  • Khắc phục vấn đề huỷ nhóm các luồng có thể gây ra sự cố nếu một trong những luồng đó không được tạo thành công.
  • Khắc phục vấn đề đồng hồ hẹn giờ trở nên không đáng tin cậy, dẫn đến việc macOS bị treo và xuất hiện các hành vi khác thường. Nếu bạn gặp phải vấn đề khiến trình mô phỏng bị treo trên macOS, vui lòng tạo vấn đề trong Công cụ theo dõi lỗi.
  • Khắc phục vấn đề thao tác đóng trình mô phỏng sẽ vô hiệu hoá giao diện người dùng nhưng trình mô phỏng thực ra vẫn chưa đóng.
  • Khắc phục vấn đề liên quan đến các sự cố ngẫu nhiên, bao gồm cả trường hợp bị huỷ do mở quá nhiều thực thể /dev/urandom.
  • Khắc phục vấn đề khiến trình mô phỏng không khởi động sau lần đầu tiên nếu ADB bị buộc chấm dứt.
  • Bản dựng MIPS đã bị xoá. Nếu bạn vẫn yêu cầu MIPS, vui lòng tạo một vấn đề trong Công cụ theo dõi lỗi.
  • Khắc phục vấn đề kết nối ADB có thể bị hỏng khi tải bản tổng quan nhanh.
  • Khắc phục vấn đề cửa sổ trình mô phỏng sẽ có dư ảnh hoặc di chuyển ra ngoài màn hình sau khi tiếp tục xem bản tổng quan nhanh do hướng thiết bị khác với hướng mặc định của AVD.
  • Khắc phục các vấn đề liên quan đến sự cố khi lưu tổng quan nhanh.
  • Trên Linux, các hệ thống tệp btrfs có thể gây ra tình trạng chậm rất nghiêm trọng vì trình mô phỏng tự động lưu bản tổng quan nhanh và sử dụng tính năng sao chép khi ghi cho thiết bị đĩa ảo. Bạn nên dọn sạch thư mục ~/.android/avd và chạy lệnh sau trên thư mục ~/.android/avd trống:
    chattr +C
    
    Thao tác này sẽ tạo bản tổng quan nhanh mới trong một thư mục đang tắt tính năng sao chép khi ghi.

HAXM 7.3.2

Chúng tôi muốn nhắc đến HAXM 7.3.2 lần nữa vì bạn phải cài đặt HAXM 7.3.2 để các ảnh hệ thống gần đây có thể chạy ổn định trên trình mô phỏng. HAXM 7.3.2 có sẵn trong Kênh chính thức và bạn cũng có thể cài đặt theo cách thủ công qua https://github.com/intel/haxm/releases.

Sau đây là một số vấn đề mà phiên bản HAXM này đã giải quyết:

  • Khắc phục sự cố ngẫu nhiên của hệ điều hành khách sử dụng một nhân Linux mới đây (>= 4.6). Ví dụ: Ubuntu 18.04 (#39, #74).
  • Sửa lỗi trình mô phỏng hướng dẫn x86 có thể dẫn đến sự cố máy chủ (#93).

Không dùng Windows 32 bit nữa

Do chi phí sử dụng thấp và chi phí bảo trì cao, chúng tôi dự định sẽ không dùng phiên bản Trình mô phỏng Android 32 bit chạy trên Windows nữa. Chúng tôi sẽ triển khai kế hoạch chuyển đổi trước khi xoá và ngừng sử dụng phiên bản 32 bit của Trình mô phỏng Android. Tuy nhiên, chúng tôi vẫn đang tích cực thu thập ý kiến phản hồi và thắc mắc về sự thay đổi sắp xảy ra này.

Vui lòng cho chúng tôi biết trong Công cụ theo dõi lỗi nếu bạn hiện vẫn đang cần dùng phiên bản 32 bit của Trình mô phỏng Android chạy trên Windows và cho chúng tôi biết cách tốt nhất cho bạn trong tương lai.

27.3.10 (tháng 8 năm 2018)

Bản cập nhật này bao gồm bản sửa lỗi sau:

Sửa lỗi cấu hình dung lượng RAM

Một số người dùng báo cáo rằng trình mô phỏng đang chạy chậm. Chúng tôi đã xác định được một lý do có thể khiến dung lượng RAM AVD trong tệp config.ini của AVD được đặt không chính xác.

Để giảm thiểu điều này, trình mô phỏng sẽ tăng mức RAM tối thiểu cho những ảnh sử dụng API cấp 26 trở lên tới mức mặc định là 1536 MB trên Android Studio. Nếu tệp config.ini của AVD không liệt kê hw.ramSize theo megabyte, vui lòng tạo một vấn đề trong Công cụ theo dõi lỗi. Bạn có thể tìm thấy tệp config.ini ở vị trí sau:

~/.android/avd/<avdname>.avd/config.ini

27.3.9 (tháng 7 năm 2018)

Bản cập nhật này bao gồm những điểm cải tiến và sửa lỗi sau:

Cải thiện thông báo lỗi cho Windows Hypervisor Platform

Một số người dùng gặp khó khăn trong việc chẩn đoán lý do Windows Hypervisor Platform (WHPX) không khởi chạy được khi họ kích hoạt trình mô phỏng WHPX. Để giúp bạn chẩn đoán những vấn đề này, chúng tôi đã thêm các thông báo lỗi chứa đầy đủ thông tin hơn. Bạn có thể bật các thông báo lỗi này bằng cách chạy trình mô phỏng từ dòng lệnh bằng cách sử dụng cờ -verbose.

Bản sửa lỗi chung

  • Sửa các lỗi OpenGL xảy ra khi tải tổng quan nhanh trong ứng dụng máy ảnh.

27.3.8 (tháng 7 năm 2018)

Bản cập nhật này có một số tính năng mới, cải thiện một số tính năng hiện có và khắc phục một số lỗi.

Tổng quan nhanh

Bạn hiện có thể lưu nhiều bản tổng quan nhanh AVD cho một cấu hình thiết bị nhất định và lựa chọn tải bản tổng quan nhanh bất kỳ vừa lưu khi khởi động trình mô phỏng.

Kể từ Android Studio 3.2 Canary 13, mỗi cấu hình thiết bị bao gồm một tuỳ chọn điều khiển trong các tuỳ chọn cài đặt nâng cao trong hộp thoại Virtual Device Configuration (Cấu hình thiết bị ảo), nhờ đó bạn có thể chỉ định bản tổng quan nhanh AVD sẽ tải khi khởi động AVD.

Để phù hợp với việc mở rộng các tính năng tổng quan nhanh này, chúng tôi đã thêm danh mục Snapshots (Tổng quan nhanh) vào hộp thoại Extended controls (Chế độ điều khiển mở rộng). Ngăn mới này chứa các tuỳ chọn điều khiển để lưu và tải bản tổng quan nhanh AVD, bao gồm các tuỳ chọn điều khiển để lưu và tải bản tổng quan nhanh cho tính năng Khởi động nhanh trước đó nằm trong ngăn Settings (Cài đặt).

Bạn có thể chỉnh sửa tên và thông tin mô tả của từng bản tổng quan nhanh đã lưu.

Để biết thông tin chi tiết, hãy xem nội dung Tổng quan nhanh.

HAXM 7.2.0

HAXM 7.2.0 hiện có sẵn ở mọi kênh.

Bản cập nhật này bao gồm các bản sửa lỗi và hỗ trợ tốt hơn cho dung lượng RAM lớn. Ngoài ra, với bản cập nhật HAXM này và Trình mô phỏng 27.3 trở lên, bản tổng quan nhanh sẽ tải nội dung vào RAM theo yêu cầu thay vì tải toàn bộ bản tổng quan nhanh khi thiết bị ảo khởi động. Thay đổi này sẽ làm giảm đáng kể thời gian cần thiết để tải bản tổng quan nhanh.

Để biết thông tin chi tiết, hãy xem nội dung Định cấu hình tăng tốc máy ảo.

27.2.9 (tháng 5 năm 2018)

Bản cập nhật này có một số tính năng mới, cải thiện một số tính năng hiện có và khắc phục một số lỗi.

Ghi màn hình

Bạn hiện có thể ghi lại video và âm thanh qua Trình mô phỏng Android và lưu bản ghi vào tệp WebM hoặc GIF động.

Các nút điều khiển chế độ ghi màn hình nằm trên thẻ Screen record (Ghi màn hình) trong cửa sổ Extended Controls (Chế độ điều khiển mở rộng).

Lưu ý: Bạn cũng có thể mở các chế độ điều khiển ghi màn hình bằng cách nhấn tổ hợp phím Control + Shift + R (Command + Shift + R trên máy Mac).

Để bắt đầu ghi màn hình, hãy nhấp vào nút Start recording(Bắt đầu ghi) trong thẻ Screen record (Ghi màn hình). Để dừng ghi, hãy nhấp vào Stop recording (Dừng ghi).

Các nút điều khiển để phát và lưu video đã ghi nằm ở cuối thẻ Screen record (Ghi màn hình). Để lưu video, hãy chọn WebM hoặc GIF trong trình đơn ở cuối thẻ rồi nhấp vào Save (Lưu).

Bạn cũng có thể ghi và lưu bản ghi màn hình qua trình mô phỏng bằng cách sử dụng lệnh sau trên dòng lệnh:

adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm

Ảnh chụp màn hình

Bạn có thể chụp ảnh màn hình qua dòng lệnh bằng một trong các lệnh sau:

  • screenrecord screenshot [destination-directory]
  • adb emu screenrecord screenshot [destination-directory]

Ảnh chụp màn hình được lưu ở định dạng PNG.

Máy ảnh cảnh ảo và ARCore

Việc phát triển và kiểm thử ứng dụng thực tế tăng cường (AR) bằng ARCore giờ đây đã trở nên dễ dàng hơn với máy ảnh cảnh ảo mới, cho phép bạn thử nghiệm trải nghiệm thực tế tăng cường trong môi trường ảo.

Để nắm thông tin về cách sử dụng máy ảnh cảnh ảo trong trình mô phỏng, hãy xem nội dung Chạy ứng dụng thực tế tăng cường trong Trình mô phỏng Android.

Ảnh Cửa hàng Google Play trên thiết bị Pixel

Cửa hàng Google Play hiện đã được bật tính năng ảnh hệ thống cho thiết bị Pixel và Pixel 2. Tính năng này được giới thiệu trong Trình quản lý thiết bị ảo Android trong Android Studio 3.2 trở lên với biểu tượng Google Play trong cột Play Store (Cửa hàng Play). Các AVD đã kích hoạt Cửa hàng Google Play có một thẻ Google Play trong hộp thoại Extended controls (Chế độ điều khiển mở rộng), giúp đưa ra một nút thuận tiện để cập nhật các dịch vụ của Google Play trên thiết bị.

Tổng quan nhanh

Bạn hiện có thể tải bản tổng quan nhanh cho tính năng Khởi động nhanh mà không cần khởi động lại trình mô phỏng. Để tải bản tổng quan nhanh, hãy mở cửa sổ Extended Control(Chế độ điều khiển mở rộng) trên trang Settings (Cài đặt) rồi nhấp vào nút Load Now (Tải ngay).

Chúng tôi đã cải thiện tính năng tải và lưu bản tổng quan nhanh để cải thiện hiệu quả sử dụng tài nguyên và giảm thiểu thời gian cần để thực hiện mỗi thao tác. Nếu bạn vẫn phải tốn thời gian dài đến bất thường để lưu, vui lòng gửi vấn đề đến cho chúng tôi, cung cấp thông tin chi tiết về CPU, RAM cũng như chế độ cài đặt của phần mềm diệt vi-rút/tường lửa/phần mềm bảo mật bất kỳ đang chạy.

Kết xuất bằng Skia

Khi sử dụng hình ảnh cho API 27 trở lên, trình mô phỏng có thể kết xuất giao diện người dùng Android bằng Skia. Phương pháp này có thể kết xuất hình ảnh suôn sẻ và hiệu quả hơn.

Hiện tại, việc sử dụng Skia yêu cầu bạn phải bật tính năng này một cách rõ ràng.

Để bật tính năng kết xuất hình ảnh Skia, hãy sử dụng các lệnh sau trong shell adb:

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

Máy ảnh

Trên Windows, Trình mô phỏng Android hiện sử dụng Media Foundation làm webcam phụ trợ, giúp cải thiện đáng kể hiệu suất và tốc độ khung hình khi chụp webcam, lên tới 720p 30 khung hình/giây.

Trên máy Mac, bạn hiện có thể sử dụng kết hợp webcam0 và webcam1.

Khác

Tuỳ chọn dòng lệnh -phone-number-prefix đã được thay đổi thành -phone-number [number], cho phép cài đặt toàn bộ số điện thoại.

Giờ đây, bạn có thể sử dụng các địa chỉ SMS dạng ký tự chữ-số.

Sửa lỗi

  • Phiên bản Linux của Trình mô phỏng Android hiện được xây dựng bằng chuỗi công cụ Clang C++ hiện đại. Thay đổi này sẽ Khắc phục vấn đề trình mô phỏng không khởi động được do các lỗi libGL và libstdc+.
  • Sửa một số nguyên nhân dẫn đến sự cố và bị treo.
  • Để tránh sự cố và bị treo do không có đủ dung lượng ổ đĩa trống, trình mô phỏng hiện khi khởi động sẽ kiểm tra dung lượng ổ đĩa trống có đủ sử dụng không và sẽ không bắt đầu trừ phi có ít nhất 2 GB trống.
  • Khắc phục vấn đề ngăn một số trò chơi Unity kết xuất hình ảnh.
  • Khắc phục vấn đề DNS khiến trình mô phỏng không thể kết nối với mạng.
  • Khắc phục vấn đề bộ nhớ trong được phân bổ cho AVD thông qua hộp thoại Virtual Device Configuration (Cấu hình thiết bị ảo) không hoạt động.
  • Khắc phục vấn đề nhiều quy trình adb đang được tạo và không được tắt đúng cách.
  • Khắc phục vấn đề khiến các nút xoay và các phần khác của giao diện người dùng không phản hồi trừ phi cửa sổ Extended controls (Điều khiển mở rộng) đang mở.
  • Khắc phục vấn đề khiến thao tác sao chép và dán từ máy chủ không hoạt động trừ phi hộp thoại Extended controls (Điều khiển mở rộng) được mở ít nhất một lần.
  • Trình mô phỏng không có khung cập nhật tính năng đổi kích thước hình chữ nhật để phù hợp hơn với giao diện trực quan.
  • Khi bật chế độ trên máy bay, điện thoại và SMS hiện đã được vô hiệu hoá đúng cách.
  • Khắc phục vấn đề khiến SMS và chức năng di động bị tắt sau khi tải tổng quan nhanh.
  • Bạn sẽ không còn nhận được thông báo cảnh báo sai nói rằng “Unable to open... \pstore.bin. Permission denied.”
  • Khắc phục vấn đề ngăn việc định vị lại AVD trên một số màn hình Mac.
  • Khắc phục vấn đề màn hình nhấp nháy và trống rỗng trên máy tính MacBook Pro bản mới khi chạy AVD với giao diện Pixel 2 XL.
  • Khắc phục vấn đề màn hình trống rỗng khi chuyển sang chế độ thu phóng trong khi trình mô phỏng không có khung đang hoạt động.
  • Khắc phục vấn đề khiến giao diện người dùng và nội dung trình mô phỏng của thiết bị không đồng bộ hoá được thao tác cuộn khi phóng to.

Nếu bạn vẫn gặp sự cố bị treo hoặc các vấn đề không ổn định khác, vui lòng gửi vấn đề đến cho chúng tôi.

27.1.12 (tháng 3 năm 2018)

Bản cập nhật này đã khắc phục các vấn đề sau:

  • Sau khi khởi động trình mô phỏng, chất lượng âm thanh Bluetooth bị suy giảm. (Vấn đề 37095756)
  • Các vị trí chỉ gửi đến một trình mô phỏng lại được gửi đến tất cả trình mô phỏng khác. (Vấn đề 73450633)
  • Thông tin cài đặt vị trí GPS sử dụng bảng điều khiển đã được ghi đè bằng giá trị đã đặt bằng cách sử dụng Extended Controls (Chế độ điều khiển mở rộng) > Location (Vị trí) trong giao diện người dùng đồ hoạ. (Vấn đề 73471760)

Nếu bạn vẫn gặp sự cố bị treo hoặc các vấn đề không ổn định khác, vui lòng gửi vấn đề đến cho chúng tôi.

Với bản cập nhật này, ảnh hệ thống hiện tại và phiên bản xem trước của Android Studio, bạn có thể sử dụng Trình mô phỏng Android để chạy các ứng dụng thực tế tăng cường dựng bằng ARCore. Để nắm được hướng dẫn và yêu cầu chi tiết, hãy xem nội dung Chạy ứng dụng thực tế tăng cường trong Trình mô phỏng Android.

27.1.10 (tháng 2 năm 2018)

  • Độ phân giải máy ảnh

    Bạn hiện có thể chụp khung hình 720p qua một webcam đi kèm.

    Để hoạt động với Android 8.1 (API cấp 27) trở lên, mọi webcam đi kèm đều phải có khả năng chụp ảnh khung hình 720p.

  • Sửa lỗi

    • Khắc phục vấn đề khiến tính năng quay bằng webcam đôi khi xuất ra hình ảnh bị méo hoặc màu xanh lục.
    • Khắc phục vấn đề nhận được thông báo sau ngay cả khi hiện tượng treo không xảy ra: "emulator: ERROR: detected a hanging thread 'Qt event loop' No response for 15000 ms". ("trình mô phỏng: LỖI: đã phát hiện một luồng treo "vòng lặp sự kiện Qt". Không có phản hồi trong 15000 mili giây.").

Nếu bạn vẫn gặp sự cố bị treo hoặc các vấn đề không ổn định khác, vui lòng gửi vấn đề đến cho chúng tôi.

27.1.7 (tháng 2 năm 2018)

  • Cửa sổ trình mô phỏng không có khung:

    Theo mặc định, trình mô phỏng với các tệp giao diện thiết bị đang xuất hiện mà không có khung cửa sổ xung quanh. Để hiện khung cửa sổ xung quanh, hãy bật chế độ Show window frame around device (Hiện khung cửa sổ xung quanh thiết bị) trong ngăn Settings (Cài đặt) của cửa sổ Extended Controls (Chế độ điều khiển mở rộng).

  • Các điểm cải tiến trong tính năng Khởi động nhanh giúp bạn đạt được hiệu quả cao hơn khi dùng bản tổng quan nhanh AVD:

    • Bạn có thể lưu bản tổng quan nhanh AVD bất cứ lúc nào bằng cách sử dụng nút Save Now (Lưu ngay) trong ngăn Settings (Cài đặt) của hộp thoại Extended Controls (Chế độ điều khiển mở rộng)
    • Trình mô phỏng giảm thời gian lưu bản tổng quan nhanh trong nhiều trường hợp bằng cách chỉ lưu sự khác biệt giữa trạng thái hiện tại và bản tổng quan nhanh đã lưu trước đó.

    Để biết thông tin chi tiết, hãy xem tài liệu về tính năng Khởi động nhanh.

  • Trình mô phỏng được cập nhật để sử dụng QEMU 2.9.

    Có một số điểm cải thiện đáng chú ý sau đây:

    • Tối ưu hoá I/O và tinh chỉnh khoá luồng I/O để tăng cường hiệu suất.
    • Sửa các lỗi kể từ QEMU 2.8 (26.1.4).
    • Triển khai phần phụ trợ nền tảng HAXM mới.

    Xem danh sách đầy đủ các thay đổi trong nhật ký thay đổi QEMU 2.9.

  • Cách triển khai Swiftshader theo chuẩn OpenGL ES 3.0:

    Trình kết xuất Swiftshader của trình mô phỏng nay hoàn toàn tuân thủ chuẩn OpenGL ES 3.0. Để biết thông tin chi tiết về trình kết xuất Swiftshader, hãy xem nội dung Settings (Cài đặt) > Advanced (Nâng cao) trong Extended Controls (Chế độ điều khiển mở rộng).

  • Sửa lỗi

    • Khắc phục vấn đề tính năng chia sẻ bảng nhớ tạm không hoạt động trừ phi bật/tắt tuỳ chọn Enable clipboard sharing (Bật tính năng chia sẻ bảng nhớ tạm).
    • Sửa sự cố treo máy khi sử dụng phần bổ trợ kết xuất hình ảnh Swiftshader trên AVD có độ phân giải thấp.

27.0.5 (tháng 1 năm 2018)

  • Theo mặc định, tính năng kết xuất hình ảnh ANGLE trên Windows được tắt.

    Nếu ANGLE hoạt động tốt, bạn có thể bật lại tính năng đó bằng cờ hiệu dòng lệnh -gpu angle_indirect. Bạn cũng có thể mở cửa sổ Extended controls (Chế độ điều khiển mở rộng), chuyển đến phần Settings (Cài đặt) > Advanced (Nâng cao) rồi chọn ANGLE D3D11 cho chế độ cài đặt trình kết xuất OpenGL ES.

  • Khắc phục sự cố nhập Shift+B nhưng không xuất hiện ký tự viết hoa B.

27.0.2 (tháng 12 năm 2017)

  • Tính năng Khởi động nhanh mới giúp làm giảm thời gian bắt đầu trình mô phỏng, dựa trên bản tổng quan nhanh của phiên bản AVD.

    Theo mặc định, tính năng Khởi động nhanh được bật cho tất cả AVD. Tuy trong lần đầu khởi động AVD, bạn phải khởi động nguội (tương tự như khi bật nguồn thiết bị), nhưng tất cả những lần khởi động tiếp theo sau đó đều diễn ra nhanh chóng và hệ thống được khôi phục về trạng thái tại thời điểm bạn đóng trình mô phỏng (tương tự như khi đánh thức thiết bị).

    Nếu bạn muốn điều khiển thời điểm trình mô phỏng lưu bản tổng quan nhanh, hãy mở cửa sổ Extended controls (Chế độ điều khiển nâng cao) trong trình mô phỏng rồi nhấp vào Settings (Cài đặt). Tại đây, bạn có thể chọn một trong các chế độ cài đặt sau cho tính năng Save quick boot state on exit (Lưu trạng thái khởi động nhanh khi thoát):

    • Yes (Có): Luôn lưu bản tổng quan nhanh cho tính năng Khởi động nhanh khi bạn đóng trình mô phỏng. Đây là tuỳ chọn mặc định.
    • No (Không): Không bao giờ lưu bản tổng quan nhanh cho tính năng Khởi động nhanh; luôn khởi động nguội.
    • Ask (Hỏi): Nhắc xem có lưu bản tổng quan nhanh cho tính năng Khởi động nhanh hay không khi bạn đóng trình mô phỏng.

    Lựa chọn của bạn chỉ áp dụng cho AVD hiện đang mở.

    Để biết thêm thông tin, hãy xem tài liệu về tính năng Khởi động nhanh.

  • Bổ sung tính năng hỗ trợ Mac OpenGL ES 3 (đối với ảnh hệ thống sử dụng API cấp 24 trở lên, API của Google và ABI x86).

  • Để tăng cường độ ổn định trong ứng dụng OpenGL ES 2 trở lên, trình mô phỏng hiện sử dụng cấu hình cốt lõi OpenGL nếu có.

  • Các tuỳ chọn mới để kết xuất bằng Swiftshader/ANGLE:

    • -gpu swiftshader_indirect: Biến thể nhanh hơn, ổn định hơn của Swiftshader hoạt động được với tính năng Khởi động nhanh.
    • -gpu angle_indirect (chỉ dành cho Windows): Biến thể ổn định hơn của ANGLE D3D cũng hoạt động được với tính năng Khởi động nhanh.

    Các tuỳ chọn -gpu swiftshader-gpu angle cũ hiện không được dùng nữa. Trong cửa sổ Extended controls (Điều khiển mở rộng), các tuỳ chọn "SwiftShader" và "ANGLE" cho chế độ cài đặt trình kết xuất OpenGL ES trong Settings > Advanced hiện sử dụng các biến thể *_indirect.

  • Các bản sửa lỗi khác.

26.1.4 (tháng 8 năm 2017)

Đây là một bản phát hành nhỏ có các bản sửa lỗi và điểm cải thiện sau đây về cấu hình GPU:

  • Bật ảnh động khởi động khi chạy trên trình kết xuất ANGLE
  • Tắt GLES3 khi chạy trên trình kết xuất ANGLE

26.1.3 (tháng 8 năm 2017)

Đây là một bản phát hành nhỏ có bản sửa lỗi, cải thiện hiệu suất cũng như một số thay đổi nhỏ về tính năng.

  • Phiên bản này hiện bắt buộc phải sử dụng ảnh hệ thống Android 8.0 mới nhất. Các ảnh hệ thống này tuân thủ chuẩn Treble, với sự xuất hiện của các phân vùng vendor.img riêng biệt.
  • Hiện đã có phiên bản HAXM 6.2.0 mới (hãy kiểm tra Trình quản lý SDK) và có những nội dung cập nhật sau:
    • Cải thiện mức sử dụng bộ nhớ. Tập hợp bộ nhớ hoạt động cao nhất mà HAXM ghim lại không còn bằng dung lượng RAM của AVD; thay vào đó, bộ nhớ sẽ được phân trang theo yêu cầu. Việc này sẽ giúp trình mô phỏng chạy ổn định trên các máy có dung lượng RAM thấp.
    • Trình mô phỏng có HAXM 6.2.0 hiện có thể khởi động nhanh hơn trên macOS, bỏ qua giai đoạn khởi động dài.
  • Cải thiện về cấu hình GPU
    • Khắc phục vấn đề màn hình đen lúc khởi động khi kết xuất phần mềm phía máy khách, bằng cách trở lại phương thức kết xuất phần mềm phía máy chủ bằng Swiftshader. Các bản sửa đổi mới nhất về ảnh hệ thống cho API cấp 19 – 25 với việc API Google phải có quy trình kết xuất phía máy khách đang hoạt động.
    • Khắc phục vấn đề trình mô phỏng được chuyển sang trình kết xuất phần mềm do phát hiện sự hiện diện của các GPU Intel cũ, nhưng trình mô phỏng thực sự đang chạy trên một GPU rời. Sau đây là cách xác định GPU sẽ được chuyển sang dùng tính năng kết xuất ANGLE hoặc Swiftshader:
      • Các Intel iGPU cũ hơn gặp vấn đề về trình điều khiển trên cả trình điều khiển OpenGL và ANGLE D3D. Những người dùng sở hữu GPU Intel HD Graphics 3xxx trở xuống sẽ sử dụng Swiftshader.
      • Một số người dùng cho biết họ không thể sử dụng hình ảnh API cấp 25 do có lỗi "Pixel Launcher keeps stopping" ("Trình chạy Pixel liên tục dừng"). Đây có vẻ như là vấn đề về trình điều khiển trong một số loại GPU Intel HD 4xxx. Vì vậy, những người dùng này sẽ được tự động chuyển sang sử dụng ANGLE.
    • Để có kết quả mô phỏng GPU tốt nhất, bạn nên sử dụng GPU NVIDIA hoặc AMD rời hoặc GPU Intel thế hệ mới (Iris, HD 5xxx, HD 5xx/6xx).
    • Khắc phục vấn đề trình mô phỏng không khởi động được (không khởi động được quá trình mô phỏng OpenGL) nếu AVD được định cấu hình bằng hw.gpu.mode=host và trình mô phỏng đã được khởi động trong một ứng dụng máy tính từ xa.
    • Làm rõ chế độ cài đặt "OpenGL ES API level (requires restart)" ("Cấp API OpenES ES (yêu cầu khởi động lại)"); thêm tuỳ chọn hạ cấp từ OpenGL ES 3 xuống OpenGL ES 2 nếu gặp vấn đề hoặc cần kiểm thử ở cấp độ OpenGL ES API thấp hơn.
    • Trình kết xuất Mesa không còn được dùng nữa; hw.gpu.mode=mesa giờ sẽ được tự động chuyển sang sử dụng Swiftshader trên máy chủ.
  • Những cải thiện đối với macOS:
    • Trình mô phỏng hiện hoàn toàn tương thích với macOS 10.13 High Sierra thông qua Hypervisor.Framework hoặc HAXM 6.2.0.
    • Theo mặc định, Hypervisor.framework hiện đã được bật trên macOS cho hình ảnh x86 32 bit để cải thiện hiệu suất và khả năng tương thích với macOS. Nếu bạn gặp vấn đề cụ thể, vui lòng gửi báo cáo lỗi và thêm HVF = off vào ~/.android/advancedFeatures.ini (tạo tệp này nếu tệp chưa có).
    • Sửa các vấn đề không có kết nối Internet/không thể đính kèm trình gỡ lỗi trong khi sử dụng Hypervisor.framework.
    • Để nâng cao khả năng tương thích và hiệu suất của tính năng chụp ảnh bằng webcam, bộ chụp ảnh dựa trên QTKit đã được thay thế bằng một vùng đệm dựa trên AVFoundation.
  • Bổ sung tính năng hỗ trợ Wi-Fi trong một số ảnh hệ thống (hiện chỉ có API cấp 25). Một điểm truy cập có tên "AndroidWifi" đã được thiết lập và Android sẽ tự động kết nối với điểm đó. Bạn có thể tắt tính năng hỗ trợ Wi-Fi bằng cách chạy trình mô phỏng bằng tham số dòng lệnh -feature -Wifi.
  • Một số người dùng lo ngại rằng ảnh hệ thống Cửa hàng Play kích thước cố định không có đủ dung lượng lưu trữ. Vì vậy, theo mặc định, chúng tôi đã tăng dung lượng lên 2 GB (tăng từ 800 MB).
  • Thêm phím tắt (Ctrl+Shift+U) để mở trang giao diện người dùng báo cáo lỗi ngay trên trang cài đặt.
  • Khắc phục vấn đề nếu một CPU cũ có Intel x86 EPT nhưng không sử dụng UG, thì trình mô phỏng sẽ không khởi động được nếu có ít nhất một lõi đã được định cấu hình.
  • Khắc phục vấn đề HyperV sẽ bị phát hiện không đúng cách nếu trình mô phỏng tự chạy trong trình điều khiển ảo hoá Xen.
  • Khắc phục vấn đề trình mô phỏng sẽ gặp sự cố khi khởi động trong một số cấu hình Linux.

26.1.2 (tháng 7 năm 2017)

Bản phát hành này bao gồm một số tính năng mới và điểm cải thiện về hiệu suất.

  • Thêm khả năng xác định cấu hình proxy HTTP tuỳ chỉnh trong các tuỳ chọn điều khiển mở rộng (nhấp vào biểu tượng Thêm ), sau đó nhấp vào Settings (Cài đặt) và Proxy). Theo mặc định, trình mô phỏng sử dụng chế độ cài đặt proxy HTTP của Android Studio, nhưng màn hình này cho phép bạn xác định cấu hình proxy thủ công.

  • Bổ sung khả năng hỗ trợ VNC cho GPU chế độ khách để trình mô phỏng có thể được xem và điều khiển từ xa. Ví dụ: bạn có thể khởi động trình mô phỏng và cho phép VNC nghe cổng 5901 như sau:

    1. Thực thi: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Mở trình xem VNC (chẳng hạn như trình xem tightvnc) để kết nối với cổng 5901.

      • Để sử dụng ứng dụng chia sẻ màn hình tích hợp trong máy Mac, bạn cần phải nhập mật khẩu VNC khi khởi động trình mô phỏng. Để đặt mật khẩu, hãy sử dụng lệnh này:

        emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio

        Sau đó, hãy nhập change vnc password vào bảng điều khiển rồi nhập mật khẩu.

    Android O hiện chưa được hỗ trợ ở chế độ VNC.

  • Đã thêm nút File a bug (Báo lỗi) trong màn hình trợ giúp của phần chế độ điều khiển mở rộng (Nhấp vào biểu tượng Thêm , nhấp vào Help (Trợ giúp) rồi nhấp vào Emulator help (Trợ giúp về trình mô phỏng)). Khi nhấp vào File a bug (Báo lỗi), bạn sẽ thấy một hộp thoại để xem thông tin chi tiết về báo cáo lỗi (chẳng hạn như ảnh chụp màn hình, thông tin cấu hình AVD và nhật ký báo cáo lỗi). Sau đó, bạn có thể tự lưu báo cáo hoặc báo cáo vấn đề của trình mô phỏng.

  • Thêm cảm biến con quay hồi chuyển vào trình mô phỏng và bảng điều khiển cảm biến ảo. Tính năng này đòi hỏi ảnh hệ thống có hỗ trợ con quay hồi chuyển để hoạt động được (hiện đang là API cấp 24 và 25).

  • Thêm DNS được ưu tiên cho máy chủ vào danh sách DNS Qemu trên Windows, khi các giao diện mạng ảo trên máy chủ giới thiệu nhiều địa chỉ DNS nhưng trình mô phỏng không xử lý được.

  • Bổ sung tính năng hỗ trợ thử nghiệm macOS Hypervisor.Framework cho hình ảnh 32 bit x86 trên macOS 10.10 trở lên thông qua cờ máy chủ, gíup cải thiện thời gian khởi động và hiệu suất.

    • Nếu bạn gặp sự cố với tính năng này, hãy thêm dòng HVF = off vào ~/.android/advancedFeatures.ini.
  • Theo mặc định, OpenGL ES 3.x hiện được bật cho ảnh hệ thống và GPU lưu trữ (trên máy chủ) hỗ trợ OpenGL ES 3. Hiện tại, chỉ Android O (API cấp 26) và máy chủ Windows/Linux hỗ trợ OpenGL ES 3.

    • Nếu bạn gặp sự cố về OpenGL ES 3, hãy thêm dòng GLESDynamicVersion = off trong ~/.android/advancedFeatures.ini.
  • Trình mô phỏng hiện sử dụng FBO OpenGL ngoài màn hình cho tất cả kết xuất, ngoại trừ hoạt động đăng hình ảnh hiển thị cuối cùng. Tính năng này sẽ giúp giải quyết vấn đề nhất quán về màu sắc trên các nền tảng.

  • Sau khi thu thập dữ liệu về các sự cố làm giảm đột ngột tốc độ trình mô phỏng, chúng tôi đã nhận thấy có thể sự cố đó liên quan đến một số hoạt động tương tác giữa các trình điều khiển Intel OpenGL cũ và các bản cập nhật Windows. Do đó, những người dùng sử dụng Intel HD 4000, 3000, 2000 (và GPU có liên quan) giờ đây sẽ đặt chế độ kết xuất mặc định thành trình kết xuất D3D (ANGLE) hoặc Swiftshader (trình kết xuất phần mềm).

26.0.0 (tháng 3 năm 2017)

Bản phát hành này tương thích với API cấp 26. Ngoài ra, API này còn có một số điểm cải thiện về hiệu suất và một số bản sửa lỗi.

Bản sửa đổi nhỏ 26.0.3 (tháng 5 năm 2017)

  • Thêm các cờ tính năng có thể cập nhật trực tuyến để giải quyết nhanh vấn đề phát sinh qua các cấu hình phần cứng có vấn đề. Tính năng này cho phép Google triển khai các bản sửa lỗi và tính năng phụ thuộc vào cấu hình của người dùng bằng cách cập nhật cờ phía máy chủ. Nếu bạn nhận thấy vấn đề với một phần cứng cụ thể, vui lòng báo cáo lỗi để chúng tôi có thể điều tra sự cố đó.
  • Hỗ trợ mới cho phương thức nhập dữ liệu xoay cho ảnh hệ thống API Android Wear cấp 25. Để mô phỏng phương thức nhập dữ liệu xoay trên thiết bị Wear, hãy nhấp vào thẻ Rotary Input (Nhập dữ liệu xoay) trên cửa sổ mở rộng.
  • Hộp thoại Crash Reporting (Báo cáo sự cố) nay có thể thay đổi kích thước và không còn đặt lại When to send crash reports (Thời điểm gửi báo cáo sự cố) thành Ask (Hỏi) khi không có thông tin đầu vào.
  • Trình mô phỏng 32 bit nay yêu cầu dung lượng RAM AVD tối đa nhỏ hơn hoặc bằng 512 MB, để ngăn trình mô phỏng này sử dụng hết không gian địa chỉ ảo 2 GB.
  • Bổ sung tính năng hỗ trợ cho các đường dẫn tuyệt đối trong ảnh trình mô phỏng.
  • Thêm thẻ mới vào cửa sổ mở rộng cho ảnh hệ thống Cửa hàng Google Play có hiển thị phiên bản Dịch vụ Google Play và một nút để kiểm tra bản cập nhật Dịch vụ Google Play.
  • Thêm trình đơn thả xuống để chọn trình kết xuất OpenGL trên trang Emulator Settings (Cài đặt trình mô phỏng). Nếu bạn gặp sự cố với trình điều khiển OpenGL trên máy chạy Windows, hãy thử sử dụng các tuỳ chọn ANGLE (D3D11) hoặc ANGLE (D3D9) (cần phải khởi động lại). Nếu bạn gặp sự cố với trình điều khiển OpenGL trên một máy không chạy Windows, hãy thử dùng trình kết xuất phần mềm Swiftshader (cần phải khởi động lại).
  • Khắc phục một sự cố hiếm gặp khi thoát, khi trình mô phỏng nhận được cả lệnh exitminimize.
  • Khắc phục vấn đề về tỷ lệ khi thay đổi màn hình trên máy Mac. (Vấn đề 268296)
  • Khắc phục vấn đề trình mô phỏng chiếm 300% CPU và tiếp tục nắm giữ dung lượng này sau khi máy chủ trở lại sau chế độ ngủ hoặc khi trình mô phỏng chạy trong một thời gian dài.
  • Khắc phục một sự cố xuất hiện khi trình mô phỏng đang tắt.

Thông tin cập nhật về HAXM v6.1.1 (tháng 3 năm 2017)

Lưu ý: HAXM v6.1.1 nay đã phát hành cho người dùng Mac thông qua Trình quản lý SDK kể từ ngày 30 tháng 3 và sẽ sớm được cung cấp cho người dùng Windows.

Phiên bản 26.0.0 của Trình mô phỏng Android hỗ trợ HAXM v6.1.1, bao gồm các bản cập nhật sau:

  • Bật tính năng mô phỏng Performance Monitoring Units (Đơn vị giám sát hiệu suất) (PMU). (Vấn đề 223377)
  • Khắc phục sự cố không thể cùng tồn tại với VirtualBox và Docker trên máy Mac. (Issue 197915)
  • Sửa đổi thông báo lỗi chế độ cài đặt hiển thị khi trình cài đặt không phát hiện được Intel VT-x trên Windows, nguyên nhân thường là do đã bật Hyper-V.
  • Bổ sung tính năng hỗ trợ tăng tốc Trình mô phỏng Android trong máy ảo Windows trên Hyper-V. Bản cập nhật này đòi hỏi phiên bản Hyper-V của máy chủ (phiên bản quản lý máy ảo/khách Windows) sử dụng phiên bản mới nhất của Hyper-V đã bật tính năng ảo hoá lồng nhau. Bạn phải tắt Hyper-V trong phiên bản Hyper-V của khách (máy ảo Windows).

Phần phụ thuộc

  • Bản sửa đổi Công cụ của nền tảng SDK cho Android phiên bản 25.0.4 trở lên.
  • Bản sửa đổi Công cụ SDK Android 26.0.0 trở lên.

Bản sửa đổi và tính năng mới

  • Tương thích với API cấp 26.
  • Hoàn toàn tuân thủ GLES 2.0. Do có một GPU lưu trữ (trên máy chủ) có các trình điều khiển OpenGL dành cho máy tính, nên trình mô phỏng giờ đây truyền 100% danh sách Android CTS dEQP-GLES2 mustpass. Tính năng này đã được phát hành cho các ảnh API cấp độ 24 x86 (bản sửa đổi 11 trở lên) và sẽ sớm được đưa vào tất cả ảnh hệ thống.
  • Cải thiện hiệu suất phát video. Trình mô phỏng hiện lưu trữ tất cả vùng đệm màu video trong bộ nhớ dùng chung của máy chủ/khách và thực hiện hoạt động chuyển đổi YUV sang RGB cuối cùng cần thiết trong GPU. 1080p30 phù hợp với phạm vi tiếp cận của hầu hết hệ thống hiện nay. Tính năng này đã được phát hành cho các ảnh API cấp 24 x86 (bản sửa đổi 11 trở lên) và sẽ sớm được đưa vào tất cả ảnh hệ thống.
  • Trình mô phỏng hiện tự huỷ đăng ký khỏi danh sách adb devices khi thoát và đóng các cổng TCP đang mở trên máy Linux.
  • Kết nối adb nay trở nên đáng tin cậy hơn. Phát hiện trình mô phỏng đang chạy nhanh hơn và không còn chuyển sang trạng thái "offline" ("ngoại tuyến") hay "unauthorized" ("chưa được uỷ quyền").

25.3.0 (tháng 3 năm 2017)

Kể từ bản phát hành này, Trình mô phỏng Android sẽ được phát hành tách biệt khỏi Bộ công cụ SDK. Bản phát hành này có nhiều điểm cải thiện về hiệu suất, tính năng mới và bản sửa lỗi.

Bản sửa đổi nhỏ 25.3.1 (tháng 3 năm 2017)

  • Khắc phục một sự cố xảy ra trên một số cấu hình GPU bằng cách tắt GLAsyncSwap theo mặc định. Tính năng này được thêm vào phiên bản 25.3.0 để cải thiện thời gian kết xuất khung hình và khung hình/giây cho các trò chơi và video nhưng khiến trình mô phỏng gặp lỗi trên một số cấu hình máy không xác định. Bạn có thể bật chế độ này theo cách thủ công bằng cách mở tệp android_sdk/emulator/lib/advancedFeatures.ini và cài đặt GLAsyncSwap = on.

Phần phụ thuộc

  • Bản sửa đổi Công cụ của nền tảng SDK cho Android phiên bản 24 trở lên.
  • Bản sửa đổi Công cụ SDK Android 25.3.0.

Bản sửa đổi và tính năng mới

  • Cập nhật công cụ mô phỏng lên QEMU 2.7, bao gồm tất cả bản sửa lỗi gần đây, cải thiện hiệu suất và các tính năng mới.
  • Hỗ trợ mới cho IPv6.
  • Trình mô phỏng hiện sử dụng SwiftShader làm một trình kết xuất phần mềm thuần tuý trên máy chủ.
  • Những điểm cải thiện về hiệu suất của Android Pipe: Android Pipe (kênh giao tiếp chính giữa trình mô phỏng và hệ điều hành Android) nay có thứ tự cường độ nhanh hơn, độ trễ thấp hơn và đem đến hiệu suất đa luồng tốt hơn. Tính năng này mang đến một số điểm cải thiện về hiệu suất cho trình mô phỏng, bao gồm:
    • Cải thiện tốc độ đẩy/kéo ADB.
    • Hỗ trợ tăng tốc 3D hiệu quả hơn.
    • Tăng khả năng phản hồi tổng thể của trình mô phỏng.
    • Cải thiện hiệu suất đồ hoạ.
  • Trình mô phỏng hiện sử dụng vùng đệm phía GPU (glBindBuffers/glBufferData) khi máy khách yêu cầu, giảm mức hao tổn CPU trong một số ứng dụng.
  • Hỗ trợ âm thanh hiệu quả hơn.
  • I/O ổ đĩa nhanh hơn: Trình mô phỏng hiện sử dụng các chuỗi riêng biệt để gửi I/O ổ đĩa, mang lại độ trễ thấp và thông lượng tốt hơn (tốc độ I/O tuần tự ~1,5x, tốc độ I/O truy cập ngẫu nhiên ~5x ). Tính năng này cũng giúp giảm số lần xả đĩa, dẫn đến việc tải thiết bị thực tế ít hơn nhiều.
  • Trình mô phỏng hiện sử dụng các tệp thưa cho các lượt khởi động đĩa trên máy Windows, giúp tăng tốc cả lần khởi động đầu tiên và lần khởi động "xoá sạch dữ liệu" ("wipe-data"). Khi tạo hoặc đặt lại AVD, trình mô phỏng hiện sẽ ghi 100-200 MB dữ liệu vào ổ đĩa, thay vì 2 GB trở lên.
  • Một số tính năng nâng cao của GUI (Giao diện người dùng đồ hoạ):
    • Trình mô phỏng hiện sử dụng Qt 5.7.0 với các bản sửa lỗi và cải thiện về hiệu suất.
    • Quá trình khởi động giao diện người dùng không còn cố gắng tải tất cả tệp thực thi trình mô phỏng dưới dạng các trình bổ trợ Qt, vì vậy, quá trình khởi động sẽ ngắn hơn đáng kể, đặc biệt là trên ổ đĩa HDD.
    • Các hoạt động tương tác với giao diện người dùng hiện diễn ra nhanh và mượt mà hơn, bao gồm cả tính năng xoay, đổi kích thước cửa sổ và các chế độ điều khiển mở rộng khi tải và đóng cửa sổ.