How to teach yourself Android programming

Blog source address: http://stormzhang.com/android/2016/01/21/learn-android-byself/ 

What you have been waiting for is finally here. I can be regarded as the originator of the Android self-learning community. The stories and shared knowledge and experience of self-learning have influenced countless people. Now that several years have passed, I often receive thank you letters from many people. , many beginners who read my tutorial at the beginning have now made small achievements in Android development, and I am gratified that they still continue my sharing spirit and influence more people.

If you are still an Android beginner, you might as well read my self-study story here:

How to teach yourself Android programming

Today, I won’t say much nonsense. I will recommend a detailed self-study tutorial to help you from entry to advanced to proficient.

Prepare

The road to self-learning is a very hard job. There are many people who teach themselves, but few who can really persevere. Before preparing to learn Android by yourself, you need to have the following basic skills to help you persevere to the end.

  • 1. If you are interested in Android development and the Internet, your interest is the best teacher. Only you can really stick to it if you are interested in it from the heart;

  • 2. Strong learning ability. Since self-study is a must, learning ability is definitely necessary. You must have a strong desire for knowledge and continuous learning ability to have the opportunity to go further. Pay attention, it is continuous learning ability;

  • 3. The ability to solve problems, you will definitely encounter all kinds of pits in the process of self-study. At this time, don’t be impatient, don’t be discouraged, don’t be afraid of wasting time, and solve problems step by step, which will help you to go to work in the future. bring great advantages;

  • 4. Set a goal. For example, when I tested and switched to development, the goal of self-learning Android is simple and straightforward, because the salary of development is higher than that of testing, and I changed careers to make more money. I think most people's goals should be the same as mine.

Java Basics

Android development is based on the Java language, so there is no doubt that you must master the Java foundation. If you have no Java foundation at all, this step must be learned. If you already have Java foundation, this step can be skipped.

For many beginners, getting started is often the most difficult. If you just read the book, you can't read it at all, and it is difficult to understand. Therefore, it is strongly recommended that beginners learn the basics of Java by combining books with videos, so I recommend:

  • "Java Language Programming" has the advantage of being very basic and suitable for beginners. It is recommended that you only need to read the first fourteen chapters, and you can skip the twelfth chapter.

http://book.douban.com/subject/6529833/

  • Mr. Mars' Java4Android video course combines learning, which is convenient for beginners to understand and get started.

http://pan.baidu.com/s/1c1beYo4

If you insist on studying for at least 3-4 hours a day, it is normal for this stage to take about 1-2 months, and the range varies depending on the person and the time spent.

Getting Started with Android

After the above learning, I believe that you have mastered the basics of Java, and it is time to officially enter the stage of Android learning.

  • Android learning road

The detailed information on Android development that I have compiled by myself, this blog has influenced countless Android developers, and can be described as a must for Android development. In a sense, this blog is enough for self-learning Android. http://t.cn/Rz79nfR

  • "First Line of Code"

Guo Lin's latest masterpiece, the book comprehensively explains all aspects of Android software development from the simple to the deep, and it is explained for Android 4.0, which is very suitable for getting started with Android. http://book.douban.com/subject/25942191/

  • Mr. Mars' Android development video tutorial

http://marschen.com/portal.php

  • Geek Academy Android Development Video Tutorial

http://www.jikexueyuan.com/path/android/

  • MOOC's Android video tutorial

http://www.imooc.com/course/list?c=android

至于入门书籍我认为推荐一本适合你的就够了,而且大部分书籍内容大同小异,但是视频教程就就不一定讲解的内容都一样了,大家可自行选择视频教程。

Android开发工具

  • 科学上网

科学上网可以说是程序员必备技能,身为Android开发者那更得会这项技能,不管你是使用Google也好,还是到Android官网查找资料,下载SDK都必须要翻墙。可以使用goagent也好,修改host,购买vps、vpn等等方式,这个技能不是本文重点,大家可自行搜索去配置。可以告诉大家的是对于新手来说最简单有效的方式是购买VPN,可以节省不少精力,至于哪个vpn比较好用不敢保证,我使用了两年的vpn个人感觉相对较稳定,感兴趣的可以到我博客主页去寻找。

  • Android Studio

