博客源址:http://stormzhang.com/android/2016/01/21/learn-android-byself/ 2016 年 01 月 21 日

你们期待的终于来了,我可以算作是Android自学界的鼻祖了,之前自学的故事与分享的知识、经验影响了无数人,如今几年过去了,我经常收到不少人的感谢信,很多当初看我的教程的初学者如今已经在Android开发小有成就,而且让我欣慰的是他们也依然延续我的分享精神,影响更多的人。

如果你现在依然是一个Android初学者,不妨到这里看下我的自学故事:

如何自学Android编程

今天废话就不多说,就来给大家推荐一份详细的自学教程,帮助你从入门到进阶到精通。

准备

自学之路是一项很苦逼的差事,自学的人很多,但能真正坚持下去的很少,在准备自学Android之前你需要具备以下基本能力能帮助你坚持到最后。

  • 1、对Android开发、对互联网感兴趣,兴趣是最好的老师,只有发自内心的感兴趣才能真正坚持下去;

  • 2、强大的学习能力,既然自学那学习能力肯定是必备,要有很强的求知欲,持续不断的学习能力才有机会走的更远,注意,是持续不断的学习能力;

  • 3、解决问题的能力,自学过程中肯定会遇到各种各样的坑,这个时候不要急躁,不要气馁,不要怕耗时间,一步一个脚印去解决问题,这会为你今后走上工作岗位带来极大的优势;

  • 4、设定一个目标,比如我当初测试转行开发,自学Android的目标简单直接,因为开发比测试工资高,我转行就是为了多挣钱。我想大部分人的目标应该都跟我同感。

Java基础

Android开发是基于Java语言的,所以毫无疑问的是必须要掌握Java基础,如果你完全没有任何Java基础,这步是必须要好好学习的,如果已经有Java基础的,这步可略过。

对于很多初学者来说入门往往是最难的,如果只看书完全看不下去,也很难理解,所以强烈推荐初学者以书籍结合视频的方式学习Java基础,所以给你推荐:

  • 《Java语言程序设计》,优点是非常基础,适合初学者,建议只要看到前十四章就ok了,第十二章也可以略过。

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

  • Mars老师的Java4Android视频课程结合学习,便于初学者很好的理解与入门。

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

如果每天至少坚持学习3-4小时的话,这一阶段差不多花费1–2个月之间都算正常,范围因人以及花费的时间而异。

Android入门资料

经过上面的学习相信你已经掌握了Java基础了,是时候开始正式进入Android学习的阶段了。

  • Android学习之路

我自己整理的Android开发详细资料,这篇博客影响了无数Android开发者,可谓Android开发必备,某种意义上来说,自学Android有这篇博客足够了。http://t.cn/Rz79nfR

  • 《第一行代码》

郭霖大神的最新力作,全书由浅入深、系统全面地讲解了Android软件开发的方方面面,而且是针对Android 4.0进行讲解的,非常适合Android入门。http://book.douban.com/subject/25942191/

  • Mars老师的Android开发视频教程

http://marschen.com/portal.php

  • 极客学院Android开发视频教程

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

  • 慕课网的Android视频教程

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开发者的博客

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

  • stormzhang的博客

  • 郭霖的博客

  • Trinea的博客

  • 魏祝林的博客

  • 恺风(Wei)之Android专栏

  • 张鸿洋的博客

  • 张兴业的博客

  • 更多国内优秀开发者的博客

  • 国外著名优秀开发者博客

国内外优秀Andorid团体博客

  • Android Developers Blog (Android开发者官方博客,须翻墙)

  • 美团点评技术团队

  • 腾讯全端 AlloyTeam 团队 Blog

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

因为官方支持 DataBinding,把 MVVM 直接带到 Android 中。它非常高效的开发效率,让你只关心你的数据和业务,从此数据绑定会更加常见。http://t.cn/RbHmnhE

  • 插件化

一般App上线之后出现bug需要重新提交新版本才能解决,这个就太慢了,由于iOS的审核原因,插件化在iOS开发常见,阿里业务方面这个特别需要,比如双十一出了bug,不能眼睁睁的看着bug出现不管吧,所以阿里系衍生出了一系列热修复的框架,dexposed、AndFix,具体可以见这里详解。http://lirenlong.github.io/hotfix/

  • RxJava

最近响应式编程框架RxJava越来越受大家待见,RxJava让你异步任务更简洁方便,以我对技术的敏感性认为RxJava可能会越来越普遍,推荐大家学习。这里有一系列详细的资料教你学习。 https://github.com/lzyzsd/Awesome-RxJava

当你下定决心,准备前行的时候,剩下的只有坚持了!

