Bài tập 2: Thao tác với Android Virtual Device và DDMS

[polldaddy poll=9764234]

Tiếp nối bài tập số 1 , Mục đích của bài tập này sẽ giúp các bạn thao tác được với AVD (tạo, sửa, xóa, cấu hình…) và cách sử dụng DDMS cho việc nhắn tin, gọi điện thoại, sử dụng File Explorer ( Đưa tập tin từ máy tính vào máy ảo, và lấy tập tin từ máy ảo ra máy tính….). Biết được cách kết nối một số thiết bị Android thiệt với DDMS, cũng như cách thức debug.

– Tại sao sử dụng AVD?

+ Có nhiều lý do để sử dụng AVD, còn theo Tôi thì đơn giản là nó thay thế cho thiệt bị thật (Android Emulator) nên cho dù bạn không có chiếc Alô Android nào thì vẫn lập trình ầm ầm như thường. Mọi sự tương tác trên Emulator cũng chính là tương tác trên thiết bị thật

+ AVD – DDMS hỗ trợ giả lập location base service với định dạng KML nên dễ dàng cho việc lập trình LBS

+ Chỉ có một vài hạn chế của Emulator : Khó hỗ trợ Camera, không hỗ trợ thiết bị cảm ứng. Nhưng bạn yên tâm là trên mạng cũng đã hỗ trợ thư viện tương tác cảm ứng trong Emulator  (hỗ trợ accelerometer, compass, và temperature sensors)

1) Cách tạo Android emulator:

– Vào menu Windows/ chọn Android Virtual Device Manager hoặc click vào biểu tưởng máy ảo trên thanh Toolbar:

0_AVD

– Cửa sổ Android Virtual Device Manager sẽ hiển thị ra như bên dưới:

0_AVD2

– Để tạo một Android Emulator : click nút New (khoanh vùng màu đỏ):

0_AVD_New

– Ở màn hình bên trên, ta thiết lập các thông số: Tên máy ảo, độ phân giải, API, bộ nhớ trong, bộ nhớ ngoài (SD Card) rồi nhấn nút OK. Muốn lần tiếp theo khởi động máy ảo nhanh thì ta checked vào mục Snapshot

0_AVD_New_ok

– Như bạn thấy máy ảo avdnew đã được tạo ra, bạn chú ý là khi một máy ảo được tạo ra thì nó sẽ được lưu trữ vào user của máy tính đang hoạt động, ở hình trên thì lưu trong “c:\Users\drthanh\.android\avd“. Máy của bạn cài đặt với user nào thì bạn vào đúng chỗ mà xem cấu trúc bên trong:

0_AVD_New_folder

– Ở đây bạn chú ý là nếu bạn cấp dung lượng cho SD Card tại màn hình tạo máy ảo bao nhiêu thì tập tin sdcard.img sẽ có dung lượng bấy nhiêu trong này (do đó bạn phải cẩn trọng khi tạo SD Card đối với máy tính có dung lượng ổ cứng khiêm tốn)

– tương tự bạn nhìn thấy tập tin snapshots.img, hiện giờ bạn chỉ thấy có 250kb, nhưng  nếu như bạn khởi động lần đầu tiên và vào đây quan sát thì dung lượng của nó sẽ tăng lên rất lớn, mục đích để lưu trữ lại toàn bộ thông số để lần khởi chạy thứ 2 cho lẹ

2) Chạy Android emulator:

– Từ màn hình Android Virtual Device Manager, ta chọn tên máy ảo cần chạy rồi nhấn nút Start:

0_AVD_New_Start

  – Bạn chờ khoảng một thời gian vài phút (hoặc lâu hơn tùy vào khả năng của máy). Tùy vào cấu hình mà bạn chọn (API, độ phân giải…), Android Emulator sẽ xuất  hiện như bên dưới:

0_AVD_OK_Start

– Khi máy ảo ở trên khởi động xong, bạn vào thư mục trong ổ C: nơi mà lưu trữ máy ảo, bạn quan sát xem có những thư mục và tập tin mới nào được tạo ra. Sau đó bạn tắt máy ảo này đi, tiếp tục quan sát bạn sẽ thấy tập tin Snapshots.img mà Tôi đề cập ở trên sẽ có dung lượng rất lớn:

0_AVD_snapshots

3) cách sử dụng Android Emulator:

