关于ANDROID模拟器的一些事
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!
继上一篇Android
Studio VS Eclipse的文章后接着来分享AnDevCon大会上的内容(这是别人分享给我的。导致中间非常多遗漏,很多都是我自己上网找资料补充的,请见谅),今天的主题是关于Android模拟器的一些事。
简单介绍:
Android Virtual Device就是我们常说的模拟器了。简称AVD或者Emulator。对模拟器的管理都在一个叫做Android Virtual
Device Manager里。
模拟器为什么这么慢?
大家都知道有模拟器这么一个东西,但为什么大家都不用。主要原因就是模拟器太慢了,所以肯定有人就抱怨说Google模拟器做的真垃圾。再看看IOS的模拟器。由于当初我就是当中一个,哈哈。
但为什么模拟器会这么慢呢?
主要原因就是CPU的问题。
如今Android手机上用的全部CPU都是ARM的,执行的都是ARM的android系统镜像。可是我们的台式机都是Intel的。所以我们在台式机上执行Android模拟器就会导致很的慢。所以解决的方法就是使用执行Intel系统镜像的android模拟器。
Android
x86模拟器&HAXM:
据说Intel也要进军手机CPU市场了。所以Intel推出支持x86的Android模拟器。
并且Intel还推出了一个硬件加速管理器:Intel
Hardware Accelerated Execution Manager 简称Intel HAXM.
在Intel的电脑上执行这个x86模拟器再配合HAXM将会得到和Android真机相媲美的执行效果。我看过他的演示效果。大概启动到执行须要4,5秒吧,并且特别流畅。
由于我家里SDK下载实在太慢了,所以我没有安装他,大家假设感兴趣能够下一个。网上非常多相关教程帖子能够參考。除了懒另一个不装他的原因就是另一个更好的模拟器Genymotion。
更强大的模拟器-Genymotion。
Genymotion安卓模拟器事实上不是普通的模拟器,严格来说,genymotion是一个虚拟机。
因为他的种种特性和长处如今被越来越多的开发。測试甚至游戏玩家所使用。
接下来说说我使用了一个多月的感受:
长处:
1.速度
速度真的很快。
全然媲美真机。在我电脑上从点run開始启动模拟器到程序执行仅仅用5-10秒钟,之后模拟器不用关闭。基本就是点run之后瞬间执行。响应速度和流畅度真的和真机没有区别。
2.全机型模拟
能够选择市面上差点儿全部主流的手机设备。平板略微少一些。只是能够自定义随意大小屏幕和配置来解决问题。所以Genymotion特别适合那种设备不齐全。设备不多的情况。
3.鼠标(触摸板)加键盘操作
速度上来后模拟器的优势就体现出来了,再也不须要拿着手机按来按去。或者连着usb线各种方向的转屏。直接鼠标点击(鼠标差一些,我用的触摸板感觉更方便)。键盘输入,特别快捷。
当然多点触摸和传感器什么的略微费劲一点,只是应用开发这些一般非常少涉及这些。
4.能够同一时候启动多个模拟器
有的时候大家都会遇到这种情况,改一点小问题执行看下效果,再改一点再看效果。或者平板手机同一时候开发,须要两边一起观看效果。
这时我就会执行2,3个模拟器加上1,2个真机轮番作战,效率大大提高。
5.特别适合在家里开发
在家里开发不可能有那么多设备,这时候有个模拟器一切问题都攻克了。
6.安装软件
安装软件能够从桌面直接拖拽到模拟器中安装,相当的方便。
7.能够随便折腾
中国的手机都是没有Google框架和服务的,用不了Google Play。Google+,另一些其它Google推出的一些app。由于在有非常多时候我们须要模仿国外大公司产品的特效或者界面,这时候就须要去执行它(Google Play装好以后直接搜索想安装的软件就能够了。但须要代理或VPN)。
Genymotion的优势又出来,框架、服务随便装,随便弄,直接下好拖拽进去即可了。弄乱了弄坏了再建个新的。
8.截图
在执行中有什么问题或须要直接截图到电脑。比用手机截图方便非常多。
缺点:
1.偶尔遇到和真机效果不同的地方。公司的项目有个自己定义的搜索栏。用真机能够正常输入,但模拟器点不进去,一直不知道什么原因,除了这一个问题以外没有再发现类似情况。
2.偶尔会直接从程序里弹出来,看log应该是模拟器图形内存的问题。只是遇到这样的情况再执行一次就好了。
3.模拟不了kindle。应该是由于kindle的系统高度自制的原因吧。
Genymotion的中文官方http://www.genymotion.cn/
使用前须要注冊一个账号。并且要装Virtual Box虚拟机,非常easy,网上教程非常多。
总结:
说了这么多,目的还是和上次的Android Studio那篇文章一样。就是希望没用过的都来试试。
最后放几张关于Genymotion的使用图片。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTM5NjkwMTk5MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
最初执行Genymotion是没有Google框架和服务的,装好gapps后就多了Google Play,Google+,Gmail等应用
Google+
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTM5NjkwMTk5MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
Gmail截图
Google Play截图
facebook截图。大家有的话能够加我好友啊,哈哈。
。。
关于ANDROID模拟器的一些事的更多相关文章
- eclipse中如何查看一个android模拟器的内部文件
eclipse中如何查看一个android模拟器的内部文件,有时要在其中添加一个文件夹或是什么的,要手动的做这件事,而不能够用代码去完成时,就要用这个方法了. 1.首先,打开一个安卓模拟器. 2.这个 ...
- 比真机还快的Android模拟器——Genymotion
比真机还快的Android模拟器--Genymotion ----转载请注明出处:coder-p ...
- Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅
原文:Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅 在前几期中总结分享了Android的前世今生.Android 系统架构和应用组件那些事.带你一起来聊一聊Android开发 ...
- 第三方Android 模拟器流畅速度快,适合开发人员
“工欲善其事,必先利其器.” 使用Android模拟器开发和调试应用肯定比使用真机方便.但相比XCODE的IOS模拟器,Android SDK自带的AVD实在不争气,不过一些第三方的模拟器却表现不俗! ...
- Android 谈谈封装那些事 --BaseActivity 和 BaseFragment(二)
1.前言 昨天谈了BaseActivity的封装,Android谈谈封装那些事--BaseActivity和BaseFragment(一)有很多小伙伴提了很多建议,比如: 通用标题栏可以自定义Vi ...
- android模拟器没有键盘的解决方法
刚开始使用android模拟器的时候,发现自己创建的AVD启动后没有出现侧边的键盘,在网上搜索后,发现很多人都有这个问题,也有文章说直接使用PC上的键盘,因为有对应的快捷键.但是,没有键盘,始终不爽! ...
- 向Android模拟器中批量导入通讯录联系人
使用adb命令向Android模拟器中批量导入通讯录联系人的方法: 使用adb提供的命令, 可以非常方便地从PC中将通讯录批量导入android模拟器中. 首先要先准备好固定格式的vcf文件, 该文件 ...
- Andy - 又一款速度流畅的免费安卓 Android 模拟器 (支持手机无线控制电脑模拟器)
随着 Genymotion.BlueStacks 等电脑上的 Android 模拟器流行起来之后,似乎很多人都发现在电脑上运行使用安卓APP软件.畅玩手机游戏确实很有乐趣. 今天我们又发现了一款全新免 ...
- android 模拟器上网问题
android 模拟器上网问题 1.配置Adroid环境变量(Win7为例) ,启动模拟器 第一步:桌面右键——>我的电脑——>高级系统设置 第二步:高级——>环境变量——&g ...
随机推荐
- 删除数据库所有存储过程的SQL语句
--/第1步**********删除所有表的外键约束*************************/ DECLARE c1 cursor for select 'alter table ['+ o ...
- R语言学习笔记:choose、factorial、combn排列组合函数
一.总结 组合数:choose(n,k) —— 从n个中选出k个 阶乘:factorial(k) —— k! 排列数:choose(n,k) * factorial(k) 幂:^ 余数:%% 整数商: ...
- 函数fgets和fputs、fread和fwrite用法小结(转)
字符串读写函数fgets和fputs: 1.fgets()函数:原型char *fgets(char *s, int n, FILE *stream);从流中读取n-1(n默认1024)个字符之前,如 ...
- 一步一步学习IdentityServer3 (8)
IdentityServer3结合Hangfire及Cookies中间件实现授权 Idr3数据库Token过期管理 GlobalConfiguration.Configuration.UseSqlSe ...
- 关于《C++ Templates》
最近买了<C++ Templates>来看,书最开始部分阐述了关于此书的一些编程风格.本人感觉非常好,有些地方之前一直容易搞混,这里却讲述的很清楚.例如: 关于下面几种风格的代码: voi ...
- linux中shell,awk,sed截取字符串方法总结
转自:http://www.cnblogs.com/kinga/p/5772566.html Shell 第一种: ${parameter%word} 最小限度从后面截掉word${parameter ...
- vim中E121:无法打开并写入文件解决办法
1.使用命令 :w !sudo tee % 保存即可. 其中: 冒号(:)表示我们处于vim的退出模式: 感叹号(!)表示我们正在运行shell命令: sudo和tee都是shell命令: %表示从 ...
- MongoDB入门教程一[文档与集合]
MongoDB 是面向集合存储的文档型数据库,其涉及到的基本概念与关系型数据库相比有所不同.举个例子,在关系型数据库中,我们记录一个订单的信息,通常是这样设计表结构的: 设计一个订单基本信息表和一个订 ...
- CentOS 配置自启动Redis
第一步: 在/etc/init.d/目录下建立一个名字为 redis 的启动脚本 cd /etc/init.d touch redis 然后在这个脚本中添加如下脚本 <注意修改自己的PIDFI ...
- 基于 Laravel 开发博客应用系列 —— 从测试开始(二):使用Gulp实现自动化测试
3.使用 Gulp 进行 TDD(测试驱动开发) Gulp 是一个使用 JavaScript 编写的自动化构建工具.用于对前端通用任务(如最小化.压缩.编译)进行自动构建.Gulp 还可以用来监控源代 ...