描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302505198
全书共包括23章及3个附录,分别介绍了如下内容: 移动操作系统概论; Android开发环境搭建; *个Android应用程序; 调试Android应用程序; Android界面编程; Android界面布局; Android简单控件; Android高级控件; 活动; 碎片; 意图; 数据存储; 使用内容提供者共享数据; Android多线程开发; 服务; 广播接收器; 多媒体开发; 网络通信技术; 百度地图与定位服务; Android 2D图形与动画技术; 手机功能开发; 分层架构设计与重构健康助手应用; 内容提供者重构健康助手应用; 课程设计参考——Android播放器应用开发; 把应用发布到Google Play应用商店; 练习题参考答案。
为便于读者高效学习,快速掌握本书内容,作者精心制作了完整的教学课件,提供完整的源代码,赠送一套完整的Android视频教程(超过1300分钟)及一本畅销的Java电子书,并提供在线答疑服务等内容。
目录
基础篇
第1章移动操作系统概论
1.1操作系统的原理与概念
1.1.1隐藏硬件细节
1.1.2资源管理
1.1.3操作系统的历史
1.2操作系统的分类
1.2.1批处理操作系统
1.2.2分时操作系统
1.2.3实时操作系统
1.2.4个人计算机操作系统
1.2.5网络操作系统
1.2.6分布式操作系统
1.2.7嵌入式操作系统
1.3移动操作系统
1.3.1移动设备的特征
1.3.2主要的移动操作系统
1.3.3移动操作系统的应用和发展
1.4Android移动操作系统概述
1.4.1Android历史介绍
1.4.2Android架构
1.4.3Android平台介绍
本章练习题
第2章Android开发环境搭建
2.1JDK安装与配置
2.2安装Android Studio
2.3安装Android SDK
2.4创建Android模拟器
本章总结
本章练习题
第3章个Android应用程序
3.1使用Android Studio工具创建项目
3.2Android工程剖析
3.2.1Android工程目录结构
3.2.2R.java文件
3.2.3MainActivity.java文件
3.2.4activity_main.xml布局文件
3.2.5AndroidManifest.xml文件
3.3运行工程
3.4学会使用Android开发者社区帮助
3.4.1在线帮助文档
3.4.2Android SDK API文档
3.4.3Android SDK开发指南
3.4.4使用Android SDK案例
本章总结
本章练习题
第4章调试Android应用程序
4.1使用DDMS帮助调试程序
4.1.1设备列表
4.1.2文件浏览器
4.1.3LogCat
4.2使用Android Studio调试
4.3使用ADB帮助调试程序
4.3.1查询模拟器实例和设备
4.3.2进入shell
4.3.3导入导出文件
本章总结
本章练习题
第5章Android界面编程
5.1Android界面组成
5.1.1视图
5.1.2视图组
5.2界面构建
5.2.1使用Android Studio界面设计工具
5.2.2实例: 标签和按钮
5.3事件处理模型
5.3.1活动作为事件监听器
5.3.2内部类事件监听器
5.3.3匿名内部类事件监听器
5.4屏幕上的事件处理
5.4.1触摸事件
5.4.2实例: 屏幕触摸事件
5.4.3键盘事件
5.4.4实例: 改变图片的透明度
本章总结
本章练习题
第6章Android界面布局
6.1Android界面布局设计模式
6.1.1表单布局模式
6.1.2列表布局模式
6.1.3网格布局模式
6.2布局管理
6.2.1帧布局
6.2.2实例: 使用帧布局
6.2.3线性布局
6.2.4实例: 使用线性布局实现登录界面
6.2.5相对布局
6.2.6实例: 使用相对布局实现查询功能界面
6.2.7网格布局
6.2.8实例1: 使用网格布局实现计算器界面
6.2.9实例2: 布局嵌套实现登录界面
6.3屏幕旋转问题
6.3.1解决方案
6.3.2实例: 加载不同布局文件
本章总结
本章练习题
第7章Android简单控件
7.1按钮
7.1.1Button
7.1.2ImageButton
7.1.3ToggleButton
7.1.4实例: ButtonSample
7.2标签
7.3文本框
7.3.1文本框相关属性
7.3.2实例1: 用户登录
7.3.3实例2: 文本框输入控制
7.4单选按钮
7.4.1RadioButton
7.4.2RadioGroup
7.4.3实例: 使用单选按钮
7.5复选框
7.5.1CheckBox
7.5.2实例: 使用复选框
7.6进度栏
7.6.1进度栏相关属性和方法
7.6.2实例1: 水平条状进度栏
7.6.3实例2: 圆形进度栏
7.7拖动栏
7.7.1SeekBar
7.7.2实例: 使用拖动栏
本章总结
本章练习题
第8章Android高级控件
8.1列表类控件
8.1.1适配器
8.1.2Spinner
8.1.3实例: 使用Spinner进行选择
8.1.4ListView
8.1.5实例1: 使用ListView实现选择文本
8.1.6实例2: 使用ListView实现选择文本 图片
8.2Toast
8.2.1实例1: 文本类型Toast
8.2.2实例2: 图片类型Toast
8.2.3实例3: 文本 图片Toast
8.3对话框
8.3.1实例1: 显示文本信息对话框
8.3.2实例2: 简单列表项对话框
8.3.3实例3: 单选列表对话框
8.3.4实例4: 复选列表项对话框
8.3.5实例5: 复杂布局对话框
8.4操作栏和菜单
8.4.1操作栏
8.4.2菜单编程
8.4.3实例: 文本菜单
8.4.4实例: 操作表按钮
本章总结
本章练习题
第9章活动
9.1活动概述
9.1.1创建活动
9.1.2活动的生命周期
9.1.3实例: Back和Home按钮的区别
9.2多活动之间跳转
9.2.1登录案例介绍
9.2.2启动下一个活动
9.2.3参数传递
9.2.4返回上一个活动
9.3活动任务与返回栈
本章总结
本章练习题
第10章碎片
10.1界面重用问题
10.2碎片技术
10.3碎片的生命周期
10.3.1三种状态
10.3.211种方法
10.4使用碎片开发
10.4.1碎片相关类
10.4.2创建碎片
10.4.3静态添加碎片到活动
10.4.4动态添加碎片到活动
10.4.5管理碎片事务
10.4.6碎片与活动之间的通信
10.5案例: 比赛项目
10.5.1创建两个碎片
10.5.2创建MainActivity活动
10.5.3单击Master碎片列表项
10.5.4数据访问对象
本章总结
本章练习题
第11章意图
11.1什么是意图
11.1.1意图与目标组件间的通信
11.1.2意图包含内容
11.2意图类型
11.2.1显式意图
11.2.2隐式意图
11.3匹配组件
11.3.1动作
11.3.2数据
11.3.3类别
11.4实例: Android系统内置意图
本章总结
本章练习题
第12章数据存储
12.1Android数据存储概述
12.2健康助手应用
12.2.1需求分析
12.2.2原型设计
12.2.3UI设计
12.2.4数据库设计
12.3本地文件
12.3.1沙箱目录设计
12.3.2访问应用程序files目录
12.3.3实例: 访问CSV文件
12.4SQLite数据库
12.4.1SQLite数据类型
12.4.2Android平台下管理SQLite数据库
12.5案例: SQLite实现健康助手数据存储
12.5.1SQLiteOpenHelper帮助类
12.5.2数据插入
12.5.3数据删除
12.5.4数据修改
12.5.5数据查询
12.6使用SharedPreferences
12.6.1实例: 写入SharedPreferences
12.6.2实例: 读取SharedPreferences
本章总结
本章练习题
第13章使用内容提供者共享数据
13.1内容提供者概述
13.2Content URI
13.2.1Content URI概述
13.2.2内置Content URI
13.3实例: 访问联系人信息
13.3.1查询联系人
13.3.2普通权限和运行时权限
13.3.3通过联系人id查询联系人的Email
13.3.4查询联系人的电话
13.4实例: 访问通话记录
13.5实例: 访问短信记录
本章总结
本章练习题
进阶篇
第14章Android多线程开发
14.1线程概念
14.1.1进程概念
14.1.2线程概念
14.2计时器案例介绍
14.3Java中的线程
14.3.1Thread类实现线程体
14.3.2Runnable接口实现线程体
14.3.3匿名内部类实现线程体
14.4Android中的多线程
14.4.1主线程之外更新UI问题
14.4.2Android异步消息处理机制
14.4.3Handler发送消息方法
14.4.4计时器案例: 异步消息机制实现
本章总结
本章练习题
第15章服务
15.1服务概述
15.1.1创建服务
15.1.2服务的分类
15.2启动类型服务
15.2.1启动服务生命周期
15.2.2实例: 启动类型服务
15.3绑定类型服务
15.3.1绑定服务生命周期
15.3.2实例: 绑定类型服务
15.4IntentService
15.4.1IntentService优势
15.4.2实例: IntentService与Service比较
本章总结
本章练习题
第16章广播接收器
16.1广播概述
16.2广播接收器概述
16.2.1编写广播接收器
16.2.2注册广播接收器
16.2.3实例: 发送广播
16.3系统广播
16.3.1系统广播动作
16.3.2实例: Downloader
16.4本地广播
16.4.1本地广播API
16.4.2实例: 发送本地广播
16.5通知
16.5.1实例: 普通通知
16.5.2其他形式的Notification
本章总结
本章练习题
第17章多媒体开发
17.1多媒体文件介绍
17.1.1音频多媒体文件介绍
17.1.2视频多媒体文件介绍
17.2Android音频/视频播放API
17.2.1核心API——MediaPlayer类
17.2.2播放状态
17.3实例: 音频播放
17.3.1资源音频文件播放
17.3.2本地音频文件播放
17.4Android音频/视频录制API
17.5实例: 音频录制
17.6视频播放
17.6.1VideoView控件
17.6.2实例: VideoView播放视频
本章总结
本章练习题
第18章网络通信技术
18.1网络通信技术介绍
18.1.1Socket通信
18.1.2HTTP协议
18.1.3HTTPS协议
18.1.4Web服务
18.2案例: MyNotes
18.3发送网络请求
18.3.1使用java.net.URL
18.3.2使用HttpURLConnection发送GET请求
18.3.3使用HttpURLConnection发送POST请求
18.3.4实例: Downloader
18.4数据交换格式
18.4.1XML文档结构
18.4.2解析XML文档
18.4.3实例: DOM解析XML文档
18.4.4JSON文档结构
18.4.5JSON数据编码和解码
18.4.6实例: 解码JOSN数据
本章总结
本章练习题
第19章百度地图与定位服务
19.1使用百度地图
19.1.1申请API Key
19.1.2获得Android签名证书中的SHA1值
19.1.3搭建和配置环境
19.1.4实例: 显示地图
19.1.5实例: 设置地图状态
19.1.6实例: 地图覆盖物
19.2定位服务
19.2.1定位服务授权
19.2.2位置信息提供者
19.2.3管理定位服务
19.2.4实例: MyLocation
19.2.5测试定位服务
19.3定位服务与地图结合实例: WhereAMI
本章总结
本章练习题
第20章Android 2D图形与动画技术
20.1Android 2D绘图技术
20.1.1画布和画笔
20.1.2实例: 绘制点和线
20.1.3实例: 绘制矩形
20.1.4实例: 绘制弧线
20.1.5实例: 绘制位图
20.2位图变换
20.2.1矩阵
20.2.2实例: 位图变换
20.3调用Android照相机获取图片
20.3.1调用Android照相机
20.3.2实例: 调用Android照相机
20.4Android动画技术
20.4.1渐变动画
20.4.2实例: 渐变动画
20.4.3动画插值器
20.4.4使用动画集
20.4.5帧动画
本章总结
本章练习题
第21章手机功能开发
21.1电话应用开发
21.1.1拨打电话功能
21.1.2实例: 拨打电话
21.1.3呼入电话状态
21.1.4实例: 电话黑名单
21.2短信和彩信应用开发
21.2.1发送短信功能
21.2.2发送彩信功能
本章总结
本章练习题
实战篇
第22章分层架构设计与重构健康助手应用
22.1分层架构设计
22.1.1低耦合企业级系统架构设计
22.1.2Android平台分层架构设计
22.2健康助手应用架构设计
22.3重构健康助手数据持久层
22.3.1DAO设计模式
22.3.2工厂设计模式
22.4表示层开发
22.4.1Health列表界面
22.4.2Health添加界面
22.4.3Health修改界面
本章总结
本章练习题
第23章内容提供者重构健康助手应用
23.1分层架构与内容提供者
23.2自定义内容提供者访问数据库
23.2.1编写内容提供者
23.2.2注册内容提供者
23.3重构健康助手数据持久层
本章总结
本章练习题
附录A课程设计参考——Android播放器应用开发
A.1应用分析与设计
A.1.1应用概述
A.1.2需求分析
A.1.3原型设计
A.1.4界面设计
A.1.5架构设计
A.2任务1: 创建工程
A.3任务2: 音频列表功能
A.3.1任务2.1: 界面布局
A.3.2任务2.2:
AudioListActivity
A.3.3任务2.3:
AudioCursorAdapter
A.4任务3: 音频控制功能
A.4.1任务3.1: 界面布局
A.4.2任务3.2: 初始化AudioPlayerActivity活动
A.4.3任务3.3: 初始化AudioService服务
A.4.4任务3.4: 播放控制
A.4.5任务3.5: 进度控制
A.5任务4: 后台播放回到前台功能
A.6任务5: 更新专辑图片功能
附录B把应用发布到Google play 应用商店
B.1谷歌Android应用商店Google
play
B.2Android设备测试
B.3还有“后一公里”
B.3.1添加图标
B.3.2生成数字签名文件
B.3.3发布打包
B.4发布产品
B.4.1上传APK
B.4.2填写商品详细信息
B.4.3定价和发布范围
附录C练习题参考答案
前言
2008年,谷歌公司推出了Android操作系统。Android作为一款为移动终端打造的开源移动操作系统平台,引领了突破垄断技术、降低开发成本的潮流。因此,Android移动操作系统对于中国的IT产业发展有着深远的影响。我有幸在2009年开始接触Android,并被其深深吸引。从2010年起,我开始从事Android教学与培训工作,并主持开发了一些Android项目。为满足广大高校教师的要求,应清华大学出版社盛东亮编辑之邀,笔者决定出版一套Android应用开发方面的教材(配套视频课程、教学课件等)。本书优点本书介绍的Android应用开发基于大家熟悉的Java语言,初学者能够很快入门,特别适合高校学生学习Android应用开发。书中首先介绍了移动操作系统和原理,然后展开介绍了Android应用开发技术,附录中还介绍了一个综合案例,以及如何将应用发布到Google Play应用商店。为了更好地消化吸收书中内容,在每章后都有同步练习,并在附录中给出参考答案。另外,我们还为购买本书的高校教师提供配套教学课件、素材、源代码和赠送视频。适用读者本书虽然主要是为高校编写,以满足高校师生学习Android应用开发,但也适合对Android应用开发技术感兴趣的读者。本书服务网址为了更好地为广大读者提供服务,我们专门为本书建立了一个服务网址www.zhijieketang.com/group/7,读者可以了解书中内容、下载源代码、下载课件等,并对本书内容发表评论,提出宝贵意见。勘误与支持为了及时地把书中的勘误反馈给广大读者,我们专门在www.zhijieketang.com/group/7中建立了一个勘误专区。如果您发现了问题,可以在网上留言,也可以发送电子邮件到[email protected],我们会在时间回复您。您也可以通过新浪微博(@tony_关东升)或微信(q270258799)联系我们。致谢本书主要由关东升编写。此外,智捷课堂团队的赵大羽、赵志荣、关锦华、赵浩丞、刘佳笑、王馨然、关秀华和闫婷娇也参与了部分内容的写作。感谢赵大羽老师手绘了书中全部草图,并从专业的角度修改书中图片,力求更加真实完美地奉献给广大读者。在此感谢清华大学出版社的盛东亮编辑给我们提供了宝贵的意见。感谢我的家人对我的关心和照顾,使我能抽出这么多时间,专心编写本书。
关东升2018年6月
个Android应用程序
本章是掌握Android开发技术的开始。对于要从事Android开发的人员,必须熟悉本章介绍的内容。本章通过一个简单的Hello Android应用程序,展开介绍相关知识点。3.1使用Android Studio工具创建项目Hello Android应用程序是在屏幕上显示“Hello World!”文字,如图31所示。
图31Hello Android应用运行效果图
创建Hello Android应用简单的方法是通过Android Studio工具提供的模板实现。具体步骤是: 启动Android Studio工具,如图32所示,在Android Studio欢迎界面中选择Start a new Android Studio project菜单。然后进入如图33所示的配置工程对话框,在对话框的输入项目中,Application Name项目是应用程序名,这里输入Hello Android; Company Domain项目是公司域名,公司域名是构成工程包名的重要组成部分。从图33可见,如果公司域名输入的是51work6.com,则包名为域名倒置、com.a51work6.helloandroid,即: 公司域名倒置 应用程序名。
提示在Java中的包名命名规范是: 一般都是小写字母; 首字符不能是数字,包名com.51work6中51work部分首字符是数字,这是非法的,因此Android Studio工具在前面添加了字母a; 另外,包名中也不能有空格,所以Hello Android变换为helloandroid,即去掉空格小写所有字母。
图32Android Studio欢迎界面
图33配置工程对话框
在图33所示的对话框中单击Next按钮,进入如图34所示的对话框,这里可以选择不同的Android平台和SDK版本。目前,Android平台不仅仅是包括Android手机(Phone)和平板电脑(Tablet),还包括手表(Wear)、电视机(TV)和车载系统(Android Auto),本例选择Phone and Tablet。除了选择Android平台,还需要选择该应用发布所支持的Minimum(的)SDK版本,本例选择的API 21,即Android 5.0。
图34选择Android平台和SDK版本
提示在实际发布应用时候,Android平台的SDK版本不应该是目前版本,而应该考虑目前大部分用户所采用Android版本。从图34可见,API 21用户目前不多于71.3%,如果不能确定选择哪一个,可以单击Minimum SDK选项下面的Help me choose超链接来帮助选择。
在图34所示的对话框中单击Next按钮,则进入如图35所示的活动(Activity)模板对话框,这里可以选择活动(Activity)模板,就本例而言需选择空活动(Empty Activity)模板。
图35选择活动模板
提示Activity是Android应用绘制图形界面的重要组件,Activity中能够包含若干个View(控件)对象。本书将Activity翻译为“活动”。
在图35所示的对话框界面中单击Next按钮,则进入如图36所示的自定义活动对话框,其中的Activity Name是活动文件名,选中Generate Layout File会生成布局文件,Layout Name是布局文件名。
在图36所示的对话框中单击Finish按钮完成创建工程操作,则进入如图37所示的界面。
图36自定义活动
图37创建工程完成
3.2Android工程剖析工程创建完成之后,需要剖析一下Android工程。3.2.1Android工程目录结构
图38工程目录结构
使用Android Studio工具开发Android应用程序,创建的工程目录结构比较复杂,开发人员应该清楚各个目录下面放置的是什么东西。工程根目录下有app和Gradle Scripts,app是应重点关注的,app下面的主要目录有manifests、java和res,如图38所示。manifests目录中的AndroidManifest.xml是当前Android应用程序的清单文件,记录应用中所使用的各种组件,java是Java源代码目录,res是资源目录。下面重点介绍一下res目录。res资源目录中存放所有程序中用到的资源文件。“资源文件”指的是布局文件、图片文件和配置文件等。子目录主要有drawable、layout、mipmap和values。 drawable。存放一些应用程序需要用的图片文件(.png和.jpg等)。 layout。屏幕布局目录,layout目录中放置的是布局文件,布局文件是Xml文件。 mipmap。与drawable一样存放资源图片,在Android 2.2后增加目录,Android系统会对mipmap做了一些优化,加快了图片的渲染速度,提高的图片质量,减少GPU的压力。 values。参数值目录,存放应用所需要显示的各种文字和一些数据。可以在这个目录下的strings.xml中存放各种文字,还可以存放不同类型的数据,例如colors.xml、dimens.xml和styles.xml等。另外,为了适配不同的设备,res资源目录中的drawable、layout、mipmap和values等资源目录,可以分别有多个,图39是在Windows资源管理器中看到的目录结构,其中mipmap有5个不同的目录: mipmapmdpi。放置中质量图片。 mipmaphdpi。放置高质量图片,是mipmapmdpi尺寸的1.5倍。 mipmapxhdpi。放置超高质量图片,是mipmapmdpi尺寸的2倍。 mipmapxxhdpi。放置超高质量图片,是mipmapmdpi尺寸的3倍。 mipmapxxxhdpi。放置超高质量图片,是mipmapmdpi尺寸的4倍。
图39Windows资源管理器目录结构
3.2.2R.java文件访问res目录中的资源文件,并不能通过Java IO技术实现,而是通过R.java文件访问。R.java文件是在工程编译时候自动产生的R类。R. java文件可参考如下代码:
package com.a51work6.helloandroid;
public final class R {
…
public static final class mipmap {
public static final int ic_launcher=0x7f030000;
}
public static final class layout {
public static final int activity_main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
…
}
}
R类中包含很多静态类,且静态类的名字都与res中的一个目录名字对应,就像是资源字典大全,包含了用户界面、图像、字符串等对应于各个资源的标识符,R类定义了该应用中所有资源的索引。例如,在程序代码中访问activity_main.xml布局文件,可以通过表达式R.layout.activity_main访问,示例代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
R类还可以访问界面中的视图,如果视图在布局文件中定义id属性,类似代码“android:id=”@ id/textview””,那么在程序代码中就可以通过R.id.textview表达式访问该视图。3.2.3MainActivity.java文件Hello Android应用只有一个屏幕,所以只有一个活动类——MainActivity.java文件。MainActivity.java具体代码如下:
package com.a51work6.helloandroid;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
MainActivity是一个活动组件,MainActivity的父类是AppCompatActivity,AppCompatActivity是Activity子类,AppCompatActivity是支持ActionBar的活动类。onCreate方法是在活动组件初始化时候调用方法。setContentView方法是设置活动布局内容,参数是R.layout.activity_main。3.2.4activity_main.xml布局文件布局文件activity_main.xml位于res的layout目录中,activity_main.xml布局文件代码如下:
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:paddingBottom=”@dimen/activity_vertical_margin”
android:paddingLeft=”@dimen/activity_horizontal_margin”
android:paddingRight=”@dimen/activity_horizontal_margin”
android:paddingTop=”@dimen/activity_vertical_margin”
tools:context=”com.a51work6.helloandroid.MainActivity”>
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Hello World!” />
RelativeLayout说明当前界面布局是相对布局,TextView声明一个标签视图,具体内容将在后面的章节详细介绍。界面布局文件activity_main.xml可以使用文本工具打开,Android Studio提供界面设计工具如图310所示,在界面设计工具中可以通过拖曳视图到设计窗口实现界面设计。
提示在界面设计窗口的左下角有两个标签——Design和Text,单击Text标签可以切换到Xml文本编辑窗口。
图310Android Studio提供界面设计工具
3.2.5AndroidManifest.xml文件Android的每个应用都必须包含一个AndroidManifest.xml清单文件,清单文件提供有关当前应用的基本信息,Android系统必须获得这些信息才能运行该应用。清单文件描述的内容如下: 声明应用的Java源代码包名,包名非常重要,它是应用的标识符。 描述应用中的组件,即Activity(活动)、Service(服务)、Broadcast Receiver(广播接收器)和Content Provider(内容提供者)。 声明应用必须具备的权限,例如应用中使用到的服务权限(如GPS服务、互联网服务和短信服务等)。 声明应用所需的Android API级别。 声明应用的安全控制和测试等信息。
注意在Android Studio工程中,AndroidManifest.xml位于manifests根目录下; 而在操作系统(如Windows的资源管理器)中,AndroidManifest.xml位于应用的根目录下,图39所示的app/src/main目录是应用的根目录。
AndroidManifest.xml文件代码如下:
package=”com.a51work6.helloandroid”>①
android:allowBackup=”true”
android:icon=”@mipmap/ic_launcher” ②
android:label=”@string/app_name” ③
android:supportsRtl=”true” ④
android:theme=”@style/AppTheme”> ⑤
⑥
⑦
⑧
代码第①行package=”com.a51work6.helloandroid”是声明应用的Java源代码包名。清单文件中的组件声明是在标签和之间添加的。代码第②行android:icon=”@mipmap/ic_launcher”是设置应用图标,@mipmap/ic_launcher是引用res/mipmap目录中的ic_launcher.png图片文件。代码第③行android:label=”@string/app_name”是声明应用名,@string/app_name是引用res/values/strings.xml文件中的标签中的内容。strings.xml代码如下:
Hello Android
AndroidManifest.xml文件代码第④行android:supportsRtl=”true”是声明应用支持从右往左书写语言习惯(主要是阿拉伯语和希伯来语)。代码第⑤行是声明应用主题为AppTheme。代码第⑥行声明活动组件,在活动中可以声明Intent Filter(意图过滤器),组件通过意图过滤器实现响应Intent(意图),Android系统启动某个组件之前,需要了解该组件要处理哪些意图。清单文件中的组件声明是在标签和之间添加的,代码第⑦行和第⑧行是声明当前活动是主屏幕启动的活动,即应用启动的个界面。3.3运行工程创建Android工程并编写代码后,就可以运行工程了。运行工程开发在Android模拟器或设备上运行。运行Android Studio工程以通过如图311所示的工具栏按钮实现。首先选择模块(Module),一个
图311运行工程相关工具栏
工程可包含多个模块,但默认情况下只有一个app模块。模块选择完成,就可以单击运行模块按钮运行了,如果要调试程序代码,则可以单击调试模式运行模块按钮。运行过程中会提示选择在哪个模拟器或设备上运行,如果是在设备上运行,则需要设备连接计算机才可以。如果运行成功,则会看到如图31所示的界面。3.4学会使用Android开发者社区帮助在开发Android的过程中,应该学会使用Android开发帮助,谷歌官方的Android开发者社区提供“Android SDK API文档”、“Android SDK开发指南”和“Android SDK案例帮助”。3.4.1在线帮助文档打开Android开发者社区网址https://developer.android.com/develop/index.html,页面如图312所示,在左边的导航菜单中可以找到这些帮助。
图312Android开发者社区
3.4.2Android SDK API文档在图312所示的页面的左边导航菜单中单击“参考”,打开Android SDK API文档会看到如图313所示的页面。熟悉Java的读者应该不陌生,非常类似于Java的API文档页面,它们的用法完全一样。
图313Android SDK API文档
3.4.3Android SDK开发指南在图312所示页面的左边导航菜单中单击“API指南”打开“Android SDK开发指南”文档,会看到如图314所示的页面。
图314Android SDK开发指南
建议读者好好阅读一下这部分内容,在这部分内容中包含了应用开发的各个方面,主要包括框架主题、开发应用、发布应用和实践等几个部分。框架主题包括用户界面相关内容、数据存储、图形技术(2D和3D)、意图和意图过滤器、内容提供者、多媒体、访问安全限制、蓝牙等。3.4.4使用Android SDK案例谷歌提供了一些Android SDK案例,在Android 4之前可以通过SDK Manager下载,现在已经不再提供下载了。谷歌推荐现在使用Android Studio工具直接从GitHubGitHub是一个通过Git进行版本控制的软件源代码托管服务。(https://github.com/googlesamples/)导入。在Android Studio的欢迎界面单击Import an Android code sample或通过菜单File→New→import sample可以导入案例,在如图315所示的对话框中,选择自己需要的案例,单击Next按钮,进入如图316所示的对话框,在此可以选择下载之后目录,然后单击Finish按钮就可导入了。
图315官方案例
图316导入官方案例
提示由于网络原因,有时无法连接GitHub,需要在Android Studio中设置HTTP代理。打开Android Studio菜单,选择File→Settings,打开如图317所示的对话框,在HTTP Proxy中选中Autodetect proxy settings,这样可以下载过程动态查找HTTP代理。
图317设置HTTP代理
本章总结本章首先介绍Android Studio工具创建Android工程; 然后介绍Android工程目录结构和一些重要的文件,以及如何通过Android Studio运行Android工程; 后介绍了如何使用Android开发者社区帮助。本章练习题1. AndroidManifest.xml清单文件描述的内容有哪些?2. 判断对错: Android工程目录中mipmap和drawable一样存放资源图片的目录。()3. 判断对错: Android工程目录中values是存放屏幕布局的目录。()
评论
还没有评论。