Hướng dẫnĐăng ngày: 10 phút đọc

Tuỳ chọn nhà phát triển Android mà tester nào cũng nên biết

Các Tuỳ chọn nhà phát triển Android hữu ích khi kiểm thử, từ gỡ lỗi USB, hiện thao tác chạm đến tốc độ hoạt ảnh và chế độ demo, kèm lệnh adb tương ứng.

Tuỳ chọn nhà phát triển Android là trang cài đặt ẩn giúp điện thoại trở thành thiết bị kiểm thử tốt hơn hẳn: giữ màn hình luôn sáng, hiện mọi thao tác chạm, tăng tốc hoạt ảnh, huỷ activity để kiểm tra khôi phục trạng thái, và làm sạch thanh trạng thái khi chụp ảnh. Bài này điểm qua các Tuỳ chọn nhà phát triển mà tester nào cũng nên biết, mỗi tuỳ chọn dùng để làm gì, lệnh adb để bật mà không cần chạm vào máy, và cách trả về mặc định. Nếu bạn phản chiếu màn hình trong ADBKit, nhiều cài đặt trong số này còn giúp bản ghi và ảnh chụp rõ hơn.

Warning: Phần lớn các cài đặt này vẫn giữ nguyên sau khi khởi động lại, và một số làm thay đổi hành vi ứng dụng. Hãy tắt chúng khi kết thúc phiên kiểm thử, hoặc chỉ bật trên máy chuyên dùng để test.

Bật Tuỳ chọn nhà phát triển và gỡ lỗi USB

Vào Cài đặt > Giới thiệu điện thoại rồi chạm bảy lần vào Số bản dựng. Trên Samsung mục này nằm trong Thông tin phần mềm, trên Xiaomi là Phiên bản MIUI. Một thông báo đếm ngược rồi xác nhận "Bạn đã trở thành nhà phát triển". Trang Tuỳ chọn nhà phát triển sẽ xuất hiện trong Hệ thống (hoặc ở cuối danh sách Cài đặt trên một số hãng).

Công tắc đầu tiên cần bật là Gỡ lỗi USB. Đây là thứ cho phép adb, Android Studio và ADBKit nói chuyện với điện thoại. Hướng dẫn đầy đủ, gồm cả hộp thoại "Cho phép gỡ lỗi USB?" và dấu vân tay khoá hiển thị trong đó, có trong bài cách bật gỡ lỗi USB trên Android. Bật xong, kiểm tra kết nối:

adb devices

Hai tuỳ chọn nằm ngay cạnh cũng đáng biết:

  • Thu hồi uỷ quyền gỡ lỗi USB xoá sạch mọi máy tính bạn từng chạm "Cho phép". Dùng trên thiết bị dùng chung đã cắm vào quá nhiều laptop, hoặc để kiểm tra lại hộp thoại uỷ quyền.
  • Gỡ lỗi không dây (Android 11 trở lên) ghép nối qua Wi-Fi bằng mã ghép nối. Đây là cơ chế khác với cách adb tcpip 5555 cổ điển trong bài ADB qua Wi-Fi, và chỉ cách cổ điển mới dùng được với trình trợ giúp Wi-Fi của ADBKit.

Cài đặt giúp demo, quay và chụp màn hình rõ hơn

Không khoá màn hình (Stay awake)

Bật Không khoá màn hình, màn hình sẽ không tắt chừng nào máy còn đang sạc hoặc cắm USB, nên bạn không còn phải vật lộn với màn hình khoá giữa các bước. Lệnh tương đương có hiệu lực đến lần khởi động lại kế tiếp:

adb shell svc power stayon true
adb shell svc power stayon false

Hiện thao tác chạm và Vị trí con trỏ

Hiện thao tác chạm vẽ một vòng tròn nhỏ tại nơi ngón tay (hoặc cú nhấp chuột được phản chiếu) chạm vào màn hình, nhờ đó báo cáo lỗi và video quay màn hình tự giải thích được. Vị trí con trỏ còn đi xa hơn: hiện một thanh ghi toạ độ X/Y chính xác cùng vệt của cử chỉ. Đây là cách nhanh nhất để tìm toạ độ cho adb shell input tap, được trình bày kỹ trong bài giả lập chạm, vuốt và phím bấm bằng adb shell input.

