编译SDK
编译SDK可以得到与源码同步的SDK,还会生成一些tools,在源码根目录下:
- $ sudo make PRODUCT-sdk-sdk
编译生成的SDK在out/host/linux-x86/SDK下。之后如果在ubuntu下使用eclipse进行开发,可以使用你编译的SDK。
下面就在模拟器中运行镜像,建议切到root用户下,首先配置几个环境变量,将自己编译的SDK设为优先级最高,在源码根目录下执行:
- $ update-alternatives --install /usr/bin/AndroidSDK AndroidSDK ./out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86 255
这样会在/etc/alternatives下生成一个指向该SDK目录的软连接AndroidSDK,这个目录主要存放一些系统默认打开的程序的信息和配置。那么/usr/bin/AndroidSDK就指向这个软连接。接着执行:
- $ gedit ~/.bashrc
在文件末尾添加:
- export ANDROID_SDK_HOME=/usr/bin/AndroidSDK
- export PATH=$ANDROID_SDK_HOME/tools:$PATH
首先你需要设置一下emulator工具的目录之类的,这个不细说了,
要在.bashrc中新增环境变量,如下
ANDROID_PRODUCT_OUT=~/android/out/target/product/generic
ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
这里是设置你的输出文件的位置和bin工具目录,不用多解释吧?
然后在命令行输入:
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};
上面是导入了相关的配置,然后使之生效。
source ~/.bashrc
接着切换到输出的system文件夹
cd ~/android/out/target/product/generic
然后来创建模拟器
emulator -system system.img -data userdata.img -ramdisk ramdisk.img
如果你运气够好的话,也许现在已经在运行了,不过我运气明显不够好。
提示一:
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.If you are an Android SDK user, please use ‘@<name>’ or ‘-avd <name>’
to start a given virtual device (see -help-avd for details).Otherwise, follow the instructions in -help-disk-images to start the emulator
既然人家提示了,那就按照步骤走吧,输入命令:
emulator -help-avd
接着提示如下:
use ‘-avd <name>’ to start the emulator program with a given Android
Virtual Device (a.k.a. AVD), where <name> must correspond to the name
of one of the existing AVDs available on your host machine.See -help-virtual-device to learn how to create/list/manage AVDs.
As a special convenience, using ‘@<name>’ is equivalent to using
‘-avd <name>’.
跟着提示继续走,输入命令:
emulator -help-virtual-device
又是提示了:
An Android Virtual Device (AVD) models a single virtual
device running the Android platform that has, at least, its own
kernel, system image and data partition.Only one emulator process can run a given AVD at a time, but
you can create several AVDs and run them concurrently.You can invoke a given AVD at startup using either ‘-avd <name>’
or ‘@<name>’, both forms being equivalent. For example, to launch
the AVD named ‘foo’, type:emulator @foo
The ‘android’ helper tool can be used to manage virtual devices.
For example:android create avd -n <name> -t 1 # creates a new virtual device.
android list avd # list all virtual devices available.Try ‘android –help’ for more commands.
Each AVD really corresponds to a content directory which stores
persistent and writable disk images as well as configuration files.
Each AVD must be created against an existing SDK platform or add-on.
For more information on this topic, see -help-sdk-images.SPECIAL NOTE: in the case where you are *not* using the emulator
with the Android SDK, but with the Android build system, you will
need to define the ANDROID_PRODUCT_OUT variable in your environment.
See -help-build-images for the details.
说实在的,这提示看着很郁闷,让你跳来跳去,就是不能解决问题。
直接创建avd吧,先看下说明:
Usage:
android [global options] create avd [action options]
Global options:
-h –help : Help on a specific command.
-v –verbose : Verbose mode, shows errors, warnings and all messages.
-s –silent : Silent mode, shows errors only.Action “create avd”:
Creates a new Android Virtual Device.
Options:
-c –sdcard : Path to a shared SD card image, or size of a new sdcard for
the new AVD.
-n –name : Name of the new AVD. [required]
-a –snapshot: Place a snapshots file in the AVD, to enable persistence.
-p –path : Directory where the new AVD will be created.
-f –force : Forces creation (overwrites an existing AVD)
-s –skin : Skin for the new AVD.
-t –target : Target ID of the new AVD. [required]
-b –abi : The ABI to use for the AVD. The default is to auto-select the
ABI if the platform has only one ABI for its system images.
看明白了吧?
android create avd -n test2 -f -p /home/thonatos/test -t 1
然后会有提示:
Auto-selecting single ABI armeabi-v7a
Android 4.0.3 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Created AVD ‘test2′ based on Android 4.0.3, ARM (armeabi-v7a) processor,
with the following hardware config:
hw.lcd.density=240
vm.heapSize=48
hw.ramSize=512
创建好了,不过你的模拟器估计一运行就出错吧。(我故意滴。。。别怪我。。)
切换到刚才创建模拟器的目录,然后看看有什么东东,打开config.ini
hw.lcd.density=240
skin.name=WVGA800
skin.path=platforms/android-15/skins/WVGA800
hw.cpu.arch=arm
abi.type=armeabi-v7a
hw.cpu.model=cortex-a8
vm.heapSize=48
hw.ramSize=512
image.sysdir.1=system-images/android-15/armeabi-v7a/
知道该做什么了吧?改吧,把相关的目录改成你自己的,然后再执行一下
emulator @test2
怎么样!是不是已经运行啦?呵呵,恭喜哈!
可能大家都知道,内核源码编译和android源码编译的区别在于,内核是linux的内核
最后把编译后结合起来的命令是
emulator -kernel kernel-qemu -system system.img -data userdata.img -ramdisk ramdisk.img
这个不需要安装avd,上面安装的avd,没有使用自己编译的内核
从现在开始,一个自己编译的android系统就这么运行了
回顾一下:
1、编译android源代码
得到文件:-system system.img -data userdata.img -ramdisk ramdisk.img
2、编译内核
具体怎么编译内核,查看
android内核编译
http://blog.csdn.net/flydream0/article/details/7070392
得到文件:kernel/goldfish/arch/arm/boot/zImage,把它重命名为kernel-qemu,并且把它和源代码编译后的文件放入同一个文件夹下面
3、启动android虚拟机
emulator -kernel kernel-qemu -system system.img -data userdata.img -ramdisk ramdisk.img
相关推荐
### Android模拟器及编译环境安装新手入门 #### 前言 本文档旨在为初次接触Android开发的新手提供一个全面、易懂的指南,帮助读者顺利安装Android模拟器及编译环境。文档作者Mercury@阿肆分享了自己的实践经验,并...
SDL Android 例子源码可用工程,实测编译通过在模拟器运行(SDL 2.0 for Android),工程目录名叫AndroidTst2,编译通过可用, sdl source code for android android source code for sdl 2.0 这个工程的文件夹...
GBA模拟器是一种软件,允许用户在非GBA设备上运行GBA游戏,比如Android智能手机或平板电脑。源码是程序的原始代码,开发者可以通过查看和修改源码来学习其工作原理,或者定制自己的功能。 首先,我们需要理解...
四、模拟器运行 最后,我们可以使用以下命令运行模拟器: USER-NAME@MACHINE-NAME:~/Android$ emulator 这样,一切就搞定了。 使用 Android 提供的命令可以快速地编译和管理模块,从而提高开发效率。在编译和...
编译并运行Android4.0模拟器.pdf
3. **运行和调试源代码**:在项目中选择要运行的源代码分支,点击Run按钮或使用快捷键,Android Studio会自动编译代码并部署到选定的模拟器上。调试模式下,可以在代码中设置断点,实时查看变量值,控制执行流程,这...
4. **调试与测试**:运行编译后的程序,并对模拟器的功能进行测试和调试。 #### 三、Android平台下的NES模拟器开发 从给定的部分内容中,我们可以看出该模拟器被设计用于Android平台。接下来将详细分析Android环境...
源码中包含了针对Android优化的代码,确保了模拟器在移动设备上的流畅运行。此外,由于Android系统的碎片化,源码可能还需要包含针对不同API级别和设备硬件的适配代码。 为了帮助用户理解和使用这款模拟器,源码包...
在进入Android应用开发的世界时,一个重要的步骤是设置好Android模拟器和编译环境。这份“Android模拟器及编译环境安装新手入门”教程将帮助初学者顺利搭建所需的开发环境,以便开始编写、测试和调试应用程序。以下...
在《Android移动应用开发基础案例教程》的仿美团项目案例中,教材提到需要使用第三方模拟器才能成功访问网络,但其实这可以通过调整Android Studio内置模拟器的配置来解决。 首先,要允许应用访问网络,必须在...
要使用这些文件编译Android P源码,你需要遵循以下步骤: 1. 下载Android P的完整源码,这通常通过使用Git从AOSP(Android Open Source Project)仓库克隆得到。 2. 将`.ipr`和`.iml`文件放置到源码的根目录下,这...
5. **测试与调试**:在模拟器或实际设备上运行编译后的APK,进行功能测试和性能优化。压缩包中的"测试游戏"部分提供了可用于验证模拟器正确性的游戏文件。 6. **优化与调试**:根据测试结果,可能需要对源码进行...
fba安卓模拟器源码编译APP demo完美运行,下载后按帮助操作即可。性能比强悍,适合比较低端的设备运行。另外兼容的游戏rom也比较多,基本可以淘汰mame实现性能之王。无积分下载可以点头像找我发给你。
在模拟器中卸载Android程序** - **命令**: `adb -s <EMULATOR_ID> uninstall <PACKAGE_NAME>` - **功能**: 卸载指定的应用程序。 - **参数解释**: - `<EMULATOR_ID>`: 模拟器的ID,可通过`adb devices`获取。 ...
在编译好模块后,还要重新打包一下 system.img 文件,这样我们把 system.img 运行在模拟器上时,就可以看到我们的程序了。可以使用 make snod 命令来重新打包 system.img 文件。 在使用 Android 源码时,还需要注意...
编译过程中,关键点在于正确链接库文件,处理好依赖关系,并确保代码能在ARM或x86架构的Android设备上运行。 二、模拟器核心 1. 游戏识别:MAME4droid的核心部分负责识别和处理不同的街机游戏ROM。每个游戏都有一...
在Android开发过程中,Android模拟器是一个非常重要的工具,它允许开发者在没有物理设备的情况下测试应用程序。APK(Android Package)是Android系统中的应用程序包文件格式,用于分发和安装移动应用。下面我们将...
编译Android模拟器的过程可能涉及到一些步骤,包括配置、编译和链接。`android-rebuild.sh`和`android-configure.sh`这两个脚本在构建过程中起着关键作用,它们分别负责执行编译和配置任务。在Windows环境下,可以...
### Android模拟器及编译环境安装新手入门 #### 前言 本篇文章旨在为初次接触Android开发的新手提供一个全面、易于理解的指南,帮助读者顺利安装Android模拟器及编译环境。文章作者Mercury@阿肆通过两天的努力编写...