Android编程权威指南

Android编程权威指南
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , ,
2014-04
版次: 1
ISBN: 9787115346438
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 544页
正文语种: 简体中文
原版书名: Android programming: the big nerd ranch guide
175人买过
  •   全面、实用、易懂,是本书的特色,根据美国大名鼎鼎的BigNerdRanch训练营的Android培训讲义编写而成,已经为微软、谷歌、Facebook等行业巨头培养了众多专业人才。作者巧妙地把Android开发所需的庞杂知识、行业实践、编程规范等融入一本书中,通过精心编排的应用示例、循序渐进的内容组织,以及循循善诱的语言,深入地讲解了Android开发的方方面面。如果学完一章之后仍然意犹未尽,那“挑战练习”一定会让你大呼过瘾。本书之所以能在移动应用开发类图书中脱颖而出,还在于它真的是在与读者“对话”。阅读本书就好像有一位私人导师在你身边随时为你答疑解惑。
      本书适合所有对Android及移动开发感兴趣的读者,需要一定的Java编程基础。   BillPhillips,BigNerdRanchAndroid讲师、高级软件工程师。他与BrianHardy合作,为BigNerdRanch开发了广受好评的5天Android训练营培训课程。Bill擅长透彻地理解事物的本质,并帮助其他人做到这一点。闲暇时间,Bill喜欢阅读和弹钢琴。

      BrianHardy,BigNerdRanch首席软件工程师、讲师。BigNerdRanch的Android、iOS和Ruby培训课程均由Brian设计开发。闲暇时间,Brian喜欢骑自行车和听音乐。 第1章 Android应用初体验  
    1.1  应用基础  
    1.2  创建Android项目  
    1.3  Eclipse工作区导航  
    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.6.3  设置监听器  
    1.7  使用模拟器运行应用  
    1.8  Android编译过程  

    第2章 Android与MVC设计模式  
    2.1  创建新类  
    2.2  Android与MVC设计模式  
    2.3  更新视图层  
    2.4  更新控制层  
    2.5  在设备上运行应用  
    2.5.1  连接设备  
    2.5.2  配置设备用于应用开发  
    2.6  添加图标资源  
    2.6.1  向项目中添加资源  
    2.6.2  在XML文件中引用资源  
    2.7  关于挑战练习  
    2.8  挑战练习一:为TextView添加监听器  
    2.9  挑战练习二:添加后退按钮  
    2.10  挑战练习三:从按钮到图标按钮  

    第3章 Activity的生命周期  
    3.1  日志跟踪理解Activity生命周期  
    3.1.1  输出日志信息  
    3.1.2  使用 LogCat  
    3.2  设备旋转与Activity生命周期  
    3.3  设备旋转前保存数据  
    3.4  再探Activity生命周期  
    3.5  深入学习:测试onSaveInstanceState-(Bundle)方法  
    3.6  深入学习:日志记录的级别与方法  

    第4章 Android应用的调试  
    4.1  DDMS应用调试透视图  
    4.2  异常与栈跟踪  
    4.2.1  诊断应用异常  
    4.2.2  记录栈跟踪日志  
    4.2.3  设置断点  
    4.2.4  使用异常断点  
    4.3  文件浏览器  
    4.4  Android特有的调试工具  
    4.4.1  使用Android Lint  
    4.4.2  R类的问题  

    第5章 第二个activity  
    5.1  创建第二个activity  
    5.1.1  创建新布局  
    5.1.2  创建新的activity子类  
    5.1.3  在manifest配置文件中声明activity  
    5.1.4  为QuizActivity添加cheat按钮  
    5.2  启动activity  
    5.3  activity间的数据传递  
    5.3.1  使用intent extra  
    5.3.2  从子activity获取返回结果  
    5.4  activity的使用与管理  
    5.5  挑战练习  

    第6章 Android SDK版本与兼容  
    6.1  Android SDK版本  
    6.2  Android编程与兼容性问题  
    6.2.1  全新的系统版本--Honeycomb  
    6.2.2  SDK最低版本  
    6.2.3  SDK目标版本  
    6.2.4  SDK编译版本  
    6.2.5  安全添加新版本API中的代码  
    6.3  使用Android开发者文档  
    6.4  挑战练习:报告编译版本  

    第7章 UI fragment与fragment 管理器  
    7.1  UI设计的灵活性需求  
    7.2  fragment的引入  
    7.3  着手开发CriminalIntent  
    7.3.1  创建新项目  
    7.3.2  fragment与支持库  
    7.3.3  创建Crime类  
    7.4  托管UI fragment  
    7.4.1  fragment的生命周期  
    7.4.2  托管的两种方式  
    7.4.3  定义容器视图  
    7.5  创建UI fragment  
    7.5.1  定义CrimeFragment的布局  
    7.5.2  创建CrimeFragment类  
    7.6  添加UI fragment到FragmentManager  
    7.6.1  fragment事务  
    7.6.2  FragmentManager与fragment生命周期  
    7.7  activity使用fragment的理由  
    7.8  深入学习:Honeycomb、ICS、Jelly Bean以及更高版本系统上的应用开发  

    第8章 使用布局与组件创建用户界面  
    8.1  升级Crime类  
    8.2  更新布局  
    8.3  生成并使用组件  
    8.4  深入探讨XML布局属性  
    8.4.1  样式、主题及主题属性  
    8.4.2  dp、sp以及屏幕像素密度  
    8.4.3  Android开发设计原则  
    8.4.4  布局参数  
    8.4.5  边距与内边距  
    8.5  使用图形布局工具  
    8.5.1  添加新组件  
    8.5.2  属性视图中编辑组件属性  
    8.5.3  在框架视图中重新组织组件  
    8.5.4  更新子组件的布局参数  
    8.5.5  android:layout_weight属性的工作原理  
    8.5.6  图形布局工具使用总结  
    8.5.7  组件ID与多种布局  
    8.6  挑战练习:日期格式化  

    第9章 使用ListFragment显示列表  
    9.1  更新CriminalIntent应用的模型层  
    9.2  创建ListFragment  
    9.3  使用抽象activity托管fragment  
    9.3.1  通用的fragment托管布局  
    9.3.2  抽象activity类  
    9.4  ListFragment、ListView及ArrayAdapter  
    9.4.1  创建ArrayAdapter类实例  
    9.4.2  响应列表项的点击事件  
    9.5  定制列表项  
    9.5.1  创建列表项布局  
    9.5.2  创建adapter子类  

    第10章 使用fragment argument  
    10.1  从fragment中启动activity  
    10.1.1  附加extra信息  
    10.1.2  获取extra信息  
    10.1.3  使用Crime数据更新CrimeFragment视图  
    10.1.4  直接获取extra信息方式的缺点  
    10.2  fragment argument  
    10.2.1  附加argument给fragment  
    10.2.2  获取argument  
    10.3  重新加载显示列表项  
    10.4  通过fragment获取返回结果  

    第11章 使用ViewPager  
    11.1  创建CrimePagerActivity  
    11.1.1  以代码的方式定义并产生布局  
    11.1.2  ViewPager与Pager-Adapter  
    11.1.3  整合配置并使用CrimePagerActivity  
    11.1.4  FragmentStatePager-Adapter与Fragment-PagerAdapter  
    11.2  深入学习:ViewPager的工作原理  

    第12章 对话框  
    12.1  创建DialogFragment  
    12.1.1  显示DialogFragment  
    12.1.2  设置对话框的显示内容  
    12.2  fragment间的数据传递  
    12.2.1  传递数据给DatePicker-Fragment  
    12.2.2  返回数据给CrimeFragment  
    12.3  挑战练习:更多对话框  

    第13章 使用MediaPlayer播放音频  
    13.1  添加资源  
    13.2  定义HelloMoonFragment布局文件  
    13.3  创建HelloMoonFragment  
    13.4  使用布局fragment  
    13.5  音频播放  
    13.6  挑战练习:暂停音频播放  
    13.7  深入学习:播放视频  
    13.8  挑战练习:在HelloMoon应用中播放视频  

    第14章 fragment的保留  
    14.1  保留fragment实例  
    14.2  设备旋转与保留的fragment  
    14.3  保留的fragment:一切都完美了吗  
    14.4  设备旋转处理与onSaveInstance-State(Bundle)方法  
    14.5  深入学习:fragment引入前的设备旋转问题  

    第15章 应用本地化  
    15.1  本地化资源  
    15.2  配置修饰符  
    15.2.1  可用资源优先级排定  
    15.2.2  多重配置修饰符  
    15.2.3  寻找最匹配的资源  
    15.3  更多资源使用原则及控制  
    15.3.1  资源命名  
    15.3.2  资源目录结构  
    15.4  测试备选资源  

    第16章 操作栏  
    16.1  选项菜单  
    16.1.1  在XML文件中定义选项菜单  
    16.1.2  创建选项菜单  
    16.1.3  响应菜单项选择  
    16.2  实现层级式导航  
    16.2.1  启用应用图标的导航功能  
    16.2.2  响应向上按钮  
    16.3  可选菜单项  
    16.3.1  创建可选菜单XML文件  
    16.3.2  切换菜单项标题  
    16.3.3  "还有个问题"  
    16.4  挑战练习:用于列表的空视图  

    第17章 存储与加载本地文件  
    17.1  CriminalIntent应用的数据存取  
    17.1.1  保存crime数据到JSON文件  
    17.1.2  从文件中读取crime数据  
    17.2  挑战练习:使用外部存储  
    17.3  深入学习:Android文件系统与Java I/O  

    第18章 上下文菜单与上下文操作模式  
    18.1  定义上下文菜单资源  
    18.2  实施浮动上下文菜单  
    18.2.1  创建上下文菜单  
    18.2.2  为上下文菜单登记视图  
    18.2.3  响应菜单项选择  
    18.3  实施上下文操作模式  
    18.3.1  实现列表视图的多选操作  
    18.3.2  列表视图中的操作模式回调方法  
    18.3.3  改变已激活视图的显示背景  
    18.3.4  实现其他视图的上下文操作模式  
    18.4  兼容性问题:回退还是复制  
    18.5  挑战练习:在CrimeFragment视图中删除crime记录  
    18.6  深入学习:ActionBarSherlock  
    18.7  挑战练习:使用ActionBarSherlock  
    18.7.1  CriminalIntent应用中ABS的基本整合  
    18.7.2  ABS的深度整合  
    18.7.3  ABS的完全整合  

    第19章 相机I:取景器  
    19.1  创建Fragment布局  
    19.2  创建CrimeCameraFragment  
    19.3  创建CrimeCameraActivity  
    19.4  使用相机API  
    19.4.1  打开并释放相机  
    19.4.2  SurfaceView、Surface-Holder与Surface  
    19.4.3  确定预览界面大小  
    19.4.4  启动CrimeCamera-Activity  
    19.5  深入学习:以命令行的方式运行activity  

    第20章 相机 II:拍摄并处理照片  
    20.1  拍摄照片  
    20.1.1  实现相机回调方法  
    20.1.2  设置图片尺寸大小  
    20.2  返回数据给CrimeFragment  
    20.2.1  以接收返回值的方式启动CrimeCameraActivity  
    20.2.2  在CrimeCameraFragment中设置返回值  
    20.2.3  在CrimeFragment中获取照片文件名  
    20.3  更新模型层  
    20.3.1  新增Photo类  
    20.3.2  为Crime添加photo属性  
    20.3.3  设置photo属性  
    20.4  更新CrimeFragment的视图  
    20.4.1  添加ImageView组件  
    20.4.2  图像处理  
    20.5  在DialogFragment中显示大图片  
    20.6  挑战练习:Crime照片的显示方向  
    20.7  挑战练习:删除照片  
    20.8  深入学习:Android代码的废弃处理  

    第21章 隐式intent  
    21.1  添加按钮组件  
    21.2  添加嫌疑人信息至模型层  
    21.3  使用格式化字符串  
    21.4  使用隐式intent  
    21.4.1  典型隐式intent的组成  
    21.4.2  发送陋习报告  
    21.4.3  获取联系人信息  
    21.4.4  检查可以响应的activity  
    21.5  挑战练习:又一个隐式intent  

    第22章 Master-Detail用户界面  
    22.1  增加布局灵活性  
    22.1.1  修改SingleFragment-Activity  
    22.1.2  创建包含两个fragment容器的布局  
    22.1.3  使用别名资源  
    22.2  Activity:fragment的托管者  
    22.3  深入学习:设备屏幕尺寸的确定  

    第23章 深入学习intent和任务  
    23.1  创建NerdLauncher项目  
    23.2  解析隐式intent  
    23.3  在运行时创建显式intent  
    23.4  任务与后退栈  
    23.5  使用NerdLauncher应用作为设备主屏幕  
    23.6  挑战练习:应用图标与任务重排  
    23.7  进程与任务  

    第24章 样式与include标签的使用  
    24.1  创建RemoteControl项目  
    24.1.1  编码实现RemoteControl-Activity  
    24.1.2  创建RemoteControl-Fragment  
    24.2  使用样式消除重复代码  
    24.3  完善布局定义  
    24.4  深入学习:使用include与merge标签  
    24.5  挑战练习:样式的继承  

    第25章 XML Drawable与9-Patches  
    25.1  XML drawable  
    25.2  state list drawable  
    25.3  layer list与inset drawable  
    25.4  使用9-patch图像  

    第26章 HTTP与后台任务  
    26.1  创建PhotoGallery应用  
    26.2  网络连接基本  
    26.3  使用AsyncTask在后台线程上运行代码  
    26.4  线程与主线程  
    26.5  获取Flickr XML数据  
    26.6  从AsyncTask回到主线程  
    26.7  深入学习:再探AsyncTask  
    26.8  挑战练习:分页  

    第27章 Looper、Handler与HandlerThread  
    27.1  设置GridView以显示图片  
    27.2  批量下载缩略图  
    27.3  与主线程通信  
    27.4  创建并启动后台线程  
    27.5  Message与message Handler  
    27.5.1  消息的剖析  
    27.5.2  Handler的剖析  
    27.5.3  使用handler  
    27.5.4  传递handler  
    27.6  深入学习:AsyncTask与Thread  
    27.7  挑战练习:预加载以及缓存  

    第28章 搜索  
    28.1  搜索Flickr网站  
    28.2  搜索对话框  
    28.2.1  创建搜索界面  
    28.2.2  可搜索的activity  
    28.2.3  物理搜索键  
    28.2.4  搜索的工作原理  
    28.2.5  启动模式与新的intent  
    28.2.6  使用shared preferences实现轻量级数据存储  
    28.3  在Android 3.0以后版本的设备上使用SearchView  
    28.4  挑战练习  

    第29章 后台服务  
    29.1  创建IntentService  
    29.2  服务的作用  
    29.3  查找最新返回结果  
    29.4  使用AlarmManager延迟运行服务  
    29.4.1  PendingIntent  
    29.4.2  使用PendingIntent管理定时器  
    29.5  控制定时器  
    29.6  通知信息  
    29.7  深入学习:服务细节内容  
    29.7.1  服务的能与不能  
    29.7.2  服务的生命周期  
    29.7.3  non-sticky服务  
    29.7.4  sticky服务  
    29.7.5  绑定服务  

    第30章 broadcast Intent  
    30.1  随设备重启而重启的定时器  
    30.1.1  配置文件中的broadcast receiver  
    30.1.2  如何使用receiver  
    30.2  过滤前台通知消息  
    30.2.1  发送broadcast intent  
    30.2.2  动态broadcast receiver  
    30.2.3  使用私有权限  
    30.2.4  使用ordered broadcast接收结果  
    30.3  receiver与长时运行任务  

    第31章 网页浏览  
    31.1  最后一段Flickr数据  
    31.2  简单方式:使用隐式intent  
    31.3  较难方式:使用WebView  
    31.3.1  使用WebChromeClient优化WebView的显示  
    31.3.2  处理WebView的设备旋转问题  
    31.4  深入学习:注入JavaScript对象  

    第32章 定制视图与触摸事件  
    32.1  创建DragAndDraw项目  
    32.1.1  创建DragAndDraw-Activity  
    32.1.2  创建DragAndDraw-Fragment  
    32.2  创建定制视图  
    32.3  处理触摸事件  
    32.4  onDraw(...)方法内的图形绘制  
    32.5  挑战练习:设备旋转问题  

    第33章 跟踪设备的地理位置  
    33.1  启动RunTracker项目  
    33.1.1  创建RunActivity  
    33.1.2  创建RunFragment  
    33.2  地理位置与LocationManager  
    33.3  接收定位数据更新broadcast  
    33.4  使用定位数据刷新UI显示  
    33.5  快速定位:最近一次地理位置  
    33.6  在物理和虚拟设备上测试地理位置定位  

    第34章 使用SQLite本地数据库  
    34.1  在数据库中存储旅程和地理位置信息  
    34.2  查询数据库中的旅程列表  
    34.3  使用CursorAdapter显示旅程列表  
    34.4  创建新旅程  
    34.5  管理现有旅程  
    34.6  挑战练习:识别当前跟踪的旅程  

    第35章 使用Loader加载异步数据  
    35.1  Loader与LoaderManager  
    35.2  在RunTracker应用中使用Loader  
    35.3  加载旅程列表  
    35.4  加载单个旅程  
    35.5  加载旅程的最近一次地理位置  

    第36章 使用地图  
    36.1  添加Maps API给RunTracker应用  
    36.1.1  使用物理设备测试地图  
    36.1.2  安装使用Google Play services SDK  
    36.1.3  获取Google Maps API key  
    36.1.4  更新RunTracker应用的manifest配置文件  
    36.2  在地图上显示用户的地理位置  
    36.3  显示旅程路线  
    36.4  为旅程添加开始和结束地图标注  
    36.5  挑战练习:实时数据更新  

    第37章 编后语  
    37.1  终极挑战  
    37.2  关于我们  
    37.3  致谢 
  • 内容简介:
      全面、实用、易懂,是本书的特色,根据美国大名鼎鼎的BigNerdRanch训练营的Android培训讲义编写而成,已经为微软、谷歌、Facebook等行业巨头培养了众多专业人才。作者巧妙地把Android开发所需的庞杂知识、行业实践、编程规范等融入一本书中,通过精心编排的应用示例、循序渐进的内容组织,以及循循善诱的语言,深入地讲解了Android开发的方方面面。如果学完一章之后仍然意犹未尽,那“挑战练习”一定会让你大呼过瘾。本书之所以能在移动应用开发类图书中脱颖而出,还在于它真的是在与读者“对话”。阅读本书就好像有一位私人导师在你身边随时为你答疑解惑。
      本书适合所有对Android及移动开发感兴趣的读者,需要一定的Java编程基础。
  • 作者简介:
      BillPhillips,BigNerdRanchAndroid讲师、高级软件工程师。他与BrianHardy合作,为BigNerdRanch开发了广受好评的5天Android训练营培训课程。Bill擅长透彻地理解事物的本质,并帮助其他人做到这一点。闲暇时间,Bill喜欢阅读和弹钢琴。

      BrianHardy,BigNerdRanch首席软件工程师、讲师。BigNerdRanch的Android、iOS和Ruby培训课程均由Brian设计开发。闲暇时间,Brian喜欢骑自行车和听音乐。
  • 目录:
    第1章 Android应用初体验  
    1.1  应用基础  
    1.2  创建Android项目  
    1.3  Eclipse工作区导航  
    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.6.3  设置监听器  
    1.7  使用模拟器运行应用  
    1.8  Android编译过程  

    第2章 Android与MVC设计模式  
    2.1  创建新类  
    2.2  Android与MVC设计模式  
    2.3  更新视图层  
    2.4  更新控制层  
    2.5  在设备上运行应用  
    2.5.1  连接设备  
    2.5.2  配置设备用于应用开发  
    2.6  添加图标资源  
    2.6.1  向项目中添加资源  
    2.6.2  在XML文件中引用资源  
    2.7  关于挑战练习  
    2.8  挑战练习一:为TextView添加监听器  
    2.9  挑战练习二:添加后退按钮  
    2.10  挑战练习三:从按钮到图标按钮  

    第3章 Activity的生命周期  
    3.1  日志跟踪理解Activity生命周期  
    3.1.1  输出日志信息  
    3.1.2  使用 LogCat  
    3.2  设备旋转与Activity生命周期  
    3.3  设备旋转前保存数据  
    3.4  再探Activity生命周期  
    3.5  深入学习:测试onSaveInstanceState-(Bundle)方法  
    3.6  深入学习:日志记录的级别与方法  

    第4章 Android应用的调试  
    4.1  DDMS应用调试透视图  
    4.2  异常与栈跟踪  
    4.2.1  诊断应用异常  
    4.2.2  记录栈跟踪日志  
    4.2.3  设置断点  
    4.2.4  使用异常断点  
    4.3  文件浏览器  
    4.4  Android特有的调试工具  
    4.4.1  使用Android Lint  
    4.4.2  R类的问题  

    第5章 第二个activity  
    5.1  创建第二个activity  
    5.1.1  创建新布局  
    5.1.2  创建新的activity子类  
    5.1.3  在manifest配置文件中声明activity  
    5.1.4  为QuizActivity添加cheat按钮  
    5.2  启动activity  
    5.3  activity间的数据传递  
    5.3.1  使用intent extra  
    5.3.2  从子activity获取返回结果  
    5.4  activity的使用与管理  
    5.5  挑战练习  

    第6章 Android SDK版本与兼容  
    6.1  Android SDK版本  
    6.2  Android编程与兼容性问题  
    6.2.1  全新的系统版本--Honeycomb  
    6.2.2  SDK最低版本  
    6.2.3  SDK目标版本  
    6.2.4  SDK编译版本  
    6.2.5  安全添加新版本API中的代码  
    6.3  使用Android开发者文档  
    6.4  挑战练习:报告编译版本  

    第7章 UI fragment与fragment 管理器  
    7.1  UI设计的灵活性需求  
    7.2  fragment的引入  
    7.3  着手开发CriminalIntent  
    7.3.1  创建新项目  
    7.3.2  fragment与支持库  
    7.3.3  创建Crime类  
    7.4  托管UI fragment  
    7.4.1  fragment的生命周期  
    7.4.2  托管的两种方式  
    7.4.3  定义容器视图  
    7.5  创建UI fragment  
    7.5.1  定义CrimeFragment的布局  
    7.5.2  创建CrimeFragment类  
    7.6  添加UI fragment到FragmentManager  
    7.6.1  fragment事务  
    7.6.2  FragmentManager与fragment生命周期  
    7.7  activity使用fragment的理由  
    7.8  深入学习:Honeycomb、ICS、Jelly Bean以及更高版本系统上的应用开发  

    第8章 使用布局与组件创建用户界面  
    8.1  升级Crime类  
    8.2  更新布局  
    8.3  生成并使用组件  
    8.4  深入探讨XML布局属性  
    8.4.1  样式、主题及主题属性  
    8.4.2  dp、sp以及屏幕像素密度  
    8.4.3  Android开发设计原则  
    8.4.4  布局参数  
    8.4.5  边距与内边距  
    8.5  使用图形布局工具  
    8.5.1  添加新组件  
    8.5.2  属性视图中编辑组件属性  
    8.5.3  在框架视图中重新组织组件  
    8.5.4  更新子组件的布局参数  
    8.5.5  android:layout_weight属性的工作原理  
    8.5.6  图形布局工具使用总结  
    8.5.7  组件ID与多种布局  
    8.6  挑战练习:日期格式化  

    第9章 使用ListFragment显示列表  
    9.1  更新CriminalIntent应用的模型层  
    9.2  创建ListFragment  
    9.3  使用抽象activity托管fragment  
    9.3.1  通用的fragment托管布局  
    9.3.2  抽象activity类  
    9.4  ListFragment、ListView及ArrayAdapter  
    9.4.1  创建ArrayAdapter类实例  
    9.4.2  响应列表项的点击事件  
    9.5  定制列表项  
    9.5.1  创建列表项布局  
    9.5.2  创建adapter子类  

    第10章 使用fragment argument  
    10.1  从fragment中启动activity  
    10.1.1  附加extra信息  
    10.1.2  获取extra信息  
    10.1.3  使用Crime数据更新CrimeFragment视图  
    10.1.4  直接获取extra信息方式的缺点  
    10.2  fragment argument  
    10.2.1  附加argument给fragment  
    10.2.2  获取argument  
    10.3  重新加载显示列表项  
    10.4  通过fragment获取返回结果  

    第11章 使用ViewPager  
    11.1  创建CrimePagerActivity  
    11.1.1  以代码的方式定义并产生布局  
    11.1.2  ViewPager与Pager-Adapter  
    11.1.3  整合配置并使用CrimePagerActivity  
    11.1.4  FragmentStatePager-Adapter与Fragment-PagerAdapter  
    11.2  深入学习:ViewPager的工作原理  

    第12章 对话框  
    12.1  创建DialogFragment  
    12.1.1  显示DialogFragment  
    12.1.2  设置对话框的显示内容  
    12.2  fragment间的数据传递  
    12.2.1  传递数据给DatePicker-Fragment  
    12.2.2  返回数据给CrimeFragment  
    12.3  挑战练习:更多对话框  

    第13章 使用MediaPlayer播放音频  
    13.1  添加资源  
    13.2  定义HelloMoonFragment布局文件  
    13.3  创建HelloMoonFragment  
    13.4  使用布局fragment  
    13.5  音频播放  
    13.6  挑战练习:暂停音频播放  
    13.7  深入学习:播放视频  
    13.8  挑战练习:在HelloMoon应用中播放视频  

    第14章 fragment的保留  
    14.1  保留fragment实例  
    14.2  设备旋转与保留的fragment  
    14.3  保留的fragment:一切都完美了吗  
    14.4  设备旋转处理与onSaveInstance-State(Bundle)方法  
    14.5  深入学习:fragment引入前的设备旋转问题  

    第15章 应用本地化  
    15.1  本地化资源  
    15.2  配置修饰符  
    15.2.1  可用资源优先级排定  
    15.2.2  多重配置修饰符  
    15.2.3  寻找最匹配的资源  
    15.3  更多资源使用原则及控制  
    15.3.1  资源命名  
    15.3.2  资源目录结构  
    15.4  测试备选资源  

    第16章 操作栏  
    16.1  选项菜单  
    16.1.1  在XML文件中定义选项菜单  
    16.1.2  创建选项菜单  
    16.1.3  响应菜单项选择  
    16.2  实现层级式导航  
    16.2.1  启用应用图标的导航功能  
    16.2.2  响应向上按钮  
    16.3  可选菜单项  
    16.3.1  创建可选菜单XML文件  
    16.3.2  切换菜单项标题  
    16.3.3  "还有个问题"  
    16.4  挑战练习:用于列表的空视图  

    第17章 存储与加载本地文件  
    17.1  CriminalIntent应用的数据存取  
    17.1.1  保存crime数据到JSON文件  
    17.1.2  从文件中读取crime数据  
    17.2  挑战练习:使用外部存储  
    17.3  深入学习:Android文件系统与Java I/O  

    第18章 上下文菜单与上下文操作模式  
    18.1  定义上下文菜单资源  
    18.2  实施浮动上下文菜单  
    18.2.1  创建上下文菜单  
    18.2.2  为上下文菜单登记视图  
    18.2.3  响应菜单项选择  
    18.3  实施上下文操作模式  
    18.3.1  实现列表视图的多选操作  
    18.3.2  列表视图中的操作模式回调方法  
    18.3.3  改变已激活视图的显示背景  
    18.3.4  实现其他视图的上下文操作模式  
    18.4  兼容性问题:回退还是复制  
    18.5  挑战练习:在CrimeFragment视图中删除crime记录  
    18.6  深入学习:ActionBarSherlock  
    18.7  挑战练习:使用ActionBarSherlock  
    18.7.1  CriminalIntent应用中ABS的基本整合  
    18.7.2  ABS的深度整合  
    18.7.3  ABS的完全整合  

    第19章 相机I:取景器  
    19.1  创建Fragment布局  
    19.2  创建CrimeCameraFragment  
    19.3  创建CrimeCameraActivity  
    19.4  使用相机API  
    19.4.1  打开并释放相机  
    19.4.2  SurfaceView、Surface-Holder与Surface  
    19.4.3  确定预览界面大小  
    19.4.4  启动CrimeCamera-Activity  
    19.5  深入学习:以命令行的方式运行activity  

    第20章 相机 II:拍摄并处理照片  
    20.1  拍摄照片  
    20.1.1  实现相机回调方法  
    20.1.2  设置图片尺寸大小  
    20.2  返回数据给CrimeFragment  
    20.2.1  以接收返回值的方式启动CrimeCameraActivity  
    20.2.2  在CrimeCameraFragment中设置返回值  
    20.2.3  在CrimeFragment中获取照片文件名  
    20.3  更新模型层  
    20.3.1  新增Photo类  
    20.3.2  为Crime添加photo属性  
    20.3.3  设置photo属性  
    20.4  更新CrimeFragment的视图  
    20.4.1  添加ImageView组件  
    20.4.2  图像处理  
    20.5  在DialogFragment中显示大图片  
    20.6  挑战练习:Crime照片的显示方向  
    20.7  挑战练习:删除照片  
    20.8  深入学习:Android代码的废弃处理  

    第21章 隐式intent  
    21.1  添加按钮组件  
    21.2  添加嫌疑人信息至模型层  
    21.3  使用格式化字符串  
    21.4  使用隐式intent  
    21.4.1  典型隐式intent的组成  
    21.4.2  发送陋习报告  
    21.4.3  获取联系人信息  
    21.4.4  检查可以响应的activity  
    21.5  挑战练习:又一个隐式intent  

    第22章 Master-Detail用户界面  
    22.1  增加布局灵活性  
    22.1.1  修改SingleFragment-Activity  
    22.1.2  创建包含两个fragment容器的布局  
    22.1.3  使用别名资源  
    22.2  Activity:fragment的托管者  
    22.3  深入学习:设备屏幕尺寸的确定  

    第23章 深入学习intent和任务  
    23.1  创建NerdLauncher项目  
    23.2  解析隐式intent  
    23.3  在运行时创建显式intent  
    23.4  任务与后退栈  
    23.5  使用NerdLauncher应用作为设备主屏幕  
    23.6  挑战练习:应用图标与任务重排  
    23.7  进程与任务  

    第24章 样式与include标签的使用  
    24.1  创建RemoteControl项目  
    24.1.1  编码实现RemoteControl-Activity  
    24.1.2  创建RemoteControl-Fragment  
    24.2  使用样式消除重复代码  
    24.3  完善布局定义  
    24.4  深入学习:使用include与merge标签  
    24.5  挑战练习:样式的继承  

    第25章 XML Drawable与9-Patches  
    25.1  XML drawable  
    25.2  state list drawable  
    25.3  layer list与inset drawable  
    25.4  使用9-patch图像  

    第26章 HTTP与后台任务  
    26.1  创建PhotoGallery应用  
    26.2  网络连接基本  
    26.3  使用AsyncTask在后台线程上运行代码  
    26.4  线程与主线程  
    26.5  获取Flickr XML数据  
    26.6  从AsyncTask回到主线程  
    26.7  深入学习:再探AsyncTask  
    26.8  挑战练习:分页  

    第27章 Looper、Handler与HandlerThread  
    27.1  设置GridView以显示图片  
    27.2  批量下载缩略图  
    27.3  与主线程通信  
    27.4  创建并启动后台线程  
    27.5  Message与message Handler  
    27.5.1  消息的剖析  
    27.5.2  Handler的剖析  
    27.5.3  使用handler  
    27.5.4  传递handler  
    27.6  深入学习:AsyncTask与Thread  
    27.7  挑战练习:预加载以及缓存  

    第28章 搜索  
    28.1  搜索Flickr网站  
    28.2  搜索对话框  
    28.2.1  创建搜索界面  
    28.2.2  可搜索的activity  
    28.2.3  物理搜索键  
    28.2.4  搜索的工作原理  
    28.2.5  启动模式与新的intent  
    28.2.6  使用shared preferences实现轻量级数据存储  
    28.3  在Android 3.0以后版本的设备上使用SearchView  
    28.4  挑战练习  

    第29章 后台服务  
    29.1  创建IntentService  
    29.2  服务的作用  
    29.3  查找最新返回结果  
    29.4  使用AlarmManager延迟运行服务  
    29.4.1  PendingIntent  
    29.4.2  使用PendingIntent管理定时器  
    29.5  控制定时器  
    29.6  通知信息  
    29.7  深入学习:服务细节内容  
    29.7.1  服务的能与不能  
    29.7.2  服务的生命周期  
    29.7.3  non-sticky服务  
    29.7.4  sticky服务  
    29.7.5  绑定服务  

    第30章 broadcast Intent  
    30.1  随设备重启而重启的定时器  
    30.1.1  配置文件中的broadcast receiver  
    30.1.2  如何使用receiver  
    30.2  过滤前台通知消息  
    30.2.1  发送broadcast intent  
    30.2.2  动态broadcast receiver  
    30.2.3  使用私有权限  
    30.2.4  使用ordered broadcast接收结果  
    30.3  receiver与长时运行任务  

    第31章 网页浏览  
    31.1  最后一段Flickr数据  
    31.2  简单方式:使用隐式intent  
    31.3  较难方式:使用WebView  
    31.3.1  使用WebChromeClient优化WebView的显示  
    31.3.2  处理WebView的设备旋转问题  
    31.4  深入学习:注入JavaScript对象  

    第32章 定制视图与触摸事件  
    32.1  创建DragAndDraw项目  
    32.1.1  创建DragAndDraw-Activity  
    32.1.2  创建DragAndDraw-Fragment  
    32.2  创建定制视图  
    32.3  处理触摸事件  
    32.4  onDraw(...)方法内的图形绘制  
    32.5  挑战练习:设备旋转问题  

    第33章 跟踪设备的地理位置  
    33.1  启动RunTracker项目  
    33.1.1  创建RunActivity  
    33.1.2  创建RunFragment  
    33.2  地理位置与LocationManager  
    33.3  接收定位数据更新broadcast  
    33.4  使用定位数据刷新UI显示  
    33.5  快速定位:最近一次地理位置  
    33.6  在物理和虚拟设备上测试地理位置定位  

    第34章 使用SQLite本地数据库  
    34.1  在数据库中存储旅程和地理位置信息  
    34.2  查询数据库中的旅程列表  
    34.3  使用CursorAdapter显示旅程列表  
    34.4  创建新旅程  
    34.5  管理现有旅程  
    34.6  挑战练习:识别当前跟踪的旅程  

    第35章 使用Loader加载异步数据  
    35.1  Loader与LoaderManager  
    35.2  在RunTracker应用中使用Loader  
    35.3  加载旅程列表  
    35.4  加载单个旅程  
    35.5  加载旅程的最近一次地理位置  

    第36章 使用地图  
    36.1  添加Maps API给RunTracker应用  
    36.1.1  使用物理设备测试地图  
    36.1.2  安装使用Google Play services SDK  
    36.1.3  获取Google Maps API key  
    36.1.4  更新RunTracker应用的manifest配置文件  
    36.2  在地图上显示用户的地理位置  
    36.3  显示旅程路线  
    36.4  为旅程添加开始和结束地图标注  
    36.5  挑战练习:实时数据更新  

    第37章 编后语  
    37.1  终极挑战  
    37.2  关于我们  
    37.3  致谢 