如何自学Android编程相关推荐

  1. 如何自学 Android 编程-----整理stormzhang的知乎问答

    如何自学 Android 编程 14年的帖子没想到已经成为"自学Android"话题最火的帖子了,转眼间我都已经自学Android差不多4年多的时间了,评论里说文中很多博客链接打不 ...

  2. 从零开始学android编程_android初学者的入门秘籍

    大概是去年年底开始接触android 原本是学习嵌入式的我,领导让我看看能不能搞一下这个android APP. 一开始的我懵逼得很... 这android APP 不是得用java写吗??? 现在我 ...

  3. Android 系统(207)---如何自学 Android?

    如何自学 Android? 原文:gityuan.com 看到很多人提问非科班该如何学习编程,其实科班也基本靠自学.有句话叫"师傅领进门修行靠个人",再厉害的老师能教你的东西都是很 ...

  4. java学到什么程度安卓_自学Android到什么程度才能找到工作?

    读完本文大概需要4分钟. 微信公众号最近新出了一个功能,我觉得很赞,就是可以非常方便的看到每个人的留言次数.赞赏次数等,截个图给你们看下: 看到这个赞赏数的时候我惊呆了,这位同学竟然持续赞赏了我这么多 ...

  5. 自学Android,学多久可以加入字节跳动?

    在回答自学Android,学多久可以加入字节跳动之前,我们先需要了解加入字节跳动的岗位职能要求,下图是我们从boss直聘上选取的今日头条Android工程师职位描述. 职位要求 假如我变成了一只小白. ...

  6. 如何自学Android(强烈推荐)

    转自: http://gityuan.com/2016/04/24/how-to-study-android/ 看到很多人提问非科班该如何学习编程,其实科班也基本靠自学.有句话叫"师傅领进门 ...

  7. 转自:如何自学Android(强烈推荐)

    转自: http://gityuan.com/2016/04/24/how-to-study-android/ 看到很多人提问非科班该如何学习编程,其实科班也基本靠自学.有句话叫"师傅领进门 ...

  8. 31岁大叔自学android的一点感悟

    先交待本人背景.985,211小硕一头,本硕专业与计算机没有关系,计算机知识主要是本科和硕士阶段自学的,具体有熟悉c,掌握java,了解计算机组成原理,计算机网络,操作系统等.自学android目的是 ...

  9. 我靠着这套学习视频+文档,自学Android从外卖小哥走到了头条

    5.受到一些心灵鸡汤的鼓励,比如什么种一颗树最好的时机是十年前,其次,就是现在! 辞职之后 我辞去工作,开始在家自学Android开发.主要的学习方式就是在网上看视频教程.那些视频教程,初级的基本上免 ...

  10. android读取工程目录下的文件,Android编程实现读取工程中的txt文件功能

    本文实例讲述了Android编程实现读取工程中的txt文件功能.分享给大家供大家参考,具体如下: 1. 众所周知,Android的res文件夹是用来存储资源的,可以在res文件夹下建立一个raw文件夹 ...

最新文章

  1. 349.两个数组的交集
  2. c++疯狂代码之读和写。。。(用读操作来触发写)
  3. 通达信波段王指标公式主图_通达信指标公式源码超赢天下主图源码
  4. 前端构建工具之争——Webpack vs Gulp 谁会被拍死在沙滩上
  5. 注意我写的OTA短信同步设置的代码有很多问题
  6. 若依前后端分离版源码分析-前端头像上传后传递到后台以及在服务器上存储和数据库存储设计
  7. dbms_random.seed
  8. linux端口扫描脚本ip段,shell脚本结合iptables防端口扫描的实现
  9. 「mac操作指南」WidsMob HEIC将HEIC/HEIF 转换为 JPEG/PNG/TIFF格式
  10. rest风格使用两个变量_SpringBoot2.x系列教程|构建RESTful风格的API接口
  11. python能和wincc一起用_wincc7.3是否可以和博途V14同时装在一个系统上?-工业支持中心-西门子中国...
  12. 计算机图学图形裁剪,计算机图形学——裁剪
  13. 解决Putty或CRT软件连接虚拟机上面的linux连接不上的问题:如连接超时或拒绝连接
  14. 2.4G天线在PCB板上的设计资料
  15. 计算机病毒存于什么,计算机病毒防治体系存在的问题有什么
  16. Js学习之拖拉事件(drag)
  17. 一元三次方程求根公式及韦达定理
  18. 微信小游戏接入遇到的坑
  19. 计算机组成内存外存,内存和外存
  20. Proxifier与burp小程序抓包

热门文章

  1. 使用python·代码花一朵玫瑰花
  2. php升级版本后关于Mbstring、OpenSSL等一些扩展都无法开启的状况
  3. 【2017】二月份英语学习总结
  4. python爬取今日头条_Python 小爬虫 - 爬取今日头条街拍美女图
  5. 小学计算机课程有些什么,小学六年级信息技术学什么
  6. hive表 合并字段_hive数仓中两个维度表如果想合并纬度产生新自增ID方法
  7. pandas处理问卷多选题【循环遍历】python
  8. 江苏计算机应用基础自考时间,江苏省2019年4月自考科目考试时间表已出,请看!...
  9. 小白的Python 学习笔记(一)List 常用方法汇总
  10. SQL内置函数学习(数值函数)