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

Mẹo mirror màn hình Android: mượt hơn, nét hơn, hữu ích hơn

Mẹo mirror màn hình Android: chọn chất lượng luồng hợp lý, giảm lag, bật hiển thị thao tác chạm khi demo, giữ màn hình sáng và kết hợp với quay màn hình, logcat.

Hầu hết rắc rối khi mirror màn hình Android quy về ba lựa chọn: độ phân giải bạn yêu cầu, đường USB có "sạch" không, và những tuỳ chọn nhà phát triển bạn bật trước khi bắt đầu. Hạ chất lượng luồng trên laptop yếu, dùng cáp dữ liệu ngắn cắm thẳng vào máy tính, bật "Hiển thị thao tác chạm" và "Không khoá màn hình" là màn hình giật lag thường mượt ngay. Các mẹo dưới đây áp dụng cả khi mirror trong trình duyệt bằng ADBKit lẫn từ terminal bằng scrcpy. Nếu chưa từng mirror, đọc cách điều khiển Android từ trình duyệt trước.

Chọn chất lượng luồng theo việc cần làm

Mirror là đánh đổi giữa độ nét, độ trễ và tải CPU: mỗi khung hình được mã hoá trên điện thoại, truyền qua USB rồi giải mã trên máy tính, nên độ phân giải càng cao càng tốn.

Chất lượngPhù hợp vớiCái giá
NativeSoi từng pixel: font chữ, viền 1px, căn iconBăng thông và tải giải mã cao nhất; laptop cũ dễ giật
1440pReview thiết kế trên màn hình lớnVẫn nặng với đồ hoạ tích hợp
1080pHằng ngày: test luồng, demo, phân loại bugMặc định hợp lý cho đa số máy
720pLaptop yếu, phiên dài, cắm qua hubChữ hơi mờ nhưng thao tác phản hồi tức thì

Hãy làm việc ở 720p hoặc 1080p và chỉ chuyển sang native lúc cần soi chi tiết. Trong ADBKit, nút chọn chất lượng nằm cạnh khung màn hình và có hiệu lực ngay.

Tip: Bản thân mirror cũng làm rớt khung hình. Hãy xác nhận giật cuộn hay animation khựng ngay trên máy trước khi báo bug hiệu năng.

Dùng màn hình mirror như một thiết bị nhập liệu

Khi luồng đã chạy, bạn điều khiển điện thoại ngay từ bàn làm việc:

  • Nhấp để chạm, kéo để vuốt, cuộn hoặc kéo thanh thông báo.
  • Back, Home và App Switcher gửi đúng sự kiện phím như bấm tay.
  • Tăng / giảm âm lượng tiện khi test ứng dụng media.
  • Xoay ép đổi hướng màn hình, cách nhanh nhất để bắt layout vỡ ở chế độ ngang hoặc mất trạng thái.

Nếu thao tác hiện trên mirror nhưng điện thoại không phản ứng, một số hãng (Xiaomi, vài dòng Oppo, Vivo) đòi bật thêm "Gỡ lỗi USB (Cài đặt bảo mật)". Bật lên, khởi động lại máy rồi kết nối lại.

Tuỳ chọn nhà phát triển giúp mirror hữu ích hơn

Ba công tắc trong Cài đặt › Tuỳ chọn nhà phát triển biến mirror thành công cụ demo và báo bug (xem thêm tuỳ chọn nhà phát triển nên bật khi test).

  • Hiển thị thao tác chạm (Show taps) vẽ vòng tròn tại điểm chạm, giúp người xem video thấy chính xác bạn bấm vào đâu.
  • Vị trí con trỏ (Pointer location) hiện toạ độ trực tiếp ở đầu màn hình, hợp để báo "nút ở x=540, y=1820 không phản hồi" và kiểm tra đường vuốt.
  • Không khoá màn hình (Stay awake) giữ màn hình sáng khi cắm USB. Không bật thì máy sẽ khoá sau thời gian chờ, ngay giữa buổi demo.

Ba tuỳ chọn này cũng bật được từ dòng lệnh, tiện khi viết script:

adb shell settings put system show_touches 1
adb shell settings put system pointer_location 1
adb shell settings put global stay_on_while_plugged_in 7

Đặt lại về 0 khi xong; "Không khoá màn hình" rất dễ quên và làm cạn pin.

Giảm lag và giật

