`
kryptonum
  • 浏览: 98414 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

编译Windows版Android Emulator(Cupcake)

阅读更多

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下载EmulatorPrebuilt的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 emulator数据库文件查看软件”指的是在Android模拟器中用于查看SQLite数据库文件的工具。在Android系统中,SQLite是一种轻量级的、关系型的数据库,常用于存储应用程序的数据。开发者或测试人员...

    在Android Emulator上安装App Market-g

    在Android Emulator上安装App Market-g是一个常见的任务,特别是对于开发者和测试人员而言,他们需要在模拟器上体验和测试各种应用。这篇文章将详细介绍如何在Android Emulator中安装Market-g,以便获取更多的应用...

    Ubuntu下编译Android源码并运行Emulator2.pdf

    Ubuntu 下编译 Android 源码并运行 Emulator 2 在 Ubuntu 环境中编译 Android 源码并运行 Emulator 2 需要经过多个步骤,包括安装环境、设置环境变量、安装 repo、下载 Android 源码、编译 Android 源码等。 一、...

    android emulator using command line

    - 在Windows系统中,可以通过开始菜单中的“运行”命令打开命令提示符(CMD),输入“cmd”并按回车键。 2. **进入指定目录**: - 使用`cd &lt;sdk_root&gt;/platform-tools`命令切换到含有adb工具的目录。 3. **执行...

    如何快速启动安卓模拟器(Android_Emulator)

    快速启动安卓模拟器(Android_Emulator)的方法 Android 模拟器是一种非常有用的工具,对于 Android 应用程序的开发和测试来说非常重要。然而,每次启动 Android Emulator 都需要等待很长一段时间,几分钟甚至十几...

    emulator.exe(Android SDK tools下文件)

    **Android SDK中的emulator.exe详解** 在Android应用开发过程中,Android SDK(Software Development Kit)扮演着至关重要的角色。它提供了一系列工具,使得开发者能够在没有实际设备的情况下,通过模拟器(Android...

    android emulator

    1. **下载与安装**:首先,你需要从Android开发者官方网站下载Android Studio,它内置了Android Emulator。安装完成后,打开Android Studio并创建一个新的项目或加载现有项目。 2. **配置虚拟设备(AVD, Android ...

    ubuntu上在androidstudio中启动emulator闪退的解决方法

    在 Ubuntu 上 Android Studio 中启动 Emulator闪退的解决方法 在 Android Studio 中点击模拟器的启动按钮后,模拟器界面弹出后,又立刻闪退。这是非常常见的问题,本文将为大家分享 Ubuntu 上在 Android Studio 中...

    Android emulator

    Android模拟器是Android开发环境中的一个重要工具,它允许开发者在没有物理Android设备的情况下测试和调试应用程序。这个模拟器是Google官方提供的,与Android Studio紧密集成,为开发者提供了一个虚拟的Android设备...

    android-emulator-hypervisor-driver-for-amd-processors

    适用于 AMD 处理器的 Android Emulator Hypervisor Driver 作为 Windows 驱动程序运行。 用户空间支持适用于 AMD 处理器的 Android 模拟器管理程序驱动程序可从 Android 模拟器获得。 下载并安装 通过发行了适用于...

    WINDOWS CE5 EMULATOR

    WINDOWS CE5 EMULATOR,need sdk support where microsoft cite

    Windows Mobile Device Emulator v1.0 Share Source

    《深入解析Windows Mobile Device Emulator v1.0 Share Source》 Windows Mobile Device Emulator v1.0 Share Source,是微软发布的一个重要的开发工具,它允许开发者在桌面环境中模拟Windows Mobile设备的功能,...

    AndroidAuto Desktop Head Unit Emulator

    Android Auto Desktop Head Unit Emulator(DHU)是谷歌推出的一款强大的工具,专为开发者设计,用于测试和调试针对Android Auto平台的应用程序。Android Auto是一种车载信息娱乐系统,它允许用户在驾驶时安全地与...

    如何单独编译Android源代码中的模块

    USER-NAME@MACHINE-NAME:~/Android$ emulator 这样,一切就搞定了。 使用 Android 提供的命令可以快速地编译和管理模块,从而提高开发效率。在编译和管理模块时,我们需要注意模块的依赖关系和编译顺序,以免出现...

    emulator,允许您模拟android arm32和/或arm64本机库.zip

    Emulator在IT行业中扮演着至关重要的角色,尤其是在Android应用开发和测试中。标题中的"emulator"是指Android Emulator,它是Google提供的一款强大的工具,可以让开发者在没有物理设备的情况下运行和测试Android应用...

    docker-android-emulator, android仿真器的Docker 文件.zip

    docker-android-emulator, android仿真器的Docker 文件 docker-android-emulator运行 Android 模拟器最新 debianopenjdk 7Android SDK 24.3.4Android api正在运行 模拟器这里存储库为不同的SDK提供 模拟

    android-sdk-windows\\tools 解决更新后任务栏图标显示异常问题用的emulator.exe文件

    标题中的“android-sdk-windows\\tools”指的是Android开发者工具包在Windows操作系统中的路径,这个工具包是Android开发必不可少的一部分。在Android SDK中,“tools”目录包含了各种用于开发、测试和调试Android...

Global site tag (gtag.js) - Google Analytics