NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

书评:使用 Android SDK 构建应用,第 2 版

  • 2013-11-04
  • 本文字数:3113 字

    阅读完需:约 10 分钟

在最新版的 Android 开发者手册:使用 Android SDK 构建应用(第 2 版)一书中,作者 Ronan Schwarz Phil Dutson James Steele Nelson To 成功地向 Addison-Wesley 开发者书库系列添加了浓墨重彩的一笔。这本面向移动应用开发者的图书可以作为新手的权威指南。对于中级与专家级开发者来说,本书也将有助于他们增强自身的编程实践。

读者在学习如何编写自己的代码的同时还可以将书中的攻略、代码片段与用户界面布局快速应用到 Android 项目中以创建出自己的原始应用。

本书的一大特色就是指导读者如何使用 Android 基本的应用编程接口(API)来确保应用能够在各种碎片化的设备与不同的OS 版本上运行;回顾过去、立足现在、展望未来。作者还谈到了Android、 Linux 内核 Java 框架 Eclipse 集成开发环境之间的关系。

书中讲述了对 OS 做了怎样的修改使之能够在移动生态圈的舞台上大放异彩,移动设备具有更小的屏幕和有限的选项,并且在必要时需要使用私有的 Android 库。与 Swing Timer 等 Java 库及 X Windows 或 GNU C 库等典型的 Linux 工具不同,他们并不适合于在 Android 上编码。

从书中的第 1 章开始,读者就将深入到这个世界上最为流行的移动 OS 的具体细节当中。书中谈到了构成操作系统的必要文件,如何确保易丢失的闪存的安全性,他们由 6 个镜像构成:

  • Bootloader——在启动时开始装载启动镜像
  • Boot 镜像——内核与 RAMDisk
  • System 镜像——带有应用的 OS 平台
  • Data 镜像——在不同的权限模式下保存用户数据
  • Recovery 镜像——保存更新并重新构建文件
  • Radio 镜像——保存 Radio 栈文件

作者建议开发者深入理解硬件与他们所编写的代码之间的关系。他们强调不仅要考虑现有的智能手机和平板之间在内存与处理能力、屏幕尺寸、分辨率、前后摄像头上差别的重要性,还要考虑到现在或是未来将会运行在 OS 上的全新设备类型,比如说智能手表、训练设备、医疗设备、汽车,甚至是游戏机等,建议开发者们要尽可能编写设备中立的代码。

作者强调了在设计应用时能够把握全局的重要性。这意味着开发者应该能够清晰地认识到完成后的应用是什么样子的。这 4 位作者将他们专业的建议与经验都浓缩到了这本手册中。

他们建议在创建 Android 应用时使用 Eclipse IDE 来保证最佳的效果。

下面是一段示例攻略:

活动与意图 这项操作的步骤与上一个攻略类似:

  1. 在 Eclipse 中,选择 File → New → Android Application Project。
  2. 填写项目名,比如说 SimpleFragmentExample。
  3. 填写应用名,比如说 Example of Basic Fragments。
  4. 填写包名,比如说 com.cookbook.simplefragments。
  5. 将最低限度的 SDK 设为 API Level 11 或是 Android Honeycomb。

低版本 API 能够使用 Fragments 的前提是机器上要安装好额外的支持库。 7. 在 Create Activity 界面上,选择 MasterDetailFlow 作为起始点。
8. 命名条目,比如说 fruits。
9. 按下 Finish 按钮完成示例项目的创建。

探索该示例的任务就交给读者完成了,下面重点来谈谈 Fragments。Fragments 有自己的生命周期,它取决于宿主活动。由于在活动生命周期的任何时刻,我们都可以添加、显示、隐藏以及删除 Fragments,因此其存活周期要比其他组件短很多。类似于活动,Fragments 也有 onPause()、onResume()、onDestroy() 及 onCreate() 方法。 然而,值得注意的是 onCreate(Bundle) 是 Fragment 上所调用的第 2 个方法,第 1 个被调用的方法是 onAttach(Activity),它会发出现已连接到宿主活动的信号。这里可以调用活动的方法,然而系统并不保证活动已经完全完成了自身的初始化。只有在调用了 onActivityCreated() 方法后活动自身的 onCreate() 方法才会被调用。