查看详情
系列丛书 / 更多
Android编程权威指南
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
Android编程权威指南
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
Android编程权威指南
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
Android编程权威指南
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
Android编程权威指南
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
Android编程权威指南
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
Android编程权威指南
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
Android编程权威指南
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
Android编程权威指南
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
Android编程权威指南
图解HTTP
[日]上野·宣 著;于均良 译
Android编程权威指南
算法图解
袁国忠 译
Android编程权威指南
Spring Boot实战
[美]克雷格·沃斯(Craig Walls) 著;丁雪丰 译
您可能感兴趣 / 更多
Android编程权威指南
宇宙视觉史:从宇宙大爆炸到时间的尽头
[美]查尔斯·刘 著;高爽 译者;[美]马克西姆· 马洛维奇科 绘;未读 出品
Android编程权威指南
写出我心 普通人如何通过写作表达自己(平装本)
[美]娜塔莉·戈德堡(Natalie Goldberg)
Android编程权威指南
写出我心3 写作疗愈的真正秘密
[美]娜塔莉·戈德堡(Natalie Goldberg)
Android编程权威指南
神套路:为什么我们总被带节奏(狂热与网红时代醍醐灌顶之作,教给普通人安身立命的不二法门!)
[美]阿里·阿莫萨维 著;[哥伦比亚]亚历杭德罗·希拉尔多 绘
Android编程权威指南
阿伦森自传
[美]埃利奥特·阿伦森(Elliot Aronson) 著;沈捷 译;湛庐文化 出品
Android编程权威指南
街头官僚:公共服务中的个人困境
[美]迈克尔·李普斯基(Michael Lipsky)
Android编程权威指南
史前至蒙古帝国时期的内欧亚大陆史
[美]大卫·克里斯蒂安 著;潘玲 译;杨建华 校
Android编程权威指南
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
Android编程权威指南
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
Android编程权威指南
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
Android编程权威指南
自律我也能做到(全9册)
[美]康妮·科维尔·米勒 著;[阿根廷]维多利亚·阿萨纳利 绘
Android编程权威指南
你在等什么?
[美]斯科特·明钦 著;[中]易万 译;[美]马特 ·斐兰 绘