首先你需要设置一下emulator工具的目录之类的
要在.bashrc中新增环境变量,如下
ANDROID_PRODUCT_OUT=~/android/out/target/proct/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/proct/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.
延伸1):
Android x86模拟器Intel Atom x86 System Image配置与使用方法
大家现在开发使用的Android 模拟器模拟的是 arm 的体系结构(arm-eabi),因此模拟器并不是运行在x86上而是模拟的arm,所以我们调试程序的时候经常感觉到非常慢,大部分开发者应该都深有体会。
针对这种情况,前段时间intel推出了支持x86的Android模拟器,这将大大提高启动速度和程序的运行速度,这将允许Android模拟器能够以原始速度(真机运行速度)运行在使用intel x86处理器的电脑中,各位开发者有福了,下面将为大家展示使用方法。
一、首先下载intel提供的 intel® Hardware Accelerated Execution Manager 1.0.1(R2)
requirement:
1. requires the Android* SDK to be installed (version 17 or higher). SDK17或者以上
2.intel® processor with support for VT-x, EM64T, and Execute Disable (XD) bit functionality intel的cpu:并支持VT-X(虚拟化技术)、可扩展64位、Execute Disable bit。(均需要保证在bios中开启Enable)
3. At least 1 gb of available ram 1G以上内存,否则安装不了
满足硬件和软件要求之后,就可以开始安装了,一直下一步至安装成功。途中有个地方选择分配给HAXM内存大小,一般默认就好,分太多会拖慢整机速度。
安装成功后命令行输入sc query intelhaxm,查看运行状态: state is: “4 RUNNING” ,即代表安装成功。需要更改分配内存,重新运行一下安装程序选择change即可修改。
还可以使用以下指令手动开启和关闭:
Stop: sc stop intelhaxm
Start:
sc start intelhaxm
满足软硬件条件,若提示如下Error:but intel Execute Disable bit (XD) is not turned on......
(需要开启系统数据执行保护功能dep,下午纠结了好久才查到。官网原文:Windows* hosts may need to enable dep (Data Execution Prevention) in addition to intel XD)
命令行使用指令:bcdedit.exe /set nx optin 打开即可,需要重启电脑
二、下载Intel Atom x86 System Image
1. 从SDK Manager下载:打开SDK Manager,展开至Android2.3.3(API10)(注意:目前只有2.3.3和4.0.3(Ice Cream Sandwich)有x86的Image),需要和2.3.3的SDK Platform配合使用。
2.使用avd Manager创建一个新的avd: Hardware Property里面选择gpu emulation yes 还有 Keyboard support yes
3.开始使用飞速的模拟器吧,各种爽歪歪
好的工具可以更有效率的开发APP,让我们从此告别那龟速的模拟器吧
‘贰’ Xcode 11.4 模拟器编译报错 Building for iOS Simulator was built for iOS
最近Xcode 升级到了Version 11.4 (11E146)版本。我也乘着工作间隙做了升级。
升级完成,选择模拟器编译,经过等待,没有意外,出现了报错。
Building for iOS Simulator, but the linked and embedded framework 'AipOcrSdk.framework' was built for iOS.
Building for iOS Simulator, but the linked and embedded framework 'AipBase.framework' was built for iOS.
Building for iOS Simulator, but the linked and embedded framework 'IdcardQuality.framework' was built for iOS.
读一下内容,意思是引用的第三方库是 build for iOS 的,不是build for iOS Simulator,这些库还都是网络的AI识别的真机库。
查了下苹果论坛,看看是否有相应的解决方案,然后看到了这篇类似问题
https://forums.developer.apple.com/thread/130684
自己经过尝试解决问题,然后总结出有2种解决方案。
猜测是Xcode 11.4 Debug模式下,对真机库的引用做了检查,我们在模拟器编译的时候,可以选择忽略这些文件,因为我们模拟器也不会真的使用这部分库的功能。
以上,可以正常用模拟器编译了。
‘叁’ 如何预编译 Android 模拟器专用内核
Android源码编译之后生成的是ramdisk.img、system.img和userdata.img。而内核源码编译完成之后生成的是ZImage。在一般情况下Android源码是不带有内核源码的,但是带有一个镜像,这样在编译完Android源码之后就可以模拟器启动了,如果要更换系统的内核,此时将高版本的内核源码进行编译生成ZImage然后替换Android系统的的镜像。这样使用模拟器启动之后就可以查看内核是否已经被刷新。
‘肆’ 3DS模拟器着色器即时编译什么意思
模拟着色器正在高效运行。
绝大多数的Java实现都依赖即时编译以提高代码的运行效率。
即时编译在运行时将代码翻译为机器码,可以达到与静态编译语言相近的执行效率。Python的第三方实现PyPy通过即时编译明显改善了解释器的性能。
‘伍’ 想给安卓模拟器编辑脚本,用什么编译好呢
如果单纯是按键的话可以用按键精灵+bili圈重力大师写重力脚本配合估计可以,重力脚本是模拟器本身自带的功能
‘陆’ 如何在模拟器上运行自己编译的android
Eclipse中对项目右键 Run As-->Android Application-->选择对应模拟器
‘柒’ mtk手机模拟器编译相关问题
这是软件的事情,有的软件在过低的MTK中不支持遍历目录,就是不支持你随便翻文件夹,只能读取程序制定的文件夹,这没办法改变,除非你自己会编程,把默认目录随意改动。
‘捌’ 如何编译 MTK 的模拟器
编译命令
make custom=xxx gprs/gsm new/remake/update/clean mole_name
编译时进入Dos下工程所在的目录,然后输入上面的命令语句即可开始编译。
参数:
custom=xxx
xxx是不同的软件版本,编译时可忽略参数“custom=”,系统会自动判断。
gprs/gsm是说明该软件是否支持gprs的,如果不支持gprs,只输入gsm即可;
mole_name:各个模块的名字
new
功能:全部重新编译
用途:第一次编译时和修改了make文件夹中的文件必须得重新new一下
remake
功能:只重新编译工程中更新过的部分
用途:remake是耗时最短的一个动作,也是仿运好最常用的动作。
resgen
功能:编备铅译资源
用途:如果更改了资源文件或新加了资源文件,则用此命令。
upadte
功能:先检查,然后重新编译更新部分,编译时间较长。
用途:update是耗时较长的一个指令,
一般在增加或删除一些驱动或应用情况下使用,在做开发时不推荐使用,此命令虽比new
的时间短,但比remake的时间长很多。
clean
功能:删除对应的obj
用途:作为其它命令所依赖的指令,还有就是清除工程或者指定模块对象的类库。
也可以写编译脚本例写一个new.bat 文件 文件内容为make custom=project_name new
则编译时在cmd.exe下输入new 即可 相对应的resgen.bat 内容为make custom=project_name resgen
编译模拟器时 应注意:
gen_modis
gen_modis功能:产生VC工程文件
在new完成后需要运行此命令,其它情况如果模拟器出现异常时也可用此命令重新生成VC
工程文件。
codegen_modis
功能:产生modis需要的trace文件的datebase
用途:在new完成后需要运行此命令,在运行此命令前需先运行gen_modis命令,此命令在
new完成后一般只运行一次,执行像resgen或remake命令后都不需要运行此命令。
new_modis
功能:组合了gen_modis 和 codegen_modis
只是听说悄蔽,没具体试验过呢我一般分开执行的简化命令
工程new 一遍 模拟器不会自动生成一个新的模拟器
当改动工程中的make文件时 工程必须要new一遍 然后gen_modis codegen_modis 然后编译VC
当改动的是源文件且源文件已经是工程中某些模块的内容 则可以无须对工程进行操作 直接用VC编译
当改动的是资源文件则工程要resgen remake 然后gen_modis codegen_modis 然后才用VC编