Khi hình trễ hoặc đứng, hãy rà đường USB trước khi đổ lỗi cho phần mềm:

  1. Dùng cáp dữ liệu, không dùng cáp sạc. Nhiều cáp đi kèm máy chỉ dẫn điện; một sợi cáp ngắn, chắc chắn tốt, loại bỏ nguyên nhân phổ biến nhất.
  2. Cắm thẳng vào máy tính, không qua hub. Cổng USB 3 trên chính laptop cho đủ băng thông; dock dùng chung một đường lên với mọi thiết bị khác.
  3. Đóng các chương trình ADB khác. Mỗi lúc chỉ một chương trình giữ được kết nối USB: Android Studio, scrcpy, adb server cũ hay tab ADBKit thứ hai sẽ chặn thiết bị. Chạy adb kill-server nếu không chắc thứ gì đang giữ máy.
  4. Hạ chất lượng luồng từng nấc. Từ native xuống 1080p thường giảm nửa dữ liệu qua cáp.
  5. Kiểm tra tải trên điện thoại. Máy nóng hoặc đang chạy game nặng mã hoá video chậm hơn; laptop ở chế độ tiết kiệm pin cũng giải mã chậm thấy rõ.

Kết hợp mirror với quay màn hình và logcat

Bố cục hiệu quả nhất là màn hình trực tiếp ở giữa, công cụ chụp quay và log ở hai bên.

  • Quay trong lúc tái hiện bug. Quay từ khung trực tiếp, tái hiện lỗi, dừng, cắt rồi lưu tệp WebM. Bật "Hiển thị thao tác chạm" thì video tự giải thích. Xem chụp và quay màn hình Android.
  • Theo dõi logcat song song. Mở bảng logcat với mức tối thiểu Warning và từ khoá là tên gói. Khi crash hiện trên mirror, stack trace đã ở ngay cạnh; tạm dừng, xuất và đính kèm.
  • Chụp đúng khung hình. Ảnh PNG lấy framebuffer ở độ phân giải đầy đủ bất kể chất lượng luồng, nên mirror 720p vẫn cho bằng chứng sắc nét.

Mirror qua Wi-Fi

ADBKit kết nối qua Wi-Fi nhờ helper Node nhỏ adbkit-bridge.mjs, chuyển tiếp dữ liệu giữa trình duyệt và cổng adb tcpip 5555 truyền thống. Cách cài ở ADB qua Wi-Fi và tài liệu helper.

Độ trễ sẽ cao hơn và rớt khung nhiều hơn USB, nhất là trên mạng 2.4 GHz đông đúc. Dùng 720p và cắm sạc vì stream qua Wi-Fi rất hao pin. Gỡ lỗi không dây bằng mã ghép nối (Android 11+) chưa được hỗ trợ; máy phải được bật TCP/IP một lần qua USB.

Mirror trong ADBKit từng bước

  1. Mở ADBKit bằng Chrome hoặc Edge, cắm điện thoại và bấm Connect device. Chọn máy trong cửa sổ USB rồi chạm Allow trên điện thoại.
  2. Mở khung màn hình trực tiếp. ADBKit chép máy chủ scrcpy mã nguồn mở vào vị trí tạm trên máy rồi stream; không cài gì cả.
  3. Đặt Stream quality là 1080p (hoặc 720p nếu máy tính yếu). Chuyển sang Native khi cần soi chi tiết.
  4. Nhấp và kéo để điều khiển. Dùng Back, Home, App Switcher, Volume và Rotate trên thanh công cụ.
  5. Bật Hiển thị thao tác chạm và Không khoá màn hình trên điện thoại trước buổi demo hoặc phiên quay.
  6. Mở bảng Logcat cạnh màn hình và quay khi cần bằng chứng.

Luồng hình chỉ đi giữa trình duyệt và điện thoại; không có máy chủ nào nhận nó.

Phương án dòng lệnh: các cờ của scrcpy

Trong terminal, scrcpy có các cờ tương ứng. Điểm xuất phát cân bằng:

scrcpy --max-size 1080 --max-fps 30 --stay-awake --turn-screen-off
CờTác dụng
--max-size 1080Giới hạn cạnh dài ở 1080 pixel, như mức 1080p của ADBKit
--max-fps 30Giới hạn tốc độ khung hình, giảm băng thông và CPU
--stay-awakeGiữ thiết bị không ngủ khi đang kết nối
--turn-screen-offTắt màn hình điện thoại nhưng vẫn mirror, tiết kiệm pin và tránh chói khi demo
--show-touchesBật "Hiển thị thao tác chạm" trong phiên, trả lại như cũ khi thoát

Kết hợp --turn-screen-off với --stay-awake cho phiên dài khi máy nằm úp trên bàn.

Giới hạn cần biết trước khi bắt đầu

  • Âm thanh không được mirror trong ADBKit; dùng loa điện thoại hoặc thu âm riêng.
  • Màn hình bảo mật hiện màu đen. Ứng dụng ngân hàng, trình phát video DRM và trình quản lý mật khẩu đặt FLAG_SECURE; Android che đen chúng trong mọi hình thức chụp. Không có cách vượt qua.
  • Mỗi lần một thiết bị. Muốn mirror máy thứ hai, hãy ngắt máy thứ nhất.

So sánh với công cụ desktop: scrcpy, Vysor và ADBKit.