¥ 17.14 2.2折 ¥ 79 九品
仅1件
作者安辉
出版社清华大学出版社
ISBN9787302513582
出版时间2018-12
装帧平装
开本16开
定价79元
货号9787302513582
上书时间2024-02-17
前 言
我在写书之前一直在CSDN上发表文章,同时在“知乎”等网站回答一些Android相关的问题,后来有幸收到了清华大学出版社编辑的邀请,于是产生了编写本书的想法。
我*早是从事Java Web开发的,出于对Android的浓厚兴趣,后来又开始从事Android的开发。在开发过程中,我走了很多弯路,阅读了很多Android方面的书,从入门类到高级开发类都有,美中不足的是这些书要么篇幅过长要么技术过时,浪费了很多时间。鉴于此,本书将结合我多年的Android开发经验,总结企业中常用的开发技术,使用前沿技术兼容*的Android操作系统,使初学者快速加入Android开发阵营。即使是中、高级开发者,阅读本书后也能从中获益。
Android操作系统经过将近10年的发展。随着移动App的热潮,越来越多的人加入移动开发的大军,企业对Android招聘的需求也越来越高。本书内容从基础入门到高级开发,涵盖企业开发中常用的技术点,能让读者对Android开发有一个学习框架。*后一章通过模仿商业App开发,融会贯通前面的知识点,以提高读者项目开发的实战能力。
本书内容
本书共有10章,主要内容如下:
第1章学习开发工具Android Studio的使用,一个好的开发工具可以大大提高开发人员的工作效率。
第2章讲解Android控件相关知识,一个UI界面由多个控件组成,只有熟练使用各种控件才能设计出好看的App,达到UI设计师想要的效果。
第3章学习Android中四大组件的使用。在企业的项目开发中,四大组件中的Activity(活动)、Service(服务)、Broadcast Receiver(广播接收器)使用很频繁,ContentProvider(内容提供者)使用频率相对少一些,只有某些特定需求时才会用到。
第4章学习Fragment(碎片)的使用方法,从Fragment简单使用到*后的案例开发,一步步深入地学习Fragment。使用Fragment会让App模块化,还能解决手机与平板电脑的适配问题。
第5章学习多线程开发。从多线程的创建,到子线程如何更新UI,通过阅读源码分析Handle的实现原理,*后介绍线程池的使用方法。
第6章首先学习Android的网络编程,通过Get/Post方式向服务器发送HTTP请求。现在市面上大部分App与服务器交互都是返回Json数据,所以介绍Gson框架,以及OkHttp开源项目的使用和封装。*后是数据存储的三种方式。
第7章学习Android的高级应用,主要介绍Notification使用、多媒体开发、WebView使用、定位的三种方式、NDK和JNI开发、Git管理项目等。
第8章学习Android中各大版本的更新,让我们的App解决版本适配问题,完美兼容5.0以上的各个版本。
第9章学习常用功能模板的使用。这些功能是企业开发中可能会碰到的需求,通过模板的学习,知道如何对一个App进行功能划分以及如何封装模块。
第10章通过模仿一个商业App,从零开始搭建项目,使用前面9章所学的内容,将所学知识点融会贯通,并进一步熟练掌握。有了项目开发的经验,你在今后的企业开发中就能快速成为一名合格的开发人员。
本书特色
本书定位为基础类图书,对每一个知识点的讲解都很详细,从基础入门逐步进入高级应用,让读者能系统全面地学习Android开发,更深入地了解Android开发体系。本书的内容是我多年Android开发经验的总结,也是一个合格的Android开发者必须掌握的内容,简单来说,就是企业开发中经常用到的技术。
编 者
2018年10月
目 录
第1章 Android Studio的介绍以及使用 1
1.1 探索Android Studio 1
1.1.1 项目结构 2
1.1.2 Android Studio主窗口 3
1.1.3 工具窗口 4
1.1.4 代码自动完成 4
1.1.5 样式和格式化 5
1.1.6 版本控制基础知识 5
1.1.7 Gradle构建系统 6
1.1.8 Debug调试 6
1.1.9 性能监视器 7
1.1.10 分配跟踪器 7
1.1.11 数据文件访问 7
1.1.12 代码检查 7
1.1.13 日志消息 8
1.2 下载与安装Android Studio 8
1.2.1 下载Android Studio 8
1.2.2 开始安装 9
1.3 Android Studio使用 13
1.3.1 项目结构 13
1.3.2 创建项目 16
1.3.3 Android Studio自带模拟器运行项目 20
1.3.4 使用Genymotion模拟器运行 22
1.3.5 真机运行 25
1.4 调试项目 27
1.4.1 Debug断点调试 27
1.4.2 日志调试 29
1.5 Eclipse项目迁移至Android Studio 30
1.5.1 Eclipse项目迁移条件 30
1.5.2 将Eclipse项目导入Android Studio 30
1.5.3 验证导入是否成功 32
1.6 创建Android库 32
1.6.1 创建库模块 33
1.6.2 将库模块导入到项目中 33
1.6.3 将应用模块转换为库模块 33
1.6.4 开发库模块的注意事项 34
1.6.5 AAR文件详解 34
1.7 项目依赖库 35
1.7.1 依赖本地库 35
1.7.2 在线依赖库 36
1.8 应用清单文件 36
1.8.1 清单文件结构 37
1.8.2 文件约定 38
1.9 常用快捷键 39
1.10 应用签名 40
1.10.1 证书和密钥库 40
1.10.2 调试项目时签名 41
1.10.3 正式签名 41
1.11 多渠道打包 43
1.11.1 代码实现 43
1.11.2 测试 44
1.12 ADB详解 45
1.12.1 Mac下adb加入环境变量(Windows电脑自行搜索) 45
1.12.2 adb常用命令 46
1.13 Android Studio 3.0新特性 46
1.13.1 Android Gradle插件3.0.0 47
1.13.2 手动更新Gradle版本 47
1.13.3 Kotlin支持 47
1.13.4 Java 8支持 48
1.13.5 Android Profiler 48
1.13.6 CPU Profiler 49
1.13.7 Memory Profiler 49
1.13.8 Network Profiler 50
1.13.9 APK profiling 50
1.13.10 Device File Explorer 51
1.13.11 Adaptive Icons wizard 51
1.13.12 Google的Maven存储库 52
1.14 本章小结 52
第2章 Android控件 53
2.1 View介绍 53
2.1.1 自定义View 54
2.1.2 自定义属性 58
2.2 ViewGroup介绍 59
2.3 几种常用的布局 67
2.3.1 LinearLayout(线性布局) 67
2.3.2 RelativeLayout(相对布局) 70
2.3.3 FrameLayout(框架布局) 72
2.3.4 三大布局嵌套以及动态添加View 73
2.4 初级控件的使用 75
2.4.1 TextView(文本视图) 76
2.4.2 Button(按钮) 79
2.4.3 EditText(文本编辑框) 83
2.4.4 ImageView(图像视图) 86
2.4.5 RadioButton(单选按钮) 87
2.4.6 Checkbox(复选框) 89
2.4.7 ProgressBar(进度条) 91
2.4.8 ProgressDialog(进度对话框) 93
2.4.9 AlertDialog(简单对话框) 94
2.4.10 PopupWindow(弹出式窗口) 96
2.4.11 DialogFragment 99
2.5 Android高级控件的使用 102
2.5.1 ListView(列表视图) 102
2.5.2 GridView(网格视图) 109
2.5.3 RecyclerView(循环视图) 113
2.5.4 SwipeRefreshLayout(下拉刷新) 127
2.5.5 ViewPager(翻页视图) 131
2.6 通过xml文件修饰View 134
2.6.1 shapes(设置圆角、边框、填充色、渐变色) 134
2.6.2 selector(设置点击、选中点击效果) 136
2.6.3 layer-list(把item按照顺序层叠显示) 137
2.7 本章小结 138
第3章 Android四大组件 139
3.1 Activity(活动) 139
3.1.1 Activity的生命周期 139
3.1.2 启动Activity的两种方式 142
3.1.3 在Activity中使用Toast 143
3.1.4 Activity启动与退出动画 147
3.1.5 Activity销毁 156
3.1.6 Activity与Activity之间传递数据 158
3.1.7 Activity的软键盘弹出方式 160
3.1.8 Activity任务栈 161
3.1.9 Activity四种启动模式 162
3.2 Service(服务) 164
3.2.1 Activity中启动Service以及销毁Service 164
3.2.2 Activity与Service通信 167
3.3 Broadcast Receiver(广播接收器) 171
3.3.1 动态注册广播 171
3.3.2 静态注册广播 172
3.3.3 广播基本总结 174
3.3.4 应用内广播LocalBroadcastManager 174
3.4 ContentProvider(内容提供者) 175
3.5 本章小结 176
第4章 Fragment探索 177
4.1 Fragment简介 177
4.2 Fragment生命周期 177
4.3 FragmentManager与 FragmentTransaction的使用 182
4.3.1 FragmentManager(Fragment管理类)的使用 182
4.3.2 FragmentTransaction(Fragment事务)的使用 183
4.4 Activity动态操作Fragment 183
4.5 Fragment与Activity交互数据 186
4.6 Fragment案例——实现底部导航栏 187
4.6.1 分析需求 188
4.6.2 代码实现 188
4.7 本章小结 195
第5章 Android多线程开发 196
5.1 多线程的创建 196
5.2 子线程中更新UI的四种方法 197
5.2.1 用Activity对象的runOnUiThread方法 197
5.2.2 View.post的使用 199
5.3 Handler的使用 199
5.3.1 为什么要用Handler 199
5.3.2 使用Handler 200
5.3.3 Handler、Looper与MessageQueue三者的关系 202
5.4 使用AsyncTask创建后台线程 207
5.5 线程池的使用 208
第6章 Android网络编程与数据存储 216
6.1 基于Android平台的HTTP通信 216
6.1.1 使用Get方式向服务器提交数据 217
6.1.2 使用Post方式向服务器提交数据 218
6.1.3 使用GSON解析JSON格式的数据 219
6.1.4 OkHttp开源项目的使用 221
6.2 数据存储 243
6.2.1 SharedPreferences 243
6.2.2 SQLite数据库 244
6.2.3 文件存储 247
6.3 本章小结 247
第7章 Android高级应用 248
7.1 Notification(通知)使用 248
7.1.1 创建通知 249
7.1.2 通知优先级 250
7.1.3 更新通知 250
7.1.4 删除通知 251
7.1.5 自定义通知布局 251
7.2 多媒体开发 252
7.2.1 播放音频 252
7.2.2 播放视频的三种方式 257
7.3 调用浏览器打开网页 262
7.3.1 启动Android默认浏览器 262
7.3.2 启动指定浏览器打开 262
7.3.3 优先使用 262
7.4 WebView的使用 263
7.4.1 WebView加载网页的四种方式 263
7.4.2 WebViewClient与WebChromeClient的区别 263
7.4.3 WebView的简单使用 264
7.5 复制和粘贴 268
7.5.1 复制文本 268
7.5.2 粘贴文本 268
7.6 定位的使用 268
7.6.1 定位的三种方式 269
7.6.2 定位的相关类 270
7.6.3 GPS获取经纬度 271
7.6.4 根据经纬度反向编码获取地址 273
7.7 NDK与JNI开发 275
7.7.1 什么是NDK 275
7.7.2 NDK下载 276
7.7.3 在Mac下加入NDK环境变量 277
7.7.4 什么是JNI 278
7.7.5 NDK与JNI的简单使用 278
7.8 使用SourceTree上传项目到GitHub 281
7.8.1 什么是Git 281
7.8.2 什么是GitHub 282
7.8.3 什么是SourceTree 283
7.8.4 使用SourceTree操作GitHub 283
7.9 将项目发布到JCenter 292
第8章 Android 5.X、6.X、7.X、8.X各版本特性 299
8.1 Android 5.X版本新特性 299
8.1.1 悬挂式Notification 299
8.1.2 利用Drawerlayout和NavigationView实现侧边栏 301
8.1.3 TabLayout和ViewPager结合使用 304
8.1.4 CoordinatorLayout、FloatingActionButton和Snackbar的使用 306
8.2 Android 6.X版本新特性 307
8.3 Android 7.X版本新特性 310
8.3.1 多窗口支持 311
8.3.2 FileProvider解决FileUriExposedException 312
8.4 Android 8.X版本新特性 314
第9章 常用功能模板 319
9.1 启动页与首次启动的引导页 319
9.1.1 需求分析 321
9.1.2 代码实现 321
9.1.3 启动页 321
9.1.4 引导页 323
9.2 检查更新并下载安装 327
9.3 Banner广告轮播图 332
9.3.1 运行效果图 332
9.3.2 代码实现 333
9.4 微信登录、分享与支付 337
9.4.1 代码实现 337
9.4.2 微信登录 342
9.4.3 微信分享 344
9.4.4 微信支付 344
9.4.5 签名 346
9.4.6 微信开放平台官网的后台配置 347
9.4.7 运行软件 347
9.4.8 微信官方开发文档 348
9.5 百度地图 349
9.5.1 百度定位SDK 350
9.5.2 百度地图SDK 357
第10章 实现开发者头条 364
10.1 启动页实现 364
10.1.1 启动页的目标效果 364
10.1.2 代码实现 365
10.2 使用DrawerLayout控件实现侧滑菜单栏 370
10.2.1 侧滑菜单的目标效果 370
10.2.2 代码实现 370
10.3 开发者头条首页实现 377
10.3.1 源代码的实现 378
10.3.2 精选Fragment 382
10.4 开发者头条首页优化 387
10.4.1 需要在线依赖 388
10.4.2 标题栏和三个切换选项卡 388
10.4.3 分析TabLayout切换源代码 391
10.4.4 精选文章列表控件从ListView替换成RecyclerView 393
10.5 RecyclerView实现下拉刷新和上拉加载更多 395
10.5.1 实现步骤 396
10.5.2 实现详解 396
— 没有更多了 —
以下为对购买帮助不大的评价