虽然目前的很多学习资料与书籍都是Eclipse为主,但是Google已经明确未来Android会抛弃Eclipse,所以强烈建议大家直接使用AS,学习的初期花点时间熟悉使用,上手很快就可以对照eclipse方面的教程转到AS了。当让我也在AS1.0刚发布的时候就已经出了一个针对新手的Android Studio+Gradle详细教程,是一个系列,帮助你们更快的入门。 http://t.cn/RbH8Q3V

  • AndroidDevTools

我是强烈建议Android开发者一定要学会科学上网的,但是如果你觉得暂时还不需要接触外面的世界,那么我的一个朋友搭建的网站,可以让你们无须翻墙即可下载使用官方SDK。 http://www.androiddevtools.cn/

  • 模拟器Genymotion

首先建议大家能不用模拟器都不要用,模拟器的启动速度简直是龟速,现在市面上安卓手机很便宜,打算做Android开发没个安卓手机真是说不过去。如果你非要用模拟器那就推荐你用Genymotion,目前来说最快的模拟器。具体可以看我下面的博客,最后还是要建议大家不要使用模拟器!!http://t.cn/R4RvAQd

  • Google

问任何问题之前都要先去搜索引擎查一下,这会训练你的解决问题的能力,而等你以后工作,实际开发中可以知道,有一大半的时间你是在搜索度过的,很多问题都已经是前人遇到并总结的方案。对于新手来说可能百度勉强够用,但是建议一开始就养成使用Google的习惯,百度在娱乐八卦方面确实靠谱,但是技术方面查出来的东西基本千篇一律,有些答案甚至还会起到误导作用,直到有一天我的老大告诉我用Google,我才知道这个世界上原来还有另外一个搜索引擎,自此便成为脑残G粉,所以一定要用Google!一定要用Google!一定要用Google!!!(重要的事说三遍)

  • StackOverFlow

用Google之后搜索出来的东西还是习惯性的点击中文结果,直到有一天我发现基本每次搜索排名第一的都是这个网站,于是尝试着点进去用我蹩脚的英语阅读,之后真是相见恨晚的感觉啊,上面几乎能搜到你遇到的绝大部分问题,某种程度上来说推荐用Google搜索的原因之一是因为排名靠前的答案基本都在StackOverFlow上。

  • GitHub

现在是全球最知名的程序员开源社区,程序员几乎人手一个GitHub账号,在上面你可以找到各种各样牛人分享的开源项目,包括Google、Facebook、Twitter等开源的代码,简直是号称进阶必备,某种意义上看大牛的代码是最好的学习进阶方式。

Android开发资源

了解这些资源你绝对会接触另一个世界,这些资源大部分都是我圈中好友总结分享的项目,绝对干货!

  • Google Android官方教程中文版

http://t.cn/RvHtswy

  • Android 开发最佳实践

一些优秀Android开发者总结留下来的经验,了解这些能让你的学习之路事半功倍。 http://t.cn/RwgJoHm

  • Android开源汇总

GitHub上总结的最全的Android各大开源项目,让你大开眼界! http://t.cn/R2LTQkN

  • Android Weekly

了解最新的Android相关的技术有哪些,时刻了解紧跟技术趋势,建议加入邮箱订阅。 http://androidweekly.net/

  • Android Weekly Cn

我一个朋友做的国内版的Android Weekly,更符合国情。 http://www.androidweekly.cn/

  • Android源码解析

我的朋友Trinea发起的一个专注于开源项目源码解析及优秀开源项目的分享的网站 http://p.codekk.com/

  • AndroidDeveloper

我自己的公众号,算是打个广告吧,作为国内Android界的精神领袖,我经常也会在我的微信公众号上分享一些干货,大多为个人原创,时刻紧跟趋势,并且只分享对你们有用的干货,可以微信公众号搜索googdev关注。

国内优秀Android开发者的博客

这里筛选一些有质量的博客给大家,大都是你们的前辈,绝对一线的博客。

国内外优秀Andorid团体博客

Android进阶书籍

当你Android开发已经上手之后,突然发现一直进步很慢,处于一个瓶颈了,这个时候你需要这些书籍。

  • Thinking In Java

