Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 1 trên tổng số 6 123... Cuối cùngCuối cùng
Từ 1 tới 10 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. #1
    Ngày gia nhập
    03 2009
    Nơi ở
    %appdata%\Temp
    Bài viết
    819

    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]

    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.
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		ADBConnect.PNG
Lần xem:	67
Size:		60.9 KB
ID:		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
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		CreateNewVHD.PNG
Lần xem:	46
Size:		88.1 KB
ID:		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.
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Storage.PNG
Lần xem:	46
Size:		70.3 KB
ID:		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
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		BootUp.PNG
Lần xem:	51
Size:		72.1 KB
ID:		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
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		CreatePartition.PNG
Lần xem:	46
Size:		50.6 KB
ID:		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
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Network.PNG
Lần xem:	226
Size:		70.7 KB
ID:		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
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Netcfg.PNG
Lần xem:	258
Size:		63.9 KB
ID:		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ử
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		TEST.png
Lần xem:	161
Size:		364.8 KB
ID:		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
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Vi.PNG
Lần xem:	160
Size:		120.7 KB
ID:		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
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		SpeedComparison.PNG
Lần xem:	223
Size:		26.0 KB
ID:		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============ =======================

    Trích dẫn Nguyên bản được gửi bởi elliwood Xem bài viết
    Mình tìm được cách giải quyết rồi.
    Chia sẻ với mọi người.
    Nếu trên android 3.2 hoặc 4.0 mà không kết nối internet được thì dùng cách này.

    Code:
    attached to: NAT
    PCnet-Fast III
    press alt-f1
    type dhcpcd eth0
    type setprop net.dns1 [your DNS for your internet provider] mine is 75.75.75.75
    press alt-f7 to go back to GUI
    Attached Thumbnails Attached Thumbnails CreateNew.PNG   Debug.PNG   Bridge.png  
    Attached Files Attached Files
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi Wazi Armstrong : 04-11-2013 lúc 08:15 AM.
    .::[The best way to predict the future is to invent it]::.
    __________________________________________________ _ - Alan Kay -

  2. #2
    Ngày gia nhập
    12 2010
    Nơi ở
    Hà Nội
    Bài viết
    137

    Mặc định DingPhonh

    Mấy nút Gọi, Soft Menu, Enter, Left, Right... trên máy android thật thì mapping trong cái android emulator này ntn vậy ông anh?
    Freelancer, free coder, free tester.
    Nhận hợp tác viết app, viết midlet khi free time.
    Tình trạng: Siêu bận!

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    %appdata%\Temp
    Bài viết
    819

    Trích dẫn Nguyên bản được gửi bởi DingPhonh Xem bài viết
    Mấy nút Gọi, Soft Menu, Enter, Left, Right... trên máy android thật thì mapping trong cái android emulator này ntn vậy ông anh?
    Chức năng cao cấp như truy cập webcam (ko rõ cái này có không) hay gọi... thì làm sao máy ảo làm được, kể cả access android market
    Những cái này có lẽ nên dùng máy thật test.
    Cái máy ảo này hữu dụng cho test những module thông thương như logic, layout, test game, hay web... đảm bảo nhanh hơn nhiều lần.
    .::[The best way to predict the future is to invent it]::.
    __________________________________________________ _ - Alan Kay -

  4. #4
    Ngày gia nhập
    04 2009
    Nơi ở
    Hà Nội
    Bài viết
    733

    Emulator vẫn dùng để chụp ảnh, nghe audio ( không record audio) được. Ngoại trừ mấy tính năng cao cấp như Sensor,... thì Emulator đều làm được ( Send SMS giữa 2 emulator, lướt web).
    Hỏi một câu thì chỉ dốt trong chốc lát.Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.

  5. #5
    Ngày gia nhập
    01 2011
    Bài viết
    116

    Trích dẫn Nguyên bản được gửi bởi snake_programmer Xem bài viết
    Emulator vẫn dùng để chụp ảnh, nghe audio ( không record audio) được. Ngoại trừ mấy tính năng cao cấp như Sensor,... thì Emulator đều làm được ( Send SMS giữa 2 emulator, lướt web).
    Không biết anh có thể hướng dẫn em làm thế nào để chụp ảnh và record được không ạ.
    Em dùng SDK của google nhưng không truy cập wedcam được, còn record thì lúc được lúc không :(
    Cảm ơn anh trước
    C++ Code:
    1. while ( you_live) {
    2. if (you_failed) try_again();
    3. else if ( you_won) find_new_challenge();
    4. }
    5. system("DEATH");
    6. return HELL;

  6. #6
    Ngày gia nhập
    04 2009
    Nơi ở
    Hà Nội
    Bài viết
    733

    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]

    E vào trang này: developer.android.com/guide/topics/media/camera.html
    Hỏi một câu thì chỉ dốt trong chốc lát.Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.

  7. #7
    Ngày gia nhập
    03 2010
    Bài viết
    123

    Em gặp trường hợp như sau:
    Em cài 2 bản android 2.2 và 4.0. Sau khi config network thành dhcp và truy cập đc Internet. Nhưng lại bị 1 vấn đề:
    sau khi reboot
    Android 2.2: thì ok(ko bị thay đồi, vẫn là dhcp và vào internet bình thường)
    Android 4.0: bị reset về mặc định 0.0.0.0

    Có cách nào để cho nó ko bị reset ko ạ. Bởi vì mỗi lần mở lên lại phải config + kết nối adb rất tốn thời gian
    Chân thành cám ơn!

  8. #8
    Ngày gia nhập
    03 2009
    Nơi ở
    %appdata%\Temp
    Bài viết
    819

    Android 4.0 mình chưa có cơ hội test.
    Còn vụ adb thì đúng thế. Bạn tắt thiết bị đi rồi thì nó mất kết nối là đương nhiên => Phải kết nối lại
    Gợi ý cách làm của mình:
    Do nhà mình đặt IP tĩnh nên IP của cái máy ảo đó lúc nào cũng cố định (của mình là 192.168.1.33, nếu bật 2 cái liền thì cái kia là 34, 35...)
    Tạo một file bat với dòng lệnh
    adb connect 192.168.1.33
    rồi lưu nó vào chỗ nào đó. Khởi động android lên rồi chạy file này là ok. (Có điều phải thêm thư mục chứa adb.exe vào path trong Environment Variable trước, không thì bạn phải chỉ ra đường dẫn chính xác của adb trong câu lệnh trên)
    Với lại mình ít khi reboot android trong khi làm việc, không rõ có lí do gì mà bạn phải reboot vậy
    .::[The best way to predict the future is to invent it]::.
    __________________________________________________ _ - Alan Kay -

  9. #9
    Ngày gia nhập
    03 2010
    Bài viết
    123

    Tại vì mình muốn ngày mai mở lên chỉ chạy file .bat kia thôi!
    Khi mình tắt android đi thì nó reset hết IP(dù mình có đặt tĩnh hay động thì cũng thế).

    ps: Làm android trên virtualbox mà

  10. #10
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    vừa thử chạy android 4.0 thì kết quả không nhận chuột .
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

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