假设 Fragments 可以在晚些时候实例化并被加到活动上来,那么我们就不应该依赖 onAttach() 中活动的状态。用来初始化视图并启动大多数任务的方法是 onCreateView(LayoutInflater, ViewGroup, Bundle)。如果 Fragment 是重新创建的,那么这里的 Bundle 类就是保存的实例状态。Fragments 还会使用 bundles 来序列化参数。Fragment 所需的每一种外部信息都可以通过调用 setArguments() 从宿主活动中获得,并且总是可以通过 getArguments() 调用在 Fragments 中读取。这样就可以将来自于活动起始意图的信息直接传递给显示的 Fragment。

应用最为重要的特性之一就是用户界面了。在 Android 开发者手册的第 5 章中,我们将会学习到一个基本的 UI 布局的 3 个关键元素:界面视图、界面触摸事件以及定义应用属性的按键。这包含了完整的资源目录,比如说用于动画的 res/animator/ 以及用于 XML 文件的 res/menu,它会选择菜单。

每个 UI 对象都有 3 个可定义的属性来改变 UI 的外观与性能,分别是对象尺寸、对象文本以及对象颜色。为了保持应用的一致性,读者将会学习到如何使用全局资源文件,它将有助于追踪每一个属性。

第 13 章针对的是想要通过 Google Play 的应用内购买来销售应用的开发者。为了使用应用内购买,你需要拥有一个 Google Play 账户来链接到开发者账户。你所需的一切都位于 Android SDK 的 SDK Manager 中的 Extras 中。

本书的作者有 4 位,有人可能会想这会不会造成图书风格的不一致。不会的,在如何为开源的 Android 移动操作系统编写应用的相关建议这个话题上,与既成事实的设备类型与 OS 版本的碎片化不同,各位作者所给出的建议都是一样的。大家在阅读本书时不会感到风格的不一致,各位作者的表达风格都是一样的。

Android 开发者手册:使用 Android SDK 构建应用(第 2 版)一书值得任何一位开发者拥有。阅读本书可以让你追赶上移动开发的潮流,在需要帮助时你总能从书中找到答案。

关于本书作者

Ronan ‘Zero’ Schwarz 是 OpenIntents 的联合创始人,这是一家专业的 Android 开发公司。Ronan 拥有 15 年的编程经验,涉足的领域非常广泛,如增强现实、Web、机器人、业务系统以及各种不同的编程语言,如 C、Java 和汇编等。Ronan 从 2007 年开始就从事 Android 平台开发了,并且创建了 SplashPlay 与 Droidspray,在两次 Google Android 开发者挑战赛中他都是顶级选手。他目前在德国柏林的 SinnerSchrader Mobile 工作,是一名咨询师。Ronan 经常在欧洲的各大会议上发表演讲,是一位杰出的 Android 开发者。

Phil Dutson 是 ICON Health and Fitness 的前端与移动主开发者。他曾为 NordicTrack、ProForm、Freemotion、Sears、Costco 及 Sam’s Club 等公司开发过项目并设计解决方案。在过去的几年中,他曾为各种移动设备编写过程序,从第一个 Palm Pilot 5000 到现在的 iOS 与 Android。Phil 是 jQuery, JQuery UI, and jQuery Mobile、Sams Teach Yourself jQuery Mobile in 24 hours 以及 Creating QR and Tag Codes3 本图书的作者。

James Steele 经常参加硅谷 Android 与新技术小组。他目前就职于 Sensor Platforms,专注于提升用户手势与上下文信息的价值,同时向开发者屏蔽掉传感器硬件的复杂性和物理特性。在加入 Sensor Platforms 前,Steele 博士在 Spansion、Polaris Wireless 与 ArrayComm 担任高级管理职位,同时还在麻省理工学院与俄亥俄州立大学从事理论与粒子物理的研究工作。他于纽约州立大学斯托尼布鲁克分校获得理论物理博士学位。

