原文地址 翻译:DeveloperLx
更新笔记: 本教程已由Eunice Obugyei更新至适配最新版本的Android Studio。 原教程是由Matt Luedke编写的。上次的更新是由Darryl Bayliss和Megha Bambra完成的。
人们对Android app的开发有着强劲的需求,因为全球每月有超过20亿的Android活跃用户。这是一个令人激动的平台,它为创建app提供了广阔的空间。
本教程不需要任何的预备知识,除了你的意愿和一台Mac - 当然你也可以在PC上开发Android,但这些教程主要是提供给使用Mac的开发者的。
你将要学到如何设置全部所需的工具,来开启你成为一名Android开发者的道路。下面是你将在本教程中所做的事情:
- 下载并安装Android Studio.
- 在模拟器和真机上测试你的app。
- 创建一个简单的“Hello World!” Android app。把这句话展示到你设备或模拟器的屏幕上。
- 导入一个样本工程到Android Studio中。
开始任何新平台,最重要的事就是配置你的环境了,Android也不例外。
花一点时间,有条不紊地遵循每一步完成任务非常得重要。即使完全遵循了这些步骤,你也可能需要去解决一个或多个的问题。你的系统配置或是产品的版本都有可能导致意外结果的发生。
记住刚提到的一切,让我们来快速检查一个你是否已安装了Java开发的工具包(JDK)。你最好使用值得信赖的老版Terminal来完成检查。
注意:你将在接下来的几段中了解到本教程的基本步骤,但如果你想要深入了解Terminal的知识,你可以在这篇博客teamtreehouse.com中找到一个很好介绍性的教程。
简单地说,使用Terminal就像是你在车罩下面看。这时你是在真正面对面地了解机器,没有任何复杂的图形界面。
你可以在Mac上轻松地找到Terminal:打开启动版并输入terminal到屏幕顶部的搜索框中,并当Terminal被展示出来的时候,选择它。
打开Terminal之后,输入java -version
。你应该会看到一些带有版本号的输出,就像下面这样。
如果你看到的不是这样,就说明你还没有安装JDK。Terminal可能会告诉你-bash: java: command not found
,或是No Java runtime present, requesting install.
并弹出一个窗口引导你前往Oracle的网站进行下载。
你可以点击More Info…或到Oracle上去下载JDK。
安装完JDK之后,前往Android Studio页,点击Download Android Studio按钮。
Google会不断地更新这个页面,因此你看到的版本可能会比上面截图中的更新。点击Download Android Studio按钮,你会看到一个同意条款条件的请求。
仔细阅读之后(每个人都会花时间进行完整的阅读,对么?)接受并点击下面蓝色的Download Android Studio For Mac按钮。下载完成后,你就可以像安装其它程序一样地安装Android Studio了。
下载的链接将会重定向到包含OS X,Windows和Linux操作系统安装引导的页面中。如果这个引导没有出现的话,你可以直接访问 这里。
安装完成之后,你就可以运行Android Studio了!
第一次加载的时候,你会看到一个设置向导。
点击Next移动到Install Type页。整个过程可能需要花费几分钟的时间。
选择Standard并点击Next。
在Verify Settings窗口中,你可以有机会来确认你的设置。点击Finish来开始下载SDK组件。
下载完成之后,点击Finish。
几分钟后,你会看到一个欢迎屏幕,它可以作为构建所有Android的大门口。
即使你刚刚下载的Android Studio,它也有可能不是最新的版本。在欢迎窗口的屏幕底部,依次选择Configure/Check for Update来检查是否有更新的版本可用。
如果有新的版本可用,就会弹出一个类似下面截图的窗口。点击Update and Restart按钮来让它完成更新的工作。
每个版本的Android都有它自己的SDK(Software Development Kit)来让你创建Android平台上的app。由于你刚刚已经过了安装向导,你就已经拥有了最新版本的SDK。
了解如何安装其它版本的SDK,对于你开发支持全部版本Android的app是非常有用的。
SDK允许你根据个人的配置,创建AVD(Android虚拟设备)来测试你的app。
在Android Studio的欢迎屏幕上,选择Configure/SDK Manager。
启动之后,你会看到一个像下面这样的窗口:
该窗口的第一个tabSDK Platforms,列出了全部可供下载的Android SDK平台。
打开Show Package Details选项可以展示各个SDK组件,例如其平台本身或和API级别相关的源,如系统映像。
注意SDK平台旁边的选框;如果有更新的话,它就会是可用的。
默认情况下,SDK Manager会安装最新版本的包和工具。选择如上图所示的SDK。如果你希望安装其它的SDK,就选择它们安装即可。
SDK Tools这个tab列出了最新版本的开发者工具和文档。类似于第一个tab,点击Show Package Details可以展示可用的SDK工具的版本。
例如,这个列表中选择的三个组件是Android SDK Build-Tools,Android SDK Tools和Android SDK Platform-Tools。每个包含的组件旨在协助Android的开发及跨多个SDK进行工作。使用此tab上的默认选择。
SDK Update Sitestab展示了Android SDK工具和插件的更新地址。你并不限制于在这个tab下列出的地址。你还可以添加托管自己Android SDK插件的其它网站,然后从这些网站中进行下载。
为了正确地进行设置,请选择上面截图中的选项。点击屏幕底部的Apply。你会看到一个确认选择的包的对话框,接受并继续。点击OK来关闭窗口。
确认对话框关闭后,会弹出一个许可协议。
阅读后,选择Accept并点击Next。SDK管理器就会下载并安装这些项目。完成之后,点击Finish。你就会返回到SDK管理器窗口。然后点击OK就会将你带回到Welcome to Android Studio页。
现在就是有趣的事将要开始的地方了!
Android Studio有一个小工具可以帮助你一步一步来创建项目。在Welcome to Android Studio页中点击Start a new Android Studio Project:
注意:如果你当前已打开了一个Android Studio的项目,因而无法看到欢迎页。可以从菜单栏中选择File/New Project来创建新的项目。
Android Studio会弹出一个项目创建页:
像上面这样在Application name中输入OMG Android。并在Company domain文本框中输入你自己的名称。在你输入的过程中,你会注意到Package name自动地发生变化生成一个逆向风格的域名。
Package name用来唯一地标识你的app,以便在一台设备上的任何工作都能找到合适的源,避免app之间的冲突。
你可以将Project location设置为硬盘上的任一位置 - 如果你没有特定偏好的话,保持默认即可。点击窗口底部的Next按钮。
接下来的一页是Target Android Devices窗口。这里是你选择设备类型的操作系统的地方。
Minimum SDK这个下拉菜单设置了运行你的app所要求的Android的最低版本。这个SDk越新,你就可以使用更多的特性;然而,这个SDk越新的话,就只能支持越少的设备。
选择这个值是一个在你想要的功能和你想要支持的设备之间进行平衡的问题。这是开发Android的一个比较tricky的地方。
如果想要了解,你的App选择什么最低版本的SDK最合适,Android Studio可以帮助你。
随着你在下拉菜单中改变最低支持的SDK,在下面文本中就会反映运行这个Android版本所占的百分比。
想要了解更多关于每个版本SDK中的特性,可以点击下拉菜单下方的Help me choose。
关于更多API版本统计的信息,可以访问定期更新的Android Dashboards。
现在,你只是想要一个运行在Android手机上的App,它将会是你在默认的Minimum SDK下,默认看到的内容。对于本项目,请选择API 16: Android 4.1 (Jelly Bean)并点击Next。
下面的一步是选择你默认的Activity。
可以把Activity看作一个你app中展示内容,且用户可以进行交互的窗口。Activity可以占据全部的屏幕,也可以只是一个简单的弹窗窗口。
这个特定模板的选项范围,从一个基本的Activity开始,也就是一个带有Action Bar和Floating Button的黑色屏幕,直到一个嵌入了MapView的Activity。
随着你开发更多的app,你会创建更多的activity,因此必须进行很好的掌握。
选择Basic Activity并点击Next。
为了加速完成这一部分的内容,你可以使用默认预填充的值,但这些值实际上做了什么?
- Activity Name:为你的Activity起了一个名字,以便在代码中进行引用。系统将使用这个名称创建一个
.java
的类,它将最终成为你代码中用来引用此Activity的名称。 - Layout Name:你要用Java来定义你的Activity,但展示给用户的布局是一个特别的Android XML文件。你很快就会学习如何阅读和编辑这些文件。
点击Finish。
Android Studio在背后执行了一系列的操作,并创建你的项目。当Android Studio展示当前正在做什么的描述时,你可能会注意到如下的信息:
你发现了你熟悉的项目名称,但后面还有一个单词Gradle。
有一个像Android Studio这样的现代IDE,好处就是它可以帮助你处理很多的事情。但是,当你学习如何使用该软件时,大致地了解一下它为你做了些什么会更加得好。
Gradle是一个很容易使用的build工具,如果你进行更进一步的了解,就会发现它包含很多高级的选项。它会用你的Java代码,XML布局文件和最新的Android build工具构建成app的包文件,也就是被称为APK(Android Package Kit)的文件。
你可以定制你自己的配置,来让开发和生产版本的表现有所不同。你也可以添加对第三方库的依赖。
过了一会,Android Studio会完成构建你的项目。当然,当前的项目完全是空的,但它已经拥有了运行在Android设备或模拟器上所需的一切条件。
简要地查看一下项目的各个部分吧。
- manifests/AndroidManifest.xml文件提供了运行你的app所需的Android系统的重要信息。
- res是你的资源目录。App诸如图片,xml布局,风格,颜色等资源文件,均被定义在这个目录中。
- 你的所有UI都会被设计到res/layout目录下。你会使用Android XML来设计你的UI。
- res/menu是你定义app菜单内容的地方。
- res/values目录是你定义诸如位置尺寸(res/values/dimens.xml),颜色(res/values/colors.xml),字符串(res/values/strings.xml)等资源的地方。
打开res/layout/activity_main.xml并点击屏幕底部的Text。
这时就会展示出你main layout的xml代码。还会在屏幕的右边展示出它在设备上的预览图。
你已经获得了Android Studio并创建了一个app。如何来运行它?
Android Studio可以在计算机上模拟一个基于软件的Android设备,并在它的上面进行运行app,浏览网址,debug等一切你想做到的事情。这个功能就被称作Android模拟器。
你可以配置多个模拟器,并为每个模拟器设置屏幕的尺寸和平台的版本。由于设备是如此得多,你可能需要一整个房间来进行储存 - ok,可能有一点夸张,但你会有这样的想法。:]
如果你之前是通过标准的安装过程完成了设置向导,现在就已经有一个模拟器准备好了。
目前为止,你的计算机不得不模拟你在Android设备上执行的所有事,直到使用基于ARM的硬件前为止。大多数的计算机使用的都是基于x86的处理器,这就意味着你的计算机不得不将每条指令翻译成基于ARM处理器可以理解的,这样就会占用不少的时间。为了降低这个开销,Android Studio最近采取了HAXM驱动,它可以加速这个过程。
你仍然可以创建尽可能接近于实际设备的模拟器,但注意初始化加载的时间可能会久一些,这使得很多Android的开发者不愿使用模拟器。
说了这么多之后...无论如何让我们来配置一个模拟器,因为你需要知道如何去做!
点击AVD Manager。它是靠近工具栏右边的一个紫色的按钮,上面还有一个Android的小小的头像:
AVD Manager会打开一个页面,上面带有一个创新新设备的选项::
点击Create Virtual Device…按钮就可以去开始创建一个新的虚拟设备了。
第一步是选择设备的类型。在左侧的Category中,展示了一个你能够模拟的(TV,Wear,Phone,Tablet)不同类型设备的列表。选中Phone这个选项。在这页的中部,有一个附带其屏幕尺寸的设备的列表,分辨率和像素密度。让我们花一点时间来探索吧。
你现在需要的只是模拟手机大小的设备,但如果想要模拟Android Wear手表或Android TV的话,你也可以在这里选择。
从phone的category,设备列表中选择对你可用的Pixel,并点击Next。
在下一页中,你要选择Android设备将要运行的Android系统的版本。
在本教程中,选择Nougat,并确保选中的值在ABI这列中的值为x86,这种模拟器就可以在你的x86计算机上尽可能地运行。
注意:如果这个版本还未下载,请点击旁边的下载链接,待下载完成之后再继续后续的工作。
完成本页的配置后,点击Next前进到最后一页。
最后一页用来确认你的选择,并给出了一些配置其它属性的选项,诸如设备名称和启动时的方向等。点击Show Advanced Settings按钮,还可以展示更多诸如相机、网络和内存的设置等的额外配置。
使用默认的选项并点击Finish。
关闭AVD Manager并返回到Android Studio的主视图中。现在你已完成了所有的配置,点击Run按钮。
这时会弹出一个新的窗口,要求你选择测试App所使用的设备。当前你还没有任何运行的设备,因此选择刚刚创建的Pixel并点击OK。
注意:如果你遇到了一个错误This AVD’s configuration is missing a kernel file!!,请检查先前安装的Android SDK是否包含ANDROID_SDK_ROOT环境变量。可以在Stack Overflow查看此问题的相关探讨。
不要担心,第一次不能正常地工作,或花费几分钟让模拟器正确地启动起来,都并非是意料之外。坚持下去,完成之后,你会看到如下的界面:
哇。你刚刚已制作了你的第一个Android app。
正如你所注意到的,模拟器的右边有一个面板。它就是模拟器的工具栏。你可以使用它执行各种任务,诸如截图,屏幕旋转,音量控制和执行扩展的功能如模拟设备定位,来电,信息发送,指纹等等。
要访问扩展的功能,请点击屏幕底部的更多(…)图标。
如果你拥有Android的设备,并且你想要在上面运行你的app,请跟随上面的GIF动画。它演示了如何在你的设备上打开开发者模式。
以下是在Android设备上打开开发者模式的分步骤介绍:
- 打开你设备中的Settings。
- 向下滚动,找到并选择About phone。
- 滚动找到Build number并点击多次。你会看到一个toast提示到“You’re n steps away from becoming a developer”。继续点击,并当提示语改变为“You’re now a developer!”后,开发者模式就打开了。
- 找到Settings页并滚动到页面底部。你现在会看到Developer Options已处于打开状态了。
- 选择Developer Options。接下来,在Debugging部分中打开USB debugging开关。
- 通过USB把你的设备连接到计算机上。
- 你的手机会弹出一个对话框Allow USB debugging?来提示你确认这个选项 - 点击OK。
- 接下来,你的手机会要求你注册计算机的RSA秘钥指纹。如果这是受信任的机器,请点击Always allow from this computer选项。
现在你的设备已配置完毕,点击Run按钮。
就像之前一样,这里会弹出Select Deployment Target的对话框。你的设备现在应当出现在这个对话框中了。选择它并点击OK。
嗯...在你的设备上看到自己的app是不件很有价值的事?把它向你的朋友们展示一下吧。:]
注意:如果你的app早已在运行,可能你就不会得到提示。这是因为Android Studio上有一个新的被称作Instant Run的功能。我们将在本教程的下一部分中进行讨论。关闭模拟器,再次点击Run按钮。
Android Studio 2.0引入了被称作Instant Run的特性。Instant Run使得你可以将更新(代码和资源)推送到真机或是模拟器正在运行的app上,无需进行重新安装。这样,你就可以在较短的时间内看到你的更改了。
你可以对代码进行三种方式的改变:a hot swap,warm swap,和cold swap。Instant Run会根据你所做的改变,通过下列的方式之一来推送更新:
- Hot Swap:应用于方法的改变。应用于方法的改变。你的app会使用存根的方法继续运行,直到下次调用相关的方法时再进行更改。这是最快的交换。
- Warm Swap:应用于资源的改变。他从重启你当期的activity以更新资源。
- Cold Swap:即使没有执行重新安装,Instant run也会重启整个app。这主要用于结构性的代码更改
继续尝试Instant Run。
点击Android Studio/Preferences/Build, Execution, Deployment/Instant Run以打开Instant Run。确定勾选了 Enable Instant Run to hot swap code/resource changes on deploy且不勾选Restart activity on code changes。
如果你的app还未运行,请点击Run按钮并等待它运行。
当app运行起来后,右侧的Apply Changes按钮就会处于可用状态。
在你的app运行的时候,点击浮动的按钮,展示消息,在屏幕的底部替换你自己的动作。
改变消息来测试Instant Run。
打开MainActivity,在onCreate()方法中,将文本:Replace with your own action替换为:Hello Instant Run。
然后点击Apply Changes。现在当你点击按钮的时候,就会看到新的消息。这就是一个hot swap的例子。
Instant Run可以通过减少更新你代码和资源变化所需的时间,来帮助你快速地coding。
在你开发Android的过程中,你会经常需要导入已存在的项目。以下是导入一个项目的具体步骤:
- 下载 这个项目作为你的测试对象。
- 下载完毕后,解压其内容,并将它存放到一个容易获取的地方。
- 在Android Studio中,点击File/New/Import Project…。
- 弹出了一个被标记为Select Eclipse or Gradle Project to Import的窗口。选择在第一步中解压出的项目并点击OK。
- 完成导入之后,你会看到如下面图片中的样子。选择左侧面板中的Projecttab,就像下面截图中所示的一样。
- 现在你就可以在项目浏览器中看到刚导入项目中所有的文件了。
运行项目吧!点击工具栏中的Run按钮,并选择你之前设置好的一个设备或模拟器即可。
你已在这篇教程中学到了很多基础的内容:从下载和安装Android Studio,到创建你的第一个“Hello World!” app,再到将它不熟到一个屋里的设备上!
继续阅读本系列的下一部分,你将从中开启一段Android Studio的旅程。
在此期间,就像其它的语言或框架一样,Android的开发者社区拥有大量优秀的资源和参考文档。记住,任何时候访问Google的I/O conference,Android Developers blog或Android Developer videos都不会太晚。