华信教育资源网
Android移动应用程序开发
丛   书   名: 新工科建设之路·计算机类规划教材
作   译   者:白喆 出 版 日 期:2020-07-01
出   版   社:电子工业出版社 维   护   人:张鑫 
书   代   号:G0387900 I S B N:9787121387906

图书简介:

针对普通高校和职业院校面向应用型人才培养模式的转型,本书重新设计了教学内容体系,注重与实际开发的衔接,基础知识点的实例注重''小而简”,综合实例注重''实而精”。Android编程主要涉及的技术包括UI、数据获取、数据呈现、数据上传、验证码、图片选取、视频播放、GPS定位、在线版本更新等。掌握这些技术可以实现大部分社交类、新闻类、购物/服务类、点餐类、点评类、教学类、音视频播放类移动应用程序的主要功能。而聊天类、实时推送类、支付类、直播类、语音/文字/图像识别类移动应用程序的主要功能,大多通过第三方开放平台提供的服务来完成;拍摄类、音视频处理类、3D/VR/AR类、AI类、系统安全类、硬件通信类、底层类移动应用程序的主要功能,涉及知识领域太广,不适合初学者涉猎。本书特别适合初学者快速进入开发状态,如果具有后台开发能力,就能够开发出独立的系统。本书的结构体系和实例,也为教师建设课程体系、制作网络课程和申请精品课程提供了便利。本书内容循序渐进,注重知识点的承接关系,涉及零基础到APP上线发布全过程。本书结合贴近实际应用的案例讲解知识点,便于读者举一反三将所学知识应用到实际开发过程中,避免了脱离实际开发、学无所用的尴尬。本书的读者应具有Java编程语言基础,对面向对象编程有一定了解的初学者,通过学习本书能够进行普通Android应用程序开发。
定价 62.0
您的专属联系人更多
关注 评论(1) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    针对普通高校和职业院校面向应用型人才培养模式的转型,本书重新设计了教学内容体系,注重与实际开发的衔接,基础知识点的实例注重''小而简”,综合实例注重''实而精”。Android编程主要涉及的技术包括UI、数据获取、数据呈现、数据上传、验证码、图片选取、视频播放、GPS定位、在线版本更新等。掌握这些技术可以实现大部分社交类、新闻类、购物/服务类、点餐类、点评类、教学类、音视频播放类移动应用程序的主要功能。而聊天类、实时推送类、支付类、直播类、语音/文字/图像识别类移动应用程序的主要功能,大多通过第三方开放平台提供的服务来完成;拍摄类、音视频处理类、3D/VR/AR类、AI类、系统安全类、硬件通信类、底层类移动应用程序的主要功能,涉及知识领域太广,不适合初学者涉猎。本书特别适合初学者快速进入开发状态,如果具有后台开发能力,就能够开发出独立的系统。本书的结构体系和实例,也为教师建设课程体系、制作网络课程和申请精品课程提供了便利。本书内容循序渐进,注重知识点的承接关系,涉及零基础到APP上线发布全过程。本书结合贴近实际应用的案例讲解知识点,便于读者举一反三将所学知识应用到实际开发过程中,避免了脱离实际开发、学无所用的尴尬。本书的读者应具有Java编程语言基础,对面向对象编程有一定了解的初学者,通过学习本书能够进行普通Android应用程序开发。

    图书详情

    ISBN:9787121387906
    开 本:16(185*260)
    页 数:296
    字 数:474

    本书目录

    目录
    第1章  Android的基础知识 1
    1.1  Android与Andy Rubin 1
    1.2  Android的开发环境 1
    1.2.1  Android Studio的下载 2
    1.2.2  Android Studio的安装 2
    1.2.3  Android SDK的安装 3
    1.2.4  Android Studio界面 5
    1.2.5  Gradle更新 8
    1.2.6  重构Java工程 9
    1.3  创建Android工程 10
    1.3.1  Android工程的新建命令 10
    1.3.2  Android工程的创建向导 10
    1.3.3  虚拟设备运行工程 13
    1.3.4  物理设备运行工程 17
    1.3.5  生成签名的APK文件 17
    1.4  Android的工程结构 19
    1.4.1  Project视图 19
    1.4.2  AndroidManifest.xml文件 19
    1.4.3  build.gradle文件 21
    1.4.4  res文件夹 21
    1.4  习题 22
    第2章  基础UI控件 23
    2.1  UI控件基础 23
    2.1.1  UI控件的创建方式 23
    2.1.2  View子类的常用属性 24
    2.1.3  UI控件的常用单位 26
    2.2  文本视图 27
    2.2.1  TextView控件 27
    2.2.2  实例工程:显示文本 28
    2.3  输入框 30
    2.3.1  EditText控件 30
    2.3.2  实例工程:输入发送信息 31
    2.4  按钮 33
    2.4.1  Button控件 33
    2.4.2  实例工程:单击按钮获取系统时间 34
    2.5  图像视图 35
    2.5.1  ImageView控件 35
    2.5.2  实例工程:显示图像 36
    2.6  图像按钮 37
    2.6.1  ImageButton控件 37
    2.6.2  实例工程:提示广播信息状态的图像按钮 38
    2.7  单选按钮 40
    2.7.1  RadioButton控件 40
    2.7.2  实例工程:选择性别的单选按钮 41
    2.8  复选框 44
    2.8.1  CheckBox控件 44
    2.8.2  实例工程:兴趣爱好的复选框 44
    2.9  开关按钮 47
    2.9.1  Switch控件 47
    2.9.2  实例工程:房间灯光的开关按钮 48
    2.10  提示信息 50
    2.10.1  Toast控件 50
    2.10.2  实例工程:不同位置显示的提示信息 51
    2.11  对话框 53
    2.11.1  AlertDialog控件 53
    2.11.2  实例工程:默认对话框和自定义对话框 54
    2.12  日期选择器 58
    2.12.1  DatePicker控件 58
    2.12.2  实例工程:设置日期的日期选择器 59
    2.13  时间选择器 61
    2.13.1  TimePicker控件 61
    2.13.2  实例工程:设置时间的时间选择器 62
    2.14  滚动条视图 64
    2.14.1  ScrollView控件 64
    2.14.2  实例工程:滚动显示视图 65
    2.15  通知 68
    2.15.1  Notification控件 68
    2.15.2  实例工程:弹出式状态栏通知和自定义视图状态栏通知 70
    2.16  习题 73
    第3章  UI布局控件 74
    3.1  线性布局 74
    3.1.1  LinearLayout控件 74
    3.1.2  实例工程:动态视图的线性布局 75
    3.2  相对布局 76
    3.2.1  RelativeLayout控件 76
    3.2.2  实例工程:显示方位的相对布局 77
    3.3  表格布局 79
    3.3.1  TableLayout控件 79
    3.3.2  实例工程:登录界面的表格视图 80
    3.4  网格布局 82
    3.4.1  GridLayout控件 82
    3.4.2  实例工程:模仿计算器界面的网格布局 82
    3.5  帧布局 84
    3.5.1  FrameLayout控件 84
    3.5.2  实例工程:分层显示图像的帧布局 84
    3.6  约束布局 85
    3.6.1  ConstraintLayout控件 85
    3.6.2  实例工程:模仿朋友圈顶部的约束布局 86
    3.7  习题 87
    第4章  UI控件与数据适配 88
    4.1  数据适配原理 88
    4.2  列表视图 89
    4.2.1  ListView控件 89
    4.2.2  实例工程:简单数据的列表视图 90
    4.2.3  实例工程:带缓存的自定义列表视图 92
    4.3  网格视图 96
    4.3.1  GridView控件 96
    4.3.2  实例工程:显示商品类别的网格视图 97
    4.4  自动完成文本视图 101
    4.4.1  AutoCompleteTextView控件 101
    4.4.2  实例工程:显示搜索提示的文本框 102
    4.5  悬浮框 104
    4.5.1  PopupWindow控件 104
    4.5.2  实例工程:单击按钮显示自定义悬浮框 105
    4.6  翻转视图 111
    4.6.1  ViewFlipper控件 111
    4.6.2  实例工程:轮流显示图像的翻转视图 112
    4.7  分页视图 115
    4.7.1  ViewPager控件 115
    4.7.2  实例工程:欢迎引导页 116
    4.8  习题 122
    第5章  基本程序单元 123
    5.1  活动 123
    5.1.1  Activity概述 123
    5.1.2  Activity的创建和删除 125
    5.1.3  Activity的启动和关闭 127
    5.1.4  Activity的生命周期 129
    5.1.5  Activity的启动模式 133
    5.1.6  实例工程:Activity的数据传递 138
    5.2  碎片 142
    5.2.1  Fragment概述 142
    5.2.2  Fragment的生命周期 144
    5.2.3  实例工程:导航分页的主界面 144
    5.3  习题 150
    第6章  后台服务与广播 151
    6.1  服务 151
    6.1.1  Service概述 151
    6.1.2  Service的生命周期 153
    6.1.3  实例工程:Service的开启和停止 153
    6.1.4  实例工程:Service的绑定和数据传递 156
    6.1.5  实例工程:Service显示Notification 161
    6.2  独立线程服务 163
    6.2.1  IntentService概述 163
    6.2.2  实例工程:IntentService的静态方法启动 164
    6.3  广播接收器 167
    6.3.1  BroadcastReceiver概述 167
    6.3.2  接收广播 169
    6.3.3  实例工程:显式和隐式接收广播 169
    6.3.4  发送广播 173
    6.3.5  实例工程:发送标准广播和有序广播 173
    6.4  习题 176
    第7章  数据存储与共享 177
    7.1  共享偏好设置 177
    7.1.1  SharedPreferences概述 177
    7.1.2  实例工程:用户登录 179
    7.2  轻量级数据库 181
    7.2.1  SQLite概述 181
    7.2.2  实例工程:自定义通信录 184
    7.3  内容提供者 187
    7.3.1  ContentProvider概述 187
    7.3.2  实例工程:自定义内容提供者 190
    7.3.3  实例工程:访问和修改系统通信录数据 198
    7.4  JavaScript对象表示法 208
    7.4.1  JSON概述 208
    7.4.2  实例工程:合成和解析JSON数据 210
    7.5  习题 213
    第8章  多媒体与传感器 214
    8.1  系统相机和相册 214
    8.1.1  实例工程:拍照、选取和显示图片 214
    8.1.2  实例工程:录制、选取和播放视频 221
    8.2  拍摄照片和录制视频 223
    8.2.1  Camera2类 223
    8.2.2  ImageReader类 230
    8.2.3  MediaRecorder类 231
    8.2.4  实例工程:使用Camera2类拍摄照片 233
    8.2.5  实例工程:使用Camera2类录制视频 242
    8.3  录制音频 249
    8.3.1  AudioRecord类 249
    8.3.2  AudioTrack类 250
    8.3.3  实例工程:AudioRecord录音 251
    8.3.4  实例工程:MediaRecorder录音 255
    8.4  传感器 257
    8.4.1  传感器概述 257
    8.4.2  运动类传感器 259
    8.4.3  实例工程:摇一摇比大小 260
    8.4.4  位置类传感器 262
    8.4.5  实例工程:指南针 263
    8.4.6  环境类传感器 266
    8.4.7  实例工程:光照计和气压计 266
    8.5  位置服务 268
    8.5.1  位置服务概述 268
    8.5.2  实例工程:获取经纬度坐标 270
    8.6  习题 271
    第9章  HTTP网络通信 272
    9.1  HttpURLConnection类 272
    9.2  实例工程:加载网络图片(带缓存) 273
    9.3  实例工程:发布动态(POST方式) 278
    9.4  实例工程:动态列表(GET方式) 282
    9.5  习题 286
    展开

    前     言

    前言
    Google的Android系统是目前主流的移动设备操作系统之一,具有源代码开源、硬件和开发平台价格低等特点。与iOS系统相比,Android系统对设备兼容性、硬件资源利用率、API传承性和对App监管程度的要求较低,而且Android系统赋予了开发者和用户更多的权限和选择性。使用iOS系统的用户需要通过App Store安装App;Android系统没有指定发布平台,甚至开发者可以在自己的网站上发布App的安装包。在App Store中发布App的审核周期较长,且个人开发者每年需支付一定费用,支付后才可以使用物理设备运行测试,否则只能使用模拟器。在这两个系统上,我都开发过App,开发难度基本相同,各有优势。
    2014年,我独立开发完成了一个基于1公里半径生活圈的App——微距,其中包含了社交和购物的功能。我大约用了10个月的时间完成了Android系统的微距App和后台网站的程序开发,又用了2个月时间完成了iOS系统的微距App开发,感觉在iOS平台开发最“幸福”的地方是无须考虑设备和API版本的兼容性,这也是Android系统最大的痛点。在微距App策划阶段,考虑到对于个人开发者而言,宣传推广和高并发的后台服务器可能是最大的困难,而且积累不了大量的用户就无法发展起来。后来将微距App的社交功能分离出来,在此基础上增加了用户筛选和评分的功能,形成了一个免费的交友App——未见。
    2018年,开始准备写一本Android开发的零基础教材,从最基础的Java和Kotlin语法开始写起,一直到综合实例未见App开发完成为止。除不包含游戏和系统安全的内容外,涵盖社交、新闻、购物等App所包含的知识点,并且搭建一个供学习者练习使用的服务器平台。
    2019年偶然的一天,决定写一本精简版,适合高校教学的Android开发教材。这本教材的基本思路是:知识点能够适应高校毕业生第一年工作的需要,并且教学内容能够在一个学期内完成。Android开发课程通常会作为大二或大三的专业选修课,距离毕业至少有1年,待学生毕业后,Android 10会较为普及,因此本书选择目前最新的API level 10作为基础,摒弃所有过时的API,使用Google发布的最新标准,不使用向下兼容的方法。同时,考虑到学生毕业后可能会遇到需要向下兼容的情况,本书配套资源中提供了几个使用Google已经不推荐使用或摒弃的方法的工程文件,感兴趣的学生可以自行查看源代码,书中不再赘述。
    本书按照App使用过程中涉及的各种功能对知识点进行分类,并归纳总结了相关类的常用方法和常量。由于智能手机的普及程度高,所以书中大量使用了高度概括和抽象的方式进行描述,“提示”中介绍相关知识点和使用方法,弥补读者知识储备的不足。本书没有将多线程、异步处理、文件操作、权限、动画、绘制等通用性强且较为容易理解的内容设立为独立的章节,而是将其融入实例工程中。实例工程多以典型的应用场景进行演示,掌握方法后可以举一反三,根据需要灵活应用。Activity、Fragment、Service、IntentService、BroadcastReceiver等类的实例工程则以流程的方式进行演示。对于所需代码量较大或需要向下兼容的情况,通过“拓展工程”提供给读者,源代码可在本书配套资源中查看。本书实例均使用原生代码编写,没有使用第三方类库或官方扩展类库,即能够自行实现的功能,建议尽量使用原生代码编写。
    本书可作为计算机科学与技术、软件工程、网络工程、数字媒体技术等专业 Android开发课程的教材,也可供具有Java基础的编程爱好者参考。
    对自学本书的读者建议:第1章根据内容逐步操作即可;第2~9章先阅读基础知识,了解相关类的常用方法或常量,然后按照步骤完成实例工程,联想使用过的App中哪部分使用了实例工程中的技术,再思考实例工程中没有使用到的方法或常量还能实现什么功能,最后将常用方法或常量及实例工程进行一次强化复习。
    学习完本书之后,理论上读者已经能够开发具有基本功能的社交、新闻、购物分享、技能分享、拍照、录制视频、音乐播放类App。当然,App只有这些基本功能是远远不够的,还需要适合的UI界面和后台服务器的支持,服务器端推荐使用CentOS+Nginx+PHP+ MySQL。如果是小团队或个人开发App,定位、支付、推送、地图、手机验证码、二维码识别、视频、通信等功能建议直接使用第三方提供的服务,可以节省大量的开发时间,降低技术难度,以及减少运营成本。
    本书配备素材、工程源代码和基础工程源代码,可在华信教育资源网(http://www. hxedu.com.cn)下载。源代码使用Android Studio 3.5.3和Gradle 5.6.4进行编写。Android Studio和Gradle更新比较频繁,读者下载时的版本可能更高,打开工程后根据提示更新即可。
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网