adb shell settings put system show_touches 1
adb shell settings put system pointer_location 1

Đặt giá trị về 0 để tắt. Nhớ tắt Vị trí con trỏ trước khi chụp ảnh cuối cùng, vì lớp phủ này cũng bị chụp vào.

Chế độ demo: thanh trạng thái sạch sẽ

Ảnh trên cửa hàng ứng dụng và tài liệu sẽ đẹp hơn với pin đầy, đồng hồ cố định và không có biểu tượng thông báo. Chế độ demo System UI của Android giả lập tất cả những thứ đó. Bật một lần rồi gửi broadcast:

adb shell settings put global sysui_demo_allowed 1
adb shell am broadcast -a com.android.systemui.demo -e command enter
adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 1000
adb shell am broadcast -a com.android.systemui.demo -e command battery -e level 100 -e plugged false
adb shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false

Lệnh network điều khiển biểu tượng Wi-Fi và sóng theo cách tương tự. Thoát chế độ demo bằng -e command exit, hoặc dùng công tắc ở Tuỳ chọn nhà phát triển > Chế độ demo System UI trên Android gốc.

Cài đặt giúp kiểm thử nhanh hơn

Tỷ lệ hoạt ảnh

Ba thanh trượt Tỷ lệ hoạt ảnh cửa sổ, Tỷ lệ hoạt ảnh chuyển tiếp và Tỷ lệ thời lượng trình tạo hoạt ảnh quyết định hoạt ảnh giao diện kéo dài bao lâu. Mức 0,5x giúp kiểm thử thủ công nhanh tay hơn; Tắt hoạt ảnh gần như là bắt buộc với Espresso và UI Automator, vì nếu không chúng sẽ hết thời gian chờ khi view vẫn đang trượt vào.

adb shell settings put global window_animation_scale 0
adb shell settings put global transition_animation_scale 0
adb shell settings put global animator_duration_scale 0

Khôi phục mặc định bằng cách đặt cả ba về 1; một số ứng dụng bỏ qua hẳn hoạt ảnh ở mức 0, nên lỗi hoạt ảnh sẽ bị che giấu nếu bạn quên.

Kích thước bộ đệm logger

Bộ đệm vòng mặc định của logcat khá nhỏ, và trên một máy bận rộn, những dòng bạn cần sẽ bị ghi đè chỉ trong vài giây. Tăng Kích thước bộ đệm logger lên 4 MB hoặc hơn khi săn một lỗi crash chập chờn, hoặc đặt cho phiên hiện tại:

adb logcat -G 16M

Bài cách đọc Android logcat hướng dẫn lọc lượng log lớn hơn này.

Cài đặt cố tình làm hỏng ứng dụng của bạn

Những tuỳ chọn này tái hiện các vấn đề chỉ xảy ra trên máy cấu hình thấp hoặc khi thiếu bộ nhớ.

  • Không giữ các hoạt động huỷ mọi activity ngay khi bạn rời khỏi nó. Bấm Home, quay lại, và ứng dụng phải dựng lại màn hình từ trạng thái đã lưu; biểu mẫu mất nội dung chính là lỗi khôi phục trạng thái. Dạng adb là settings put global always_finish_activities 1.
  • Giới hạn tiến trình nền khống chế số tiến trình nền được tồn tại, từ "Giới hạn chuẩn" xuống "Không có tiến trình nền", mô phỏng việc hệ thống giết ứng dụng khi người dùng đang ở nơi khác.
  • Buộc hướng bố cục RTL lật ngược toàn bộ giao diện như thể ngôn ngữ là tiếng Ả Rập hay Do Thái, làm lộ biểu tượng, padding và căn chữ bị viết cứng theo chiều trái-sang-phải. Lệnh tương đương là settings put global debug.force_rtl 1, có hiệu lực sau khi ứng dụng khởi động lại.
  • Chọn ứng dụng vị trí mô phỏng cho phép một ứng dụng cung cấp toạ độ GPS giả để kiểm thử geofencing hay màn hình bản đồ ngay tại bàn. Với từng ứng dụng: adb shell appops set com.example.app android:mock_location allow.

Note: Không giữ các hoạt động và Giới hạn tiến trình nền ảnh hưởng đến mọi ứng dụng trên máy, kể cả launcher và bàn phím. Hãy lường trước các hành vi lạ ở nơi khác, và tắt ngay sau khi test xong.