Java经典书籍,有中文版的,可能为了学习Android,你只掌握了Java基础,但是远远不够,你需要再重新系统的学习一下Java,这是一本值得反复看的书籍,针对有一定Java基础的人,会让你重新认识下Java。 http://book.douban.com/subject/1474824/

  • Effective Java

这是一本实用至上的书,78条建议,满满的干货。每一条都说明了为什么最好这样,Java进阶必备,目前为止看过这本书评价最好的一本。http://book.douban.com/subject/3360807/

  • App研发录

从App架构的角度,重点总结了Android应用开发中常见的实用技巧和疑难问题解决方法,为打造高质量App提供有价值的实践指导,避免你在实际项目中踩坑,读完绝对有收获。 http://book.douban.com/subject/26649050/

  • Android开发艺术探索

这是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点,Android开发进阶值得拥有。http://book.douban.com/subject/26599538/

AndroidUI设计

  • Material Design

在开发一款Android App之前,你需要了解下Android平台的设计规范,这里有Google最新推出的Material Design中文翻译版。 http://t.cn/RLrJg33

而且 Google 官方出了一个支持库 Android Design Support Library,具体用法见链接。 http://t.cn/R2orZH9

  • Sketch 3

这个工具只推荐给对UI感兴趣的开发者,这是一个专为设计移动端 UI 的设计工具,作为开发者,不用懂那么复杂的 PS 使用,也可以做非常专业设计。 https://designcode.io/sketch

AndroidApp源码推荐

当你已经做Android开发一段时间,并苦于进入瓶颈,这个时候阅读一些优秀App的源码是最好的学习进阶方式,借鉴一些优秀App源码的设计能获益很大。

  • iosched

iosched项目是Google I/O的官方app,绝佳的学习项目。 https://github.com/google/iosched

  • android-UniversalMusicPlayer

也是Google官方作品,代码量不大、注释清晰,简单但全功能的音乐播放器。 https://github.com/googlesamples/android-UniversalMusicPlayer

  • android-topeka

这个项目是Google前段时间刚发出来,通过这个app,你还可以学到如何设计你app的交互和视觉以更好的和MaterialDesign搭配。https://github.com/googlesamples/android-topeka

Google的项目有些时候对于初学者有点困难,下面就推荐两个完整的轻量的学习项目。

  • 9GAG

9GAG是我个人的开源练习项目,教你使用Studio、Gradle以及一些流行的开源库快速开发一个不错的Android客户端。https://github.com/stormzhang/9GAG

  • AnimeTaste

代码家开源的一个线上关注动画的一个App,同样适合初学者学习。 https://github.com/daimajia/AnimeTaste

Android新技术

你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向。

  • Kotlin

作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。 http://t.cn/R2DK0SL

  • React Native

Facebook推出的针对移动应用的跨平台解决方案,目前还不成熟,但是由于Facebook推出,光环效应引起不少目光,这是不是未来暂且还没结论,但是有必要了解学习下。 http://t.cn/RbHmtOk

  • MVP

MVP越来越多的被Android社区所讨论,有点是能够让代码更清晰,但同时也会增加很多类,写起来更麻烦,不过对于一些不是很庞大的项目却是非常适合的。这里提供一个最先采用MVP模式的开源项目: https://github.com/pedrovgs/EffectiveAndroidUI

  • MVVM

Because of the official support for DataBinding, MVVM is brought directly to Android. Its very efficient development efficiency allows you to only care about your data and business, and data binding will be more common from now on. http://t.cn/RbHmnhE

  • plug-in

Generally, after the app goes online, it needs to resubmit a new version to solve it. This is too slow. Due to the review of iOS, plug-in is common in iOS development. This is a special need in Ali's business. For example, there is a bug in Double Eleven. It doesn't matter if the bug appears, so Ali has derived a series of hot repair frameworks, dexposed and AndFix, which can be found in detail here. http://lirenlong.github.io/hotfix/

  • RxJava

Recently, the reactive programming framework RxJava has become more and more popular. RxJava makes your asynchronous tasks more concise and convenient. With my sensitivity to technology, I think RxJava may become more and more common, and I recommend everyone to learn it. Here is a series of detailed materials to teach you to learn. https://github.com/lzyzsd/Awesome-RxJava

When you make up your mind and prepare to move forward, the only thing left is to persevere!

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326443561&siteId=291194637