第2章
Android开发工具新接触
工欲善其事,必先利其器。Google也不会让我们拿个记事本就开始编程。还好,它提供了IDE(Integrated Development Environment,集成开发环境)给我们。一个好的开发IDE不仅可以让我们的开发事半功倍,更能让开发者把更多精力专注于业务逻辑本身,而不必过多关注底层的细节。本章将向读者介绍Android应用层开发的基础开发环境。
学习本章,你将了解到以下内容:
● 最新的Android开发IDE——Android Studio安装环境配置
● Android Studio使用技巧
● ADB命令使用技巧
● Genymotion模拟器使用
2.1 Android开发IDE介绍
在很长的一段时间里,Google都是基于Eclipse来作为Android开发的综合性IDE,因为开发一个专业的IDE是一件浩大的工程。
作为一个全能型的开发IDE, Eclipse绝对算得上是经典中的经典,不过对于Android开发者来说,Eclipse也有不少美中不足的地方,比如内存占用高、经常崩溃、开发界面不美观,等等。不过更重要的是,Android是作为一个插件的形式存在于Eclipse中,仅仅是这一点就让Google很无奈了,随着Android的日益强大,Eclipse越来越不能满足它的需求了,这就好比为什么IceFrog要抛弃War3平台的Dota去重新开发Dota2,因为War3平台的限制,已经让它不能满足更加炫丽的效果了。由此,Google在2013年的I/O大会上发布了Android Studio。不过那时候Android Studio只相当于一款给开发者的玩具,功能还很不完善,bug也很多,但再怎么不好,它也是Google一手打造的,Google正在不遗余力地完善它,在2014年的I/O大会上重新亮相的Android Studio,给开发者带来了不小的惊喜。
图2.1 Eclipse
图2.2 Google官网上Android Studio介绍页面
2.1.1 Android Studio初体验
说到我们为什么要用Android Studio取代Eclipse来作为Android的开发工具,就不得不说这次Android在2014年底的重大更新Android Lollipop了。Android 5.X这次不仅仅是作为手机移动端操作系统了,而是融合了车载、可穿戴、TV等各个方面的系统。因此,Google需要有一个载体推广它的各项服务,Android Studio在开发者的层面上,整合了它的云服务、Go语言、车载、可穿戴、TV等各项功能,并提供了强大的云支持。这种生态系统的整合,是Google带给Android Studio最大的礼物。不过对于国内的Android开发者来说,我们使用它的原因是——它是一个不错的IDE, UI设计更加即时、代码提示更加丰富、Lint更加智能等,比Eclipse更加专业。相比Eclipse, Android Studio是专业的Android开发,而Eclipse是全能型,论广度自然是Eclipse更胜一筹,但论专业性Eclipse就望尘莫及了。
大家可以去Github上看看最近上传的项目,基本上已经看不见Eclipse工程的影子了,清一色的Gradle项目,Android Studio在国外已经非常普遍了。相信这也是我们使用Android Studio的一个原因吧,Github上国外的开发者都在使用,如果你想紧跟Android的技术前沿,你就必须用Android Studio。
Android Studio已经发布了稳定版Android Studio 1.1.0。功能和性能上都较之前的Beta版有了很大的提高,特别是Gradle编译工具,在Beta版上极慢的编译速度,让不少人非常郁闷,现在的正式版,总算是让人们可以接受了。而且最新的Android Studio已经支持了NDK的开发,对需要使用NDK的开发者来说,这是一个更加令人振奋的消息。
2.1.2 Android Studio配置
既然Google已经把Android Studio作为官方指定的Android开发IDE,那么我们也没有理由不跟一跟潮流。首先,要下载Android Studio。Android Studio官网的下载地址为http://developer.android.com/sdk/installing/studio.html,打开页面如图2.3所示。
图2.3 Android Studio官网下载页面
另外,给大家介绍一个非常好用的镜像网站——AndroidDevTools,地址为http://www.androidd evtools.cn/。
这里汇集了大家开发时所需要用到,但是又不容易下载到的一切资源,这里给网站创建者点个赞。
图2.4 AndroidDevTools
下载完Android Studio之后,要进行安装。它的安装过程与一般的软件安装没有什么区别,这里只需要注意一点,在运行Android Studio之前,需要配置一下JDK的安装路径,代码如下。
JAVA_HOME : C:\xxx\java\jdk1.x (JDK安装目录)CLASSPATH : %JAVA_HOME%\lib; %JAVA_HOME%\lib\tools.jar; %JAVA_HOME%\lib\dt.jar Path : %JAVA_HOME%\bin
网上有很多人说Android Studio安装好了之后无法运行,其实大部分的问题都是由于没有配置好JDK的路径。
运行Android Studio,启动界面如图2.5所示。
图2.5 启动画面
图2.6 Setup界面
选择“Start a New Android Studio project”选项。第一次创建项目,Android Studio会去下载Gradle的相关配置文件,默认下载地址是C:\Users\Administrator\.gradle,下载的等待时间较长。不过,我们也准备了一剂“良药”,打开C:\Users\Administrator\.gradle下的C:\Users\ Administrator\. gradle\wrapper\dists\gradle-2.1-all\27drb4udbjf4k88eh2ffdc0n55文件夹,这串很奇怪的数字文件夹是随机生成的,我们看到下面gradle-2.1-all.zip的.part文件。知道了这个版本号,我们就可以使用迅雷这样的下载软件到官网上快捷下载。下载好的gradle-2.1-all.zip文件,就放到这个奇怪的数字文件夹下,不用解压,Android Studio运行的时候会自动解压,这样就“偷梁换柱”了。重启Android Studio之后,再创建新工程就只需要下载一些jcenter的依赖包,这些都很小,应该很快就下载好了。创建好的工程如图2.7所示。
图2.7 Android Studio主界面
如果你能正常看见这个界面,并且编译通过,那就说明已经配置成功了。当然,如果你是Eclipse的死忠,Android Studio也提供了从Eclipse迁移到Android Studio的方法。在Eclipse中选择要导出的项目,单击鼠标右键,选择导出,如图2.8所示。
图2.8 从Eclipse导出工程到Android Studio
继续选择图2.8中Android下的“Generate Gradle Build files”选项就可以了。然后在Android Studio中选择导入生成的Build.gradle文件,即可导入Eclipse IDE创建的Android程序。
下面我们来看看如何美化Android Studio。俗话说“人靠衣装马靠鞍”,如果看得舒服,编程的过程就可以更加身心愉悦。在主界面工具栏上单击如图2.9所示的“小扳手”按钮。
图2.9 单击此按钮进行设置
进入设置对话框后,可以先进行一下外观设置,如图2.10所示,选择Appearance标签。
图2.10 外观设置
在Theme里面可以选择不同的主题,如Windows、Intellij、Darcula等,其中黑色背景的Darcula主题号称是程序员专用背景主题。
以前旧版本的Android Studio会碰到中文乱码的问题,实际上就是因为字体不兼容,只要在Appearance标签中的“Override default font”里面更改字体即可。
设置字号大小时选择Editor下的Colors&Fonts标签,如图2.11所示。
图2.11 颜色字体设置
当然,默认的设置是无法更改的,所以解决方法是单击“Save as”按钮,随便取个名字,即可设置我们需要的字号大小,如图2.12所示。
图2.12 设置字号大小
以上是基本的编辑器界面设置。设置好之后,我们来看一些更高级的技巧。首先是快捷键设置,选择Keymap标签,如图2.13中的左图所示。
图2.13 快捷键设置
图2.13中的右图展示了Android Studio的默认快捷键设置,同时,如图2.14所示,我们可以选择更改不同的快捷键风格,其中也有类似Eclipse的快捷键风格。
图2.14 快捷键风格
说到Eclipse,大家都注意到当鼠标指针悬浮到代码上的时候会弹出提示,而到了Android Studio,发现这个功能没有了。其实,Android Studio省去这个功能也是有道理的,特别是当机器配置不高的时候,这样的悬浮框会让页面非常卡。所以,Android Studio是默认没有打开这个功能的。如果想要打开这个功能,可按如下步骤操作。
选择Editor标签,在Other中选择勾选“show quick doc on mouse move”选项,如图2.15所示。此时就还原到了Eclipse的状态,即可以通过鼠标来显示悬浮提示。
图2.15 鼠标悬浮提示
最后再来看一下Android Studio更为强大的代码提示功能。
在Editor标签中选择Code Completion选项,在“Code Sensitive completion”里面选择“None”,即提示不区分大小写。当输入代码时,不区分大小写也能弹出代码提示。
到这里我们对Android Studio有了一个基本的认识,并设置了一些常用的配置。当然,作为一款Google主推的Android IDE, Android Studio的功能远不止上面列举的这些。我们也没有必要一下子掌握Android Studio的所有知识,因为在使用Android Studio的时候,我们可以逐步去掌握它的使用技巧。例如每次打开Android Studio弹出的Tip(如图2.17所示),就是一个非常好的学习Android Studio的小工具,所以在刚开始使用Android Studio的时候,最好将其打开,来了解不同的使用技巧。
图2.16 代码提示
图2.17 弹出的Tip
2.2 Android Studio高级使用技巧
配置好了Android Studio,就等于已经配了一把好枪,可以准备上阵杀敌了。但是,别忘了,我们还得买子弹!这里的“子弹”,自然是开发Android最重要的SDK开发工具,首先来看看如何获取最新的SDK开发工具。
2.2.1 更新SDK
首先,点击Android Studio工具栏上的SDK Manager图标,如图2.18所示,打开SDK Manager。
图2.18 SDK Manager
打开SDK Manager后,如果看见一连串的Connection refuse提示,则需要在SDK Manager的菜单栏中选择Tools、Options选项,打开的界面如图2.19所示。
图2.19 配置代理
在Setting中输入“翻墙”代理的IP和端口(大家可以在AndroidDevTools网站上找到最新的镜像地址和端口),然后勾选“Force https://…sources to be fetched using http://... ”选项,意思是使用http来代替https请求。接下来就可以大量买进我们的“弹药”了,把你想下载的都下载下来吧,图2.20展示了所有的SDK资源。
图2.20 SDK
针对其中重要的文件,我们来具体了解一下。
如图2.21所示,Android Build Tools是Android SDK的Build工具,经常会有更新,建议保持最新,它对应着Gradle中Module下的Build.gradle文件中的buildToolsVersion属性,如图2.22所示。
图2.21 Build Tool s
图2.22 BuildToolsVersion
图2.23则展示了Android模拟器的系统镜像文件。
图2.23 Android模拟器系统镜像
如果要创建模拟器的话,那么这个可是不能少的,这就好比是刷机的ROM。当然,你也可以选择使用Genymotion模拟器来代替原生的模拟器,这样也就不需要下载这些系统镜像文件了。
图2.24展示了SDK API的文档资源。
图2.24 API Doc
在Android Studio中查看文档时,就要靠它了,如果你没有下载,自然是看不到说明的,建议还是下载,随时可以查阅。
图2.25展示了Android的源代码资源。
图2.25 Android Source
只有下载了源代码压缩包,当在Android Studio中按住Ctrl键查看源代码时,才可以看见源代码。如果没有下载,就只能看见class文件了。
2.2.2 Android Studio常用界面
当我们补充好弹药,就可以整装待发了。下面来看看Android Studio经常会用到的一些界面。
图2.26 Android Studio Debug窗口
图2.26展示的是Android Studio的调试、运行窗口,右边显示LOG信息,左边显示进程信息,相比Eclipse经常打不出LOG的调试界面来说,这已经足够高大上了。在这里我们还能方便地进行截图、录制屏幕等操作。
此外还可以直接导出Java Heap、Method Trace、系统Memory、Package等信息,如图2.27所示。
图2.27 系统信息图
在最右下角,还有Memory Monitor,如图2.28所示,这个界面可以监视内存消耗,从而进行性能优化。另外,在最新版的Android Studio中,还增加了对CPU使用率的实时监控。
2.28 Memory Monitor
相信眼尖的朋友已经发现了,我们使用的都是Genymotion模拟器,而不是Android自带的模拟器,相信原因大家都懂的。不懂也没关系,等你用用原生的模拟器,再去用用Genymotion就会知道为什么了,后面我们会详细讲解Genymotion的使用。接下来,我们再来看看Android Device Monitor,单击Android Studio菜单栏中的Android Device Monitor图标,如图2.29所示。
图2.29 Android Device Monitor图标
打开Android Device Monitor界面,如图2.30所示。相信这个界面,使用Eclipse的朋友应该也很熟悉了,Android Studio也集成了这个功能,使用方法和Eclipse基本没什么区别,这里就不详细讲解了,很多功能对于分析应用性能、优化调试还是很有帮助的。图2.31展示了Android Device Monitor中的CPU Load信息。
图2.30 Android Device Monitor
最后,我们再来看看Android的Debug功能,这也是Android Studio一个很不错的特点,整个风格感觉有点类似Visual Studio了。
图2.31 CPU Load信息
图2.32展示了断点显示风格。
图2.32 断点显示风格
图2.33展示了Debug分析界面。下面的列表中列出了当前获取到的变量值,同时可以跟踪断点,实时计算变量值。
图2.33 Debug分析界面
图2.34、图2.35、图2.36分别展示了Android Studio的断点查看、实时计算变量值、多种调试方法等功能。这些改变都极大地方便了调试功能。
图2.34 断点查看
图2.35 实时计算变量值
图2.36 多种调试方法
2.2.3 导入Android Studio工程
最后我们再来看看如何把一个Android Studio项目导入Android Studio中。造成这一困惑的一个根本原因就是Android Studio使用的编译工具Gradle的问题。由于在Android Studio Beta版本中Gradle还不是成熟的稳定版,所以经常会有版本更新。如果某个项目使用的是Gradle1.5进行的编译,而本地又没有该版本的Gradle的时候,Android Studio就会去下载这个版本的Gradle,而有时,我们无法正常访问到这些资源,所以经常导致Android Studio卡死。为了解决这个问题,我们可以按以下方法操作。
首先在本地用当前版本的Gradle创建一个正常的项目,保证可以编译通过即可。然后,用本地项目中的“gradle”文件夹和“build.gradle”文件,去替换要导入项目中的这两个文件夹,如图2.37所示。
图2.37 替换文件夹
接下来,再打开这样的项目,就可以使用本地的Gradle对项目进行编译了。
关于我们的武器——Android Studio的基本使用,就介绍到这儿。相信机智的读者一定能发现更多优秀的功能,这一切都为了一个目的——让开发变得更美好!
2.3 ADB命令使用技巧
虽然手机在我们的世界里扮演着越来越重要的角色,但是电脑就像一位母亲一样,随时守候着我们的手机,而连接手机和电脑的“脐带”,就是ADB——Android Debug Bridge。借助这样一个工具,我们可以用电脑来操纵手机,不仅是开发者需要,普通的用户也会需要,下面我们就来看看Android ADB。
2.3.1 ADB基础
ADB工具位于SDK的platform-tools目录下,因此在命令行中使用ABD的时候,需要通过cd命令,切换到该目录下,或者将platform-tools的路径添加到系统环境变量中,这样就可以直接使用了。配置好后,在命令行中输入以下命令。
C:\Users\Administrator>adb version
如果显示如下内容,就说明配置成功了。
Android Debug Bridge version 1.0.32
如果是Windows系统,则还需要下载对应的手机驱动。Linux系统则不需要下载。手机驱动一般在手机品牌的官网上可以找到。这里介绍一种更简单的方法,那就是靠各种手机助手来帮忙,像豌豆荚、91、QQ手机助手等,都可以帮我们下载到相应的手机驱动。通过USB端口连接手机后,只要开启这些手机助手,就会自动识别手机并下载相应驱动,这是不是很方便呢?其实,这些手机助手也是使用ADB来实现它的功能的,由此可见ADB的功能是多么强大。
下面我们再来设置一下手机端,这里Google也是为了安全而设计了一套机制。
首先进入Setting,选择“about my phone”,通过不断单击“内部版本号”来激活开发者选项。进入开发者选项后,就可以选择“USB Debug”了。这时候,如果你的手机连接了电脑,那么手机界面上会显示“是否需要对这台电脑授权”的选项,选择“OK”后,电脑就通过ADB连接上了这台手机。
接着,在命令行中输入如下命令。
C:\Users\Administrator>adb shell
然后就可以使用shell命令了。如果你了解Linux的话,一定不会对Shell陌生,我们前面也说了,Android其实就是基于Linux开发的,所以这里出现Shell也不奇怪。在进入Shell之后,我们就可以使用很多Linux下的Shell命令。如下这些常用的Shell命令都可以使用。
shell@t03gchn:/ $ ls — grep "data" ls — grep "data" data data_1 data_2 data_3 shell@t03gchn:/ $ cd data cd data
2.3.2 ADB常用命令
下面我们来看一些ADB常用命令。
● 显示系统中全部Android平台
C:\Users\Administrator>android list targets Available Android targets: ---------- id: 1 or "android-19" Name: Android 4.4.2 Type: Platform API level: 19 Revision: 4 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W XGA720, WXGA800, WXGA800-7in Tag/ABIs : default/armeabi-v7a, default/x86
● 安装Apk程序之Install
adb install-r应用程序.apk C:\Users\Administrator>adb install -r F:\Test.apk
● 安装Apk程序之Push
adb push <local> <remote> C:\Users\Administrator>adb push D:\Test.apk /system/app/
以上两种方法都可以安装上Apk,但是它们也有不同。Adb Install是将Apk安装到data/data目录下,作为普通的用户应用程序。而Adb Push则不是安装命令,它是将一个文件写入手机存储系统。因此,只要拥有相应的权限,就可以把任何Apk放到任何目录下,甚至是放到System目录下,成为一个系统应用程序。
从上面的分析我们可以看出,Adb Push不仅可以安装Apk,它最大的用处还是向手机写入文件。
● 向手机写入文件
adb push <local> <remote> C:\Users\Administrator>adb push D:\file.txt /system/temp/
同理,我们也可以获取手机中的文件,上传到我们的电脑上。
● 从手机获取文件
adb pull <remote> <local> C:\Users\Administrator>adb push /system/temp/ D:\file.txt
这样就可以把手机上的文件获取到本地了。其实这些东西,在Android的Android Device Monitor工具中都可以直接使用,如图2.38所示。
图2.38 Android Device Monitor
接下来,再来看看开发者是怎么使用ADB的。
通过Logcat来查看Log, Grep命令需要在Linux下使用。
● 查看Log
C:\Users\Administrator>adb shell shell@t03gchn:/ $ logcat — grep "abc"
● 删除应用
adb remount(重新挂载系统分区,使系统分区重新可写)。 adb shell
cd system/app rm *.apk
● 查看系统盘符
C:\Users\Administrator>adb shell df Filesystem Size Used Free Blksize /dev 917.4M 40.0K 917.3M 4096 /sys/fs/cgroup 917.4M 12.0K 917.4M 4096 /mnt/asec 917.4M 0.0K 917.4M 4096 /mnt/obb 917.4M 0.0K 917.4M 4096 /system 827.8M 817.3M 10.5M 4096 /cache 551.7M 9.8M 541.9M 4096 /data 12.9G 2.9G 10.1G 4096 /persist 15.8M 4.2M 11.6M 4096 /firmware 64.0M 44.4M 19.5M 16384 /mnt/shell/emulated 12.9G 2.9G 10.1G 4096
● 输出所有已经安装的应用
该命令同样可以在Linux下使用Grep来过滤结果。
adb shell pm list packages -f
● 模拟按键输入
adb shell input keyevent C:\Users\Administrator>adb shell input keyevent 3
最后面的数字就是要执行的Keyevent的Code,可以在网上查到对应的Code,这里列举一些常用的。
input keyevent 82 menu input keyevent 3 home input keyevent 19 up input keyevent 20 down input keyevent 21 left input keyevent 22 right input keyevent 66 enter input keyevent 4 back
● 模拟滑动输入
adb shell input touchscreen <x1> <y1> <x2> <y2> adb shell input touchscreen swipe 1866518350
● 查看运行状态
可以列出很多运行状态,详细的命令大家可以查看API文档。
比如列出Activity的运行状态,同时过滤“tencent”关键字。
adb shell dumpsys shell@t03gchn:/ $ dumpsys activity activities — grep "tencent" dumpsys activity activities — grep "tencent" * TaskRecord{44127db0 #8 A com.tencent.mm U 0} affinity=com.tencent.mm intent={act=android.intent.action.MAIN cat=[android.intent.category. LAUNCHER ] flg=0x10600000 cmp=com.tencent.mm/.ui.LauncherUI} realActivity=com.tencent.mm/.ui.LauncherUI * Hist #1: ActivityRecord{4408e7e0 u0 com.tencent.mm/.ui.LauncherUI} packageName=com.tencent.mm processName=com.tencent.mm app=ProcessRecord{447a93988134:com.tencent.mm/u0a10145} Intent{act=android.intent.action.MAIN cat=[android.intent.category. LAU NCHER] flg=0x10200000 cmp=com.tencent.mm/.ui.LauncherUI bnds=[10,752] [170,938] } frontOfTask=true task=TaskRecord{44127db0#8 A com.tencent.mm U 0} taskAffinity=com.tencent.mm realActivity=com.tencent.mm/.ui.LauncherUI baseDir=/data/app/com.tencent.mm-1.apk dataDir=/data/data/com.tencent.mm
这里简单地grep了“tencent”的Activity信息。
● Package管理信息
PM命令和Dumpsys命令一样,非常强大、复杂,详细的命令大家可以查看API文档。
比如列出所有的Package。
shell@t03gchn:/ $ pm list packages -f package:/system/app/SecVideoPlayer.apk=com.sec.android.app.videoplayer package:/system/app/DeepSea.apk=com.samsung.android.livewallpaper.deepsea package:/system/app/Keystring_DFT.apk=com.sec.android.app.DataCreate package:/data/app/com.sina.weibo-2.apk=com.sina.weibo package:/system/app/SuggestionService.apk=com.sec.android.app. SuggestionService package:/system/app/DualClockDigital.apk=com.sec.android.widgetapp. dualclockdigi tal
通过PM命令,可以看见Android中关于Package的各种相关信息。
● AM管理信息
这个命令依然很复杂,而且更强大。所以,详细的命令大家还是看看API文档吧。
这里举一个简单的例子——启动一个Activity。
Adb shell am start-n包名/包名+类名
● 录制屏幕
adb shell screenrecord /sdcard/demo.mp4
● 重新启动
adb reboot
ADB的命令已经讲了不少了。不过,ADB的命令可远不止这么多,这里只是大致地让大家了解了ADB的一些常用功能及技巧,相信大家在使用的过程中一定会发现更多更有用的ADB命令。
2.3.3 ADB命令来源
最后,我们来看看这些命令都是怎么来的,打开如下两个目录,如图2.39和图2.40所示。
图2.39 CMD目录
图2.40 TOOLBOX目录
这两个目录下的\system\core\toolbox和\frameworks\base\cmds就是我们所有ADB命令和Shell命令的来源了。
ABD就像一根长长的纽带,手机在这头,电脑在那头。
2.4 模拟器使用与配置
当我们开发Android应用程序的时候,大多会使用Android真机进行调试。当然,在Android刚出来的前几年,Android手机还没有这么流行,那时候,模拟器就好比一道曙光,让没有Android设备的人也能学习、开发Android应用程序。虽然现在Android设备已经相当普遍了,但模拟器有时候还是挺有用的。不过,Android官方的模拟器实在是太让人心碎了,不提也罢。这里介绍一个第三方的模拟器——Genymotion。相信不少朋友都对其有所耳闻。的确,名声在外,号称史上最快的模拟器可不是吹的。
首先访问官网(http://www.genymotion.net/),如图2.41所示。然后下载模拟器。虽然Genymotion有收费版,但是一般的开发者使用免费版就已经可以满足绝大部分的开发需求了。如图2.42所示为免费版与专业版的功能对比。
图2.41 Genymotion下载
图2.42 下载模拟器
单击“Download”按钮,下载安装程序,安装过程没什么好说的,唯一需要注意的是Genymotion是依赖VirtualBox的,所以它的安装程序中也集成了VirtualBox,安装的时候会一起安装。
安装好了之后,启动并登录Genymotion,进入如图2.43所示的界面。
图2.43 Genymotion主界面
这里笔者已经下载了一个Nexus 5,大家可以无视。我们来看看如何新增模拟器。在如图2.43所示的界面中单击上方的“Add”按钮,弹出如图2.44所示的界面。
图2.44 下载镜像文件
可以看到这些都是非常高端的旗舰机型。下载好之后,单击如图2.45所示界面中上方的“Start”按钮,启动模拟器,如图2.45所示。
图2.45 启动模拟器
模拟器的启动界面如图2.46所示。
图2.46 模拟器启动界面
模拟器启动完成后的锁屏界面如图2.47所示。Genymotion启动之后,如图2.48所示。
图2.47 模拟器锁屏界面
图2.48 模拟器主界面
Genymotion更新非常快,Android 5.0镜像出来没多久,Genymotion上就已经可以使用Android 5.0的模拟器了,极大地方便了没有Nexus系列手机的开发者。
不过模拟器虽好,但是真正的开发还是建议使用真机进行,毕竟模拟器再快,也不如真机用得舒心。