工欲善其事,必先利其器
虽然Android开发的门槛比较低,但是有件得心应手的兵器还是很有必要的。
开发设备 : Mac (作为开发者,我认为入手一台mac还是很有必要的,推荐还是mac pro,这种设备真的是早用早享受,如果你是学生党那么这真的是你对自己非常好的投资,如果你不是,那么我相信你是买得起的,购买渠道就不详细说了,港货确实能省一笔钱,官网分期无利息也是挺好的。如果你确定不购买的话,那么Linux开发也是比在Win下开发好一些的)
调试设备 : 真机 (推荐使用真机调试,速度更快)
模拟器 :genymotion (有时候还是要用到模拟器的,那么我推荐你使用geymotion,这货速度绝对比自带快很多,虽然自带模拟器也可以使用x86核心,不过速度依旧不如genymotion)
IDE :Android Studio (这里我想到一句别人说过的话,如果你是Android开发老老手,那么我推荐你使用Android Studio,如果你是新手,那么我更要推荐你使用Android Studio。其实我发现很多人在学习过程中继续使用eclipse的原因是,他看的的书或者视频教程使用的是eclipse,他们和我说新手就该用eclipse,除了一些做NDK开发的,我说的是专业人士,其他人请你们换成AS吧,去学习一下使用AS,也会有不少提升,至少比你照着视频敲看不懂的代码好)
梯子 : 云梯(在我大天朝做开发有一架梯子还是很必要的,你可以去找一些免费的,不过速度确实渣。云梯是我用过的梯子里非常不错的,也有很多人推荐,你可以点我的推荐链接可以省一点钱!推荐链接
学习路线入门级
语言基础Java (使用Java语言。现在开发Android的方式有很多,如Hybrid开发,但如果你是新手,我推荐你使用原生开发,使用Java语言,因为任何跨平台开发最后你的web和Native都要精通,不然你总有解决不了的的问题)
Android官网 http://developer.android.com/ (需梯子)
(Android官网更新其实很快的,你应该经常上去看看,需要梯子,如果你英文不错把Training部分练习一遍,就基本可以写一些小东西了)学习ApiDemo ApiDemo 是很重要的,很多的功能其实Google官方以及帮我们做好了例子,只要学习一下就好了
学习视频 其实我是很喜欢对着视频学习的,再用播放器调整为2-3倍速度播放,其实视频学习有利有弊吧,利就是你在学习一个知识点的时候,也附带学习了讲课者的思维方式,以及其他一些小知识点你也可能注意到(比如一些好用的插件,软件等)弊可能就是视频良莠不齐,开发方面的视频我并不认为存在什么经典,随着时间的流逝和技术的发展反而不再适用,盲目学习事倍功半。
这里插入一个小广告吧,下载视频的话,可以关注我的微信公众平台晓晨学习组(微信号:xiaochenAndroid),在里面你能找到学习视频下载,都是我认为不错的学习资源。然后我想说的是视频教程,重要的是理解思想,写代码要关了视频敲一遍,照着写实现了也没有什么提高。
遇到问题能Google少百度,可以到eoe找找,stackoverflow,而且要多查查看看,注意文章日期,因为有些问题其实已经有了更好的解决方法,我举个例子,比如要在Android上实现下拉刷新,百度得到的内容基本都是使用pull-to-refresh这个第三方库,但是在Android官方提供的Support包里其实已经带了实现下拉刷新的快捷方法,而且效果更好。
进阶篇
如果你完成了入门教程,那么你应该进阶了
学习使用Git
使用Git对于一个开发者来说是非常重要的。你并不需要成为一个Git专家,只要能正常使用基本就够了。我就推荐两个学习Git的教程吧!关注一些开源项目,并使用他们
Android开源库真的太多了,如果你不是特别闲的话,就去关注些大公司,或者知名开发者的,这里我推荐一些资源Android开源项目分类汇总 这是Trinea发起的开源项目整理,我很喜欢他说的,我们不重复造轮子,不代表我们要不知道轮子的原理。
List of Android UI/UX Libraries 整理了各种Android UI库
代码家的博客代码家的很多UI 动画库做的非常不错,在他的博客里也很容易找到他的Github,就不贴了。
codeKK源码分析 你可以看到些知名的库的分析
下面是CSDN部分,这部分有些我没有读过,只是看到Mark下
我之前有订阅AndroidWeekly邮件,不过是全英文的,可能是英文水平没有那么高看英文看久了就会累,后来在知乎上找到了翻译版专栏。推荐几个我的收藏。
在开发中你总会碰到好久才能解决的问题,为了避免后来的人掉坑,搭建你的博客来和大家分享吧!
这点你可以参考30分钟内拥有一个漂亮的博客教程AndroidDevTools 整理了不少Android开发需要用到的插件,自己看!
AndroidCN 一个朋友做的Android社区
推酷 排版很不错,内容丰富
23code 一个不错的源码分享网站,还有App,可以看效果
修炼源码 源码网站
谷歌开发者中文频道 有不少谷歌的开发者视频,不用梯子就行
我的收藏夹 最后放一部分我的收藏夹内容
搭建你自己的博客分享
知乎专栏
Android_Tutor的专栏 他写的“Android开发高手进阶教程”系列文章感觉不错
郭霖的专栏《第一行代码》作者
任玉刚 百度的工程师
老罗的Android之旅 罗升阳大神,博文质量非常高,《Android系统源代码情景分析》作者
晓_晨DEV的博客 不错的博客,推荐关注
stormzhang博客精华 最近写了Android Studio的系列教程,推荐看看
胡凯的博客之前翻译的Android性能优化的文章转载率很高
Android官方培训课程中文版(v0.9.1) 胡凯的github项目
ChenQichao’s Blog 感觉他好像对material design情有独钟
Android Performance主要是些译文,与性能优化有关
使用第三方服务
除了开源库,你还可以使用很多第三方服务来加快你的开发(如百度地图,ShareSDk等等)
这里我要推荐一个网站 DevStore整理了大多数第三方开发者服务,不用你一个一个去找了。微博
利用好微博这个工具,你可以关注一些开发者,微博上有很多乐于分享的人。你可以更快的的知道很新的开发的资讯。
android拥有本地sqlite进行本地存储数据,但是这个远远不够的。我们很多的是直接从网上得到数据,然后初学者或者是个人开发者没有属于自己的服务器,那么我们可以通过bmob云数据库实现,个人版是免费的。bmob的其他组件比如支付组件等还是不错的。
我关注的人 @代码家@googdev @开发者头条 @陈启超_V
还有很多不一一贴了,请自行搜索
博客
关注知名开发者的博客也是非常好提高技术的办法,具体到关注谁的问题,我建议你到知乎上提问,有很多大神整理好的,包括国内国外的,我这里就链接几个我收藏的,因为有些大神的技术深度我目前还消化不了。
高手篇
究竟什么是写代码的高手,可能每个人都有自己见解,在这里我其实不知道该写什么东西,我觉得每一个开发者最终的产物都是你的项目,所以你要做的并不是去炫技,而是写出更健壮、更易用的代码。那么我臆测该学的可能有如下:
设计模式 (设计模式更像是一种经验的东西,知道和用是不一样的,根据代码能看出这是什么设计模式似乎很容易,但是高手总是能巧妙的运用他们,你看完后发现,好有道理哦!就是写不出来5555 。。。)
学习架构师方面的知识 (开发小项目看不出来,开发大一点的前期的设计真的很重要啊)
学习内核相关内容 (有去看过讲内核的沙龙,我就是打酱油的,需要汇编和c,大神讲的理所当然,我是一头雾水,不过深入还是有很多好玩的东西的)
写写算法 leetcode 全A了,有些题其实还有更优解法的,但是我不推荐你做ACM的(大神请无视)基本上都是些数学内容。
学习设计 不会做设计的程序员不是好的产品经理,我最近在学习使用sketch,其实很好玩的。
学习各种新技术,做做小玩意(比如木匠活的什么的,我觉得挺好玩的),你除了是一个做技术的还要提高情商,不然你怎么追妹子啊!
锻炼身体 这个真的特别重要!!!