Trang 6 trên tổng số 6 Đầu tiênĐầu tiên ... 456
Từ 51 tới 52 trên tổng số 52 kết quả

Đề tài: Hướng dẫn lập trình Android với Android x86 trên Virtualbox [Tutorial dành cho máy cấu hình yếu]

  1. #51
    Ngày gia nhập
    05 2013
    Bài viết
    1

    Mặc định Hướng dẫn lập trình Android với Android x86 trên Virtualbox [Tutorial dành cho máy cấu hình yếu]

    Các bạn cho mình hỏi, mình đang làm ứng dụng nhắn tin, để test trên máy ảo thì máy ảo phải nhận được tin nhắn. Android emulator thì dùng telnet để gửi sms được nhưng genymotion thì nó chỉ có ở bản trả phí. bạn nào có cách nào để máy ảo nhận được tin nhắn không ạ. Thanks

  2. #52
    Ngày gia nhập
    07 2016
    Nơi ở
    Hà Nội
    Bài viết
    218

    Trích dẫn Nguyên bản được gửi bởi Wazi Armstrong Xem bài viết
    Update cách làm mì ăn liền hơn.
    Đây là bản Android đã cài đặt trên máy mình với đủ setting. Bạn import vào VirtualBox (double click) là chạy được ngay
    https://www.sugarsync.com/pf/D6597612_86853476_687578

    Tạm thời chưa có link mediafire nhé

    Đã update cách config với NAT, dễ dàng và hiệu quả hơn
    ================================================== =======================

    Chào các bạn!

    Hôm nay Wazi sẽ hướng dẫn các bạn cài đặt android x86 (bản android chạy trên nền tảng x86) trên VirtualBox để lập trình dành cho các máy có cấu hình yếu

    Why androidx86?

    Như các bạn đã biết, đi kèm với bộ công cụ phát triển Android (SDK) là Android Emulator để giả lập một thiết bị android. Phần mềm này thường khởi động khá là chậm và khi chạy tốn khá nhiều tài nguyên + delay, cảm giác khá là nặng nề. Nguyên nhân điều này là do nó giả lập một bộ xử lí ARM trên CPU và chạy Android OS thông qua đó thay vì tương tác trực tiếp giữa CPU với Android OS.
    Và Android x86 đã giải quyết được vấn đề trên bằng việc sử dụng kiến trúc x86. (Văn chương Wazi hơi chán nói được vậy thôi )

    Action

    Step 1: Download

    Đầu tiên lúc nào cũng là download. Bạn vào trang sau: android-x86.org/download

    Wazi khuyến khích các bạn sử dụng bản android-x86-2.x-RC1-eeepc.iso, 2.x là 2.2 hoặc 2.3 (Đơn giản là vì Wazi đã test nhiều lần, và nó cũng là bản android phổ biến hiện nay)
    Tiếp theo, bạn download VirtualBox (cái này thì tự google nhé)
    Download xong nhảy sang step2

    Step 2: Setup

    1. Cài đặt VirtualBox (dễ như ăn kẹo nên thôi ko có SS nhé)
    2. Cài đặt Androidx86:

    2.a Tạo mới (Bạn nào đã quen thuộc với Virtualbox có thể nhảy sang qua 2.b)

    - Đầu tiên bạn khởi động Virtualbox và chọn New để tạo mới. Điền tên cho nó. Chọn OS là Linux, version là Linux 2.6 (cái version này cũng ko quan trọng lắm thì phải) rồi Next.
    Đính kèm 8881

    - Dung lượng RAM cơ bản để 256MB -> Next
    - Đến phần Virtual Hard Disk bạn có thể chọn Create New hoặc sử dụng một đĩa ảo sẵn có. Ở đây Wazi giả định là tạo mới. -> Next
    - Cửa sổ Virtual Hard Disk Creation Wizard hiện ra, chọn VDI -> Next
    - Chọn Fixed Size -> Next. Điền dung lượng đĩa ảo này (2GB là đủ) và nơi lưu trữ nó bằng cách bấm vào hình folder ở khung Location (trong trường hợp bạn không muốn lưu nó ở vị trí mặc định). Xong bấm Next-> Create và chờ cho nó tạo đĩa
    Đính kèm 8884

    - Bấm Create lần nữa để nó hoàn tất việc tạo máy ảo này.
    - Sau khi tạo xong máy ảo, vào Setting -> Storage->Ở phần IDE Controller bấm vào hình cái đĩa có dấu cộng -> Hộp thoại hiện ra -> Chọn Choose Disk rồi Browse đến cái file Androidx86… .iso vừa mới download ở trên.
    Đính kèm 8890

    - Qua bước 2.b

    2.b Cài đặt Android x86

    - Khởi động máy ảo vừa tạo bằng cách bấm Start. Menu Boot hiện ra chọn Install android x86 to hard disk
    Đính kèm 8882

    - Tiếp theo chọn Create/Modify Partition
    - Sử dụng các phím mũi tên chọn New -> Primary -> Điền size vào (thường nó đã điền sẵn cho maximum size rồi) -> Enter
    - Chọn Bootable (Sau khi chọn thì cột Flags có chữ Boot) sau đó dùng mũi tên (trái và phải) di chuyển đến Write -> Enter. Gõ “yes” vào để xác nhận
    Đính kèm 8885

    - Chờ nó write xong thì di chuyển mũi tên đến chữ Quit và Enter
    - Hộp thoại Choose Partition hiện ra, chọn partition vừa tạo (sda1). Nó hỏi format thì chọn ext3 rồi OK
    - Mấy cái sau OK hết (install GRUB, /system directory)
    - Chờ nó cài xong thì chọn Create Fake SD Card, điền size tùy thích (khoảng 64MB chẳng hạn)
    - Xong Reboot và Tắt luôn cái máy ảo đi (Mục đích là dừng nó lại để rút cái đĩa ISO ra)
    - Vào Setting -> Storage -> Chọn đĩa ISO lúc nãy mount vào, nhấn dấu trừ để remove nó ra.
    - Vẫn trong Setting, vào Network Chọn Adapter1 thiết lập như sau
    Đính kèm 8888

    Có thể chọn mục Attach to là Host Only Adapter hoặc Brigde Adapter đều được, nhưng Brigde yêu cầu bạn phải có 1 DHCP server để cấp IP cho cái máy ảo này (đại khái là bạn phải đang nối internet, đổi lại là với lựa chọn này bạn sẽ vào được internet trong androidx86)
    - Xong OK và khởi động vào Androidx86 vừa cài đặt.

    2.c Sử dụng

    - Bấm Ctrl (bên phải) + I để chọn chức năng Mouse Integration (để sử dụng chuột trong máy ảo)
    - Trong khi bạn bấm chuột vào màn hình lần đầu sử dụng Virtual Box sẽ có một số thông báo. Cứ OK + Don’t Show Again (sau vọc dần biết hết mà)
    - Để thoát chuột khỏi màn hình bấm Ctrl (bên phải) (Tiện đây nói thêm, phím Ctrl phải mặc định là phím chức năng của máy ảo, các chức năng liên quan đều kết hợp với phím này)
    - Right Ctrl + C: chuyển qua chế độ Scale.


    Step 3: Kết nối với máy ảo để lập trình

    Các bạn xem update bên dưới cuối bài viết để có được những lựa chọn cách làm dễ dàng hơn
    - Trong khi đang dùng máy ảo, nhấn Left Alt +F1 để chuyển sang chế độ console (Left Alt + F7 để trở về màn hình bình thường)
    - Gõ lệnh netcfg để tìm IP của máy ảo
    Đính kèm 8887

    - IP của nó trong trường hợp này là (eth0) 192.168.1.33
    - Tiếp theo là kết nối với máy ảo bằng adb tool trong bộ SDK của Android
    - Mở cmd trong Windows, vào thư mục %ANDROID_HOME%\android-sdk\platform-tools trong đó %ANDROID_HOME% là thư mục cài Android SDK (Ví dụ: D:\Program Files\Android\android-sdk\platform-tools) gõ
    Code:
    adb connect IP
    trong đó IP là ip máy ảo vừa lấy lúc nãy. Sau khi thấy thông báo connected to… là bạn đã connect thành công.
    - Để test, bật Eclipse lên và Run thử
    Đính kèm 8891

    - Đến đây coi như bạn đã thành công rồi!

    Step 4: Nâng cao: Chỉnh độ phân giải cho máy ảo androidx86

    - Như các bạn thấy trong hình trên máy ảo android của Wazi có tỉ lệ màn hình trông giống cái điện thoại chút (Portrait) trong khi của các bạn khi cài ra lại vuông vuông (4:3) chẳng giống ai .
    - Cách chính như sau (Đã biết dung vi là một lợi thế)
    - Trước tiên là set custom resolution cho VirtualBox. Mở cmd tìm đến thư mục cài VirtualBox (VD: D:\Program Files\Oracle\VirtualBox) rồi điền vào câu lệnh dạng sau

    Code:
    VBoxManage setextradata "Androidx86" "CustomVideoMode1" "640x960x16"
    Trong đó Androidx86 là tên máy ảo của bạn. Bạn có thể thêm nhiều CustomVideoModel khác nhau (nhớ điền tên khác nhé)
    - Tiếp theo là thêm menu với độ phân giải ở trên vào Grub của androidx86
    - Khởi động androidx86, vào ở Menu Boot, chọn chế độ Debug
    - Gõ lần lượt những command sau

    -
    Code:
    mount –o remount,rw /mnt
    	vi /mnt/grub/menu.lst
    - Trình soạn thảo vi hiện ra như sau
    Đính kèm 8892

    - Phần việc tiếp theo là tạo mới một lựa chọn Boot và thêm vào đó độ phân giải lúc nãy bằng cách thêm vào kernel option lựa chọn: UVESA_MODE=”640x960” (640x960 là độ phân giải vừa ở trên)
    1. Di chuyển con trỏ đến chữ title đầu tiên rồi nhấn lần lượt 3 và Shift+y (mục đích là copy 3 dòng cùa menu đầu để paste xuông dưới cho đỡ phải gõ lại)
    2. Di chuyển con trỏ xuống cuối file và nhấn p. Nó sẽ paste 3 dòng vừa copy
    3. Nhấn a để vào chế độ edit, di chuyển con trỏ đến title của đoạn vừa paste để sửa lại title cho nó (cho khỏi lộn, chứ dòng này ko quan trọng lắm) Tiếp theo di chuyển đến dòng kernel, gõ thêm UVESA_MODE=”640x960” vào, đại khái nó ra như sau
    Code:
     …. acpi_sleep=s3_bios,s3_mode DPI=240 UVESA_MODE=480x720 SRC=/android-2.3-RC1…
    Bạn có thể di chuyển con trỏ đến chỗ default để chỉnh boot mặc định vào menu này (các menu đánh số từ 0)
    4. Nhấn Esc để thoát chế độ Edit
    5. Nhấn :wq để write and quite (ko write là ko có gì đâu)
    6. Reboot máy ảo và tận hưởng (Để màn hình chế độ Scale bằng Cách nhấn Right ctrl + C)

    Kết:
    Toàn bộ tutorial được viết bởi Wazi Armstrong@diendan.congdongcviet.com sau khi thao khảo nhiều bài viết trên mạng trong đó chủ yếu là bài viết này dev.blogs.nuxeo.com/2011/10/speeding-up-the-android-emulator.html

    Bonus: So sánh tốc độ giữa androidx86, android emulator và nexus one
    Đính kèm 8889

    Thân ái!
    Wazi Armstrong


    PS: Bạn có thể download file đính kèm tutorial.zip để đọc offline (yêu cầu có M$ Word 2007 trở lên)

    ================================UPDATE============ =======================

    Ở bước 2.b ở trên khi bạn chọn card mạng cho Android thì có 2 lựa chọn là Host Only hoặc Bridge. Host Only thì lại không vào được internet trong khi đó Bridge thì lại yêu cầu phải có DHCP Server (bất tiện khi một số mạng như công ty mình DHCP server nó cấp IP theo địa chỉ MAC chứ không cấp bừa bãi)

    Vì thế mình đã tìm ra 1 cách giải quyết tối ưu (theo mình là tốt nhất)
    Bạn chọn card mạng là NAT. Với lựa chọn này thì bạn có thể vào internet mà không cần DHCP server
    Tuy nhiên adb lại không connect được (mặc dù netcfg vẫn hiện ip là 10.0.2.15)
    Mình đã tìm hiểu và biết rằng với lựa chọn NAT, Android sẽ kết nối với bên ngoài thông qua máy tính của mình như 1 router. Trong khi đó adb làm việc ở port 5555, 5554 nên nó không thể thấy máy mình được. Đến đây chắc các bạn cũng hiểu mình nói gì
    Dùng câu lệnh port forwarding của virtualbox
    Code:
    VBoxManage modifyvm "AndroidVM" --natpf<1-N> [<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], <guestport>
    Giải thích một chút AndroidVM là tên máy ảo android của mình
    <1-N> là số thứ tự của card mạng (nếu bạn chọn cái NAT đó ở cái tab Adapter thứ nhất thì điền 1)
    <name>, cái này tùy chọn, là tên của cái port forwarding này
    giao thức chọn là tcp nhé
    hostip, hostport, guestport, guestip thì thôi ko cần giải thích, trong đó hostip với guestip là tùy chọn
    Vậy với trường hợp của mình thì câu lệnh đại khái là
    Code:
    VBoxManage modifyvm "AndroidVM" --natpf1 "adb, tcp,,5555,,5555"
    nhớ là số 1 viết liền sau natpf và tham số sau đó phải cho vào "". Chỉ vì mình thiếu ngoặc kép (hướng dẫn nó ko nói ) làm mò mãi mới xong :(

    Rồi, giờ bật Virtualbox lên, khởi động Android (có thể tường lửa sẽ hỏi, vì động đến port mà, cứ allow thôi)
    Sau đó thì bật cmd lên gõ
    Code:
    adb connect localhost
    (Thực ra thì trên cả 2 máy tính của mình đều không cần phải gõ dòng này, bật eclipse lên, bật máy ảo lên là nó tự nhận luôn, run được luôn)
    Thế là xong!

    Với cách làm này các bạn còn có thể test các ứng dụng web chạy trên máy tính của mình (localhost) bằng việc kết nối qua địa chỉ http://10.0.2.2/ ở trong Android mà không cần phải deploy lên server thật, vừa mất thời gian vừa chậm.
    Ví dụ trên máy tính của bạn, địa chỉ cái web bạn đang phát triển là http://localhost/Hello/index.html thì trong máy ảo Android địa chỉ đó sẽ là http://10.0.2.2/Hello/index.html

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

    ================================UPDATE============ =======================

    Update nhanh phát. Tình hình là có 1 số laptop không dùng NAT được. Đành phải quay lại dùng Bridge với config như sau. (Đang vội chỉ viết đc vậy thôi)



    ================================UPDATE============ =======================
    Cảm ơn bạn nhé, đã thử và thành công ngoài mong đợi

Trang 6 trên tổng số 6 Đầu tiênĐầu tiên ... 456

Các đề tài tương tự

  1. Tăng tốc khi test android apps tự viết trên virtualbox
    Gửi bởi ttaiinfo trong diễn đàn Lập trình Android và Java Mobile
    Trả lời: 1
    Bài viết cuối: 02-04-2014, 11:38 PM
  2. [Android] Screen Lock tutorial ( Sử dụng quyền admin của device )
    Gửi bởi snake_programmer trong diễn đàn Tutorials và Thủ thuật lập trình Java
    Trả lời: 2
    Bài viết cuối: 05-09-2013, 09:47 PM
  3. Máy Ảo Android VirtualBox cài sẵn (2.3 và 4.3) chuyên chơi game và lập trình android
    Gửi bởi huyrua350 trong diễn đàn Tutorials và Thủ thuật lập trình Java
    Trả lời: 0
    Bài viết cuối: 06-08-2013, 02:16 AM
  4. [Android] View Pager simple tutorial
    Gửi bởi snake_programmer trong diễn đàn Tutorials và Thủ thuật lập trình Java
    Trả lời: 0
    Bài viết cuối: 19-07-2013, 10:19 AM
  5. [Android] Cần outsource app khóa tất cả ứng dụng trên android [ chưa root ]
    Gửi bởi prt_awm trong diễn đàn Giải trí - Thư giãn
    Trả lời: 1
    Bài viết cuối: 06-07-2013, 01:25 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn