写点什么

采访《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:481642
用户头像

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

关注

评论

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

Java中级开发面试题,只需一篇文章吃透Java多线程技术,

Java 程序员 后端

java中间件、数据库与spring框架,Java性能优化最佳实践,

Java 程序员 后端

一行Java代码实现游戏中交换装备

华为云开发者联盟

Java 线程 游戏 Exchanger JDK 1.5

云随想二:云时代,你如何采购软件?

FLASH

云原生 采购软件

Java中级开发笔试题及答案,成功入职腾讯月薪45K,

Java 程序员 后端

update 没有索引导致业务崩了,老板骂了一个小时

华为云开发者联盟

数据库 innodb 事务 索引 update 语句

SaaS 102 | 做 SaaS 产品应该如何做决策?

Teddy Chan

创业 数据 SaaS 决策 电商SaaS

阿里云内部 WebRTC 研究分享| 内容合集

阿里云CloudImagine

阿里云 音视频 WebRTC 视频云 技术专题合集

Java中高级岗面试为何越来越难,学习Java开发的步骤,

Java 程序员 后端

视频剪辑软件对比之:会声会影与剪映

懒得勤快

移动端短语音消息音频格式选择

轻口味

android 音视频 9月日更

Java中级笔试题百度文库,基础+进阶+高级,

Java 程序员 后端

李沐亚马逊资深首席科学家 - 动手学深度学习 易筋 ARTS 打卡 Week 64

John(易筋)

ARTS 打卡计划

大一 PingCAP、大二 JetBrains,专访 00 后开发者:千里冰封

郭旭东

开发者 采访 大学生

新思科技:部署数据安全战略,加强安全管理和隐私保护

InfoQ_434670063458

数据安全 新思科技

一个通用即时通讯(IM)系统的设计

OpenIM

ECIC演讲精华|如何构建云原生应用下的高性能持久化存储?

焱融科技

技术 分布式 云原生 高性能 存储技术

Java中高级岗面试为何越来越难,都2021年了,还不会Redis?

Java 程序员 后端

华为云首席产品官方国伟:没有人拥有看到未来的水晶球,云上突围之路如何走?

华为云开发者联盟

云计算 云原生 数字化转型 华为云 伙伴云

数据库为何又如何走向分布式?

多颗糖

MySQL 数据库 分布式 raft TiDB

小白也能看懂的dubbo3应用级服务发现详解

捉虫大师

dubbo 服务发现 Dubbo3

教你实现一个朴实的Canvas时钟效果

华为云开发者联盟

标签 函数 canvas 时钟

IOS技术分享| any自习室场景实现

anyRTC开发者

音视频 在线教育 移动开发 ios技术分享

Java中高级面试必知必会,高级Java开发面试解答之线程篇,

Java 程序员 后端

火爆全网的Spring Security手册及源码笔记,在Github上标星103K

编程 架构 面试 程序人生 金九银十

源码解读Dubbo分层设计思想

vivo互联网技术

Apache dubbo 服务器 spi

Python中如何优雅的使用assert断言

wangkx

Python assert

Compose 中的图形

Changing Lin

9月日更

5个非常重要的数据Oceanbase,TiDB,Cassandra,RocksDB,MemDB

hanaper

计算机操作系统学习笔记 | 进程

Regan Yue

操作系统 进程 9月日更

FunTester抄代码之路

FunTester

Jmeter 测试框架 HttpClient FunTester ngrinder

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