【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

书评:使用 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:211780
用户头像

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

关注

评论

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

【直播回顾】Hello HarmonyOS进阶课程第五课——原子化服务

HarmonyOS开发者

HarmonyOS

变量 var const let 的区别

大熊G

JavaScript 前端 前端教程 6月月更

融云一图看懂:社死的“谭某某”,霸屏的信息安全

融云 RongCloud

互联网拓扑是怎样构成的?又代表了什么?

郑州埃文科技

互联网拓扑 网络空间地图

技术分享| 如何部署安装分布式序列号生成器系统

anyRTC开发者

分布式 后端 音视频 服务器 Tinyid

大数据培训Hive到Spark离线计算实践

@零度

spark hive 大数据开发

博睿数据荣获优炫软件产品兼容互认证书和海量数据兼容互认证书

博睿数据

智能运维 博睿数据 产品兼容 数据兼容

实时特征计算平台架构方法论和基于 OpenMLDB 的实践

第四范式开发者社区

机器学习 数据库 AI 特征平台 特征工程

web前端培训如何在 H5 网页中实现扫码功能

@零度

前端开发

Java中的阻塞队列

急需上岸的小谢

6月月更

2022年SaaS的10个有趣趋势

小炮

DFINITY 明星项目盘点,区块链热门赛道一览

TinTinLand

区块链

Microsoft  Office  MSDT 代码执行漏洞

郑州埃文科技

网络安全 漏洞分析 漏洞缓解

私有化IM即时通讯怎样在保障企业安全下提高效率?

WorkPlus

阿里云架构师梁旭:MES on 云盒,助力客户快速构建数字工厂

阿里云弹性计算

最佳实践 数字化转型 制造业 mes 云盒

架构实战营模块 7 作业

热猫

好声音不同凡响,泥炭耳机618重磅新品来袭

江湖老铁

Python的教程

智趣匠

Python编程 6月月更

Django基础-1

zyf

django 6月月更

CC2530 GPIO口输出配置说明​

DS小龙哥

6月月更

聚焦Arbitrum开发热点技术,一探以太坊的L2未来

TinTinLand

场景驱动的特征计算方式OpenMLDB,高效实现“现算先用”

第四范式开发者社区

人工智能 机器学习 数据库 开源 实时计算

Electron框架XSS TO RCE简析

美创科技

漏洞

火遍全网的AI给老照片上色,这里有一份详细教程!

博文视点Broadview

PHP 对接微信公众号订阅消息详细教程

CRMEB

服务器运维环境安全体系(上篇)

融云 RongCloud

网络安全

虚拟主机、WordPress 主机和云主机之间的区别

海拥(haiyong.site)

6月月更

发布一个轻量级的 Elasticsearch 压测工具 - Loadgen

极限实验室

elasticsearch 极限实验室 loadgen 压测工具 esrally

IC 首届全球黑客松奖金高达600 万美元,助力开发者勇闯 Web 3!

TinTinLand

区块链

Kubernetes容器网络及Flannel插件详解

巨子嘉

云原生

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

掂掂三生有幸

云原生 Skywalking ,docker 微服务框架 6月月更

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