写点什么

采访《Murach’s Android Programming》一书的作者 Joel Murach

  • 2013-11-28
  • 本文字数:2959 字

    阅读完需:约 10 分钟

由 Joel Murach 所编写的《Murach’s Android Programming》一书为 Android 应用开发的各方面知识概念作了一个全面的介绍,为了帮助读者更好的学习理解,书中提供了大量的源代码、截图及示例应用。

Android 是一个移动操作系统,目前已经运用在多数智能手机和平板设备中。为了与这些设备进行交互,你需要将你的移动应用上传至 Google Play Store 中。如果你了解 Android 编程所需的一些基本步骤与技术,开发应用会是一件很简单的事。

Joel Murach 在他的最新书籍《Murach’s Android Programming》中一书为Android 应用开发的各方面知识概念作了全面的介绍。

第1 部分将带你进入Android 开发的世界,除了你的第1 个Android 应用,还会介绍Eclipse 的使用、应用的开发、测试以及调试。第2 部分将介绍布局、组件、主题、样式、菜单、偏好、碎片化,以及处理事件的相关技术。

第3 部分中,作者将以一个新闻阅读器的应用为例,为你介绍线程、文件、适配器、目的(intent)、服务、通知以及广播接收器(broadcast receiver)等方面的知识。

第4 部分将以一个任务列表的应用为例,介绍了进行SQLite 数据库、标签、定制化适配器、内容提供者及窗口小部件(app widget)开发所必需的步骤。

“有些Android 应用的优秀程度令人兴奋,有些则很糟糕。幸运的是,这些优秀的应用渐渐占据了榜首位置”,以上是Joel 对某些对Android 上现有应用的质量提出的质疑所做出的回答。

在最后一部分里,作者除了为我们介绍窗口小部件的使用之外,还将为我们介绍部署Android 应用所必需的步骤,在这里你将学会如何将Google Play 服务类库加入你的项目的基本步骤,包括了如何获取SHA-1 鉴别、MAPs API 键以及当前位置等等。Joel 也讨论了如何注册Maps API 键的必需步骤,另外还提到了如何检查GPS 功能是否打开的方法。

你还将学到显示地图、添加标记和直线的基本技术。此外还有跑步跟踪应用的使用、activity_run_map 布局的特性以及RunMapactivity 和RunTrackerService 类的应用。

本书最后还包含了一个附录,其中提到了使用IntelliJ 进行Android 编程的相关内容。

第1 章可以在这里免费下载

InfoQ 有幸采访了 Joel Murach,试图了解他的作品的一些信息,并听听他对 Android 移动应用开发最新趋势的见解。

InfoQ:《Murach’s Android Programming》一书会为移动开发者带来怎样的帮助呢?

首先,本书将为开发者教授基本的 Android 开发技术,即使读者之前还没有 Android 开发的经验也能够上手。其次,这本书的设计很好,它对开发者带来了很多有用的参考信息。

InfoQ:开发 Android应用简单吗?

如果你了解一些基本的 Java 技术,开发一个简单的 Android 应用是非常简单的。当然,即使是编写一个简单的应用,让它真正运行起来也要处理很多棘手的问题。比方说你需要处理应用中的各种生命周期事件,例如用户切换了屏幕的方向,或者跳转至另一个应用以发送一条文件信息。

另一项挑战是让一个应用在当前各种 Android 设备上所具有的数量繁多的屏幕尺寸和形状上都能够正确地运行。最后,由于 Android 操作系统在 Java API 的基础之上又提供了一套不同的 API,因此开发者必须要学习一套新的 API(而且是一套很大的 API)。

幸运的是,这套 API 的设计旨在于尽量简化开发者创建一个运行在 Android 设备上的移动应用的过程。

InfoQ**:你认为 Google会在不久之后采用 Java 8吗?**

我不这么认为。在可见的未来之内,我认为 Android 还会继续使用当前所用的 Java SE 6 的子集特性以及 API。我想 Google 最终还是会迫于众人的强烈要求将 Java 8 的特性与 API 加入到 Android 里,但我想那至少是几年以后的事了。

InfoQ:你能跟我们分享一下,为什么你会选择新闻阅读器与任务列表这两个应用作为讲述各个主题的示例吗?

我的目的是让读者能够更容易理解如何在某个应用的语境下使用特性。虽然你可以在语境之外展现这些特性,但读者们就必须自己学会如何在语境之内使用特性,这一个额外的步骤会使得对特性的理解显得更困难。当然,诀窍在于保持示例应用尽量短小与简单,这样我打算为读者介绍的特性才不会淹没在应用的其它代码中。我尽了最大的努力去取得平衡。

InfoQ:你能透露一下为什么在你的这本书中没有介绍游戏应用开发的原因吗?

我曾经考虑过在本书中介绍一个游戏应用,但我最终决定不这么做,原因是我认为对开发者来说,创建本书中所展示的一些应用的机会要更多一些,这些应用展示数据并与数据交互。如果读者们的反映他们非常想看到某个游戏应用的介绍,那我会尽量在本书的下一版中加入这部分内容。

InfoQ**:有没有可能使用 Visual Studio 2013来进行 Android应用的开发呢?**

说实在的,对此我不太确定。在之前版本的 Visual Studio 中,如果你安装了某些插件就能够开发 Android 应用了。不过我不推荐大家使用 Visual Studio 进行 Android 开发。目前我的推荐是 Eclipse。或者如果你无法接受 Eclipse 的话,你可以使用 IntelliJ,它使用起来更像 Visual Studio。在今后,你或许应该去尝试一下 Android Studio,目前 IntelliJ 与 Google 正在共同对其进行开发,大约在明年就可以使用了。

