Android Native Development Kit Cookbook – 书评





4.00/5 (1投票)
对《Android Native Development Kit Cookbook》的评测。
引言
在我准备认真开始写博客之前,我收到了一个有趣的邀约,可以评测另一本 Android 书籍。如果大家还记得,我曾评测过《Android 4: New features for Application Development》(http://bit.ly/12E5q2u),那本书很好地介绍了新特性,而这本书则回归基础,带你一步步设置你的第一个应用,并更进一步。
Android Native Development cookbook
如果你是 Android 开发新手,那么你需要一本好的入门书籍,例如《Android NDK Beginner’s Guide》(http://bit.ly/12E6Qdn)。
如果你对 Android 开发感兴趣,这本书肯定会拓宽你的视野,因为它是一本食谱,所以你需要了解 Android 开发的行话。
《Android Native Development》这本书适合任何严肃的 Android 程序员的参考书架,作为 Android 平台上最常见编程问题的单一参考来源。
这本书肯定不是面向绝对初学者的,它期望你对 Android 平台有一定的了解和基础知识,以及基本的 Java / C++ 技能,它提供了一个良好且全面的开发指南风格参考,用于在 Android 上编程应用和游戏。
甚至还有一个程序员参考部分,展示了 Android 如何处理最基本概念以及如何有效地使用它们。
只要你读过任何一本“傻瓜书”(dummies guides),你就有足够的知识来阅读这本书,并开始有效地进行开发。而且,如果你还能获得奖励章节,你甚至可以在你的设备上立即运行 Wolfenstien 3D。
以下是本书各章节的简要概览,以及对它们的期望。本书的布局像一本传统的食谱,专注于每个特定的组件并将其剖析。
第 1 章 “Hello NDK”
为了让本书有一个好的开端,本章将指导你完成在你的机器上设置 Android 开发所需的一切。与大多数 Android 书籍不同,它还会在 Mac 和 Linux 上进行演示,而不仅仅是 Windows。
它会让你开始使用正确版本的 Java 和 Android SDK,并设置 Eclipse 作为你的开发环境。(如果你愿意,也可以使用 Xamarin Studio 作为 Eclipse 的替代品,它仍然是免费的。)
本章最后以传统的“Hello World”应用结束,以测试你是否已成功设置并正常工作。
第 2 章 “Java Native Interface”
第 2 章基本上是一个良好且全面的编程参考,用于使用 JNI(基本上是 Android 版的 .NET)构建 Android 应用,其中包含基础编程常量(如)的初级和高级示例:
- 加载本地库并注册本地方法
- 在原始类型中传递参数和接收返回值
- 在 JNI 中操作字符串、引用、类、对象和数组
- 在本地代码中访问 Java 静态和实例字段和方法
- 缓存
jfieldID
、jmethodID
和引用数据以提高性能 - 检查错误和处理 JNI 中的异常
- 在 JNI 中集成汇编代码
到本章结束时,你应该掌握了在 Android 平台上成为高效程序员所需的大部分知识。
第 3 章 “构建和调试 NDK 应用”
任何接触过或使用过 Android 设备的人都知道 Android 开发中不同型号/功能和选项所涉及的复杂性。在本章中,你将了解在配置 Android 解决方案和构建环境时的最佳实践。
记住,你很少只构建一个 Android 应用,而是多个,以应对存在的各种变体。
本章还包括了如何设置你的 Eclipse 环境以进行自动化构建和部署到模拟器或设备(如果你使用 Xamarin Studio,这已内置)。
第 4 章 “Android NDK OpenGL ES API”
图形系统在本章中登场,深入探讨 2D/3D 渲染系统的所有细节,并对使用 OpenGL 着色器进行基本概述。它包含一些基础示例,让你对该领域有一个初步了解,大多数平台上的图形是一个非常棘手的领域,本书很好地解释了基础知识。
第 5 章 “Android Native Application API”
在这里,我们开始真正进入原生开发,并使用 Android Activity(页面)以及处理各种输入方法和传感器。还有一个关于 Asset 的重要部分,这非常关键,因为它在 Android 上与其他大多数平台不同。
第 6 章 “Android NDK 多线程”
在任何平台上,获得应用的性能和平衡,并使其运行到适合用户的水平,都是一大难题,当你开始使用较便宜的设备并需要榨干设备仅有的一点点性能时,这一点变得至关重要。
多线程(或将你的应用分解成小块处理)在许多情况下是解决方案,但与所有事情一样,有多线程的好方法和坏方法。本章提供了一个良好的概述,并提供了一些关于多线程的良好实践。
第 7 章 “其他 Android NDK API”
作为本书编程部分的总结,作者在这里概述了标准 Android SDK 中内置的一些附加功能。它没有深入探讨(每个库可能都可以写一整本书),但它提供了足够的信息让你开始,并对每个库的功能有一个基本的了解。
第 8 章 “移植和使用现有的 Android NDK 库”
在两个模式和实践章节中的第一个,本章涵盖了在你的 Android 应用中重用现有的 C++ 库,如果你不想自己编写大量的代码,这非常有用。有大量用原生代码编写的免费和付费库,在所有非小型应用中,利用它们都至关重要。
本章还涵盖了一些重用需要异常、RTTI 和 STL 支持的库的棘手部分。
第 9 章 “使用 NDK 将现有应用移植到 Android”
紧接着上一章关于重用现有库的重点,本章介绍了如何将现有的原生库移植到 Android,然后为其创建一个 Shim UI 以便使用。示例是一个漂亮的图像处理库,看起来足够简单,可以解释其中涉及的所有基本概念。
此外,还有 2 个奖励章节,为本书增添了真正的光彩。这两章都可以通过 PacktPub 网站访问,你购买本书即可获得。在序言中包含了如何访问它们的详细信息。
奖励章节 1 “使用 NDK 开发多媒体应用”
本章使用本书中解释的所有技术构建了一个真实世界的应用,包括:
- 移植和使用
ffmpeg
库到 Android NDK - 使用
ffmpeg
库获取媒体信息、解码/显示视频帧 - 使用两个线程分离解码和绘制
- 通过优化多媒体应用的性能来播放、捕获帧
奖励章节 2 “使用 NDK 开发游戏”
重温我童年最喜欢的游戏之一,本章将指导你下载最初的 Wolfenstein 3D 的免费版本(及其源代码),然后将整个游戏移植到 Android,包括添加 Android 输入/传感器系统和新的屏幕输入 UI。
如果你正在寻找一本参考手册来指导你构建高效的 Android 应用,那么这本书将是一个受欢迎的补充。奖励章节真正让整个画面完整,可惜它们没有包含在基础书中,但事实上,任何拥有这本书的人都可以免费获得它们,这非常好(立即获取)。
本书包含大量的介绍性材料,包括编程指南,但你必须首先对 Java/C++ 有所了解,并至少阅读一本“Android for dummies”风格的书籍来学习基本术语。
优点
- 非常详细的分步解释
- 完全可工作的示例,不仅仅是随意编写的代码
- 不试图过度设计章节,只提供足够的内容让你起步,剩下的需要你自己去探索
- 它帮助你构建 WOLFENSTEIN 3D!!
缺点
- 如果没有奖励章节,就没有什么可以将所有内容整合成一个完整的应用,只有许多零散的部分(作为参考书,这是可以预期的)。
- 没有关于管理 Android 模拟器的详细信息,这是一个小小的缺陷,模拟器的设置可能会非常棘手(只期望设备)。
我绝对可以说,我从这本书中学到了很多新技巧,它是我书架上的一个受欢迎的补充。在我从事 MonoGame 的工作中,它将在处理复杂 3D 游戏中可能遇到的棘手的后端性能问题方面给我带来极大的帮助。
了解如何充分利用第三方原生库的知识,也将非常有助于更快地开发游戏。
总而言之,我可以肯定地说,在阅读了 Android Native Development cookbook 后,我感觉自己成为了一个更好的 Android 程序员,当我的应用或游戏出现问题时,我知道该去哪里查找。