Android编程权威指南-(第2版)
1星价
¥53.4
(4.9折)
2星价¥53.4
定价¥109.0
温馨提示: 5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>
图文详情
ISBN:9787115422460
装帧:暂无
册数:暂无
重量:暂无
开本:16开
页数:551
出版时间:2016-05-01
条形码:9787115422460 ; 978-7-115-42246-0
本书特色
big nerd ranch是美国一家专业的移动开发技术培训机构。本书主要以其android训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的android编程指南。全书共34章,详细介绍了8个android 应用。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得前沿的开发经验。如果你熟悉java语言,或者了解面向对象编程,那就立刻开始android编程之旅吧!
内容简介
权威——源自大名鼎鼎的big
nerd ranch训练营培训讲义,该训练营已经为微软、谷歌、facebook等行业巨头培养了众多专业人才。
全面——涵盖android开发所有**理论概念和技术知识点。
实用——8个android应用开发实战项目,传授*直接的开发经验。
易懂——以循序渐进的方式精心编排章节,一步一步写出android应用。
目录
第1章 android开发初体验 11.1 应用开发基础 11.2 创建android项目 21.3 android studio使用导航 61.4 用户界面设计 71.4.1 视图层级结构 101.4.2 组件属性 111.4.3 创建字符串资源 121.4.4 预览界面布局 121.5 从布局xml到视图对象 131.6 组件的实际应用 171.6.1 引用组件 181.6.2 设置监听器 181.7 创建提示消息 201.8 使用模拟器运行应用 231.9 深入学习:android编译过程 25第2章 android与mvc设计模式 292.1 创建新类 292.2 android与mvc设计模式 322.3 更新视图层 342.4 更新控制层 362.5 在设备上运行应用 402.5.1 连接设备 402.5.2 配置设备用于应用开发 412.6 添加图标资源 422.6.1 向项目中添加资源 432.6.2 在xml文件中引用资源 452.7 关于挑战练习 462.8 挑战练习:为textview添加监听器 462.9 挑战练习:添加后退按钮 462.10 挑战练习:从按钮到图标按钮 47第3章 activity的生命周期 493.1 日志跟踪理解activity生命周期 503.1.1 输出日志信息 503.1.2 使用logcat 523.2 设备旋转与activity生命周期 553.3 设备旋转前保存数据 593.4 再探activity生命周期 613.5 深入学习:测试onsaveinstance-state(bundle)方法 623.6 深入学习:日志记录的级别与方法 64第4章 android应用的调试 654.1 异常与栈跟踪 664.1.1 诊断应用异常 674.1.2 记录栈跟踪日志 684.1.3 设置断点 694.1.4 使用异常断点 724.2 android特有的调试工具 734.2.1 使用android lint 734.2.2 r类的问题 75第5章 第二个activity 765.1 创建第二个activity 775.1.1 创建新的activity 785.1.2 创建新的activity子类 815.1.3 在manifest配置文件中声明activity 815.1.4 为quizactivity添加cheat按钮 825.2 启动activity 845.3 activity间的数据传递 865.3.1 使用intent extra 865.3.2 从子activity获取返回结果 895.4 activity的使用与管理 945.5 挑战练习 97第6章 android sdk版本与兼容 986.1 android sdk版本 986.2 android编程与兼容性问题 996.2.1 比较合理的版本 996.2.2 sdk*低版本 1016.2.3 sdk目标版本 1016.2.4 sdk编译版本 1016.2.5 安全添加新版本api中的代码 1016.3 使用android开发者文档 1046.4 挑战练习:报告编译版本 106第7章 ui fragment与fragment管理器 1077.1 ui设计的灵活性需求 1087.2 fragment的引入 1087.3 着手开发criminalintent 1097.3.1 创建新项目 1127.3.2 fragment与支持库 1137.3.3 在android studio中增加依赖关系 1147.3.4 创建crime类 1177.4 托管ui fragment 1187.4.1 fragment的生命周期 1187.4.2 托管的两种方式 1197.4.3 定义容器视图 1197.5 创建ui fragment 1207.5.1 定义crimefragment的布局 1217.5.2 创建crimefragment类 1227.6 添加ui fragment到fragment-manager 1257.6.1 fragment事务 1267.6.2 fragmentmanager与fragment生命周期 1297.7 采用fragment的应用架构 1307.8 深入学习:为什么应优先使用支持库版fragment 1317.9 深入学习:使用操作系统内置版fragment 131第8章 使用布局与组件创建用户界面 1328.1 升级crime类 1328.2 更新布局 1338.3 生成并使用组件 1358.4 深入探讨xml布局属性 1368.4.1 样式、主题及主题属性 1368.4.2 dp、sp以及屏幕像素密度 1378.4.3 android开发设计原则 1388.4.4 布局参数 1398.4.5 边距与内边距 1398.5 使用图形布局工具 1408.5.1 创建水平模式布局 1418.5.2 添加新组件 1428.5.3 在属性视图中编辑组件属性 1438.5.4 在框架视图中重新组织组件 1448.5.5 更新子组件的布局参数 1458.5.6 android:layout_weight属性的工作原理 1468.5.7 图形布局工具使用总结 1478.5.8 组件id与多种布局 1488.6 挑战练习:日期格式化 148第9章 使用recyclerview显示列表 1499.1 升级criminalintent应用的模型层 1509.2 使用抽象activity托管fragment 1539.2.1 通用的fragment托管布局 1539.2.2 抽象activity类 1549.3 recyclerview、adapter和viewholder 1589.3.1 viewholder和adapter 1599.3.2 使用recyclerview 1619.3.3 实现adapter和viewholder 1639.4 定制列表项 1669.4.1 创建列表项布局 1669.4.2 使用定制列表项视图 1689.5 响应点击 1709.6 深入学习:listview和gridview 1719.7 深入学习:单例 171第10章 使用fragmentargument 17310.1 从fragment中启动activity 17310.1.1 附加extra信息 17410.1.2 获取extra信息 17510.1.3 使用crime数据更新crimefragment视图 17610.1.4 直接获取extra信息的缺点 17710.2 fragment argument 17710.2.1 附加argument给fragment 17810.2.2 获取argument 17910.3 刷新显示列表项 18010.4 通过fragment获取返回结果 18210.5 挑战练习:实现高效的recyclerview刷新 18310.6 深入学习:为何要用fragment argument 183第11章 使用viewpager 18511.1 创建crimepageractivity 18611.1.1 viewpager与pageradapter 18711.1.2 整合并配置使用crimepageractivity 18811.2 fragmentstatepageradapter与fragmentpageradapter 19011.3 深入学习:viewpager的工作原理 19211.4 深入学习:以代码的方式创建布局 193第12章 对话框 19412.1 使用appcompat兼容库 19512.2 创建dialogfragment 19612.2.1 显示dialogfragment 19812.2.2 设置对话框的显示内容 19912.3 fragment间的数据传递 20212.3.1 传递数据给datepicker- fragment 20312.3.2 返回数据给crime-fragment 20412.4 挑战练习:更多对话框 21112.5 挑战练习:按设备类型展现dialogfragment 212第13章 工具栏 21313.1 appcompat 21313.2 工具栏菜单 21613.2.1 在xml文件中定义菜单 21713.2.2 创建菜单 22113.2.3 响应菜单项选择 22313.3 实现层级式导航 22513.4 可选菜单项 22613.4.1 切换菜单项标题 22713.4.2 “还有个问题” 22913.5 深入学习:工具栏与操作栏 23113.6 挑战练习:删除crime记录 23113.7 挑战练习:优化字符串资源显示 23113.8 挑战练习:用于recyclerview的空视图 232第14章 sqlite数据库 23314.1 定义schema 23314.2 创建初始数据库 23414.3 修改crimelab类 23814.4 写入数据库 23914.4.1 使用contentvalues 23914.4.2 插入和更新记录 24014.5 读取数据库 24214.5.1 使用cursorwrapper 24314.5.2 创建模型层对象 24414.6 深入学习:数据库高级主题介绍 24714.7 深入学习:应用上下文 24814.8 挑战练习:删除crime记录 248第15章 隐式intent 24915.1 添加按钮组件 25015.2 添加嫌疑人信息至模型层 25215.3 使用格式化字符串 25415.4 使用隐式intent 25515.4.1 隐式intent的组成 25515.4.2 发送消息 25615.4.3 获取联系人信息 25915.4.4 检查可响应任务的activity 26315.5 挑战练习:sharecompat 26515.6 挑战练习:又一个隐式intent 265第16章 使用intent拍照 26616.1 布置照片 26616.2 外部存储 26916.3 使用相机intent 27216.3.1 外部存储使用权限 27216.3.2 触发拍照 27316.4 缩放和显示位图 27416.5 功能声明 27716.6 深入学习:使用include标签 27816.7 挑战练习:优化照片显示 27816.8 挑战练习:优化缩略图加载 279第17章 master-detail用户界面 28017.1 增加布局灵活性 28117.1.1 修改singlefragment- activity 28217.1.2 创建包含两个fragment容器的布局 28317.1.3 使用别名资源 28417.1.4 创建平板设备专用可选资源 28517.2 activity:fragment的托管者 28617.3 深入学习:设备屏幕尺寸的确定 295第18章 assets 29718.1 为何使用assets 29718.2 创建beatbox应用 29818.3 导入assets 30118.4 处理assets 30318.5 使用assets 30518.6 访问assets 30818.7 深入学习:什么是non-assets 308第19章 使用soundpool播放音频 30919.1 创建soundpool 30919.2 加载音频文件 31019.3 播放音频 31119.4 释放音频 31319.5 设备旋转和对象保存 31419.5.1 保留fragment 31519.5.2 旋转和已保留fragment 31619.6 深入学习:是否要保留 31819.7 深入学习:设备旋转处理再探 318第20章 样式与主题 32120.1 颜色资源 32120.2 样式 32220.3 主题 32420.4 添加主题颜色 32720.5 覆盖主题属性 32820.6 修改按钮属性 33220.7 深入学习:样式继承拾遗 33420.8 深入学习:引用主题属性 33520.9 挑战练习:创建多版本主题 335第21章 xml drawable 33621.1 统一按钮样式 33721.2 shape drawable 33821.3 state list drawable 34021.4 layer list drawable 34121.5 深入学习:为什么要用xml drawable 34221.6 深入学习:使用9-patch图像 34321.7 深入学习:使用mipmap图像 347第22章 深入学习intent和任务 34822.1 创建nerdlauncher项目 34822.2 解析隐式intent 35122.3 在运行时创建显式intent 35522.4 任务与后退栈 35722.4.1 在任务间切换 35722.4.2 启动新任务 35822.5 使用nerdlauncher应用作为设备主屏幕 36122.6 挑战练习:应用图标 36222.7 深入学习:进程与任务 36222.8 深入学习:并发文档 364第23章 http与后台任务 36723.1 创建photogallery应用 36823.2 网络连接基本 37123.3 使用asynctask在后台线程上运行代码 37323.4 线程与主线程 37423.5 从flickr获取json数据 37623.6 从asynctask回到主线程 38323.7 清理asynctask 38623.8 深入学习:asynctask再探 38723.9 深入学习:asynctask的替代方案 38823.10 挑战练习:gson 38823.11 挑战练习:分页 38823.12 挑战练习:动态调整网格列 389第24章 looper、handler和handlerthread 39024.1 配置recyclerview以显示图片 39024.2 批量下载缩略图 39324.3 与主线程通信 39324.4 创建并启动后台线程 39424.5 message与message handler 39624.5.1 消息的剖析 39724.5.2 handler的剖析 39724.5.3 使用handler 39824.5.4 传递handler 40224.6 深入学习:asynctask与线程 40724.7 挑战练习:预加载以及缓存 40724.8 深入学习:解决图片下载问题 408第25章 搜索 40925.1 搜索flickr网站 41025.2 使用searchview 41425.3 使用shared preferences实现轻量级数据存储 41925.4 优化应用 42225.5 挑战练习:深度优化photogallery应用 423第26章 后台服务 42426.1 创建intentservice 42426.2 服务的作用 42726.3 查找*新返回结果 42826.4 使用alarmmanager延迟运行服务 43026.4.1 合理控制服务启动的频度 43226.4.2 pendingintent 43326.4.3 使用pendingintent管理定时器 43426.5 控制定时器 43426.6 通知信息 43726.7 挑战练习:可穿戴设备上的通知 43926.8 深入学习:服务细节内容 44026.8.1 服务的能与不能 44026.8.2 服务的生命周期 44026.8.3 non-sticky服务 44026.8.4 sticky服务 44126.8.5 绑定服务 44126.9 深入学习:jobscheduler和jobservice 44226.10 深入学习:sync adapter 44526.11 挑战练习:在lollipop设备上使用jobservice 446第27章 broadcast intent 44727.1 一般intent和broadcast intent 44727.2 接收系统broadcast:重启后唤醒 44827.2.1 standalone receiver 44827.2.2 使用receiver 45027.3 过滤前台通知消息 45227.3.1 发送broadcast intent 45227.3.2 动态broadcast receiver 45327.3.3 使用私有权限 45527.3.4 使用有序broadcast 45827.4 receiver与长时运行任务 46227.5 深入学习:本地事件 46227.5.1 使用eventbus 46327.5.2 使用rxjava 46327.6 深入学习:检测fragment的状态 464第28章 网页浏览 46628.1 *后一段flickr数据 46628.2 简单方式:隐式intent 46928.3 较难方式:使用webview 47028.4 处理webview的设备旋转问题 47628.5 深入学习:注入javascript对象 47728.6 深入学习:kitkat的webview 47828.7 挑战练习:使用后退键浏览历史网页 47828.8 挑战练习:非http链接支持 479第29章 定制视图与触摸事件 48029.1 创建draganddraw项目 48029.1.1 创建draganddraw-activity 48129.1.2 创建draganddraw-fragment 48129.2 创建定制视图 48229.3 处理触摸事件 48429.4 ondraw(...)方法内的图形绘制 48829.5 挑战练习:设备旋转问题 49029.6 挑战练习:旋转矩形框 490第30章 属性动画 49230.1 建立场景 49230.2 简单属性动画 49530.2.1 视图属性转换 49830.2.2 使用不同的interpolator 50030.2.3 色彩渐变 50030.3 播放多个动画 50230.4 深入学习:其他动画api 50430.4.1 传统动画工具 50430.4.2 转场 50430.5 挑战练习 504第31章 地理位置和play服务 50531.1 地理位置和定位类库 50531.2 创建locatr项目 50631.3 play服务和模拟器 50731.4 创建locatr应用 51031.5 配置google play服务 51231.6 使用google play服务 51431.7 基于地理位置的flickr搜索 51631.8 获取定位数据 51731.9 寻找并显示图片 51931.10 挑战练习:进度指示器 521第32章 使用地图 52232.1 导入play地图服务库 52232.2 android上的地图服务 52232.3 地图api设置 52332.4 创建地图 52532.5 获取更多地理位置数据 52632.6 使用地图 52932.7 深入学习:团队开发和api key 534第33章 material design 53633.1 material surface 53633.1.1 elevation和z值 53833.1.2 state list animator 53933.2 动画工具 54033.2.1 circular reveal 54133.2.2 shared element transition 54233.3 新的视图组件 54533.3.1 card 54533.3.2 floating action button 54733.3.3 snackbar 54833.4 深入学习material design 549第34章 编后语 55034.1 终极挑战 55034.2 关于我们 55134.3 致谢 551
展开全部
相关资料
“对我们来说,这是一本非常全面的培训教材,它已使我们公司数百名工程师掌握了构建android应用的诀窍。另外,对想要提升android开发技能的人,这本书同样也有很大帮助。”——mike shaver,facebook通信工程主管
“不管你是刚刚迈进android开发的大门,还是准备掌握更多高级开发技术,本书都非常值得看。其完整的内容体系、清晰的组织结构以及轻松的讲述风格,都让人过目不忘。”——james steele,《android开发秘籍》作者
“整本书的内容编排非常人性化!每个例程都从一个简单的activity开始,一步一步地往里面添加新的功能,每一步都讲解得细致入微,然后在读者的面前,慢慢变得强大起来。可以说,每个例程都是从开发者的角度开始,遵循一套科学的开发流程,*后变成一个功能强大的应用程序。与此同时,需要掌握的开发技巧也就融合进去了。”——亚马逊读者评论
“知识点讲解得很全面,通过实际示例练习逐步上手。章节末尾的挑战练习和深入学习非常到位,遇到自己暂时无法解决的问题也可以去官网论坛上同其他读者交流讨论。读完此书后,我的android应用开发技能有了很大提高。” ——亚马逊读者评论
“每一章都是实打实的例子,由小到大、由浅入深,顺序安排得很贴心,让人学得很舒服,是迄今为止看到过的*好的教程。难能可贵的一点是,每个例子的代码规范都很棒。”——亚马逊读者评论
作者简介
Bill Phillips
Big Nerd Ranch资深讲师。他在Big Nerd Ranch与人合作开发了广受好评的Android训练营培训课程,并为之编写教材(包括本书第1版)。此后,Bill一直坚持撰写博客、阅读各类文学作品、作曲奏乐以及著书。
Chris Stewart
Big Nerd Ranch资深Android训练营讲师、Android团队主管。他致力于不断取得进步,精进技能。不坐在电脑前时,Chris喜欢远足和旅行。
Brian Hardy
Big Nerd Ranch的iOS和Cocoa工程主管。他是Android训练营的首批讲师,与许多客户合作开发了众多Android和iOS移动应用。除同开发团队构建更出色的软件和研究自己*新的项目之外,Brian喜欢陪伴朋友与家人——通常是在烧烤架旁。
Kristin Marsicano
Big Nerd Ranch资深讲师、Android开发者。她喜欢与他人分享知识,对学习、软件开发以及二者的交集充满热情。在授课和开发应用之余,Kristin会为家人烹调美食、练习瑜伽或学习一些新知识。
预估到手价 ×
预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。
确定