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 devicesHai 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 5555cổ đ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 falseHiệ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 falseLệ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 0Khô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 16MBà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 đặt | Khi nào dùng | Cách tắt |
|---|---|---|
| Gỡ lỗi USB | Mọi phiên adb, Android Studio hoặc ADBKit | Gạt tắt; thu hồi uỷ quyền trên máy dùng chung |
| Không khoá màn hình | Phiên thủ công dài, phản chiếu màn hình | Gạt tắt hoặc svc power stayon false |
| Hiện thao tác chạm | Demo, báo cáo lỗi, quay màn hình | settings put system show_touches 0 |
| Vị trí con trỏ | Tìm toạ độ cho input tap | settings put system pointer_location 0 |
| Tỷ lệ hoạt ảnh | Kiể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 động | Kiểm thử khôi phục trạng thái | settings put global always_finish_activities 0 |
| Giới hạn tiến trình nền | Hành vi khi thiếu bộ nhớ | Đặt lại Giới hạn chuẩn |
| Buộc bố cục RTL | QA bản địa hoá | settings put global debug.force_rtl 0 |
| Hiện ranh giới bố cục | Lỗi bố cục và padding | setprop debug.layout false |
| Gỡ lỗi vẽ chồng GPU | Hiệu năng kết xuất | setprop debug.hwui.overdraw false |
| Hồ sơ kết xuất HWUI | Săn giật lag | setprop debug.hwui.profile false |
| Kích thước bộ đệm logger | Crash chập chờn | Đặt lại 256 KB hoặc logcat -G 256K |
| Chế độ demo | Ảnh chụp cho marketing | Broadcast -e command exit |
| Ứng dụng vị trí mô phỏng | Tí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.
- 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.
- 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.
- 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.
- Đặ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.
- Mở ngăn Shell trên thanh công cụ để chạy các lệnh
settings puthoặcam broadcasttrong 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.