Cài đặt cho thấy giao diện đang làm gì

  • Hiện ranh giới bố cục vẽ đường bao, lề và padding của mọi view, làm lộ ngay view chồng lấn hoặc quá khổ. adb shell setprop debug.layout true để bật; mở lại ứng dụng để thấy thay đổi.
  • Gỡ lỗi vẽ chồng GPU tô màu mỗi điểm ảnh theo số lần nó được vẽ trong một khung hình. Xanh dương là ổn, đỏ đậm nghĩa là bốn lớp trở lên. adb shell setprop debug.hwui.overdraw show để bật, false để tắt.
  • Hồ sơ kết xuất HWUI (dạng thanh trên màn hình) hiện một thanh cho mỗi khung hình; vượt quá vạch xanh 16 ms là rớt khung. adb shell setprop debug.hwui.profile visual_bars để bật, false để tắt.

Cả ba lớp phủ này đều bị ghi vào ảnh chụp và video, nên hãy tắt trước khi quay demo.

Bảng tra nhanh: cài đặt, khi nào dùng, cách tắt

Cài đặtKhi nào dùngCách tắt
Gỡ lỗi USBMọi phiên adb, Android Studio hoặc ADBKitGạt tắt; thu hồi uỷ quyền trên máy dùng chung
Không khoá màn hìnhPhiên thủ công dài, phản chiếu màn hìnhGạt tắt hoặc svc power stayon false
Hiện thao tác chạmDemo, báo cáo lỗi, quay màn hìnhsettings put system show_touches 0
Vị trí con trỏTìm toạ độ cho input tapsettings put system pointer_location 0
Tỷ lệ hoạt ảnhKiểm thử thủ công nhanh hơn, bộ UI testĐặt cả ba tỷ lệ về 1
Không giữ các hoạt độngKiểm thử khôi phục trạng tháisettings put global always_finish_activities 0
Giới hạn tiến trình nềnHành vi khi thiếu bộ nhớĐặt lại Giới hạn chuẩn
Buộc bố cục RTLQA bản địa hoásettings put global debug.force_rtl 0
Hiện ranh giới bố cụcLỗi bố cục và paddingsetprop debug.layout false
Gỡ lỗi vẽ chồng GPUHiệu năng kết xuấtsetprop debug.hwui.overdraw false
Hồ sơ kết xuất HWUISăn giật lagsetprop debug.hwui.profile false
Kích thước bộ đệm loggerCrash chập chờnĐặt lại 256 KB hoặc logcat -G 256K
Chế độ demoẢnh chụp cho marketingBroadcast -e command exit
Ứng dụng vị trí mô phỏngTính năng định vịChọn "Không có"

Dùng các cài đặt này với ADBKit

ADBKit phản chiếu điện thoại trong trình duyệt Chromium qua WebUSB, không cần platform-tools hay tài khoản, và các cài đặt ở trên giúp màn hình phản chiếu hữu ích hơn nhiều.

  1. Bật gỡ lỗi USB như mô tả, cắm điện thoại rồi bấm Connect device, sau đó chạm Allow trên máy.
  2. Bật Không khoá màn hình để màn hình phản chiếu không bị khoá khi bạn đang làm việc; phiên USB được tính là "đang kết nối" với cài đặt này.
  3. Bật Hiện thao tác chạm trước khi bấm Screen Record, để các cú nhấp chuột hiện thành vòng tròn chạm trong tệp WebM.
  4. Đặt tỷ lệ hoạt ảnh về 0,5x nếu luồng hình ở 720p có vẻ giật; hoạt ảnh ngắn hơn nghĩa là ít khung hình phải mã hoá hơn.
  5. Mở ngăn Shell trên thanh công cụ để chạy các lệnh settings put hoặc am broadcast trong bài mà không cần rời tab, rồi bấm Screenshot để chụp ảnh sạch sẽ khi chế độ demo đang bật.

Tại một thời điểm chỉ một chương trình giữ được kết nối USB, nên hãy đóng Android Studio hoặc scrcpy nếu ADBKit không kết nối được. Thêm mẹo trong bài mẹo phản chiếu màn hình Android, và danh sách lệnh đầy đủ nằm trong bảng tóm tắt lệnh ADB.