编译Windows版Android Emulator(Cupcake)

编译Windows版Android Emulator(Cupcake)
2011年01月19日
  【Androidin 开发者原创系列】kryptonum
  Android SDK提供了一个基于Qemu的模拟器来模拟Android系统的智能手机,得益于Qemu的跨平台特性,不论是Linux、Mac OS还是Windows的用户都可以通过模拟器大大提高开发效率。不过归根结底,Qemu还是在类Unix平台上发展起来的项目,所以在Windows平台上的编译还是值得一看。Google在git上描述如何编译Android Eclipse插件ADT的时候顺带提到了如何构建Windows版的Android SDK,国内也有朋友写了构建Windows版的Android SDK(此为转帖,原作者blog已无法访问)的文章,但是对于如何单独构建Windows版的Android模拟器目前并没有任何官方的文档提及,William只是在网络上找到一些零碎的讨论,今天就结合自己的实践整理出来和大家共享。
  在Windows下编译Android模拟器的两种方法
  Android给出的构建Windows版SDK的make_windows_sdk.sh脚本中,包含有make -j 4 emulator,即编译模拟器的命令,所以看起来模拟器能在Cygwin环境下构建出来的。另外,由于Android模拟器是基于Qemu,Android只是在其基础上添加了新的虚拟设备,定义了自己的skin机制等,所以只要是标准Qemu能够正常编译的环境,Android模拟器也就没有问题。The QEMU forum有一篇很详尽的关于在Windows环境编译Qemu的文章,Step-by-step QEMU compilation under Windows ,是在MinGW/MSYS下完成的,因而在MinGW/MSYS环境下构建看来也可行。
  既然使用make_windows_sdk.sh依赖的Cygwin看起来更像是官方制作SDK发布的环境,那么它应当是几乎100% working,下面还是先来尝试一下非官方的做法吧。
  MinGW/MSYS环境的准备
  MinGW和MSYS的环境不算复杂,官方网站也有详细的帮助文档,下面就说说我的安装过程。
  需要下载的安装包包括:
  1、MinGW-5.1.4.exe, 这是MinGW的自动安装工具(Automated MinGW Installer)
  2、MSYS-1.0.11.exe
  3、msysDTK-1.0.1,MSYS Developer Tool Kit,包括autoconf、automake、libtool、cvs等工具
  4、pthreads-w32-2-8-0-release.exe,emulator所需要的pthread库。
  zlib、libpng、SDL以及它依赖的directx-devel库就不需要下载了,zlib和libpng已经包含在Android Emulator源码包中,SDL我们也可以用Android Prebuilt中提供的binary,稍后会给出链接。
  安装MinGW时,除非有特别的需要,我们安装常用的gcc core、g++编译器就行。如果网络条件实在不好,可以打开mingw.ini找出文件名,然后通过下载工具到MinGW网站下载。另外值得一提的是,MinGW为了更好的管理软件包的发布,使用了current、previous和candidate来区分不同版本软件包的组合,这里我选择的是current,gcc版本为3.4.5。安装路径随意,这里假设是c:mingw。
  安装MSYS时会询问是否有安装MinGW,选择Y的话会要求输入MinGW的安装路径,输入之后很快就可以完成MSYS安装。这里我们假设MSYS的安装路径是c:msys。接下来安装好msysDTK-1.0.1,我们就可以通过桌面上的快捷方式来进入MSYS了。这里我们要通过“ls /mingw”命令确认一下MinGW是否被正确挂载到MSYS的/mingw目录,如果可以看到bin、doc、include等目录就说明挂载成功,否则请检查MSYS安装目录中etc下的fstab文件,格式请参考fstab.sample。挂载成功以后,试试“gcc -v”,能够正常返回gcc version 3.4.5等字样,我们就可以进入到下一步了。
  取得Android Emulator源代码和Prebuilt中的SDL库
  请参考我之前的文章Git和Repo扫盲――如何取得Android源代码来取得Android Emulator源代码和Prebuilt中的SDL库,或者你也可以简单的从GitWeb下载Emulator和Prebuilt的snapshot版本。
  下载完成以后,把Emulator解压缩到c:msyshome目录下,Prebuilt我们只需要其中Windows目录下的sdl目录就可以了,同样放到c:msyshome目录。
  这里有必要提一下Android Emulator的build system,在Google发布的源码包android-emulator-1.0_r2.tar.bz2中,我们可以很方便的使用build-emulator.sh脚本来编译(中间可能会遇到些问题),在这个脚本中我们可以看到,构建Emulator的脚本是 android-rebuild.sh,而它则会调用同一目录下的android-configure.sh来完成configure。回到 Cupcake中的External/qemu目录,我们可以看到android-rebuild.sh和android-configure.sh这两个脚本同样存在(一开始我确实是以为只有以源码包形式发布的Emulator中才包含了这几个脚本),所以我们可以在编译整个Android Cupcake代码树时编译Emulator,同样也利用这个平行的build system来单独的构建Emulator。从这个角度来说,单独的构建Emulator,无论是Cygwin还是MinGW/MSYS,方法就不会有什么差别了。
  编译Android Emulator的过程
  做好前面的几步之后,打开MSYS,进入到Emulator(qemu)目录,执行./android-rebuild.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值