java adt用vbox_用vbox替代模拟器开发android应用-一天一点一滴-搜狐博客

本文介绍了如何使用VirtualBox虚拟机代替Android模拟器进行应用开发。通过设置虚拟机网络为Host-only Adapter,获取虚拟机IP,配置adb连接,可以实现高效的应用部署和调试。此外,还解决了虚拟机网络连接外部网络的问题,确保Android系统能够上网。
摘要由CSDN通过智能技术生成

这里介绍一下怎么样用virtualbox虚拟机来代替android的模拟器来进行android应用开发。为啥要用vbox来代替模拟器?嗯,这是个问题……但是我不准备解释,^-^。

使用android原生的源代码可以编译出能够在vbox虚拟机上运行的软件(具体方法可以参见我的另一篇博客)。但是这样编译出来的软件存在不少问题,比如没有鼠标光标,DHCP也存在一些问题。我推荐使用android-x86项目所提供的软件。该项目的网站是http://www.android-x86.org,现在项目的完成度已经相当高,让人印象深刻。

如果只是想体验一下x86的android,可以直接下载该网站所提供的ISO文件。如果要做开发,还是推荐下载源代码,自己编译。源代码的下载方法和编译方法在该网站上有详细的介绍,我就不再罗嗦了,唯一需要说明的是,目前下载下来的源代码编译还会有一个错误,需要对opencore库打一个补丁(下载地址)。这个补丁也是该项目提供的。

通过源代码可以编译出来一个ISO文件,可以很顺利地安装到vbox虚拟机上。安装方法在网站上也有详细介绍。鼠标的用法与模拟器差不多,有几个主要的按键定义如下:

菜单键 -- 104键盘的菜单键(在右Alt和右Ctrl键之间的那个键)

返回键 -- ESC键

Home键 -- 标准键盘的Home键或者104键盘的窗口键(在左Alt和左Ctrl键之间的那个键)

好,现在假设你已经创建了一个vbox虚拟机,并且已经安装好了android系统。下面说明如何用这个虚拟机来开发应用。我的计算机装的是windows,linux应该也类似。

其实要用虚拟机来开发应用,最关键的一个步骤是要让adb能连接到虚拟机。

(1) 设置虚拟机的网络方式。

需要将拟机的网络连接方式设置为Host-only Adapter,如下图。

2376203_2.jpg

这样,在虚拟机启动后,将通过DHCP分配到一个IP地址192.168.56.xxx(我的是101,不知道是不是都一样)。有两种方法可以知道虚拟机分配了什么地址。

第一种方法,在虚拟机启动后,在屏幕的左上角如果如果出现两个计算机叠在一起的图标,就说明网卡分配到了IP地址,用鼠标按住上方状态条拉下来,就可以看到所分配的IP地址,如下图。

2376203_3.jpg

第二种方法,在虚拟机中按下alt+F1,会进入命令行界面,执行netcfg命令,会列出当前网络的信息,在其中可以看到eth0接口的IP地址。

好了,下载你知道了虚拟机的IP地址,可以试一下通过主机ping虚拟机,看能不能ping通。如果通了,那么恭喜你,你的安装工作已经完成了,下面就是怎么用的问题了。

(2) 使用adb连接虚拟机的android系统

到windows的命令行方式下,转到android SDK的tools目录。什么,那位说你还没有安装SDK……@%#&*,好吧我承认我说漏了,你先回家装一下,装好再回来。

执行下列命令:

set ADBHOST=192.168.56.101(改成你的虚拟机的IP)

adb devices

或者直接执行:

adb connect 192.168.56.101:5555

这两种方法搜能使adb daemon能正常启动,并且连上了虚拟机了。可以执行adb shell,连接到虚拟机的shell上试一下。

(3) 好,现在adb已经连上虚拟机了,下面就可以通过eclipse开发应用了。开发方法与原来一样,只是在运行(或调试)时,直接选择 Run As-->Android Application即可,应用会被下载、安装到虚拟机上,就像运过来使用模拟器一样。不过这个速度就非模拟器可比了。需要说明的是,android-x86现在的Android版本是1.6。

(4) 如果虚拟机重启了,那么adb daemon会失去与虚拟机的连接,并且不会自动与新启动的系统连接。这时需要手动杀死daemon并重新启动:

adb kill-server

adb devices

这样,adb又可以重新连上虚拟机了。

好了,到这里本文的主要内容已经写完了,下列再补充一点。虚拟机在使用Host Only网络连接方式时,在默认情况下虚拟机是连不到外部网络的,因此在android中启动浏览器时会发现上不了网。这个问题的原因是vbox的DHCP server在这种情况下没有为虚拟机配置缺省网关和DNS服务器。解决这个问题的方法是使用windows系统自身所提供的网络共享功能(不知道怎么用的情自行学习),并为虚拟机手动配置缺省网关和DNS服务器:

在Android图形界面下按下Alt+F1,进入命令行界面,快速执行下列命令(是的,要快速,否则图形界面很快就会重新启动):

设置缺省网关:

#route add default gw dev eth0

设置DNS:

setprop net.dns1

setprop net.dns2

setprop net.dns3

setprop net.dns4

图形界面重启后,在打开浏览器,就会发现一切又都OK啦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值