Summary 序言 Android入门基础:从这里开始 建立第一个App 创建Android项目 执行Android程序 建立简单的用户界面 启动其他的Activity 添加ActionBar 建立ActionBar 添加Action按钮 自定义ActionBar的风格 ActionBar的覆盖层叠 兼容不同的设备 适配不同的语言 适配不同的屏幕 适配不同的系统版本 管理Activity的生命周期 启动与销毁Activity 暂停与恢复Activity 停止与重启Activity 重新创建Activity 使用Fragment建立动态的UI 创建一个Fragment 建立灵活动态的UI Fragments之间的交互 数据保存 保存到Preference 保存到文件 保存到数据库 与其他应用的交互 Intent的发送 接收Activity返回的结果 Intent过滤 Android分享操作 分享简单的数据 给其他App发送简单的数据 接收从其他App返回的数据 给ActionBar增加分享功能 分享文件 建立文件分享 分享文件 请求分享一个文件 获取文件信息 使用NFC分享文件 发送文件给其他设备 接收其他设备的文件 Android多媒体 管理音频播放 控制音量与音频播放 管理音频焦点 兼容音频输出设备 拍照 简单的拍照 简单的录像 控制相机硬件 打印 打印照片 打印HTML文档 打印自定义文档 Android图像与动画 高效显示Bitmap 高效加载大图 非UI线程处理Bitmap 缓存Bitmap 管理Bitmap的内存 在UI上显示Bitmap 使用OpenGL ES显示图像 建立OpenGL ES的环境 定义Shapes 绘制Shapes 运用投影与相机视图 添加移动 响应触摸事件 添加动画 View间渐变 使用ViewPager实现屏幕滑动 展示Card翻转动画 缩放View 布局变更动画 Android网络连接与云服务 无线连接设备 使用网络服务发现 使用WiFi建立P2P连接 使用WiFi P2P服务 执行网络操作 连接到网络 管理网络的使用情况 解析XML数据 传输数据时避免消耗大量电量 优化下载以高效地访问网络 最小化定期更新造成的影响 重复的下载是冗余的 根据网络连接类型来调整下载模式 云同步 使用备份API 使用Google Cloud Messaging 解决云同步的保存冲突 使用Sync Adapter传输数据 创建Stub授权器 创建Stub Content Provider 创建Sync Adpater 执行Sync Adpater 使用Volley执行网络数据传输 发送简单的网络请求 建立请求队列 创建标准的网络请求 实现自定义的网络请求 Android联系人与位置信息 Android联系人信息 获取联系人列表 获取联系人详情 使用Intents修改联系人信息 显示联系人头像 Android位置信息 获取最后可知位置 获取位置更新 显示位置地址 创建和监视地理围栏 Android可穿戴应用 赋予Notification可穿戴特性 创建Notification 在Notifcation中接收语音输入 为Notification添加显示页面 以Stack的方式显示Notifications 创建可穿戴的应用 创建并运行可穿戴应用 创建自定义的布局 添加语音功能 打包可穿戴应用 通过蓝牙进行调试 创建自定义的UI 定义Layouts 创建Card 创建List 创建2D Picker 创建确认界面 退出全屏的Activity 发送并同步数据 访问可穿戴数据层 同步数据单元 传输资源 发送与接收消息 处理数据层的事件 创建表盘 设计表盘 构建表盘服务 绘制表盘 在表盘上显示信息 提供配置 Activity 定位常见的问题 优化性能和电池使用时间 位置检测 Android TV应用 创建TV应用 创建TV应用的第一步 处理TV硬件部分 创建TV的布局文件 创建TV的导航栏 创建TV播放应用 创建目录浏览器 提供一个Card视图 创建详情页 显示正在播放卡片 帮助用户在TV上探索内容 TV上的推荐内容 使得TV App能够被搜索 使用TV应用进行搜索 创建TV游戏应用 创建TV直播应用 TV Apps Checklist Android企业级应用 Ensuring Compatibility with Managed Profiles Implementing App Restrictions Building a Work Policy Controller Android交互设计 设计高效的导航 规划屏幕界面与他们之间的关系 为多种大小的屏幕进行规划 提供向下和横向导航 提供向上和历史导航 综合:设计样例 App 实现高效的导航 使用Tabs创建Swipe视图 创建抽屉导航 提供向上的导航 提供向后的导航 实现向下的导航 通知提示用户 建立Notification 当启动Activity时保留导航 更新Notification 使用BigView风格 显示Notification进度 增加搜索功能 建立搜索界面 保存并搜索数据 保持向下兼容 使得你的App内容可被Google搜索 为App内容开启深度链接 为索引指定App内容 Android界面设计 为多屏幕设计 兼容不同的屏幕大小 兼容不同的屏幕密度 实现可适应的UI 创建自定义View 创建自定义的View类 实现自定义View的绘制 使得View可交互 优化自定义View 创建向后兼容的UI 抽象新的APIs 代理至新的APIs 使用旧的APIs实现新API的效果 使用版本敏感的组件 实现辅助功能 开发辅助程序 开发辅助服务 管理系统UI 淡化系统Bar 隐藏系统Bar 隐藏导航Bar 全屏沉浸式应用 响应UI可见性的变化 创建使用Material Design的应用 开始使用Material Design 使用Material的主题 创建Lists与Cards 定义Shadows与Clipping视图 使用Drawables 自定义动画 维护兼容性 Android用户输入 使用触摸手势 检测常用的手势 跟踪手势移动 滚动手势动画 处理多点触控手势 拖拽与缩放 管理ViewGroup中的触摸事件 处理键盘输入 指定输入法类型 处理输入法可见性 支持键盘导航 处理按键动作 支持游戏控制器 处理控制器输入动作 在不同的 Android 系统版本支持控制器 支持多个控制器 Android后台任务 在IntentService中执行后台任务 创建IntentService 发送工作任务到IntentService 报告后台任务执行状态 使用CursorLoader在后台加载数据 使用CursorLoader执行查询任务 处理CursorLoader查询的结果 管理设备的唤醒状态 保持设备的唤醒 制定重复定时的任务 Android性能优化 管理应用的内存 代码性能优化建议 提升Layout的性能 优化layout的层级 使用include标签重用layouts 按需加载视图 使得ListView滑动顺畅 优化电池寿命 监测电量与充电状态 判断与监测Docking状态 判断与监测网络连接状态 根据需要操作Broadcast接受者 多线程操作 在一个线程中执行一段特定的代码 为多线程创建线程池 启动与停止线程池中的线程 与UI线程通信 避免出现程序无响应ANR JNI使用指南 优化多核处理器(SMP)下的Android程序 Android安全与隐私 Security Tips 使用HTTPS与SSL 为防止SSL漏洞而更新Security 使用设备管理条例增强安全性 Android测试程序 测试你的Activity 建立测试环境 创建与执行测试用例 测试UI组件 创建单元测试 创建功能测试