本文编译自 Antonis Tsagaris 的博文,列出了针对 Android 初学者免费和付费的详细资源(编者注:请自带梯子)。Antonis Tsagaris 是 codehousefive.com 的 Android 开发人员,出过相关书籍。
第一部分:免费资源
Java
在你开始学习 Android SDK 之前,一定程度上掌握 Java 编程语言是非常有必要的。 如果在 YouTube 上搜索“Java 初学者”,会发现有大量的结果。要在这么多的结果里面筛选出学习需要的,可能会让你觉得很繁琐。
那么,由我来帮你整理吧:
- Derek Banas 的 Java Programming (30分钟 AKA 学习 Java)
- John Purcell 的 (AKA caveofprogramming) Java for Complete Beginners(纯初学者)
其实并不建议两个视频都花时间去看。当然,如果你时间、精力充足,那都可以去学。 如果你有其他编程语言的经验,建议观看 Derek Banas 30分钟的视频,该视频适用于已经在其他语言中对使用条件语句、循环等有过一些经验的人。如果你以前没做过任何编程,请观看 John Purcell 的系列视频,它把一切都解释的非常详细。
还有另一个在 YouTube 上找不到的 Java 教程(Intro to Java Programming),必须去 Udacity 网站注册观看。
最后,在 WikiBooks 上还有一篇牛逼的 Java 指南,强力推荐。
如果只是为了能够编写 Android 应用,其实倒不需要学习关于 Java 的一切,建议优先关注以下主题:
- 基本语法
- 流程控制(条件语句、for 和 while 循环)
- 面向对象编程的基础(类、对象、方法、继承、多态)
- Java 类型系统
- 泛型! 泛型! 泛型! 和 Java 集合框架。 列表,集和地图需要成为您的朋友。 因此,许多应用程序通过向用户提供数据集来经常使用集合
- 接口
- 异常和 try / catch
- 基础的线程和 Runnables
Android
学习 Java 只是构建 Android 应用的第一步。然后,你还必须熟悉 Android SDK(软件开发工具包)。
开发 Android 应用时,你将主要使用 Java 和 XML。说主要是因为 Gradle 构建系统使用 Groovy、NDK(Native Development Kit)使用 C / C ++ 、AIDL(Android 接口定义语言)使用…等等等等。
但事实上,在初学阶段,不会用到 NDK 或 AIDL ,Groovy 的知识也不是必要的,因为你使用 Gradle 大多情况下是在一个名为 build.gradle 的文件中复制和粘贴。
XML,可扩展标记语言,意味着它是描述事物而不是定义它们如何工作。如果曾经做过任何与 Web 相关的编程工作(即使是基本的东西),应该使用过 HTML。 在 HTML 中,当想要在屏幕上显示段落时,会使用到一个段落元素,如下所示:
<p>This is a paragraph</p>
这是一个很简单的声明:你要显示某个东西。如果要根据某些条件或从服务器下载的某些内容更改段落的内容,则可能要使用 JavaScript 或 PHP。
XML 很像 HTML,它将用于创建你的用户界面,可使用它来放置各种元素到屏幕上,如 TextViews、ImageViews 和 EditTexts。XML 学习内容也很多,在网上能搜到很多关于它的信息,包括上述的 WikiBooks 网站。但是,处理 Android 应用只需要一小部分 XML 知识就行。
在 YouTube 上有几个非常好的免费 Android 教程。如果你通过简单的搜索去寻找,你会被挑花眼,所以我建议:
- The New Boston: 信息很全,风趣详尽。
- slidenerd: 里面包含一个针对初学者的庞大的教程播放列表。
你也可以再次利用 Udacity 的账号去学习上面的 Android Development for Beginners 资源,以及一些 Android 基础系列内容,如:
最后,John Purcell 也有一个免费的针对初学者的个人Android 课程(需注册)。
第二部分:付费资源
Java
我不建议任何向 Java 资源付费除非那些免费的东西你都已经掌握了。如果是想对 Java 了解更多, Joshua Bloch 的 Effective Java 2nd Edition 还不错。
此外,如果你想早点形成良好的习惯,Head-First Design Patterns 能教你在 Java 编程中通常使用的一些非常有用的习语。
Android
有两个地方可以以优惠的价格找到一些很牛的内容,Udemy 和 Team Treehouse(为避广告之嫌,就不加链接了)。
Team Treehouse 有一个很棒的功能是 Tracks:通过建议一个学习顺序,形成一个初级和中级轨道来指导学习 Android 开发的过程。
与 YouTube 类似,如果你去 Udemy 上搜索“Android 开发”,会得到超级多的建议,可能也会不知道如何下手。 所以,还是给出建议:
- Tim Buchalka 的 Master Android N App Development With Java
- Matthew Penning 的 Android Development With Java Essentials
最后,我想建议一些不会困扰初学者的 Android 开发书籍:
- Barry Burd 的 Android Application Development All-in-One For Dummies,写作风格很友好、易读。
- Big Nerd Ranch 的 Android Programming 是一本非常酷的指南。
The Busy Coder’s Guide to Android Development, 这是一本非常详尽的,我认为可以称得上是所有 Android 开发人员都应该有的一把“利器”。
Ian Clifton 的 Android User Interface Design 也不错,有空也值得一看。这本 Android Programming: Pushing the Limits 我个人很喜欢,但是可以先收藏着,等你开始尝试构建应用后再看。
就是这样! 谢谢阅读。