- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Trong lần trước mình đã có bài hướng dẫn các các bạn giả lập android trên máy tính sử dụng máy ảo VMware và Virtualbox. Bạn đang phát triển ứng dụng cho thiết bị android và sau khi chạy thành công app trên emulator, bạn muốn test trên thiết bị thật thì có rất nhiều cách. Build ứng dụng android trên Eclipse sẽ sinh ra file .apk chỉ việc copy file này vào thẻ nhé của thiết bị di động và cài đặt là được.
Bạn có thể copy file sử dụng bluetooth hoặc qua USB cable. Như vậy mỗi lần debug ứng dụng chạy trên thiết bị chúng ta phải thông qua 2 bước: copy vào bộ nhớ của thiết bị (ie: thẻ nhớ) và sau đó cài đặt.
Khá mất thời gian, vậy còn có cách nào khác không? Có đấy, sử dụng kết nối không dây cùng chung một mạng wifi bạn hoàn toàn có thể kết nối lệnh adb trực tiếp trên thiết bị android thật. Ứng dụng được cài đặt trực tiếp trên điện thoại tự động sau khi nhấn nút run trên công cụ Eclipse hay bất kể IDE android nào. Bỏ qua bước copy apk nữa nhé.
Cách thực hiện kết nối bằng adb sẽ phức tạp đôi chút so với cách truyền thống là sử dụng cáp USB để kết nối vào máy tính. Với trường hợp này, khi thiết bị android của bạn chỉ có duy nhất một cổng kết nối USB và bạn đang kết nối cổng này trên máy tính vào thiết bị USB khác. Ví dụ: chuột quang hoặc flash drive.
Trong bài này bạn có thêm một cách để đó là sử dụng ADB thông qua WiFi (ADB over WiFi).
Yêu cầu
- Máy tính có kết nối Wifi và một điện thoại android đã được rooted máy.
- Trên thiết bị ban quyền sử dụng cao nhất (Superuser) và cài đặt phần mềm giả lập terminal.
Trước hết, bạn kết nối thiết bị android và máy tính vào mạng wifi nhà bạn, sau đó mở ứng dụng Android terminal trên điện thoại lên và gõ: netcfg
để tìm địa chỉ IP của thiết bị.
*** Android on-device console *** netcfg
Đây là lệnh sử dụng trong linux để xác định địa chỉ IP, của máy bạn nhìn thấy tại giao diện terminal có dạng:
sit0 DOWN 0.0.0.0 0.0.0.0 0x000 00080 eth0 UP 192.168.1.129 255.255.2555.0 0x000 01043
Như ví dụ trên, IP của máy android là 192.168.1.129 (subnet mask: 255.255.255.0)
Các thiết bị có kết nối vào wifi có thể ping được cho nhau, thực tế tại phần mềm cmd của window bạn thử gõ ping IP của thiết bị nếu kết nối thông thì bạn mới có thể thiết lập android này thông qua wifi bằng lệnh adb.
*** PC console *** ping x.x.x.x
Kích hoạt adb trên thiết bị khác có kết nối wifi
Trên thiết bị android, tại phần mềm terminal, bạn gõ tiếp các dòng lệnh sau:
*** Android on-device console *** setprop service.adb.tcp.port 5555 stop adbd && start adbd
Bây giờ bạn chuyển sang cmd trên máy tính, gõ lệnh kết nối adb tới thiết bị android thông qua IP của nó được rồi đấy.
*** PC console *** adb connect x.x.x.x
Lưu ý:
- Đảm bảo Wifi hoạt động khi thiết bị ở chế độ sleep, bằng cách kích hoạt tính năng “Keep Wi-Fi on during sleep” trong Wi-Fi / Advanced
Ngoài ra, nếu bạn không muốn sử dụng lệnh kích hoạt adb wifi thông qua terminal trên android, nếu thấy rắc rối với bạn thì có thể cài ứng dụng WiFi ADB – Debug Over Air.
nếu bạn đã gõ lệnh kích hoạt theo hướng dẫn ở trên, thì khi chạy phần mềm Wifi ADB sẽ thấy nó đang ở chế độ bật tức là bạn có thể sử dụng nút bật/tắt tính năng Wifi ADB ngay trên phần mềm mà không cần cài đặt android terminal.
Trường hợp, bạn bật lên mà không được có thông báo bạn không có quyền. Lúc này bạn kiểm tra lại điện thoại đã mở root chưa. Vì tính năng wifi db thuộc hệ thống android yêu cầu phần mềm có quyền truy cập administrator, bạn phải rooted android rồi.
Nhắc lại: Nên nhớ adb sau khi kết nối vào mobile lúc này lệnh android console luôn làm việc với thiết bị, bạn có thể sử dụng một số tiện ích như hiển thị logs diễn ra trên điện thoại đang debug ứng dụng.
Logs
*** PC console *** adb -s x.x.x.x:5555 logcat
Hoặc tìm kiếm log mong muốn:
*** PC console *** adb -s x.x.x.x:5555 logcat |grep -vE "/dalvik"
(Đừng quên thay x.x.x.x với IP của android mobile)
Kernel Logs
Thậm trí mở android terminal của điện thoại đó trên chính cmd. Ví dụ mình thử xem IP của android:
Tại android shell mở trên cmd, nhập lệnh in kernel logs ra màn hình:
*** Android console inside PC console *** su cat /proc/kmsg |grep -vE "cpu|CPU|bq27541|temp="
Bạn sẽ cảm nhân ngay lập tức, khi ban quyền Superuser cho android bởi lệnh su
. Trên thiết bị android sẽ hiển thị thông báo thiết lập quyền Superuser thành công.
root has been granted Superuser permissions.
Bạn có thể download các file có trong android vào máy tính thông qua lệnh adb pull
. VD:
Ví dụ này, file apache2.2.1.apk sẽ được tải về thư mục C:/Users/hoangweb
Còn rất nhiều lệnh android hữu ích khác, bạn tự tìm hiểu thêm.
Chúc bạn thành công! tác giả: hoangweb.com
Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype