资源名称:Android编程权威指南(第2版)

内容简介:

Big Nerd Ranch是美国一家专业的移动开发技术培训机构。本书主要以其Android训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android编程权威指南。全书共34章,详细介绍了8个Android 应用。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得最前沿的开发经验。

如果你熟悉Java语言,或者了解面向对象编程,那就立刻开始Android编程之旅吧!

作者简介:

王明发:毕业于华东理工大学。软件开发及项目管理者,拥有近十年的软件开发及项目管理经验;译者,另译有《写给大家看的项目管理书(第3版)》。

资源目录:

第1章  Android开发初体验

1.1 应用开发基础

1.2 创建Android项目

1.3 Android Studio使用导航

1.4 用户界面设计

1.4.1 视图层级结构

1.4.2 组件属性

1.4.3 创建字符串资源

1.4.4 预览界面布局

1.5 从布局XML到视图对象

1.6 组件的实际应用

1.6.1 引用组件

1.6.2 设置监听器

1.7 创建提示消息

1.8 使用模拟器运行应用

1.9 深入学习:Android编译过程

第2章  Android与MVC设计模式

2.1  创建新类

2.2  Android与MVC设计模式

2.3  更新视图层

2.4  更新控制层

2.5  在设备上运行应用

2.6  添加图标资源

2.7  关于挑战练习

2.8  挑战练习:为TextView添加监听器

2.9  挑战练习:添加后退按钮

2.10  挑战练习:从按钮到图标按钮

第3章  Activity的生命周期

3.1  日志跟踪理解Activity生命周期

3.2  设备旋转与Activity生命周期

3.3  设备旋转前保存数据

3.4  再探Activity生命周期

3.5  深入学习:测试onSaveInstance-State(Bundle)方法

3.6  深入学习:日志记录的级别与方法

第4章  Android应用的调试

4.1  异常与栈跟踪

4.2  Android特有的调试工具

第5章  第二个activity

5.1  创建第二个activity

5.2  启动activity

5.3  activity间的数据传递

5.4  activity的使用与管理

5.5  挑战练习

第6章  Android SDK版本与兼容

6.1  Android SDK版本

6.2  Android编程与兼容性问题

6.3  使用Android开发者文档

6.4  挑战练习:报告编译版本

第7章  UI fragment与fragment管理器

7.1  UI设计的灵活性需求

7.2  fragment的引入

7.3  着手开发CriminalIntent

7.4  托管UI fragment

7.5  创建UI fragment

7.6  添加UI fragment到Fragment-Manager

7.7  采用fragment的应用架构

7.8  深入学习:为什么应优先使用支持库版fragment

7.9  深入学习:使用操作系统内置版fragment

第8章  使用布局与组件创建用户界面

8.1  升级Crime类

8.2  更新布局

8.3  生成并使用组件

8.4  深入探讨XML布局属性

8.5  使用图形布局工具

8.6  挑战练习:日期格式化

第9章  使用RecyclerView显示列表

9.1  升级CriminalIntent应用的模型层

9.2  使用抽象activity托管fragment

9.3  RecyclerView、Adapter和ViewHolder

9.4  定制列表项

9.5  响应点击

9.6  深入学习:ListView和GridView

9.7  深入学习:单例

第10章  使用fragment argument

10.1  从fragment中启动activity

10.2  fragment argument

10.3  刷新显示列表项

10.4  通过fragment获取返回结果

10.5  挑战练习:实现高效的RecyclerView刷新

10.6  深入学习:为何要用fragment argument

第11章  使用ViewPager

11.1  创建CrimePagerActivity

11.2  FragmentStatePagerAdapter与FragmentPagerAdapter

11.3  深入学习:ViewPager的工作原理

11.4  深入学习:以代码的方式创建布局

第12章  对话框

12.1  使用AppCompat兼容库

12.2  创建DialogFragment

12.3  fragment间的数据传递

12.4  挑战练习:更多对话框

12.5  挑战练习:按设备类型展现DialogFragment

第13章  工具栏

13.1  AppCompat

13.2  工具栏菜单

13.3  实现层级式导航

13.4  可选菜单项

13.5  深入学习:工具栏与操作栏

13.6  挑战练习:删除crime记录

13.7  挑战练习:优化字符串资源显示

13.8  挑战练习:用于RecyclerView的空视图

第14章  SQLite数据库

14.1  定义Schema

14.2  创建初始数据库

14.3  修改CrimeLab类

14.4  写入数据库

14.5  读取数据库

14.6  深入学习:数据库高级主题介绍

14.7  深入学习:应用上下文

14.8  挑战练习:删除Crime记录

第15章  隐式intent

15.1  添加按钮组件

15.2  添加嫌疑人信息至模型层

15.3  使用格式化字符串

15.4  使用隐式intent

15.5  挑战练习:ShareCompat

15.6  挑战练习:又一个隐式intent

第16章  使用intent拍照

16.1  布置照片

16.2  外部存储

16.3  使用相机intent

16.4  缩放和显示位图

16.5  功能声明

16.6  深入学习:使用include标签

16.7  挑战练习:优化照片显示

16.8  挑战练习:优化缩略图加载

