- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Một trong các lý do khiến bạn thích android vì nó khá mở rộng tương thích với nhiều emulator, mặc định bộ lập trình android SDK có tích hợp sẵn công cụ emulator giúp bạn debug ứng dụng một cách dễ dàng. Nếu website bạn có thể dùng tới 2-3 trình duyệt để xem thì android app chạy trên hệ điều android cung cấp bởi google và nó có thể cài trên nhiều giả lập khác nhau.
Lý do sử dụng AVD (Android Virtual Device) khá chậm chạp nên mình quyết định viết bài hôm nay để hướng dẫn bạn cách debug phần mềm/game android trên công cụ giả lập VMWare.
Debug android trên AVD
Bạn có thể tạo nhiều android emulator trên AVD, tại giao diện eclipse chúng ta nhấn vào Android Virtual Devices Manager.
Tại đây, để thêm emulator mới, nhấn vào nút Create. Tiếp đó, điền tên thiết bị giả lập, google cung cấp rất nhiều loại thiết bị điện thoại khác nhau bạn có thể dễ dàng chọn trong danh sách ‘Device’ và khai báo một vài cấu hình khác như dung lượng thẻ nhớ, RAM, giao diện trình giả lập.. Cuối cùng nhấn Ok để Hoàn tất.
Lưu ý: Trước khi chạy ứng dụng bạn có thể mở một avd sẵn trước đó, khi ứng dụng android build hoàn tất sẽ hiện prompt cho bạn chọn thiết bị avd emulator để chạy vào đó. Hoặc cũng có thể nhấn nút Run trực tiếp trên eclipse, nếu chưa phát hiện bất kỳ một trình giả lập nào được chạy và đã gắn vào lệnh adb
thì eclipse tự động mở mặc định avd trong số các emulator bạn đã tạo trong AVD. Và lệnh adb
sẽ làm việc với emulator đó.
Để xem các emulator device đang kích hoạt hiện tại, bạn sử dụng lệnh.
adb devices ->ie: list of devices attached emulator-5554 device
Có 2 cách chạy một avd, như ở trên mình có nói bạn mở trình quản lý AVD và chọn một emulator muốn khởi động sau đó nhấn vào nút Start... Một khi emulator chạy hoàn tất và sẵn sàng debug ứng dụng thì lúc này bạn có thể sử dụng các lệnh adb để tương tác với emulator này. Lưu ý: mặc định adb sẽ làm việc với emulator hiện tại.
Cách khác chúng ta chạy emulator trong AVD bằng lệnh adb
. Gõ 2 lệnh sau vào cmd trước khi có thể cài đặt ứng dụng android.
adb kill-server adb start-server
Nếu như chưa avd emulator nào được mở, lệnh trên sẽ chạy một emulator mới hoặc nếu avd đang chạy và bạn muốn khởi động lại vì lý do nào đó như thiết bị giả lập đang ở chế độ treo, không hoạt động thì sử dụng lệnh trên.
Ngoài ra bạn có thể chạy lệnh adb chỉ định vào emulator trong trường hợp có nhiều android emulator đang được sử dụng. Sử dụng lệnh sau đây, ví dụ cài ứng dụng apk vào emulator.
//execute a command targeting that device adb -s emulator-5554 install jsHybugger.apk
Gõ lệnh adb devices
, nếu như không biết tên thiết bị. Trong đó: 5554 là serial number của thiết bị. Lưu ý: chỉ số này bạn sẽ nhìn thấy trên tiêu đề cửa sổ ví dụ: “5554:MyAVD” nghĩa là thiết bị có tên: emulator-5554
Tham khảo các tham số khác:
//To target the only emulator, use: adb -e //To target the only device attached, use adb -d
Debug android trên VMWare
Đầu tiên máy tính của bạn cần có phần mềm VMWare, tải và cài đặt vmware tại đây.
VMware là công cụ giả lập hệ điều toàn diện, có hỗ trợ rất nhiều các hệ điều hành thông dụng hiện nay cả trên máy tính cá nhân lẫn thiết bị di động smartphone, tablet..
Tiếp theo, chúng ta chuẩn bị bản android cài đặt trên android, xem hướng dẫn cài đặt android trên vmware.
Sau khi cài đặt hoàn tất android trên công cụ VMware. Giả sử mình cài bản Android Kitkat, chúng ta khởi động android lên, trông như thế này.
VMWare sử dụng Network adapter riêng, bạn kích hoạt một trong hai VMware Network Adapter. Android dựa vào kết nối mạng NAT này để kết nối giữa android trên VMWare và lệnh ‘adb’ thông qua đây. Kiểm tra đảm bảo chắc chắn vmware network adapter có hoạt động không bạn gõ lệnh này để xem IP của nó. Tại giao diện CMD, gõ:
ipconfig
Ví dụ trên mình kích hoạt VMware Network Adapter VMnet8.
Bước tiếp theo, trên vmware bạn truy cập Virtual Machine Settings mở hộp thoại thiết lập cài đặt bằng cách nhấn vào biểu tượng 2 máy tính bên dưới, chọn settings..
Chọn dạng kết nối “NAT: Used to share the host’s IP address” trong mục “Network Adapter”, hoặc chỉ định vmware virtual network check vào “Custom: Specific virtual network” và chọn VMnet8 (NAT), vì trong ví dụ này mình có kích hoạt sử dụng “VMware Network Adapter VMnet8”.
adb kết nối vào emulator thông qua IP của thiết bị giả lập, với vmware sau khi cấu hình network adapter như trên, bạn tiến hành mở ứng dụng Terminal Emulator trong android đang chạy trên vmware.
Hoặc mở chế độ console terminal android bằng cách nhấn tổ hợp phím ALT+F7. Lưu ý: nhớ là để chuột đang hoạt động trong android emulator (khi click chuột vào vmware). Xem thêm các phím tắt sử dụng cho android tại đây.
Ứng dụng này giống với cmd của window, android terminal sử dụng lệnh linux, bạn gõ lệnh netcfg
để lấy IP của thiết bị.
Nếu bạn nhìn thấy địa chỉ ip thuộc mạng modem của nhà bạn đang dùng thường có dạng chung của VNPT:
192.168.x.x
thì đó là IP của vmware cũng là IP của thiết bị android emulator.
Chú ý: mặc định IP này được bật lên sẵn, thể hiện bởi trạng thái “UP”, nếu IP bị disable thì bạn sẽ kích hoạt tên network bằng lệnh:
netcfg <network-name> up
Ví dụ, ở hình trên tên network có IP 192.168.74.128 là ‘eth0’. Bạn chạy lệnh sau:
netcfg eth0 up
Đôi khi lệnh sẽ yêu cầu quyền truy cập cao nhất root, nếu không thực hiện được bạn ban quyền root cao nhất sử dụng lệnh linux:
su
Một số lệnh linux khác cấu hình mạng sử dụng cho android:
//-chạy android ở chế độ debug mode, chế độ sử dụng command line. netcfg eth1 down #tắt network interface netcfg eth1 dhcp #enable dhcp netcfg eth1 up #run this if dhcp faile (bật lại network interface đó)
Mình nói thêm IP trong emulator đặt ở chế độ dhcp cho phép bạn sử dụng nhiều android emulator khác nhau trên vmware, và có thể chỉ định kết nối lệnh adb tới những emulator đã thiết lập kết nối adb -s emulator-5554
.
Cấu trúc IP 192.168.74.xxx bạn có thể sửa trong cài đặt Network Adapter. Chuột phải vào VMWare Network Adapter VMnet8 -> chọn Properties. Chọn tiếp Internet Protocol Version 4 (TCP/IPv4).
Khi bạn mở thêm android emulator và kiểm tra lại IP sẽ thấy IP thay đổi khác. Bạn có thể kích hoạt dhcp để phân phối IP cho các emulator đảm bảo các IP trên emulators không trùng nhau, sử dụng lệnh sau cho tên network. VD:
dhcpcd eth0
Thiết lập lại dns nếu cần:
setprop net.dns1 8.8.8.8
Sau đó bạn cần kiểm tra lại IP, gõ lệnh netcfg
để xem địa chỉ IP.
Để kết nối adb vào emulator trên vmware chúng ta đơn giản chúng ta sử dụng lệnh sau đây, lấy IP ở trên làm ví dụ:
adb connect 192.168.74.128
Nếu thành công bạn nhận được kết quả như hình dưới.
Ok, như vậy là xong. Giờ đây bạn có thể sẵn sàng sử dụng các lệnh adb cho emulator rồi đấy.
Thử nghiệm, bạn mở dự án android mẫu trên eclipse và nhấn vào nút Run. Lúc này bạn sẽ thấy xuất hiện cửa sổ chọn danh sách các emulators đang hoạt động, chọn vào một emulator rồi nhấn OK để bắt đầu debug ứng dụng vào emulator đó.
Ngay lập tức ứng dụng được mở trên emulator, Ứng dụng được cài đặt vào trong emulator sau đó khởi chạy và kết quả demo hello world! của android xuất hiện:
Một số lỗi
adb connect …Unable to connect to xx.xx.xx.xx:5555
Cấu hình đúng network chế độ (bridge) và PC-net Fast III.
Nếu bạn cài android trên VirtualBox, vào settings->network chọn kết nối NAT.
adapter: PCnet-FAST III
Tiếp tục nhấn “port forward”. Khai báo thông số như sau:
Name: ADB Port rule
Protocol: TCP
Host Port: 5555
Guest Port: 5555
Và đừng quên kích hoạt “Virtualbox adapter” cũng giống như bạn làm với VMWare có network adapter riêng.
Tại phần mềm Virtualbox đang chạy android, bạn thiết lập settings->network.
Chọn ‘host-only adapter’.
Name: VirtualBox Host-Only Ethernet Adapter
Chú ý: Như vậy chúng ta có 2 loại kết nối từ virtual machine (ie: vmware, virtualbox,..) sử dụng network cùng máy tính (Host-only) hoặc network adapter (NAT). Trong trường hợp với vmware được cài đặt mặc định 2 adapters sau sẽ tương ứng cho 2 loại kết nối:
VMWare Network Adapter VMnet1 (Host-only)
VMWare Network Adapter VMnet8 (NAT)
Một số bản android khi cài vào vmware không xuất hiện eth0 thì vào emulator android tại C:\Users\Admin\Documents\Virtual Machines\; edit file .vmx tìm và đổi thành:
ethernet0.virtualDev = "vlance"
Trong bài sau mình sẽ hướng dẫn cách chạy/debug ứng dụng android trực tiếp trên thiết bị di động thật thông qua kết nối capble USB hoặc wifi.
Chúc bạn thành công.
Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng có thể nhận được sự trợ giúp trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype