AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

五年Java开发者小米、阿里面经,附相关架构及资料

JVM调优资料

Java 程序员 后端

为什么spring能最好地改变Java?成功跳槽阿里!

JVM调优资料

Java 程序员 后端

阿里云 Centos7安装ssh+nginx+mysql 傻瓜式教程

九河云安全

勒索软件、网络钓鱼、零信任和网络安全的新常态

九河云安全

图片风格迁移:基于实例缓解细节丢失、人脸风格化失败问题

华为云开发者联盟

神经网络 风格 实例 风格迁移 图像翻译

为什么大公司一定要使用微服务?神操作!

JVM调优资料

Java 程序员 后端

基于ECS搭建FTP服务

若尘

阿里云 ftp服务 8月日更

京东面试真题解析,帮你解决95%以上的问题!

JVM调优资料

Java 程序员 后端

CIS Kubernetes 基线测试

greatersecurity

SpringBoot使用Junit5

Rubble

springboot JUnit 8月日更

DBA:这有一份对接NBU备份故障排除指南,请查收!

华为云开发者联盟

故障 DWS 备份 NBU NetBackup

Nginx 内存池似懂非懂?一文带你看清高性能服务器内存池

Linux服务器开发

nginx Linux服务器开发 Linux后台开发 高性能服务器 内存池

Apache ShardingSphere 元数据加载剖析

SphereEx

数据库 开源

五分钟搞懂MySQL主从复制原理,附带学习经验

JVM调优资料

Java 程序员 后端

五面阿里拿下飞猪事业部offer,帮你突破瓶颈

JVM调优资料

Java 程序员 后端

香港云服务器的运行原理以及是微小创业公司的最具性价比的选择

九河云安全

开发者进阶宝典,HarmonyOS 职业认证全奉上

科技汇

Linux-Vim 编辑器和恢复 ext4 下误删除文件-Xmanager 工具

学神来啦

vim Linux 学习 运维

多数元素

Memorys

Java 面试 算法

学会这十招,轻松搜索github优质项目

Java架构师迁哥

模块九毕设

c

架构实战营

书单 | 7月畅销新书情报,看谁是最大黑马

博文视点Broadview

高防云服务器与云服务器的区别以及如何去更好的选择?

九河云安全

【共识专栏】共识的分类(下)

趣链科技

区块链 共识机制 共识算法 共识分类

Java线程安全-JVM角度解析

程序员阿杜

Java JVM 多线程 并发 8月日更

字节三面+微信四面+PayPal四面,大厂面经分享

Java 程序员 架构 面试 计算机

Apache ShardingSphere:由开源驱动的分布式数据库中间件生态

SphereEx

数据库 开源

MySQL不能没有字符串函数,就像西方不能失去耶路撒冷

北游学Java

Java MySQL 数据库

中国首位 K8s ingress-nginx reviewer 同时提名成为 Apache APISIX committer

API7.ai 技术团队

开源 Kubernetes 采访 APISIX

jackson1处理特殊字符有什么问题?

BUG侦探

json Java 开发 jackson特殊字符

肝到头秃!阿里爆款的顶配版Spring Security笔记

Java spring 程序员 架构 计算机

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