– Bạn để ý là mỗi một máy ảo được khởi động nó sẽ đi với một port nào đó, ví dụ trong trường hợp ở trên là port 5554 (xem ở tiêu đề của cửa sổ). Bạn chú ý là port này chính là đại diện cho số điện thoại của máy ảo đó. Ta sẽ dựa vào port này để thao tác : Gửi tin nhắn, gọi điện thoại…. trong của sổ DDMS.

– Các phím chức năng : (không quan trọng lắm nên ở đây Tôi không liệt kê ra, các bạn tự mò). Ở đây Tôi chỉ nói một phím chức năng mà Tôi cho là đáng lưu tâm, đó là phím chức năng cho phép quay ngang màn hình điện thoại. Bởi vì người sử dụng điện thoại Smart Phone thường có thói quen quay ngang, quay dọc điện thoại để thao tác cái gì đó. Ta phải lập trình để hỗ trợ cho xem đứng và ngang đối với một ứng dụng cụ thể nào đó.

+ Bạn nhấn tổ hợp phím Ctrl + F11 để xoay ngang (bấm lại để trở về như cũ):

0_AVD_lanscape

 – Cách gửi tin nhắn – gọi điện thoại trong máy ảo:

+ Cách 1: Bạn tạo thêm một máy ảo Android khác, khi một máy thứ 2 được khởi chạy thì thông thường port của nó sẽ là 5556, Như bên trên Tôi đã nói Port này là đại diện cho số điện thoại. Máy tính của bạn hiện tại sẽ có 2 máy ảo Android (Bạn tưởng tượng đó là 2 cái điện thoại thật mà bạn đang cầm trên tay đi). Do đó cách mà bạn thao tác với điện thoại thật như thế nào thì với Emulator nó sẽ y xì như vậy.

+ Cách 2: Trên thanh công cụ bạn quan sát thấy nút DDMS, nhấn vào nó (chú ý là bạn phải ít nhất đang chạy 1 máy ảo android)

Thông thường thì trên thanh công cụ sẽ có DDMS, nhưng nếu như không thấy thì bạn vào menu Windows/ chọn Open Perspective/ DDMS , xem hình dưới:

0_AVD_DDMS

– sau khi chọn DDMS, bạn vào tab Emulator Control như hình bên dưới:

0_AVD_emulator_control

– Ở màn hình trên:

+ Mục Incoming Number Tôi nhập là 5554 (port này chính là số điện thoại của máy ảo)

+ Tôi chọn SMS và nhập vào “Hell0 … Ty Map”

+ Nhấn nút Send

–>Bạn quan sát máy Ảo có port 5554 sẽ nhận được tin nhắn này:

0_AVD_sms

Cách sử dụng Profile Explorer:

+ Trong màn hình DDMS, bạn chọn tab Profile Explorer: Trong bài tập này bạn chỉ cần tập cách thả 1 tập tin từ máy tính vào SD Card, và kéo 1 tập tin từ SD Card ra máy tính (Chúng ta còn phải làm việc với nó rất nhiều lần ở các bài tập kế tiếp):

0_AVD_profile_Explorer

– bạn quan sát thư mục mnt/ sdcard . Chú ý là có một vài nơi cùng tên sdcard, nhưng bạn phải vào mnt.

+ Để lấy 1 tập tin từ SD Card ra thì bạn chọn tập tin đó rồi nhấn vào biểu tượng ở đĩa mềm ở bên trên (Tôi tô màu vàng)

+Để đưa một tập tin từ Máy tính vào SD card bạn nhấn vào biểu tượng điện thoại (kế bên biểu tượng đĩa mềm), chọn tập tin cần đưa, Hoặc bạn kéo thả trực tiếp một tập tin nào đó vào màn hình này luôn. cả 2 cách đều như nhau.

4) Cách kết nối với Thiết Bị Android Thật

– Để làm được điều này thì bạn phải am hiểu về Driver cho mỗi Model điện  thoại. Sau khi đã cài Driver đầy đủ:

Đối với Điện thoại Android sử dụng API 4.0 trở lên:

+ Vào Settings

+ Chọn Developer Options

+ Checked vào USB debugging.

0_USB_debugging

– Bạn xem hình bên dưới (ở đây Tôi kết nối điện thoại SAM SUNG SII của Tối tới DDMS):

0_SAMSUNG_S2