InfoQ**:有一种常见的理论,它认为基于 Android的移动设备耗电比 Windows Phone 8更快。你对这个问题的看法是什么?**

我认为这两个操作系统对电池寿命的处理上都做得足够好了,我想某种设备上的电池寿命更多的取决于该设备上运行了哪些应用,而不是操作系统本身。不过我并不了解这两个操作系统的底层技术细节,因此以上只代表我个人的想法而已。

InfoQ**:有没有可能开发一个同时支持 Android与 Windows Phone 8这两种设备的移动应用呢?**

当然有可能,你可以首先针对其中一种设备创建应用,随后再手动地将代码移植到另一平台。如果你的代码结构良好,做到这一点应该不是太困难。或者如果你愿意的话,你也可以尝试使用一些原本就设计为开发跨平台的移动应用的产品。比方说,你可以使用 Xamarin 来开发能够运行在 Windows Phone、Android 或者 iOS 系统上的应用。这些应用可以共享大部分的代码,不过与用户界面相关的代码则需要为每个操作系统分别设计了。我并没有使用这些跨平台产品的任何经验,因此我无法保证它们是否运行良好。

InfoQ:你认为《Murach’s Android Programming》对开发者来说是一份完整的资源吗?

并非如此,我并没有把本书作为开发者的完整资源来设计。本书的目的是帮助那些已经掌握了基本 Java 技能的开发者,让他或她能够学会 Android 开发技能的一些基础。当读完本书之后,读者应该掌握了一个扎实的基础,并且能够具备能力去进一步学习他们打算掌握的某部分 Android 功能了。

InfoQ**:你觉得 5至 10年后,Android**应用的发展与潜力会达到怎样的水平?

我相信 Android 应用的数量在可见的未来之内还会持续上升。到了某个点之后,或者是 5 至 10 年左右,我认为智能手机与平板的发展可能会停滞不前。到了那时候,我相信 Android 仍旧能够在其它类型的设备上继续发展。

关于作者

Joel Murach已经参与计算机编程方面的书籍编写和编辑超过 10 年了。在这段时间内,他所编写的书籍涵盖了 Java、.NET、web 与数据库等多方面的技术。当他不用编程,或者不用编写技术书籍的时候,他也许会跑去冲浪、或者去写音乐。

查看英文原文: Interview with Joel Murach - Author of Murach’s Android Programming

2013-11-28 04:481970
用户头像

发布了 428 篇内容, 共 197.5 次阅读, 收获喜欢 39 次。

关注

评论

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

几种常用设计模式的简单示例

编程三昧

JavaScript 大前端 设计模式 8月日更

手撸二叉树之合并二叉树

HelloWorld杰少

8月日更 数据结构算法

ShardingSphere源码解析 初步准备

Java 源码 ShardingSphere

【布道API】权限错误码选择:401、403 或 404

devpoint

HTTP Authorization REST API 8月日更

Android开发:新建后缀为txt的文件并且使用的步骤

三掌柜

8月日更 8月

使用Redisson优雅关闭订单

码农参上

redission 8月日更

IDEA2020.1构建Spring5.2.x源码

4ye

Java spring 源码 后端 8月日更

为了完成小姐姐安排的打分系统,又熬了一个小时的夜补充视图与模板

梦想橡皮擦

8月日更

回调模式

wzh

面试 设计模式 回调函数

Java web程序的运行时环境

wzh

Java tomcat 面试 Web JVM

模块五作业

seawolflin

架构训练营

Java技术开发专题系列之【Guava Collections】实战使用相关Guava不一般的集合框架

码界西柚

Java Guava 8月日更 Guava Collections

@ConditionOnClass的使用

Rubble

8月日更

观察者模式

wzh

面试 设计模式 观察者模式

策略模式

wzh

面试 设计模式 策略模式

JVM GC机制

wzh

面试 JVM 垃圾回收 GC GC Root

如此爱国,必然自毁长城

箭上有毒

8月日更

Golang协程之了解管道的缓存能力

Regan Yue

协程 Go 语言 8月日更

Go- 字符串

HelloBug

索引 字符串 Go 语言 拼接 长度

类加载机制

wzh

Java 面试 JVM 类加载器 JVM类加载

JVM内存划分

wzh

面试 JVM 方法区

Android.mk

Changing Lin

8月日更

kubernetes/k8s CNI 分析 - 容器网络接口分析

良凯尔

Kubernetes 源码分析 Kubernetes Plugin #Kubernetes# cni

四种常见的 POST 提交数据方式

一个大红包

8月日更

Android EditText输入框实现下拉且保存最近5个历史记录

Andy阿辉

android Android 小菜鸟 编程思想 8月日更

vue入门:vuex概括与使用

小鲍侃java

8月日更

java操作sql server数据库

Python研究者

8月日更

装饰器模式

wzh

面试 设计模式 装饰器

Nginx-基本概念和使用

Rubble

8月日更

JAVA 规范

gin

Vue进阶(五十四):vue-cli 脚手架 dev-server.js 配置文件详解

No Silver Bullet

Vue 8月日更

采访《Murach’s Android Programming》一书的作者Joel Murach_移动_Anand Narayanaswamy_InfoQ精选文章