Nelson To 拥有多年的 Android 研究与开发经验。他对探索创新理念并通过 Android 应用实现其想法拥有巨大的热情。他曾开发过多款 Android 应用,包括 AOL AIM Android 应用、为 Logitech Revue Box 开发过 Google TV 上首款高清视频聊天 Android 应用(Vid)。他还在本地社区教授 Android 课程以帮助人们更加高效地学习 Android,同时还投身于 Android 社区,为本地社区组织 Android 会议。

查看英文原文: Book Review: Building Applications with the Android SDK, 2nd Edition

2013-11-04 05:211778
用户头像

发布了 88 篇内容, 共 258.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

一篇教你代码同步 Github 和 Gitee

冴羽

JavaScript GitHub 自己搭建博客网站 GitHub Pages vuepress

ClickHouse在工业互联网场景的OLAP平台建设实践

京东科技开发者

Go 语言快速入门指南:第一篇 介绍

宇宙之一粟

Go golang 编程入门 签约计划第二季 12月日更

【Spring Boot 快速入门】二、Spring Boot集成MyBatis可以连接数据库啦!

小阿杰

SpringBoot 2 mybatis配置 内容合集 签约计划第二季

行业分析| 泛娱乐应用出海探索

anyRTC开发者

音视频 语音通话 视频直播 视频通话 泛娱乐

潮玩盲盒一番赏盲盒星球app专业源码搭建

风行无疆

Apache Log4j 2 安全漏洞扫描及启示录

极狐GitLab

gitlab 安全 供应链 漏洞扫描 Apache Log4j 2

【Spring Boot 快速入门】五、Spring Boot集成Lombok

小阿杰

SpringBoot 2 lombok 内容合集 签约计划第二季

RingCentral铃盛技术干货精选合集

RingCentral铃盛

敏捷 前端 框架 技术专题合集

分布式架构与性能优化

高性能架构探索

分布式 微服务 性能优化 内容合集 签约计划第二季

京东云PostgreSQL在GIS场景的应用分享

京东科技开发者

国产分布式数据库StarDB核心技术大揭秘二:智能运维管控

京东科技开发者

最好用的七大顶级 API 接口测试工具

蒋川

API 测试工具

记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑

Jerry Wang

JavaScript ajax 跨域 28天写作 12月日更

完善跨境金融区块链服务平台,支持区域开放创新和特殊区域建设

CECBC

【Spring Boot 快速入门】四、Spring Boot集成Swagger UI

小阿杰

SpringBoot 2 swagger 内容合集 签约计划第二季

Explore the Sky丨来 TiDB Hackathon 2021 探索无限可能

PingCAP

Go 数据库 hackathon TiDB database

一周信创舆情观察(12.6~12.12)

统小信uos

百度王海峰:深耕自然语言处理近30年,推进AI融合创新

百度开发者中心

自然语言处理

多点 DMALL x StarRocks:实现存储引擎的收敛,保障高查询并发及低延迟要求

StarRocks

数据库 数据分析 高并发 StarRocks

点击下载 | 世界经济论坛全新推出深度AI洞察报告

澳鹏Appen

人工智能 机器学习 深度学习

【Spring Boot 快速入门】三、Spring Boot集成JUnit

小阿杰

SpringBoot 2 JUnit 内容合集 签约计划第二季

Android C++系列:Linux Socket编程(三)CS模型示例

轻口味

28天写作 12月日更

滨海中小企业协会参加新区工商联(总商会)第四次代表大会

InfoQ 天津

优秀的代码的分层结构

xcbeyond

架构 28天写作 12月日更

【Spring Boot 快速入门】一、周末建立了Spring Boot专栏,欢迎学习交流

小阿杰

SpringBoot 2 spring Boot Starter 内容合集 签约计划第二季

SD-WAN、SASE 和多云空间的未来趋势

devpoint

5G SD-WAN sase 12月日更

国产分布式数据库StarDB核心技术大揭秘一:内核分解之数据分片

京东科技开发者

探探的IM长连接技术实践:技术选型、架构设计、性能优化

JackJiang

网络编程 websocket 即时通讯 IM

京东云ClickHouse和ES双引擎设计在零售选品中的应用实践

京东科技开发者

元宇宙100讲-0x004

hackstoic

书评:使用Android SDK构建应用,第2版_移动_Martin Monroe_InfoQ精选文章