Google官方Android开发教程-入门篇
更新时间:2023-04-30 05:08:01 阅读量: 综合文库 文档下载
说明:此系列教程翻译自Google Android开发者官网的Training教程,利用Chome浏览器的自动翻译功能作初译,然后在一些语句不顺或容易造成误解的地方作局部修正。方便英文不好的开发者查看。如有错漏之处,欢迎大家指出修正。
同时欢迎大家关注我的技术博客
afb669c7d4d8d15abe234efe/it_magician。大家的支持是我最大的动力。
第一章 起始篇
1 构建你的第一个应用程序
欢迎到Android应用程序开发中心!
这堂课教你如何建立你的第一个Android应用程序。您将学习如何创建一个Android项目,并运行调试版本的应用程序。您还将学习Android应用程序设计的一些基础知识,包括如何建立一个简单的用户界面和处理用户输入。
在你启动这个类之前,确保你有你的开发环境搭建。您需要:
1.下载Android SDK。
2.为Eclipse安装ADT插件(如果你会使用Eclipse IDE)。
3.下载最新的SDK使用SDK管理器的工具和平台。
如果你还没有已经完成了这些任务,开始下载Android SDK的安装步骤。一旦你设定完成后,你准备开始这堂课。
这堂课使用教程格式,逐步建立一个小的Android应用程序,教你一些关于Android开发的基本概念,所以按照每一步是很重要的。
1.1创建一个Android项目
Android项目包含的所有文件,包括你的Android应用程序的源代码。Android SDK的工具,可以很容易地开始新的Android项目与一组默认项目目录和文件。
这一节说明如何创建一个新的项目,无论是使用Eclipse ADT插件或使用SDK命令行工具。
注意:你应该已经安装了Android SDK,如果你使用Eclipse,你应该也有安装ADT插件(21.0.0或更高版本)。如果你没有这些,按照指南安装了Android SDK,然后再开始这一节。
使用Eclipse创建一个项目
1.在工具栏上点击新建。
2.在出现的窗口中,打开Android的文件夹,选择“ Android应用项目,并单击“ 下一步“。
图1。新的Android应用程序在Eclipse项目向导。
3.填写的形式出现:
o应用程序名称 显示给用户的是应用程序的名称。对于这个项目,使用“我的第一个应用程序。”
o项目名称 是您的项目目录的名称和在Eclipse中可见的名称。
o软件包名称 是您的应用程序的包的命名空间(在Java编程语言中也遵循相同的包规则)。你的包的名称必须是在Android系统上安装的所有软件包中唯一的。出于这个原因,它通常最好的做法是,使用与您的组织或出版实体的反向域名开头的名称。对于这个项目,你可以使用一些像“com.example.myfirstapp。” 但是,您不能使用
“com.example”命名空间在Google Play中发布您的应用程序。
o最低要求 是您的应用程序支持的Android SDK最低版本,表示使用API的级别。为了支持尽可能多的设备,你应该设定一个最低版本,可以让您的应用程序提供其核心功能集。如果您的应用程序的任何特性只能在新版本的Android或者判定它不是应用程序的核心功能集,您可以只在支持它的版本中启用这些特性(参考支持不同的平台版本)。对于这个项目保留这些默认设置即可。
o目标SDK 表明您测试您的应用程序的Android的最高版本(也叫API级别)。
随着新版本的Android变得可用,您应该在新版本上测试应用程序并更新此值,以符合最新的API级别,以充分利用新的平台功能。
o编译 平台版本对您编译您的应用程序。默认情况下,此设置为您的SDK提供的最新版本的Android。(应该是Android 4.1或更高版本,如果你没有这样的版本,您必须使用SDK管理器安装一个)。您仍然可以建立你的应用程序来支持旧版本,但设置构建目标到最新版本可以让您启用新功能和优化您的应用程序在最新的设备上获得最好的用户体验。
o主题 指定申请您的应用程序的Android UI风格。你可以暂时不用管它。
单击“ 下一步“。
4.在下一个项目配置界面,保留默认选项,并单击“ 下一步“。
5.下一个界面,可以帮助您创建一个你的应用程序的启动图标。
您可以通过几个方面来自定义图标,该工具会针对所有的屏幕密度单独生成一个图标。
在您发布您的应用程序之前,你应该确保你的图标符合图解(Iconography)设计指南中定义的规范。
单击“ 下一步“。
6.现在您可以在活动模板中选择一个来开始构建应用程序。
对于这个项目,选择BlankActivity,并单击“ 下一步“。
7.保留其默认状态中的活动的所有细节,并单击“ 完成“。
现在你的Android项目设置一些默认的文件,你准备好开始构建应用程序。继续下一课。使用命令行工具创建项目
如果你不使用Eclipse IDE ADT插件,可以改为使用SDK命令行工具来创建你的项目:
1.改变当前目录到Android SDK的tool/路径。
2.执行:
android list targets
它会打印你已经下载你的SDK中可用的Android平台的列表。找到你要编译你的应用程序的平台,请记下target id。我们建议您尽可能的选择最高版本。您仍然可以建立你的应用程序来支持旧版本,但设置构建目标到最新版本,可以让你在最新设备上优化你的应用程序。
如果你没有看到任何target列出来,你需要使用Android SDK管理器工具来安装一些。
请参阅添加平台和软件包。
3.执行:
android create project --target
--path
从target列表中的id(在上一步得到)更换
现在你的Android项目设置了几个默认的配置,你准备好开始构建应用程序。继续下一课。提示:把platform-tools/以及tool/目录添加到你的PATH环境变量中。
1.2运行你的应用程序
如果你是按照上一课创建一个Android项目,它包含一些默认设置的“Hello World” 的源文件,现在您可以立即运行这个应用程序。
如何运行你的应用程序依赖于两件事情:你是否有台个真实的Android设备,你是否使用Eclipse。这堂课将告诉您,通过Eclipse或命令行工具,如何在真实的设备和Android模拟器中安装和运行您的应用程序。
在你运行你的应用程序之前,你应该注意在Android项目中的几个目录和文件:
Android Manifest.xml文件
manifest文件描述了应用程序的基本特征,并定义每个组件。在这个文件中您将学习到各种声明,随着你读到更多的课程。
manifest应包括最重要的元素之一是的
minSdkVersion和android:targetSdkVersion属性,可以声明您的应用程序对不同的Android版本的兼容性。对于你的第一个应用程序,它应该看起来像这样:
xmlns:android="afb669c7d4d8d15abe234efe/apk/res/android"... > android:targetSdkVersion="17"/> ...
你总是应该设置尽可能高的android:targetSdkVersion并在相应的平台版本中测试您的应用程序。欲了解更多信息,请阅读支持不同的平台版本。
SRC /
为您的应用程序的主源文件目录。默认情况下,它包含一个活动(Activity)类,当你的应用程序使用应用图标启动时就是此类在运行。
res/
包含应用程序资源的几个子目录。下面是其中几个:
drawable-hdpi/
专为高密度(hdpi)屏幕绘图对象(如位图)的目录。其它的绘图目录包含其它屏
幕密度专用资产(assets)。
layout/
定义你的应用程序的用户界面文件的目录。
values/
其它各种XML文件的目录,该目录包含一系列的资源,如字符串和颜色定义。
当你建立并运行默认的Android应用程序,默认的活动类启动并加载布局文件中说的
“Hello World”。其结果是没有什么令人兴奋的,但重要的是你了解如何运行你的应用程
序,然后开始开发。
在一台真实的设备上运行
如果你有一台真实的Android设备,下面是你安装和运行您的应用程序的方法:
1.使用USB线将设备接入到你的开发机器上。如果你正在Windows开发,你可能需要为您
的设备安装相应的USB驱动程序。安装驱动程序的帮助,请参阅OEM的USB驱动程序文件。
2.在您的设备上启用USB调试。
o在运行Android 3.2或以上版本的大多数设备上,你可以在这里找到选项设置>应用程序>开发。
o在Android 4.0和更高版本,它是在“设置”>“开发人员选项。
注意:在Android 4.2和更高版本中,开发人员选项默认是隐藏的。为了使其可用,进入设置>关于手机和点击生成数(build number)七次。返回到前一个画面,找到开发人员选项。
从Eclipse中运行的应用程序:
1.打开你的项目的一个文件,并从工具栏中单击“ 运行“。
2.在出现的窗口中运行,选择Android的应用程序,并单击“确定”。
Eclipse从连接的设备上安装应用程序,并启动它。
或运行您的应用程序的命令行:
1.更改你的Android项目的根目录,然后执行:
ant debug
2.请确保Android SDK的platform-tools/目录已经包含在你的PATH环境变量,然后
执行:
adb install bin/MyFirstApp-debug.apk
3.在设备上,找到MyFirstActivity并打开它。
这就是你如何在设备上构建并运行Android应用程序的方法!要开始开发,继续下一课。在模拟器上运行
无论你使用Eclipse或命令行,要在模拟器上运行你的应用,你需要首先创建一个Android 虚拟设备(AVD)。一个AVD就是一个Android模拟器,它可以让你模拟不同配置的设备。
图1AVD管理器列出了几个虚拟设备。
要创建一个AVD:
1.启动Android虚拟设备管理:
a.在Eclipse中,从工具栏点击Android虚拟设备管理器。
b.在命令行,更改目录到
android AVD
2.在Android的虚拟设备管理器“面板中,单击“ 新建“。
3.填写AVD的细节。给它一个名字,一个平台目标,一个SD卡的大小和皮肤(HVGA是
默认值)。
4.点击“ 创建AVD。
5.从Android虚拟设备管理器中选择新的AVD ,单击“ 开始“。
6.模拟器启动后,模拟器的屏幕解锁。
从Eclipse中运行的应用程序:
1.打开你的项目的文件之一,并从工具栏中单击“ 运行“。
2.在出现的窗口中运行,选择Android的应用程序,并单击“确定”。
Eclipse会在AVD上安装应用程序,并启动它。
或者从命令行中运行你的应用程序:
1.转到你的Android项目的根目录,然后执行:
ant debug
2.请确保Android SDK的platform-tools/目录已经包含在你的PATH环境变量,然后
执行:
adb install bin/MyFirstApp-debug.apk
3.在模拟器上,找到MyFirstActivity并打开它。
这就是你如何在模拟器上构建和运行你的Android应用程序的方法!要开始开发,继续下一课。
1.3构建一个简单的用户界面
Android应用程序的图形用户界面,建立在视图(View)和视图组(ViewGroup)对象的层次结构上。视图对象通常是UI小部件(weidget),如按钮或文本字段;而视图组对象是无形的视图容器,定义子视图的布局,如在一个网格或垂直的列表中。
Android提供了一个XML对照表来对应视图和视图组的子类,这样你就可以在XML中使用的UI元素的层次结构来定义你的UI。
图1。分支上的视图组对象是如何布局和包含其它视图对象的示意图
可替换的布局
在XML中声明UI布局,而不是在运行时代码中声明,是由于一些非常有用的原因。但它特别重要的原因是,这样你就可以为不同的屏幕大小创建不同的布局。例如,您可以创建两个版本的布局,并告诉系统在“小”屏幕上使用一个而在其它“大”屏幕上使用另一个。欲了解更多信息,请参阅类支持不同的设备。
在本课中,您将在XML中创建一个包含一个文本字段和一个按钮的布局。在下面一课,当按钮被按下时,你会响应把文本字段中的内容发送到另一个活动。
创建一个线性布局
从res/layout/目录打开activity_main.xml文件。
注:在Eclipse中,当你打开一个布局文件,首先会显示图形布局编辑器。这是一个编辑器,帮助您使用所见即所得的工具构建布局。在这一课中,你会直接使用XML,所以点击activity_main.xml的标签在屏幕底部打开XML编辑器。
当你创造了这个项目时,你选择的的BlankActivity模板包括activity_main.xml的文件与一个RelativeLayout根视图和一个TextView子视图。
首先,删除
xmlns:android="afb669c7d4d8d15abe234efe/apk/res/android" xmlns:tools="afb669c7d4d8d15abe234efe/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal">
LinearLayout是一个视图组(ViewGroup的一个子类),它根据android:orientation 属性,将子视图按垂直或水平方向布局。LinearLayout的每一个子视图将以XML中的顺序出现在屏幕上。
另外两个属性,android:layout_width和android:layout_height,对所有的视图都是必须的,用来指定它们的大小。
因为LinearLayout是在布局中的根视图,它应该充满整个应用程序屏幕区域,通过设定的宽度和高度为“match_parent”即可实现。此值声明视图的宽度或高度应该展开来匹配父视图的宽度或高度。
对于布局属性的更多信息,请参阅布局指南。
添加一个文本字段
要创建一个用户可编辑的文本字段,在
像每一个视图对象那样,你必须定义某些XML属性来指定的EditText对象的性质。以下是它在
android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/edit_message"/> 关于资源对象 资源对象仅仅是一个简单唯一的整数名称,它与某个应用程序资源关联起来,如位图,布局文件或字符串。 每个资源都有一个相应的资源对象,这些对象在项目的gen/R.java文件中定义。您可以使用R类中的对象名称来指向你的资源,例如你需要为android:hint属性指定一个字符串值。您还可以创建任意的资源ID,使用android:id属性关联到一个视图,然后允许你通过它从其它代码来引用该视图。 每次编译您的应用程序时,SDK工具会生成R.java文件。您永远不应该手动修改这个文件。欲了解更多信息,请阅读“提供资源”指南。 关于这些属性: android:id 它为视图提供了一个唯一的标识符,你可以用它在您的应用程序代码中引用该对象,如读取和操纵的对象(你会在下一课中看到)。 当你从XML中引用任何资源对象时,at符号(@)都是必须的。它后面是资源类型(在本例中是id),斜线,然后是资源名称(edit_message)。 只有当你首次定义资源ID时,资源类型之前的加号(+)才是必要的。当你编译应 用程序,SDK工具使用ID名称在项目的gen/R.java文件中创建一个新的资源ID,这个资源ID指向EditText元素。一旦资源ID以这种方式声明过,其它对此ID的 引用都不需要加号。只有当指定一个新的资源ID时使用加号是必要的,而对于字符串或布局这些具体资源是不需要的。更多信息参见资源对象。 android:layout_width和android:layout_height 不使用特定尺寸的宽度和高度,而用“wrap_content”指定视图应该实际大小来适应内容。如果改为使用“match_parent”,那EditText元素会填满屏幕,因为它要匹配父元素LinearLayout的大小。更多信息请参阅布局指南。 android:hint 这是一个文本字段为空时要显示的默认的字符串。不使用硬编码的字符串值,“@string/edit_message”的值指向一个单独文件中定义的字符串资源。因为它指向的是一个具体的资源(不只是一个标识符),它并不需要加号。但是,因为你还没有定义字符串资源,你首先会看到一个编译错误。你会在下一节中通过定义字符串来修正这个问题。 注:此字符串资源使用相同的名称作为元素的ID:edit_message。然而,资源总是根据资源类型划分的(如ID或字符串),所以使用相同的名称不会发生冲突。 添加字符串资源 当你需要在用户界面中添加文本时,你应该总是指定每个字符串作为一种资源。字符串资源,让您在一个单一的位置管理所有UI文本,这可以更容易找到并更新文本。外部化字符串还允许您为不同语言的每个字符串资源提供替代定义,实现应用程序本地化。 默认情况下,你的Android项目包括res/value/strings.xml字符串资源文件。添加一个新的字符串名为“edit_message”,并将其值设置为“Enter a message” (你可以删除“hello_world”字符串)。 在这个文件中,顺便为将要添加的按钮添加一个“Send”字符串,叫“button_send” 。 strings.xml的结果看起来像这样: 对于使用字符串资源为您的应用程序本地化为其它语言的更多信息,请参阅支持不同的设备课程。 添加一个按钮 现在添加一个
正在阅读:
高中化学教师的专业素养11-07
青海省玛沁县高一下学期期中语文试卷04-21
WLAN中的智能天线技术讲座学习报告10-14
励志心灵鸡汤语录02-20
查询行贿犯罪档案介绍信08-22
湖南省2016年下半年期货从业资格期货法律法规:基本情况评估考试试题12-10
爱在乡间小路作文500字07-01
日本福岛核泄漏影响06-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 入门
- Android
- 教程
- 官方
- 开发
- 过去分词和现在分词专项练习50题
- 2010版GMP认证文件-卫生管理
- 2010-2011学年数学七年级试卷分析
- 正规的外汇平台鉴定方法
- 小学数学_ 两位数加一位数和整十数教学设计学情分析教材分析课后反思
- 北二外翻译硕士(MTI)考研复试分数线什么对它的影响最大(精)
- 陪孩子走过小学六年读后感
- 湖南省张家界市2017-2018学年高一第二学期( 期末 )联考数学(A卷)试卷及答案
- 2014年八年级地理会考复习资料(湘教版) (1)
- 加热工考试初级调火工考试卷模拟考试题.doc
- 雅思小作文常用表达词语汇总
- xx县食品药品监督管理局2011年食品安全工作总结
- 移动电源新方向速度胜过容量DESAY德赛DS18快充移动电源
- “男生、女生”主题班会教案.doc
- 2016年气垫船行业现状及发展趋势分析 (目录)
- 人教版八年级生物下册第七单元第一章第二节-昆虫的生殖和发育说课稿
- 高中化学奥林匹克竞赛专题练习专题七化学反应速率与化学平衡
- (完整word版)PLC复习试题库及答案
- 安徽省2021版高一下学期第一次月考化学试卷
- 《名校课堂》2016年秋七年级英语人教版上册练习:Unit 8 单元知识背记手册