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:\msys\home\< 当前登陆的用户名
>目录下,Prebuilt我们只需要其中Windows目录下的sdl目录就可以了,同样放到c:\msys\home\<
当前登陆的用户名 >目录。
这里有必要提一下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
–sdl-config=/home/< 当前登陆的用户名 >/sdl/bin/sdl-config
命令即可,它会自动调用android-configure.sh脚本进行configure,随后开始编译,–sdl-config则指定了sdl库的
路径。
这里我们可能遇到的问题是缺少libpthread,如果遇到的话解开pthreads-w32-2-8-0-release.exe,把Pre-
built.2中的libpthreadGC2.a改名为libpthread.a复制到c:\mingw\lib目录,pthread.h复制到c:
\mingw\include目录即可解决。
除此之外,编译Cupcake中的Android Emulator相当的顺利,之前编译android-emulator-1.0_r2.tar.bz2时遇到过的“unsupported cpu”, “bad ELF header”等错误都没有遇到。
测试生成的Android Emulator
测试生成的emulator.exe能否正常工作,最简单的办法就是把它复制到当前安装好的Android
SDK的tools目录下,连-kernel,-ramdisk,-system这些参数都省的加了。新建一个avd,比如“test_avd”,然后在
控制台运行“emualtor.exe @test_avd”
即可,如果有什么不正常,加上-debug-all和-show-kernel参数可以有助debug。
好了,有图有真相!标题栏中的“Build with MSYS/MINGW”是我自己加的。
欢迎留言提问!
本文同时发布在我的blog上, http://www.williamhua.com/2009/07/22/build-android-emulator-for-windows/
- 大小: 204.9 KB
分享到:
相关推荐
标题中的“android emulator数据库文件查看软件”指的是在Android模拟器中用于查看SQLite数据库文件的工具。在Android系统中,SQLite是一种轻量级的、关系型的数据库,常用于存储应用程序的数据。开发者或测试人员...
### Android Emulator 谷歌手机模拟器入门详解 #### 引言 在现代软件开发领域,尤其是移动应用开发中,模拟器扮演着至关重要的角色。对于Android开发者而言,掌握如何使用Android Emulator(谷歌手机模拟器)是基础...
在Android Emulator上安装App Market-g是一个常见的任务,特别是对于开发者和测试人员而言,他们需要在模拟器上体验和测试各种应用。这篇文章将详细介绍如何在Android Emulator中安装Market-g,以便获取更多的应用...
Ubuntu 下编译 Android 源码并运行 Emulator 2 在 Ubuntu 环境中编译 Android 源码并运行 Emulator 2 需要经过多个步骤,包括安装环境、设置环境变量、安装 repo、下载 Android 源码、编译 Android 源码等。 一、...
- 在Windows系统中,可以通过开始菜单中的“运行”命令打开命令提示符(CMD),输入“cmd”并按回车键。 2. **进入指定目录**: - 使用`cd <sdk_root>/platform-tools`命令切换到含有adb工具的目录。 3. **执行...
快速启动安卓模拟器(Android_Emulator)的方法 Android 模拟器是一种非常有用的工具,对于 Android 应用程序的开发和测试来说非常重要。然而,每次启动 Android Emulator 都需要等待很长一段时间,几分钟甚至十几...
Android 编译系统分析 Android 编译系统是 Android 操作系统的核心组件之一,它负责将源代码编译成可执行文件。Android 编译系统的分析对于Android 开发者来说非常重要,因为它可以帮助开发者更好地理解 Android 的...
1. **下载与安装**:首先,你需要从Android开发者官方网站下载Android Studio,它内置了Android Emulator。安装完成后,打开Android Studio并创建一个新的项目或加载现有项目。 2. **配置虚拟设备(AVD, Android ...
Android模拟器是Android开发环境中的一个重要工具,它允许开发者在没有物理Android设备的情况下测试和调试应用程序。这个模拟器是Google官方提供的,与Android Studio紧密集成,为开发者提供了一个虚拟的Android设备...
适用于 AMD 处理器的 Android Emulator Hypervisor Driver 作为 Windows 驱动程序运行。 用户空间支持适用于 AMD 处理器的 Android 模拟器管理程序驱动程序可从 Android 模拟器获得。 下载并安装 通过发行了适用于...
Emulator在IT行业中扮演着至关重要的角色,尤其是在Android应用开发和测试中。标题中的"emulator"是指Android Emulator,它是Google提供的一款强大的工具,可以让开发者在没有物理设备的情况下运行和测试Android应用...
在 Ubuntu 上 Android Studio 中启动 Emulator闪退的解决方法 在 Android Studio 中点击模拟器的启动按钮后,模拟器界面弹出后,又立刻闪退。这是非常常见的问题,本文将为大家分享 Ubuntu 上在 Android Studio 中...
WINDOWS CE5 EMULATOR,need sdk support where microsoft cite
**Android SDK中的emulator.exe详解** 在Android应用开发过程中,Android SDK(Software Development Kit)扮演着至关重要的角色。它提供了一系列工具,使得开发者能够在没有实际设备的情况下,通过模拟器(Android...
《深入解析Windows Mobile Device Emulator v1.0 Share Source》 Windows Mobile Device Emulator v1.0 Share Source,是微软发布的一个重要的开发工具,它允许开发者在桌面环境中模拟Windows Mobile设备的功能,...
USER-NAME@MACHINE-NAME:~/Android$ emulator 这样,一切就搞定了。 使用 Android 提供的命令可以快速地编译和管理模块,从而提高开发效率。在编译和管理模块时,我们需要注意模块的依赖关系和编译顺序,以免出现...
Android Auto Desktop Head Unit Emulator(DHU)是谷歌推出的一款强大的工具,专为开发者设计,用于测试和调试针对Android Auto平台的应用程序。Android Auto是一种车载信息娱乐系统,它允许用户在驾驶时安全地与...
标题中的“android-sdk-windows\\tools”指的是Android开发者工具包在Windows操作系统中的路径,这个工具包是Android开发必不可少的一部分。在Android SDK中,“tools”目录包含了各种用于开发、测试和调试Android...