–  Bạn thao tác bình thường: Thêm tập tin vào Điện thoại thật, lấy tập tin ra…. Khi chạy chương trình Android ta sẽ chọn Điện thoại Thật nếu như bạn muốn chạy trên thiết bị thật. Eclipse cho phép cấu hình lựa chọn các loại Máy ảo, máy thật khi chạy ứng dụng.

**** Như vậy Tôi đã hướng dẫn các bạn xong phần thao tác với AVD, trong bài tập kế tiếp Tôi muốn bạn hiểu được cách thức mà một ứng dụng Android khi triển khai nó đi theo đường nào:

 – Ví dụ:

+ Dalvik Virtual Machine là gì? nó có tác dụng gì trong ứng dụng?

+ Biên dịch như thế nào?

+ Biên dịch xong thì làm gì?

+ Cách thức ứng dụng upload vào thiết bị

+ Cách thực ứng dụng được cài đặt vào thiết bị

+ Chạy ứng dụng như thế nào trong thiết bị

+ Làm sao tháo gỡ ứng dụng ra khỏi thiết bị

+ Làm sao kiểm tra có bao nhiêu ứng dụng đang chạy trong điện thoại.

Bài tập này Tôi hi vọng các bạn phải thao tác thật nhuần nhuyễn để khi vào sâu bên trong để lập trình thì nó giúp ích cho các bạn rất nhiều.

Chúc các bạn thành công.

53 thoughts on “Bài tập 2: Thao tác với Android Virtual Device và DDMS”

  1. Pingback: microprocessvn
  2. Thưa thầy, thầy đã từng đổi đường dẫn “c:\Users\drthanh\.android\avd“ sang ổ D:\ chẳng hạn chưa ạ, trường hợp ổ c:\ là ổ SSD mình không nên lưu DATA trên đây ạ?
    Cảm ơn thầy!

  3. Bài của thầy hay quá. Thầy có thể dùng thêm gói /Intel x86 Emulator Accelerator (HAXM) và /Intel x86 Atom System Image trong 1 API để tăng tốc khả năng chạy Andoid Virtual Devices cho máy tính ạ
    http://software.intel.com/en-us/android/articles/speeding-up-the-android-emulator-on-intel-architecture
    http://www.infinum.co/the-capsized-eight/articles/is-your-android-emulator-just-too-slow

  4. Cho em hỏi, khi mình thao tác DDMS để nhắn tin vào máy Ảo mà muốn máy Ảo trả lời lại thì phải làm như thế nào ạ?

  5. Em cám ơn thầy, em thấy loạt bài thật tuyệt. Ở bài 2 này em bị vướng chỗ này:
    thư mục sdcard trong mnt của em không có các thư mục con như thầy. khi em kéo file vào sdcard này thì cũng không được. Còn sdcard trong storage thì khi kéo file (.txt) vào có thấy nó xuất hiện trong màn hình. Em xài Android 4.4.

  6. thầy ơi em cài đặt xong vào Windows/ chọn Android Virtual Device Manager ấn “new” Thiết lập thông số xong thì ko ấn “Ok” được mặc dù nút ok vẫn sáng

  7. Thưa thày !
    Em dùng Snapshot nhưng bật ADV theo cách là chuột phải vào Project -> Run As -> Android Application!
    Lúc đầu chưa khởi động dung lượng file snapshorts là 25 kB.
    Bật AVD lần 1 thì dung lượng thành 440 MB.
    Bật AVD lần 2 thì dung lượng thành 880 MB.
    Trong khi cả file AVD của e sau lần 2 bật AVD chỉ có 900 MB. Thưa thày, tại sao Snapshort lại ngốn nhiều dung lượng như vậy ạ ?

  8. Xin hỏi:
    Máy bàn của Tôi là Petium 4 có tốc độ 2.26 GHz Ram 2.5 GB. khi chạy bài tập Hello World ! vẫn không thấy hiện ra, tại sao?

  9. Lần đầu tiên em test DDMS thì ok. Nhưng sau này mở lên đều bị thông báo lỗi
    “Failed to parse the output of ‘adb version’ “.
    Thầy có thể chỉ cho em cách fix không ạ.
    Em mày mò đủ thứ cách trên mạng nhưng vẫn chưa ra

  10. Thầy cho em hỏi, em đang debug được với thiết bị bình thường, bỗng nhiên eclipse không thể nhận thiết bị để debug nữa, vậy có cách nào giải quyết ko ạ? Em đã gỡ driver ra cài lại nhưng không được. Cảm ơn thầy nhiều!!!

Leave a Reply