×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
Android 高级编程(第4版)(移动开发经典丛书)

Android 高级编程(第4版)(移动开发经典丛书)

1星价 ¥68.1 (4.9折)
2星价¥68.1 定价¥139.0

温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>

暂无评论
图文详情
  • ISBN:9787302539520
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:608
  • 出版时间:2019-11-01
  • 条形码:9787302539520 ; 978-7-302-53952-0

本书特色

自Android首次发布10年来,经过多次修订与扩展,《Android高级编程(第4版)》重磅来袭。其中不仅涵盖开发新手需要学习的基础知识,而且探索了经验丰富的Android开发人员在构建极致用户体验时所必需的高级特性和*佳实践。 《Android高级编程(第4版)》作为实践类书籍,将会深入浅出地解释各种复杂的概念,注重实际操作,让读者对Android开发的各类工具、API和*佳实践有直观的认识,并将新技能转换成实际的用户解决方案。 开发环境更新至Android Studio 3.5/Android 10,作者Reto Meier分享Google Android开发代言人10年+的经验,讲述Android开发的各类工具、API和更佳实践,将新技能转换成实际的用户解决方案。 专业编程人员的*佳 Android读物。 —— l2 若你喜欢通过阅读传统教科书而非YouTube视频或漫画来学习Android技术,本书将是你的理想之选!本书的前几版都是备受读者喜爱的畅销书;这个新版本将质量推进到更高水准,浓墨重彩地描述Android Studio、Kotlin和*新的API,堪称Android知识宝库。本书的编排井井有条,示例详明,紧贴实用,质量一流,是网上技术资料无法比拟的! 精心打磨的匠心之作。 —— barbre 我是一名Java开发人员,以前未开发过Android应用。阅读本书,我就像在森林里呼吸新鲜的空气,一切都是清新的、有趣的。这本大块头书籍并没有多余的文字,充满了真知灼见;示例都是作者精挑细选的,清晰明了。本书是我的案头**,是我的贴心伴侣。 帮助Android编程人员实现抱负的平台。 —— Susie Q. 本书深入讲解Android语言和架构,将帮助Android程序员进入更高的技术境界。本书涵盖Broadcast Receiver、Content Provider、Android设计理念、硬件传感器等主题,讲解每个主题时,都列出示例代码;你只需要稍加修改即可将这些代码用于自己的项目中。如果你有志于在Android领域取得一番成就,强烈推荐你阅读本书! Android开发**宝典! —— C. Pick 这是Reto和Ian为我们奉献的又一本经典书籍!这本综合性书籍与时俱进,根据*新Android版本做了全面细致的更新。这本大块头书籍中蕴藏着大智慧。Android学习曲线不再陡峭,变得平缓! 我是一名有10年资历的Android开发老兵;仅读了开头几章,就仿若甘露入心,似醍醐灌顶,获益良多。 作者提供的见解十分宝贵,能让你少走很多弯路。强烈向你推荐本书! 讲解清晰透彻,令我茅塞顿开! —— Andy 本书将复杂的技术讲得简单易懂,将枯燥的技术讲得活灵活现。手捧本书,像在吃美味可口的蛋糕,令人回味无穷;你只需要专心地品读和练习。我的书架上摆满Android书籍,但本书是其中*优秀的! 重量级参考书籍,新手的指路明灯。 —— Louis 在阅读本书前,你*好先了解一些Android和Java基础知识。 本书代码丰富,内容深刻,很多细节都是在别处找不到的。在精辟讲解每项技术的主要功能和概念后,都列举一些示例应用,助你扎实掌握要点。如果你是一名Android编程新手,本书将指导你走上专业之路,助你实现华丽蜕变!

内容简介

主要特色 涵盖Android*新的API,包括Job Scheduler、Android架构组件(包括Live Data和Room)和数据绑定 提供Android Studio IDE的详细说明以及Kotlin的介绍 详细介绍材料设计原则、设计指南、导航模式和UI的*佳实践 演示如何为所有形式的Android设备创建引人注目的UI 探索Firebase和Google Play服务的API库,包括地图、基于位置的服务以及Awareness API 掌握为将来的Android开发项目提供坚实支持的技能。

