Khả năng chạy ứng dụng Android trên Chromebook là một điểm cộng lớn, giúp người dùng có quyền truy cập vào vô số sản phẩm trong hệ sinh thái Android và giúp nhà phát triển Android có cơ hội tiếp cận người dùng ChromeOS.
Nhà phát triển nên kiểm tra ứng dụng của họ trên nhiều hệ số hình dạng, vì điều này sẽ giúp cải thiện trải nghiệm của người dùng. Đó là lý do ChromeOS cung cấp cho nhà phát triển Android các công cụ để triển khai và kiểm thử ứng dụng của họ trên Chromebook.
Cho dù nhà phát triển triển khai ứng dụng Android của họ trực tiếp từ ChromeOS (bằng Android Studio trong Chromebook) hay từ một thiết bị khác, họ đều có thể sử dụng ADB để triển khai ứng dụng và gỡ lỗi các hoạt động tương tác khác nhau với Chromebook. Để biết thêm thông tin chi tiết, hãy xem các bước bên dưới.
Bật chế độ gỡ lỗi ADB
Trước đây, bạn chỉ có thể sử dụng ADB trên Chromebook khi ở chế độ nhà phát triển. Chế độ này yêu cầu bạn chạy powerwash (đặt lại) thiết bị và có thể làm giảm tính bảo mật. May mắn là kể từ Chrome 81, nhà phát triển có thể giữ thiết bị ở chế độ nhà phát triển và vẫn triển khai các ứng dụng mà họ phát triển ngay trong ChromeOS chỉ bằng một thao tác chuyển đổi. Cách thực hiện:
Trước tiên, hãy đảm bảo Chromebook không ở chế độ nhà phát triển. Sau đó, chuyển đến phần cài đặt và bật Linux (nếu bạn chưa bật trước đó).
Sau khi Linux có sẵn, hãy mở phần cài đặt Linux và bạn sẽ thấy một lựa chọn mới là "Phát triển ứng dụng Android", hãy mở lựa chọn đó.
Bật tuỳ chọn gỡ lỗi ADB và máy tính sẽ khởi động lại.
Khi máy tính khởi động lại, bạn sẽ thấy một thông báo cho biết có thể có những ứng dụng không được tải xuống từ cửa hàng ứng dụng trên thiết bị.
Giờ đây, bạn có thể dùng ADB để triển khai ứng dụng cho Chromebook, chạy các lệnh gỡ lỗi và tương tác trực tiếp với thiết bị.
Để đảm bảo ứng dụng Android của bạn hoạt động tốt trên nhiều thiết bị Chromebook và kiểu dáng hiện có, Google khuyên bạn nên kiểm thử ứng dụng trên các thiết bị sau:
- Chromebook chạy trên nền tảng ARM
- Chromebook dựa trên x86
- Một thiết bị có màn hình cảm ứng và một thiết bị không có màn hình cảm ứng
- Thiết bị có thể chuyển đổi; tức là thiết bị có thể thay đổi giữa máy tính xách tay và máy tính bảng
- Thiết bị có bút cảm ứng
Triển khai từ ChromeOS
Sau khi bật chế độ gỡ lỗi ADB, bạn có thể tải trực tiếp một ứng dụng Android lên thiết bị ChromeOS bằng Android Studio. Nếu có tệp APK, bạn có thể tải tệp đó bằng Terminal.
Triển khai bằng Android Studio
Sau khi thiết lập Android Studio và ADB như mô tả ở trên, bạn có thể chuyển trực tiếp các ứng dụng của mình vào vùng chứa Android của Chromebook từ Android Studio.
Chromebook sẽ xuất hiện dưới dạng một lựa chọn trong trình đơn thả xuống thiết bị:
Giờ đây, bạn có thể đẩy ứng dụng của mình như bất kỳ thiết bị Android nào khác! Hộp thoại uỷ quyền ADB sẽ xuất hiện vào lần đầu tiên bạn tìm cách đẩy đến một thiết bị mới. Sau khi bạn uỷ quyền, ứng dụng của bạn sẽ khởi chạy trong một cửa sổ mới.
Vậy là xong, giờ đây bạn có thể triển khai ứng dụng cho Chromebook, kiểm thử và gỡ lỗi mà không gặp phải rắc rối khi ở chế độ nhà phát triển.
Triển khai bằng Terminal
Cài đặt ADB nếu cần:
sudo apt install adb
Kết nối với thiết bị:
adb connect arc
Một cửa sổ bật lên uỷ quyền cho hoạt động gỡ lỗi qua USB sẽ xuất hiện vào lần đầu tiên bạn cố gắng triển khai cho thiết bị và bạn cần cho phép hoạt động này.
Cài đặt ứng dụng từ thiết bị đầu cuối:
adb install [path to your APK]
Triển khai từ một thiết bị khác
Nếu không thể sử dụng phương thức nêu trên và cần truyền ứng dụng từ một thiết bị khác, bạn có thể kết nối thiết bị đó với ADB bằng USB hoặc địa chỉ mạng.
Kết nối với ADB qua mạng
-
Đảm bảo bạn đã bật tính năng gỡ lỗi ADB.
Lấy địa chỉ IP của Chromebook:
-
Nhấp vào đồng hồ ở khu vực dưới cùng bên phải của màn hình.
-
Nhấp vào biểu tượng bánh răng.
-
Nhấp vào loại mạng bạn đang kết nối (Wi-Fi hoặc Dữ liệu di động), sau đó nhấp vào tên mạng.
-
Ghi lại địa chỉ IP.
Cách kết nối với Chromebook:
-
Quay lại máy phát triển và dùng ADB để kết nối với Chromebook bằng địa chỉ IP của Chromebook:
adb connect
-
Trên Chromebook, hãy nhấp vào Cho phép khi được nhắc xem bạn có muốn cho phép trình gỡ lỗi hay không. Phiên ADB của bạn đã được thiết lập.
Khắc phục sự cố gỡ lỗi ADB qua mạng
Đôi khi, thiết bị ADB cho biết thiết bị đang ở trạng thái ngoại tuyến mặc dù mọi thứ đã được kết nối đúng cách. Trong trường hợp này, hãy hoàn tất các bước sau để khắc phục vấn đề:
- Tắt chế độ gỡ lỗi ADB trong phần Tuỳ chọn cho nhà phát triển.
- Trong cửa sổ dòng lệnh, hãy chạy
adb kill-server. - Kích hoạt lại tuỳ chọn gỡ lỗi ADB.
- Trong cửa sổ dòng lệnh, hãy thử chạy
adb connect. - Nhấp vào Cho phép khi được nhắc xem bạn có muốn cho phép gỡ lỗi hay không. Phiên ADB của bạn đã được thiết lập.
Kết nối với ADB qua USB
Để truyền APK từ một thiết bị khác vào Chromebook qua USB, bạn phải khởi động ChromeOS ở chế độ nhà phát triển để có thể định cấu hình Chromebook và truyền ứng dụng từ máy chủ. Đây là phương pháp duy nhất hiện yêu cầu Chế độ nhà phát triển và chỉ hoạt động trên một số ít thiết bị. Do đó, bạn nên sử dụng ADB qua mạng thay vì qua USB. Nếu bạn vẫn muốn tiếp tục, hãy làm theo các bước sau để chuyển sang chế độ nhà phát triển.
- Đảm bảo bạn đã bật tính năng gỡ lỗi ADB.
- Xác định xem thiết bị của bạn có hỗ trợ gỡ lỗi qua USB hay không
- Nhấn tổ hợp phím
control+alt+tđể khởi động thiết bị đầu cuối ChromeOS. - Nhập
shellđể chuyển đến màn hình shell lệnh bash:crosh> shell chronos@localhost / $
- Nhập các lệnh sau để thiết lập thiết bị:
$ sudo crossystem dev_enable_udc=1 $ sudo reboot
- Sau khi khởi động lại, hãy mở lại cửa sổ dòng lệnh và chạy lệnh sau để bật ADB trên cổng USB của Chromebook:
$ sudo ectool usbpd
dr_swap
Hãy dùng lệnh này mỗi khi bạn ngắt kết nối rồi kết nối lại cáp USB. Để đảm bảo Chromebook đang ở chế độ UFP, bạn có thể chạy ectool usbpd .
- Cắm cáp USB vào cổng được hỗ trợ trên thiết bị
- Chạy
adb devicestừ các công cụ nền tảng Android SDK trên máy chủ lưu trữ để xem Chromebook của bạn có được liệt kê là thiết bị được ADB hỗ trợ hay không - Trên Chromebook, hãy nhấp vào Cho phép khi được nhắc xem bạn có muốn cho phép trình gỡ lỗi hay không. Phiên ADB của bạn đã được thiết lập.