第17章  Master-Detail用户界面

17.1  增加布局灵活性

17.2  Activity:fragment的托管者

17.3  深入学习:设备屏幕尺寸的确定

第18章  Assets

18.1  为何使用assets

18.2  创建BeatBox应用

18.3  导入assets

18.4  处理assets

18.5  使用Assets

18.6  访问Assets

18.7  深入学习:什么是non-assets

第19章  使用SoundPool播放音频

19.1  创建SoundPool

19.2  加载音频文件

19.3  播放音频

19.4  释放音频

19.5  设备旋转和对象保存

19.6  深入学习:是否要保留

19.7  深入学习:设备旋转处理再探

第20章  样式与主题

20.1  颜色资源

20.2  样式

20.3  主题

20.4  添加主题颜色

20.5  覆盖主题属性

20.6  修改按钮属性

20.7  深入学习:样式继承拾遗

20.8  深入学习:引用主题属性

20.9  挑战练习:创建多版本主题

第21章  XML drawable

21.1  统一按钮样式

21.2  shape drawable

21.3  state list drawable

21.4  layer list drawable

21.5  深入学习:为什么要用XML drawable

21.6  深入学习:使用9-patch图像

21.7  深入学习:使用Mipmap图像

第22章  深入学习intent和任务

22.1  创建NerdLauncher项目

22.2  解析隐式intent

22.3  在运行时创建显式intent

22.4  任务与后退栈

22.5  使用NerdLauncher应用作为设备主屏幕

22.6  挑战练习:应用图标

22.7  深入学习:进程与任务

22.8  深入学习:并发文档

第23章  HTTP与后台任务

23.1  创建PhotoGallery应用

23.2  网络连接基本

23.3  使用AsyncTask在后台线程上运行代码

23.4  线程与主线程

23.5  从Flickr获取JSON数据

23.6  从AsyncTask回到主线程

23.7  清理AsyncTask

23.8  深入学习:AsyncTask再探

23.9  深入学习:AsyncTask的替代方案

23.10  挑战练习:Gson

23.11  挑战练习:分页

23.12  挑战练习:动态调整网格列

第24章  Looper、Handler和HandlerThread

24.1  配置RecyclerView以显示图片

24.2  批量下载缩略图

24.3  与主线程通信

24.4  创建并启动后台线程

24.5  Message与message handler

24.6  深入学习:AsyncTask与线程

24.7  挑战练习:预加载以及缓存

24.8  深入学习:解决图片下载问题

第25章  搜索

25.1  搜索Flickr网站

25.2  使用SearchView

25.3  使用shared preferences实现轻量级数据存储

25.4  优化应用

25.5  挑战练习:深度优化PhotoGallery应用

第26章  后台服务

26.1  创建IntentService

26.2  服务的作用

26.3  查找最新返回结果

26.4  使用AlarmManager延迟运行服务

26.5  控制定时器

26.6  通知信息

26.7  挑战练习:可穿戴设备上的通知

26.8  深入学习:服务细节内容

26.9  深入学习:JobScheduler和JobService

26.10  深入学习:Sync Adapter

26.11  挑战练习:在Lollipop设备上使用JobService

第27章  broadcast intent

27.1  一般intent和broadcast intent

27.2  接收系统broadcast:重启后唤醒

27.3  过滤前台通知消息

27.4  receiver与长时运行任务

27.5  深入学习:本地事件

27.6  深入学习:检测fragment的状态

第28章  网页浏览

28.1  最后一段Flickr数据

28.2  简单方式:隐式intent

28.3  较难方式:使用WebView

28.4  处理WebView的设备旋转问题

28.5  深入学习:注入Javascript对象

28.6  深入学习:KitKat的WebView

28.7  挑战练习:使用后退键浏览历史网页

28.8  挑战练习:非HTTP链接支持

第29章  定制视图与触摸事件

29.1  创建DragAndDraw项目

29.2  创建定制视图

29.3  处理触摸事件

29.4  onDraw(…)方法内的图形绘制

29.5  挑战练习:设备旋转问题

29.6  挑战练习:旋转矩形框

第30章  属性动画

30.1  建立场景

30.2  简单属性动画

30.3  播放多个动画

30.4  深入学习:其他动画API

30.5  挑战练习

第31章  地理位置和Play服务

31.1  地理位置和定位类库

31.2  创建Locatr项目

31.3  Play服务和模拟器

31.4  创建Locatr应用

31.5  配置Google Play服务

31.6  使用Google Play服务

31.7  基于地理位置的Flickr搜索

31.8  获取定位数据

31.9  寻找并显示图片

31.10  挑战练习:进度指示器

第32章  使用地图

32.1  导入Play地图服务库

32.2  Android上的地图服务

32.3  地图API设置

32.4  创建地图

32.5  获取更多地理位置数据

32.6  使用地图

32.7  深入学习:团队开发和API key

第33章  material design

33.1  material surface

33.2  动画工具

33.3  新的视图组件

33.4  深入学习material design

第34章  编后语

34.1  终极挑战

34.2  关于我们

34.3  致谢

资源截图:

Android编程权威指南(第2版)