新書推薦:
《
大模型应用开发:RAG入门与实战
》
售價:HK$
89.4
《
不挨饿快速瘦的减脂餐
》
售價:HK$
67.0
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:HK$
110.7
《
卫宫家今天的饭9 附画集特装版(含漫画1本+画集1本+卫宫士郎购物清单2张+特制相卡1张)
》
售價:HK$
132.2
《
万千教育学前·与幼儿一起解决问题:捕捉幼儿园一日生活中的教育契机
》
售價:HK$
47.0
《
史铁生:听风八百遍,才知是人间(2)
》
售價:HK$
55.8
《
量子网络的构建与应用
》
售價:HK$
109.8
《
拍电影的热知识:126部影片里的创作技巧(全彩插图版)
》
售價:HK$
109.8
|
編輯推薦: |
本书出版前已经流传甚广,读者众多,出版是众望所归。本书旨在帮助读者全面掌握Android开发技术,能够实际开发Android项目。本书采用案例驱动式展开讲解,即案例概述案例核心技术知识点展开案例总结的方式。本书既可作为高等学校计算机软件技术课程的教材,也可作为社会培训机构培训教程,还适合于广大Android初学者和Android应用开发的程序员等。
|
內容簡介: |
本书是一本Android应用开发教程,旨在帮助读者全面掌握Android开发技术,能够实际开发Android项目。 本书分为三篇: 基础篇、进阶篇和实战篇。 基础篇包括第1章~第*章,介绍了Android操作系统概述、Android开发环境搭建、*个Android应用程序、调试Android应用程序、Android界面编程、Android界面布局、Android简单控件、Android高级控件、活动、碎片、意图、数据存储和使用内容提供者共享数据。 进阶篇包括第14章~第21章,介绍了Android多线程开发、服务、广播接收器、多媒体开发、网络通信技术、百度地图与定位服务、Android 2D图形与动画技术和手机功能开发。 实战篇包括第22章~第25章,介绍了分层架构设计与重构健康助手应用、内容提供者重构健康助手应用、Android敏捷开发项目实战我的播放器应用开发和把应用发布到Google play应用商店。 本书采用案例驱动式叙述方式,即案例概述案例核心技术知识点展开案例总结的方式。本书既可作为高等学校计算机类专业的移动开发技术课程的教材,也可作为社会培训机构的Android培训教材,还适合作为广大Android初学者和Android应用开发程序员的参考用书。
|
關於作者: |
手把手教你学Android开发集理论知识、项目开发与技术支持于一体的学习解决方案!这是一本坊间流传许久的Android学习的革命性作品!
|
目錄:
|
目录
基础篇
第1章Android操作系统概述
1.1Android历史介绍
1.2Android架构
1.3Android平台介绍
第2章Android开发环境搭建
2.1JDK安装与配置
2.2Android Studio开发工具
2.3Android SDK工具包
2.4配置Android Studio
2.5Android模拟器
2.5.1创建模拟器
2.5.2启动模拟器
本章总结
第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.2离线帮助文档
3.4.3Android SDK API文档
3.4.4Android SDK开发指南
3.4.5使用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核心APIMediaPlayer类
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画布(Canvas)和画笔(Paint)
20.1.2实例: 绘制点和线
20.1.3实例: 绘制矩形
20.1.4实例: 绘制弧线
20.1.5实例: 绘制位图
20.2位图变换
20.2.1矩阵(Matrix)
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动画插值器(interpolator)
20.4.4使用动画集(AnimationSet)
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重构健康助手数据持久层
本章总结
第24章Android敏捷开发项目实战我的播放器应用开发
24.1应用分析与设计
24.1.1应用概述
24.1.2需求分析
24.1.3原型设计
24.1.4界面设计
24.1.5架构设计
24.2Android敏捷开发
24.2.1敏捷开发宣言
24.2.2Android可以敏捷开发
24.2.3Android敏捷开发一般过程
24.3任务1: 创建工程
24.4任务2: 音频列表功能
24.4.1任务2.1: 界面布局
24.4.2任务2.2: AudioListActivity
24.4.3任务2.3: AudioCursorAdapter
24.5任务3: 音频控制功能
24.5.1任务3.1: 界面布局
24.5.2任务3.2: 初始化AudioPlayerActivity活动
24.5.3任务3.3: 初始化AudioService服务
24.5.4任务3.4: 播放控制
24.5.5任务3.5: 进度控制
24.6任务4: 后台播放回到前台功能
24.7任务5: 更新专辑图片功能
本章总结
第25章把应用发布到Google play 应用商店
25.1谷歌Android应用商店Google play
25.2Android设备测试
25.3还有最后一公里
25.3.1添加图标
25.3.2生成数字签名文件
25.3.3发布打包
25.4发布产品
25.4.1上传APK
25.4.2填写商品详细信息
25.4.3定价和发布范围
本章总结
|
內容試閱:
|
前言
2008年,谷歌公司推出了Android操作系统。自此,Android作为一款为移动终端打造的开源手机操作系统平台,引领了突破垄断技术、降低开发成本的潮流。可以说,Android操作系统对于中国的IT产业发展产生了深远的影响。我有幸在2009年开始接触Android,并深深被它吸引,从此开始从事Android应用开发方面的教学与培训工作,并主持开发了一些Android项目。本书的编写目的就是帮助Android初学者快速入门,同时对Android开发人员也有一定参考价值。在阅读本书之前,有必要了解一下书中的一些约定,以及如何使用本书的案例。
本书服务网址为了更好地为广大读者提供服务,我们专门为本书建立了一个服务网址www.51work6.combookandroid1.php,读者可以与作者互动,并对书中内容发表评论,提出宝贵意见。书中源代码1. 源代码下载书中提供了100多个完整的案例项目源代码,读者可以在www.51work6.combookandroid1.php处下载。2. 源代码目录结构下载本书源代码并解压缩,会看到如图1所示的目录结构。图1中的ch6表示第6章代码,在ch目录下一般是各节的内容。例如,6.2.8表示第6.2.8节实例; 在节目录下一般是Android Studio工程目录,例如,LayoutSample就是6.2.8节的实例的Android Studio工程。3. 导入源代码工程要使用这些代码,还必须将其导入到Android Studio中。可以在Android Studio欢迎界面选择Open an existing Android Studio project或FileOpen菜单,找到工程目录(例如6.2.8节中的LayoutSample),然后打开就可以了。但是,由于笔者的Android SDK安装目录可能与读者不同,因此读者第一次打开实例工程时,可能会出现如图2所示的错误提示,请不要慌张,Android Studio工具会对你配置的Android SDK重新进行初始化,再次打开就没有问题了。
图1实例代码目录结构
图2导入实例工程可能遇到的问题
书中图示的约定为了更有效地叙述知识点或描述操作,本书给出了很多插图,下面简要说明插图中符号的含义。1. 图中的圈框图3中的圈框中的内容是选中的内容或要重点说明的内容。
图3图中圈框
2. 图中的箭头图4所示的箭头用于说明用户的动作,一般箭尾是动作开始的地方,箭头指向动作结束的地方。图5所示的箭头常用来描述设置控件的属性等操作。
图4图中箭头1
图5图中箭头2
3. 图中的手势为了描述操作,我们在图中使用了等手势符号,用来表明单击该处的按钮,如图6所示。
图6图中手势
勘误与支持作者在网站www.51work6.combookandroid1.php中建立了一个勘误专区,可以及时地把书中的问题、失误和纠正反馈给广大读者。如果读者在学习过程中发现了任何问题,也可以在网上留言,或者发送电子邮件到eorient@sina.com,作者会在第一时间回复你。本书主要由赵志荣编著,此外关东升、赵大羽、关锦华、闫婷娇、刘佳笑和赵浩丞也参与了部分内容的编写。感谢赵大羽老师手绘了书中全部草图,并从专业的角度修改书中图片,力求更加完美地奉献给广大读者。感谢我的家人容忍我的忙碌,以及对我的关心和照顾,使我能抽出这么多时间,投入全部精力编写此书。由于时间仓促,书中难免存在不妥之处,请读者原谅,并提出宝贵意见。赵志荣2017年6月于北京
第3章
第一个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。
提示在实际发布应用时候,Android平台的最低SDK版本不应该是目前最高版本,而应该考虑目前大部分用户所采用Android版本。从图34可见,API 21用户目前不多于40.5%,如果不能确定选择哪一个,可以单击Minimum SDK选项下面的Help me choose超链接来帮助选择。
图34选择Android平台和SDK版本
在图34所示的对话框中单击Next按钮,则进入如图35所示的活动Activity模板对话框,这里可以选择活动Activity模板,就本例而言需选择空活动Empty Activity模板。
提示Activity是Android应用绘制图形界面的重要组件,Activity中能够包含若干个View控件对象。本书将Activity翻译为活动。
在图35所示的对话框界面中单击Next按钮,则进入如图36所示的自定义活动对话框,其中的Activity Name是活动文件名,选中Generate Layout File会生成布局文件,Layout Name是布局文件名。
图35选择活动模板
|
|