转:http://merry05.blog.hexun.com.tw/73728603_d.html
不知道有多少Android開發著對Android虛擬機的那悲劇的性能有意見,反正我的看法是:那速度實在是太坑爹了!
為什麽Android虛擬機比iOS和WP7的虛擬機要慢很多呢?原因如下:
1. Android 模擬器模擬的是 ARM 的體系結構(arm-eabi),而 iOS 和 WP7 的模擬器的目標體系結構都是 x86 的,另外 iOS 的模擬器中運行的 App 也是編譯為 x86 的。這樣一來 Android 模擬器需要做一些額外的二進制翻譯工作。
2. Android 模擬器用的是 QEMU 的全系統模式(full system),也就說它模擬時需要啟動整個 GUEST 系統,初始化各種模擬設備。相反的,iOS 和 WP7 的模擬器只是 user-mode 的模擬。
3. 在 Android 模擬器之中還需要跑一個 Dalvik VM,用以執行 Android 應用的 bytecodes。
綜上所述,慢的一個主要原因就是虛擬機不是跑在x86上而是模擬的ARM,有沒有辦法弄個x86的Android呢?
答案是當然有———開源項目Android-x86,這個牛B的開源項目將Android移植到了x86平臺,系統運行的時候不再需要模擬成ARM,這樣就能直接將Android裝在PC或虛擬機上流暢的運行了。
萬事俱備,只欠東風了,下面我就來講一下我使用Android-X86和VirtualBox打造手機開發模擬器的整個流程
1.下載Android-x86系統鏡像文件
首先到http://www.android-x86.org/download下載android-x86-2.2-generic.iso,鏡像文件大約85MB
2.在VirtualBox上創建虛擬機
操作系統選擇Linux,版本選擇Linux 2.6
內存建議為512MB
硬盤默認8GB即可,因為是開發用,8GB綽綽有余了
虛擬機創建好之後,還需要修改一些配置
首先是調整網卡,連接方式建議選擇bridged adapter這樣虛擬機在局域網中有獨立IP可以方便訪問,然後控制芯片要選擇為PCnet-PCI II,否則Android-x86無法識別網卡
如果你想有聲音的話需要在聲音設置面板將控制芯片設置為soundblaser 16
把虛擬機的光驅設置為我們剛才下載的Android-x86 iso之後,啟動虛擬機
思想之地原創文章,謝絕轉載
3.安裝Android-x86到虛擬機
虛擬機啟動後,你可以看到下面的畫面
第一和第二的項目是讓你不用安裝體驗高、中DPI的Android-x86,有興趣的話可以先運行體驗一下x86的速度
我們要安裝Android到硬盤,選擇最後一項後回車
Installation - Install Android-x86 to harddisk
接下來我們會進入安裝界面,界面效果如下
我們選擇Create/Modify partitions來創建分區
首先我們選擇new來創建新分區
選擇Primary創建主分區
分區大小采用默認大小即可
然後我們設定該分區可以引導(選中Bootable後回車),這是分區的flag會顯示boot,然後我們再選擇write將修改寫入到硬盤(選擇write之後還需要輸入yes來確認)
分區完畢後再選擇quit即可退出,退出後,我們就能看到剛才分配的新分區被識別出來了
按下回車選擇該分區,這時會詢問采用什麽分區格式格式化分區,建議選擇ext3
選擇好格式後系統會再跟你確認一遍,輸入yes安裝就會開始了
安裝中途會詢問你是否安裝Grub,這裏一定要選擇YES,因為我們後需要Grub來自定義啟動Android
安裝Grub的時候會詢問你是否將/system目錄安裝為讀寫模式(設為讀寫可以更方便的debug,但是會占用更多的空間和安裝時間),選擇yes
回車後安裝就會開始了
安裝結束後,會彈出一個菜單
三個選項分別是
運行Android
創建一個虛擬SD卡
重啟
因為我們開發肯定會用到SD卡,所以在此我們創建一個虛擬SD卡
創建時會詢問SD卡的大小,根據你的需要設定即可,我在此設定的是128MB
回車後安裝程序就會開始初始化sd卡了
格式完畢後,會提示重啟,此時退出虛擬機光驅中的系統盤後重啟,重啟後就能進入Android系統了
註意使用在Android系統中使用鼠標的時候需要設置Virtual Box禁止自動鼠標獨占,否則鼠標在Android中無法正常使用
Android-x86運行截圖:
思想之地原創文章,謝絕轉載
4.自定義虛擬機分辨率
我們在開發時肯定需要測試不同的分辨率,那麽如何自定義Android虛擬機的分辨率呢?
首先我們需要從Virtual Box的設定入手
打開cmd,進入Virtual Box的下你創建的虛擬機的目錄,我創建的虛擬機叫Android-x86,我的賬戶是Administrator,在我Windows XP上的路徑是
C:\Documents and Settings\Administrator\VirtualBox VMs\Android-x86
註意:
1.在不同操作系統下路徑會有一些不同,請根據操作系統的實際情況尋找,原則上都是在你當前用戶的個人文件夾裏
2.Android-x86是我創建的虛擬機的名稱,如果你的和我的不同,請修改為你創建的虛擬機的名稱
在這裏我們需要使用VirtualBox提供的命令行工具來給你的虛擬機添加一個自定義分辨率,例如我想添加一個現在流行的手機屏幕分辨率 480x800,那麽我們輸入的命令如下
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "Android-x86" "CustomVideoMode1" "480x800x16"
上面的命令中,加粗的部分是要根據你自己電腦上的情況進行修改的,相關解釋如下:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
是Virtual Box命令行工具VBoxManage.exe的完整路徑,請根據你電腦上安裝的VirtualBox的實際路徑修改
註意:如果路徑中含有空格請使用雙引號將整個路徑包起來
Android-x86
這個是虛擬機的名稱
480x800x16
這個是自定義的分辨率,請根據自己的需要修改,後面的16指的是16位顏色,請勿修改
如果你想增加更多的分辨率,請修改參數後多次運行該命令即可
修改完畢之後,啟動虛擬機,在Android的啟動畫面選中選項後按兩次e鍵編輯內核啟動參數,增加一個參數 vga=ask,具體流程如下
啟動畫面按e鍵
進入新畫面後再按一次e鍵
這時進入內核參數編輯狀態,增加參數 vga=ask
編輯完畢後按回車保存修改結果,這時會回到上一個頁面,此時按下b鍵啟動
此時系統會提示你按回車進入分辨率選擇界面,我們按回車繼續
進入頁面之後,你可以看到所有系統支持的分辨率,這時請尋找你剛才設定的分辨率,在下圖中,可以找到在先前設定的 480x800的分辨率,註意其前面的16進制代碼360,如果想以該分辨率啟動虛擬機,我們就輸入360再回車即可
回車後Android就會按照你設定的分辨率來啟動了,下圖是以480x800分辨率啟動的Android-x86虛擬機截圖
註意:
如果你需要系統采用你指定的分辨率啟動,需要在每次Android虛擬機啟動的時候執行上面步驟的操作來修改內核參數啟動Android
如果你想Android在啟動的時候就默認進入分辨率選擇畫面或者默認采用你指定的分辨率啟動虛擬機,那麽可以參考以下步驟
1. 進入android虛擬機後按alt+F1進入命令行
2. 輸入mkdir /data/fs
3. 掛載硬盤,使用下列命令
mount -t 硬盤格式 /dev/block/硬盤名稱 /data/fs
硬盤格式為你虛擬機硬盤的格式,我這裏是ext3 硬盤名稱則是你虛擬機的
硬盤名稱我這默認是sda1,表示第一個sata硬盤, linx下具體的硬盤命名規則請自行Google之
mount -t ext3 /dev/block/sda1 /data/fs
將硬盤掛在到 /data/fs文件夾上
4. vi /data/fs/grub/menu.list 編輯啟動菜單列表 (vi這個命令行編輯器怎麽用請自行Google之)
5. 和剛才啟動時一樣,在第一個kernel那一行的末尾增加 vga=ask 後保存
6. 重啟虛擬機,這時候你就會發現每次Android啟動的時候就會詢問分辨率了
5.使用eclipse ADT在虛擬機上遠程調試開發
現在虛擬機已經配置完成,下面來講解如何使用eclipse來在上面運行和調試Android應用程序
在前面設定虛擬機的時候我把虛擬機的網卡設置成了bridged adapter,這樣虛擬機在局域網中相當於一臺獨立電腦,你可以給它設置一個ip或者講其網卡設置為dhcp狀態來自動獲取ip,我下面只講解一下在 dhcp狀態下如何查看android虛擬機ip的方法:
進入android虛擬機,按alt+F1進入命令,輸入netcfg命令來查看網絡狀態,參考界面如下
其中eth0就是當前的網卡,後面的ip地址就是通過dhcp獲得的ip地址
弄清楚之後再按alt+F7返回圖形界面
此時我們打開eclipse,進入android開發插件的設定界面,選擇ddms,勾選 Use ado host, 並在ADT host value 一欄填寫虛擬機的ip地址,具體界面請參看下圖
選擇ok保存後,在ddms界面的device菜單上選擇重啟adb服務,重啟後,就能看到ddms連接上虛擬機了
接下來就能和平常一樣在虛擬上運行和測試你的Android程序了,enjoy~
最後總結一下這個環境的優缺點:
優點:
1.高速,相比Android SDK的虛擬機,無論是啟動還是運行,本虛擬機要快上很多很多,讓你可以流暢的運行測試你的Android應用,當然,也能舒服的在電腦上體驗到Android系統:)
2.可以模擬平板電腦的環境
缺點:
1.硬件支持還是悲劇,像打電話,短信,重力感應,GPS攝像頭什麽的你還是得去弄臺真機器調試(不過這些東西本來就不是模擬器能做的)
另外補充一下虛擬機中主頁、返回、關機、菜單對應的鍵盤按鍵
Home鍵 -> Win鍵
返回鍵 -> ESC鍵
掛機鍵 -> alt+F4
菜單鍵 -> 鍵盤菜單鍵,一般在右邊win鍵和ctrl鍵中間
原文地址:http://hi.baidu.com.tw/dongyuejiang/blog/item/04a807fac8b5c98a59ee908f.html
相关推荐
使用 Android-X86 和 VirtualBox 打造高性能 Android 开发环境 本文主要介绍如何使用 Android-X86 和 VirtualBox 搭建高性能 Android 开发环境,以解决 Android 模拟器性能问题。Android 模拟器的性能问题主要由于...
标题中的“android-x86-64-8.1-rc1.iso”是一个...综上所述,“android-x86-64-8.1-rc1.iso”是一个专为在64位虚拟机环境下运行的Android 8.1系统镜像,为用户提供了一种在个人电脑上体验或开发Android应用的便捷途径。
下面将详细介绍如何使用VirtualBox和Android-x86构建一个流畅的Android开发环境。 1. **获取Android-x86系统镜像** 要开始这个过程,首先需要下载Android-x86的系统镜像文件,这是将Android操作系统移植到x86架构...
预编译好的x86模拟器(推荐使用VirtualBox)和Android-x86开源项目也被推荐用于开发环境的搭建。 总的来说,Intel支持Andriod开发培训教程是一份非常详细的指南,为开发者提供了从理论到实践的全方位指导,帮助他们...
对于Android应用开发者而言,Genymotion提供了一个理想的测试环境,可以进行应用程序的功能性测试、性能测试以及UI测试等。 #### 二、Genymotion安装步骤 1. **下载与准备**: - 下载VirtualBox:Genymotion需要...
Genymotion是一款高性能的Android模拟器,广泛用于开发者进行Android应用和游戏的测试。它基于VirtualBox技术,提供了快速、流畅的模拟环境,与标准的Android SDK中的AVD(Android Virtual Device)相比,具有更快的...
相较于一般的Android x86,AndroVM进行了大量的优化,提供了更好的性能和兼容性。对于那些在VirtualBox上运行Android x86时遇到卡顿或兼容性问题的用户来说,AndroVM是一个值得尝试的解决方案。 AndroVM 提供了预...
Genymotion以其高性能、低延迟和自定义配置而著名。它使用VirtualBox技术创建虚拟设备,允许开发者在多种Android版本和设备配置下进行应用测试。Genymotion提供了模拟GPS、摄像头、传感器等功能,以及快速的API级别...
在Android开发或者测试过程中,有时我们需要使用到模拟器来运行应用程序,Genymotion模拟器因其高性能和稳定性,受到了很多开发者和测试人员的喜爱。然而,Genymotion原生并不支持中文输入,这对于需要输入中文的...
Genymotion是一款基于VirtualBox的高性能Android模拟器。相比于标准的Android模拟器,Genymotion提供了更快的运行速度和更好的用户体验。安装和使用Genymotion的步骤包括: a. 访问Genymotion官方网站...
Genymotion是一款高效、流行的Android模拟器,专为开发者和测试人员设计,它提供了一个高性能的环境来运行和测试Android应用程序。Genymotion基于VirtualBox技术,能够在个人计算机上模拟各种Android设备,使得...
Genymotion模拟器是一款强大的Android开发工具,专为开发者提供高效、快速的Android虚拟设备环境。它基于Oracle的VirtualBox技术,支持在Windows、Mac OS X和Linux等操作系统上运行。Genymotion以其流畅的性能和高度...
此外,它还支持ADB(Android Debug Bridge)和Eclipse、Android Studio等集成开发环境的无缝集成,便于调试和日志查看。 6. **插件与扩展**:Genymotion还提供了各种插件,如Gapps(Google应用套件),使得虚拟设备...
它主要用于提升在基于Intel处理器的Windows、Mac OS X等系统上运行Android x86虚拟机的性能。在Android SDK Manager中,HAXM通常作为可选组件提供,便于开发者进行快速且高效的Android应用测试。 **主要功能** 1. ...
虚拟机软件如VMware、VirtualBox和Microsoft Virtual PC可以模拟出完整的计算机环境,让用户在现有操作系统上运行Linux。Linux发行版如Red Hat提供企业版和个人版,CentOS则是Red Hat的一个社区支持版本。Ubuntu是广...