目录

目 录 第1章 你好,Android 1 1.1 Android应用开发 1 1.2 小背景 2 1.2.1 不远的过去 2 1.2.2 未来的发展 2 1.3 Android生态系统 3 1.4 Android的预安装应用 3 1.5 Android SDK的特性 4 1.6 Android在哪里运行 4 1.7 为什么要为移动设备开发应用 5 1.8 为什么要进行Android开发 5 1.9 Android开发框架介绍 5 1.9.1 Android SDK中都包含什么 5 1.9.2 了解Android软件堆层 6 1.9.3 Android运行时 7 1.9.4 Android应用架构 8 1.9.5 Android库 8 第2章 入门 9 2.1 Android应用开发入门 9 2.2 Android开发 10 2.2.1 准备工作 11 2.2.2 创建首个Android应用 14 2.2.3 开始使用Kotlin编写Android应用 23 2.2.4 使用Android Support Library包 24 2.3 进行移动和嵌入式设备开发 25 2.3.1 硬件设计考虑因素 25 2.3.2 考虑用户环境 28 2.3.3 进行Android开发 28 2.4 Android开发工具 31 2.4.1 Android Studio 32 2.4.2 Android虚拟机管理器 33 2.4.3 Android模拟器 34 2.4.4 Android Profiler 34 2.4.5 Android 调试桥 35 2.4.6 APK分析器 35 2.4.7 Lint检查工具 36 2.4.8 Monkey、Monkey Runner和Espresso UI测试 36 2.4.9 Gradle 37 第3章 应用、Activity和Fragment 38 3.1 应用、Activity和Fragment 38 3.2 Android应用的组件 39 3.3 Android应用的生命周期、优先级和进程状态 39 3.4 Android的Application类 41 3.5 进一步了解Android的Activity 41 3.5.1 创建Activity 41 3.5.2 使用AppCompatActivity 42 3.5.3 Activity的生命周期 42 3.5.4 响应内存压力 47 3.6 Fragment 48 3.6.1 创建新的Fragment 49 3.6.2 Fragment的生命周期 49 3.6.3 Fragment Manager介绍 52 3.6.4 添加Fragment到Activity中 52 3.6.5 Fragment与Activity之间的通信 57 3.6.6 没有UI的Fragment 57 3.7 构建Earthquake Viewer应用 58 第4章 定义Android配置清单和Gradle构建文件,并外部化资源 64 4.1 配置清单、构建文件和资源 64 4.2 Android配置清单 64 4.3 配置Gradle构建文件 68 4.3.1 settings.gradle 文件 68 4.3.2 项目的build.gradle文件 68 4.3.3 模块级build.gradle文件 69 4.4 外部化资源 72 4.4.1 创建资源 72 4.4.2 使用资源 79 4.4.3 为不同的语言和硬件创建资源 82 4.4.4 运行时配置更改 84 第5章 构建用户界面 87 5.1 Android设计基础 87 5.2 密度无关设计 88 5.3 Android UI基础 88 5.4 布局介绍 89 5.4.1 定义布局 91 5.4.2 使用布局创建设备无关的用户界面 91 5.4.3 优化布局 94 5.5 Android小部件工具箱 97 5.6 使用列表和网格 97 5.6.1 RecyclerView和Layout Manager 98 5.6.2 关于适配器 98 5.6.3 返回到Earthquake Viewer应用 101 5.7 关于数据绑定 102 5.7.1 使用数据绑定 102 5.7.2 数据绑定中的变量 103 5.7.3 数据绑定在Earthquake Viewer中的应用 103 5.8 创建新的View 105 5.8.1 修改现有的View 105 5.8.2 创建复合控件 108 5.8.3 创建作为布局的简单复合控件 109 5.8.4 创建自定义View 110 5.8.5 使用自定义控件 119 第6章 Intent与Broadcast Receiver 121 6.1 使用Intent和Broadcast Receiver 121 6.2 使用Intent启动Activity 122 6.2.1 显式启动新的Activity 122 6.2.2 隐式Intent与后期运行时绑定 123 6.2.3 确定Intent是否会被解析 123 6.2.4 返回Activity结果 124 6.2.5 使用平台本地动作启动Activity 126 6.3 创建Intent Filter以接收隐式Intent 127 6.3.1 定义Intent Filter 127 6.3.2 使用Intent Filter实现插件和扩展性 133 6.4 介绍Linkify 135 6.4.1 原生Linkify链接类型 136 6.4.2 创建自定义的链接字符串 136 6.4.3 使用MatchFilter接口 136 6.4.4 使用TransformFilter接口 137 6.5 使用Intent广播事件 137 6.5.1 使用Intent广播事件 137 6.5.2 使用Broadcast Receiver监听Intent广播 138 6.5.3 使用代码注册Broadcast Receiver 139 6.5.4 在应用配置清单中注册Broadcast Receiver 139 6.5.5 在运行时管理配置清单中注册的Receiver 140 6.5.6 通过广播Intent监听设备状态的变化 140 6.6 介绍Local Broadcast Manager 142 6.7 Pending Intent介绍 143 第7章 使用网络资源 144 7.1 连接网络 144 7.2 连接、下载和解析网络资源 145 7.2.1 为何要创建原生网络应用 145 7.2.2 连接到网络资源 145 7.2.3 使用View Model、Live Data和Asynchronous Task在后台线程中执行网络操作 146 7.2.4 使用XML Pull Parser解析XML 149 7.2.5 将Earthquake Viewer连接到网络 150 7.2.6 使用JSON Reader解析JSON 156 7.3 使用Download Manager 159 7.3.1 下载文件 160 7.3.2 自定义Download Manager通知 161 7.3.3 指定下载位置 162 7.3.4 取消和移除下载 163 7.3.5 查询Download Manager 163 7.4 下载数据而不损耗电池的*佳实践 165 7.5 网络服务及云计算简介 166 第8章 文件、存储状态和用户偏好 167 8.1 存储文件、状态和偏好 167 8.2 通过生命周期处理程序保存并恢复Activity和Fragment的实例状态 168 8.3 使用Headless Fragment和View Model保存实例状态 169 8.3.1 View Model和Live Data 169 8.3.2 Headless Fragment 171 8.4 创建和保存Shared Preference 172 8.5 获取Shared Preference 173 8.6 关于Shared Preference Change Listener的介绍 173 8.7 配置应用文件和Shared Preference的自动备份 173 8.8 构建偏好UI 174 8.8.1 使用Preference Support Library 175 8.8.2 使用XML定义Preference Screen的布局 175 8.8.3 Preference Fragment介绍 177 8.9 为Earthquake Monitor创建设置Activity 178 8.10 包含静态文件作为资源 182 8.11 使用文件系统 183 8.11.1 文件管理工具 183 8.11.2 在特定于应用的内部存储上创建文件 183 8.11.3 在特定于应用的外部存储上创建文件 183 8.11.4 使用范围化目录访问权限访问公共目录 184 8.12 使用File Provider共享文件 187 8.12.1 创建File Provider 187 8.12.2 使用File Provider共享文件 188 8.12.3 从File Provider接收文件 188 8.13 使用Storage Access Framework访问来自其他应用的文件 188 8.13.1 请求临时访问文件 189 8.13.2 请求对文件的持久访问 189 8.13.3 请求访问目录 189 8.13.4 创建新文件 190 8.14 使用基于URI的权限 190 第9章 创建和使用数据库 192 9.1 在Android中引入结构化数据存储 192 9.2 使用Room持久化库存储数据 193 9.2.1 添加Room持久化库 193 9.2.2 定义Room Database 194 9.2.3 使用类型转换器持久化复杂对象 196 9.2.4 使用DAO定义Room Database交互 196 9.2.5 执行Room Database交互 199 9.2.6 使用Live Data监控查询结果的变化 200 9.3 使用Room将地震数据持久化到数据库中 201 9.4 使用SQLite数据库 203 9.4.1 输入验证和SQL注入 204 9.4.2 Cursor与Content Values 204 9.4.3 定义数据库合约类 205 9.4.4 SQLiteOpenHelper介绍 205 9.4.5 使用SQLiteOpenHelper打开数据库 206 9.4.6 在没有SQLiteOpenHelper的情况下打开和创建数据库 207 9.4.7 添加、更新和删除行 207 9.4.8 从Cursor中提取值 209 9.5 Firebase Realtime Database介绍 210 9.5.1 将Firebase Realtime Database添加到应用中 211 9.5.2 定义Firebase Realtime Database并定义访问规则 213 9.5.3 添加、修改、删除和查询Firebase Realtime Database中的数据 214 第10章 Content Provider与搜索 216 10.1 Content Provider介绍 216 10.2 使用Content Provider的原因 217 10.3 创建Content Provider 217 10.3.1 创建Content Provider的数据库 218 10.3.2 注册Content Provider 218 10.3.3 公开Content Provider的URI地址 219 10.3.4 实现Content Provider查询 219 10.3.5 Content Provider事务 221 10.3.6 使用Content Provider共享文件 222 10.3.7 向Content Provider添加权限要求 223 10.4 使用Content Resolver访问Content Provider 224 10.4.1 查询Content Provider 225 10.4.2 取消查询 226 10.4.3 使用Cursor Loader异步查询内容 227 10.4.4 添加、删除和更新内容 229 10.4.5 访问存储在Content Provider中的文件 230 10.4.6 访问权限受限的Content Provider 231 10.5 使用Android原生Content Provider 232 10.5.1 访问Call Log Content Provider 232 10.5.2 使用Media Store Content Provider 233 10.5.3 使用联系人Content Provider 234 10.5.4 使用日历Content Provider 238 10.6 在应用中添加搜索 241 10.6.1 定义搜索元数据 241 10.6.2 创建搜索结果Activity 241 10.6.3 搜索Content Provider 242 10.6.4 使用Search View小部件 245 10.6.5 使用Content Provider提供搜索建议 246 10.6.6 搜索地震监测数据库 249 第11章 工作在后台 257 11.1 为什么要工作在后台 257 11.2 使用后台线程 258 11.2.1 使用AsyncTask异步运行任务 258 11.2.2 使用Handler Thread手动创建线程 261 11.3 调度后台作业 262 11.3.1 为Job Scheduler创建Job Service 263 11.3.2 使用Job Scheduler调度作业 265 11.3.3 使用Firebase Job Dispatcher计划作业 266 11.3.4 使用Work Manager计划作业 268 11.3.5 Job Service在Earthquake示例中的应用 270 11.4 使用Notification通知用户 273 11.4.1 Notification Manager简介 273 11.4.2 使用通知渠道 274 11.4.3 创建通知 274 11.4.4 设置通知的优先级 277 11.4.5 添加通知动作 280 11.4.6 添加直接回复动作 280 11.4.7 分组多个通知 281 11.4.8 通知在Earthquake示例中的应用 283 11.5 使用Firebase Cloud Messaging 285 11.5.1 使用Firebase Notification远程触发通知 285 11.5.2 使用Firebase Cloud Messaging接收数据 288 11.6 使用闹钟 288 11.6.1 创建、设置和取消闹钟 289 11.6.2 设置闹钟 289 11.7 服务介绍 290 11.7.1 使用绑定服务 290 11.7.2 创建启动服务 291 11.7.3 创建服务 292 11.7.4 启动和停止服务 292 11.7.5 控制服务重启行为 293 11.7.6 自终止服务 294 11.7.7 创建前台服务 294 第12章 贯彻Android设计理念 295 12.1 Android设计理念介绍 295 12.2 为每个屏幕进行设计 296 12.2.1 分辨率独立性 296 12.2.2 支持和优化不同的屏幕尺寸 297 12.2.3 创建可缩放的图像资源 299 12.3 Material Design介绍 303 12.3.1 从纸和墨水的角度思考 303 12.3.2 使用颜色和基准线(Keyline)作为指导 304 12.3.3 运动带来的连贯性 306 12.4 Material Design UI元素 308 12.4.1 应用栏 308 12.4.2 Material Design在Earthquake示例中的应用 310 12.4.3 使用Card显示内容 311 12.4.4 悬浮按钮 313 第13章 实现现代Android用户体验 315 13.1 现代Android UI 315 13.2 使用AppCompat创建外观一致的现代用户界面 316 13.2.1 使用AppCompat创建并应用主题 316 13.2.2 为特定视图创建Theme Overlay 317 13.3 向应用栏添加菜单和动作 317 13.3.1 定义菜单资源 317 13.3.2 向Activity添加菜单 318 13.3.3 向Fragment添加菜单 319 13.3.4 动态更新菜单项 319 13.3.5 处理菜单选择 319 13.3.6 添加Action View和Action Provider 320 13.4 不仅限于默认应用栏 321 13.4.1 用工具栏替换应用栏 321 13.4.2 工具栏的高级滚动技术 322 13.4.3 如何不用应用栏添加菜单 324 13.5 改进Earthquake示例的应用栏 324 13.6 应用的导航模式 326 13.6.1 使用选项卡导航 326 13.6.2 实现底部导航栏 328 13.6.3 使用导航抽屉 330 13.6.4 组合导航模式 334 13.7 向Earthquake示例添加选项卡 334 13.8 选择正确的提示等级 337 13.8.1 初始化对话框 337 13.8.2 生成一条Toast消息 338 13.8.3 使用Snackbar的内联中断 339 第14章 用户界面的高级定制 341 14.1 拓展用户体验 341 14.2 支持无障碍访问性 342 14.2.1 支持无触摸屏的导航 342 14.2.2 为每个视图提供文本描述 342 14.3 Android文本语音转换介绍 342 14.4 使用语音识别 344 14.4.1 使用语音识别进行语音输入 345 14.4.2 使用语音识别进行搜索 345 14.5 控制设备振动 346 14.6 全屏模式 346 14.7 使用属性动画 347 14.7.1 创建属性动画 348 14.7.2 创建属性动画集 349 14.7.3 使用动画监听器 349 14.8 增强你的视图 350 14.9 高级Canvas绘图 350 14.9.1 能绘制什么 350 14.9.2 充分利用Paint 351 14.9.3 通过抗锯齿提高Paint绘图质量 354 14.9.4 Canvas绘图*佳实践 354 14.9.5 高级罗盘面板示例 355 14.9.6 创建交互式控件 361 14.9.7 使用设备键、按钮和十字键 364 14.10 复合Drawable资源 365 14.10.1 可变形的Drawable资源 365 14.10.2 Layer Drawable 366 14.10.3 State List Drawable 366 14.10.4 Level List Drawable 367 14.11 复制、粘贴和剪贴板 367 14.11.1 将数据复制到剪贴板 368 14.11.2 粘贴剪贴板数据 368 第15章 位置、情境感知和地图 369 15.1 向应用添加位置、地图和情境感知 369 15.2 Google Play服务介绍 370 15.2.1 向应用添加Google Play服务 370 15.2.2 确定Google Play服务的可用性 372 15.3 使用Google位置信息服务查找设备位置 372 15.3.1 使用模拟器测试基于位置的功能 373 15.3.2 查找*后的位置 374 15.3.3 Where Am I示例 375 15.3.4 请求位置更改更新 378 15.3.5 通过Pending Intent接收位置更新 380 15.3.6 定义更新的过期条件 381 15.3.7 后台位置更新限制 381 15.3.8 更改设备位置设置 382 15.3.9 在Where Am I示例中更新位置 384 15.3.10 使用位置时的*佳实践 386 15.4 设置和管理地理围栏 387 15.5 使用传统平台的LBS 389 15.5.1 选择Location Provider 390 15.5.2 查找*后位置 391 15.5.3 请求位置更改更新 392 15.5.4 使用传统LBS的*佳实践 393 15.6 使用Geocoder 396 15.6.1 逆向地理编码 396 15.6.2 正向地理编码 397 15.6.3 地理编码在Where Am I项目中的应用 398 15.7 创建基于地图的Activity 399 15.7.1 获取Google Maps API密钥 399 15.7.2 创建基于地图的Activity 400 15.7.3 配置Google地图 401 15.7.4 通过CameraUpdate更改相机位置 402 15.7.5 地图在Where Am I项目中的应用 404 15.7.6 使用My Location层显示当前位置 407 15.7.7 显示交互式地图标记 407 15.7.8 向Google地图添加形状 409 15.7.9 向Google地图添加图像叠加层 411 15.7.10 向Where Am I项目添加标记和形状 412 15.8 地图在Earthquake示例中的应用 414 15.9 添加情境感知 417 15.9.1 连接到Google Play服务API客户端并获取API密钥 417 15.9.2 使用感知快照 418 15.9.3 设置和监控感知围栏 419 15.9.4 Awareness*佳实践 422 第16章 硬件传感器 423 16.1 Android传感器介绍 423 16.1.1 使用Sensor Manager 424 16.1.2 理解Android传感器 424 16.1.3 发现和识别传感器 426 16.1.4 确定传感器的功能 427 16.1.5 Wakeup和非Wakeup传感器 428 16.1.6 监测传感器结果 428 16.1.7 读取传感器值 431 16.2 使用Android虚拟设备和模拟器测试传感器 433 16.3 使用传感器的*佳实践 434 16.4 监控设备的移动和朝向 434 16.4.1 确定设备的自然朝向 435 16.4.2 加速度计介绍 435 16.4.3 检测加速度变化 436 16.4.4 创建重力仪 437 16.4.5 确定设备的朝向 439 16.4.6 创建指南针和人工地平线 443 16.5 使用环境传感器 445 16.5.1 使用气压计传感器 445 16.5.2 创建气象站 446 16.6 使用身体传感器 449 16.7 用户活动识别 451 第17章 音频、视频和使用摄像头 453 17.1 播放音频和视频,以及使用摄像头 453 17.2 播放音频和视频 454 17.2.1 媒体播放器简介 454 17.2.2 使用Media Play播放视频 456 17.2.3 使用ExoPlayer播放视频 458 17.2.4 请求和管理音频焦点 459 17.2.5 输出改变时暂停播放 461 17.2.6 响应音量按键 461 17.2.7 使用Media Session 462 17.3 使用Media Router和Cast Application框架 464 17.4 后台音频播放 467 17.4.1 构建音频播放服务 468 17.4.2 将Activity连接到Media Browser服务 469 17.4.3 Media Browser服务的生命周期 470 17.5 在前台服务中播放音频 471 17.6 使用Media Recorder录制音频 473 17.7 使用摄像头拍照 475 17.7.1 使用Intent拍照 475 17.7.2 直接控制摄像头 476 17.7.3 读取和写入JPEG EXIF图像详情 480 17.8 录制视频 481 17.8.1 使用Intent录制视频 481 17.8.2 使用Media Recorder录制视频 482 17.9 将媒体添加到Media Store 483 17.9.1 使用Media Scanner插入新的媒体 484 17.9.2 手动插入媒体 484 第18章 使用蓝牙、NFC和Wi-Fi点对点进行通信 486 18.1 网络和点对点通信 486 18.2 使用蓝牙API传输数据 486 18.2.1 管理本地蓝牙设备适配器 487 18.2.2 可被发现和远程设备发现 488 18.2.3 蓝牙通信 491 18.2.4 蓝牙配置文件 494 18.2.5 低功耗蓝牙 495 18.3 使用Wi-Fi点对点协议传输数据 497 18.3.1 初始化Wi-Fi点对点框架 497 18.3.2 发现节点 498 18.3.3 连接节点设备 499 18.3.4 在节点间传输数据 500 18.4 使用近场通信 501 18.4.1 读取NFC标签 501 18.4.2 使用前台分派系统 502 18.5 使用Android Beam 504 18.5.1 创建Android Beam消息 504 18.5.2 分配Android Beam负载数据 505 18.5.3 接收Android Beam消息 506 第19章 使用主屏 507 19.1 自定义主屏 507 19.2 主屏小部件介绍 507 19.2.1 定义小部件的布局 509 19.2.2 定义小部件的尺寸和其他元数据 510 19.2.3 实现小部件 511 19.2.4 使用App Widget Manager和Remote View更新Widget UI 512 19.2.5 强制刷新小部件的数据和UI 514 19.2.6 创建和使用小部件Configuration Activity 516 19.3 创建地震小部件 517 19.4 Collection View小部件介绍 521 19.4.1 创建Collection View小部件的布局 522 19.4.2 使用Remote Views Factory更新Collection View 523 19.4.3 使用Remote Views Service更新Collection View 524 19.4.4 使用Remote Views Service填充Collection View小部件 525 19.4.5 为Collection View小部件中的条目添加交互性 526 19.4.6 刷新Collection View小部件 526 19.4.7 创建地震Collection View小部件 526 19.5 创建Live Wallpaper 531 19.5.1 创建Live Wallpaper定义资源 532 19.5.2 创建Wallpaper Service Engine 532 19.5.3 创建Wallpaper Service 533 19.6 创建App快捷方式 534 19.6.1 静态快捷方式 535 19.6.2 动态快捷方式 535 19.6.3 追踪App快捷方式的使用 537 第20章 高级Android开发 538 20.1 高级Android 538 20.2 偏执的Android 539 20.2.1 Linux内核安全性 539 20.2.2 再述权限 539 20.2.3 在Android Keystore中存储密钥 541 20.2.4 使用指纹传感器 541 20.3 处理不同的软硬件可用性 542 20.3.1 指定所需的硬件 542 20.3.2 确认硬件的可用性 543 20.3.3 构建向后兼容的应用 543 20.4 使用严格模式优化UI性能 544 20.5 电话和短信 545 20.5.1 电话 546 20.5.2 收发短信 550 第21章 应用的发布、分发和监控 564 21.1 准备发布应用 564 21.1.1 准备发布材料 565 21.1.2 准备代码以进行发布构建 565 21.2 在应用清单文件中更新应用元数据 566 21.2.1 检查应用安装限制 566 21.2.2 应用的版本管理 567 21.3 给应用的生产构建版本签名 567 21.3.1 使用Android Studio创建Keystore和签名密钥 568 21.3.2 获取基于私有发布密钥的API密钥 569 21.3.3 构建生产发布版本并签名 569 21.4 在Google Play商店中发布应用 570 21.4.1 Google Play商店简介 571 21.4.2 Google Play 商店初体验 571 21.4.3 在Google Play商店中创建应用 572 21.4.4 发布应用 577 21.4.5 监控生产环境中的应用 579 21.5 应用变现介绍 582 21.6 App营销、促销和分发策略 583 21.6.1 应用上线策略 583 21.6.2 国际化 584 21.7 使用Firebase监控应用 584 21.7.1 把Firebase添加到应用中 585 21.7.2 使用Firebase Analytics 585 21.7.3 Firebase Performance Monitoring 587
展开全部

作者简介

Reto Meier自2007年首次发布Android以来,就一直致力于帮助Android开发人员为用户创建*佳应用。Reto在澳大利亚西部的珀斯长大,之后在伦敦度过了“接下来的18个月”,总共6年。2011年他与妻子在旧金山湾区定居。 Reto在Google担任开发人员代言人已有10年的时间,他为开发人员社区提供文章、在线培训、会议演讲和YouTube视频。 在智能手机出现之前,Reto已在各个行业(包括海上石油天然气和金融业)担任软件开发人员超过10年。 Ian Lake 在2013年于旧金山湾区定居前,曾在美国的9个州居住过。Ian是Google Android Toolkit团队的成员,专注于提供现代Android开发所需的库和API。在此之前,他曾是一名Android开发人员倡导者、Android应用开发人员和企业应用开发人员,那时,Android还未盛行。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航