先简单的分两种情况:

一、有编程基础,或者科班出身的,直接上吧。强烈推荐郭霖老师的《第一行代码-Android》
二、没编程基础的,先入门java,如果天天都有比较多的空闲时间的话,这个入门时间要在2周完成,如果没有的话,1个月内完成吧,不要让拖延耽搁你的激情

 

如果你准备好了进军Android:

不管你什么时候开始学习Android,请使用Android Studio,首现改主题,然后去网上搜一下常用的20个快捷键截图放在电脑桌面上

  • 所有书上的UI部分扫一遍就行了,我相信现在还没有书按material design标准讲解。

  • 从一开始起就严格按照material design写,Material Design- 我想你一开始学习的时候身边是没设计师的吧,但是按照标准,你不需要设计师:)

  • 不要自定义一堆padding margin,但你需要边框,边距的时候,请看看?android:attr/里面有木有你需求的(由于android studio强大的补全功能,你一般只需打几个关键词就有提示了),比如你需要给一个ImageButton加点击效果,不要傻不拉几的去写一个selector了,你只需要输入 item select这些关键词,自动补全就会给你提示了。

  • 不要定义一大堆乱七八糟的字体大小了,materail design上的几种基本字体大小可以满足你!

  • 不要使用ListView了,改成RecycleView吧!

  • 不要寻找第三方下拉刷新控件了,SwipeRefreshLayout肯定符合你的要求(不信你看,知乎Android客户端都是用的这个(●ˇ∀ˇ●))。

  • 不要使用第三方侧滑栏了,DrawerLayout能满足你!

  • 不要使用ViewPagerTabStripe这一类的第三方Tab控件了,请使用TabLayout!

  • 不用找圆形头像控件,圆角控件了,其他的Univeral Image Loader /Picasso也不用看了,直接上Fresco | Fresco 中文说明吧,它都有!不如用省下的时间看看Fresco的源码。

  • 少去国内论坛瞎晃,然后各种求指点,安心写两个月,你会发现自己水平比他们都强,有问题请去stackOverflow搜索

  • 国内博文除了几个大牛的都少看,都是假的!都是骗人的!很多写着是原创,但是博文内容他们自己都没试验过,鄙视这些不负责任的!

  • 少听一些人说的有问题要写博客记下来!把这个时间省下,学一下UML图怎么画,给自己的工程加一些规范的注释吧!你的这些规范的源码和规范的注释就是你以后的资料库和经验库!

  • 请学会使用Git,自己一个人也要用,我们先不说那些团队合作什么的高大上的,就说你这一版代码修残了,要从原来的重新修改,怎么办?用Git,回滚版本!就说你突然一天电脑出问题了,或者你范二了,没备份就重装系统了,想哭怎么办?用Git,再也不用担心代码突然丢啦!

  • 有朋友说要是动真格的话,需要NDK以及JVM等的知识,首现NDK并不是神秘的东西,你跟着官方的步骤走一遍就知道什么回事了,无非就是一些代码格式以及原生/JAVA内存交互,进阶一点的有原生/JAVA线程交互,线程交互确实有点蛋疼,但平常避免用就好了,再说对于初学者来说关心NDK干嘛,据鄙人以前的经历,只在音视频通信和一个嵌入式信号处理(离线)的两个项目中用过,嵌入式信号处理是JAVA->NDK->.SO->MATLAB这样调用的我原来MATLAB的代码,其他的大多就用在游戏上了吧,一般的互联网公司会有人给你公司的SO包的。

  • 至于JVM,该掌握的那部分,相信我,你会掌握的,不该你掌握的,有那些专门研究JVM的人来做,不如省省心有空看看计算机系统,编译原理。

初学者,一句话,多练。

 

 

再说说我的情况

第一个学过的语言是C,然后C学的很烂的情况下继续学习了C++,为什么没有先把C学好再学C++呢,因为课程设计 = =,我有自知之明,所以在上C++的前一个寒假就先开始看了,然后先看了一本《易学c++》,虽然那本书在现在浅显至极,但当时还是感觉有点略难,我通过这本书熟练地掌握了std::iostream!==然后基本的对象模型有了一点概念,我比较好高骛远,于是就在此时想直接通过最后一个大作业——命令行下的RPG游戏 彻底掌握C++这门最难的语言!

对,你没听错,我当时想的就是这个大作业要是搞懂了,C++还不是被我各种SM,但很不幸,虽然我一行行的把这个大作业的源码比着答案敲了一遍。

但还是不懂,于是就在网上找了一个据说是清华的java课件开始学习,你还别说,除了当时感觉java里面把function叫做method(方法)感觉怪怪的以外,真的在不到3天的时间完全弄懂了对象的概念以及对象的继承,然后差不多就开学了 = =(当年不懂事,整个寒假就看了这10多天的书),所以java大法好。

好,这是我人生入坑的开始,我说的寒假就是2014年寒假!,在接下来的学校的C++课程中我当然如鱼得水,然后一发不可收拾,很快我就自己把那本98清华版的《visual c++程序设计》弄烂了,确实那本书的只是我掌握的滚瓜烂熟,然后我就深入了解MFC,什么用GDI实现AlphaBlend,MFC的设计思想,MFC中数据库的使用什么的,然而现在回首看来这些并没有什么卵用。然后我就天天晚上回到宿舍打开电脑写代码,但显然我很快从社区(知乎 =, =)上得知 MFC 很烂,大家都说微软大法好!

于是入了C#的坑,然后发现生活好美好===天天真是喜欢C#的不得了,不过有一天我成了软黑,winform绘图闪成狗,loadlibrary看着好蛋疼,以及用user32.dll时,蛋疼的语法,蛋疼的函数名字,API参数,然后我得知,原来罪魁祸首不是c#,是winAPI就长这样!

然后就在知乎大声地教唆下,入了Qt教,入门是看的一个外国人录得视频,英文无字幕,但是他的声音好好听,于是就学了Qt,第一次发现各种Layout的自适应布局,通过掌握QGraphicsView熟悉了MVC模型,后来还用QGraphicsView到了真实的项目,发现===好多坑==,坐标系统是坑,事件系统是坑,总之,欲仙欲死,不过说实话,我至今还是认为Qt的设计挺好的,QML想学,但流产了,原因大概是没时间吧。

然后解除了另外两端惨绝人寰的事情,第一个是第一次做音视频的实时网络传输的时候,资料很少,一开始甚至连Ffmpeg都不知道,后来知道了,就入了Ffmpeg的坑,好多莫名奇妙的错误,都需要右键去看源码,然后音视频的编解码以及Rtp/Rtsp协议弄的差不多,demo也出来的时候,为了广域网,又要入P2P Nat穿透的坑,但是很遗憾,没有完全成功。

还有一些其他乱七八槽的事情 = = 今天先说重点。

在今年4月份左右,我第一次下定决心要搞定Android,而且我真的做到了!虽然以前断断续续看过android,但都没屁用,这次是真的白天看书,晚上写代码。

郭霖老师的《第一行代码——android》只看了5章,但在这五章的学习过程中,我真的入了Android的门了,然后那本书我再也没有打开过,当然,Android只会画界面是远远不够的,现在的support.design.widget组件集让Android界面开发变得很轻松了,重要的是和服务器的交互,以及嵌入式本地数字信号处理。

最后

最后再分享一下我入行以来一直引以为傲的一份手写笔记,收集整理小半年,终于在今年三月份面世,我第一步就是上传到 GitHub 
上了,现在网络上的资料繁杂,碎片化严不严重你们自己心里应该多少有点清楚,看过了之后留住多少自己是骗不了自己的,其实学习是一个体系化的过程,一步一步慢慢学习的,而不是需要那一个就跳到哪一个去学习,这样虽然高效,但并不持久。

所以,一个全面,体系化的学习路线也就显得尤为重要了,

这一份全面的Android学习路线图绝对能让你的Android技术提升找到一个合适的方向,同时搭配体系图的学习笔记也能让你轻松许多。

学习笔记可以点击:Github

同时我也聚集了一大帮Android开发的朋友,一同组建了一个群,平时也会分享自己的一些学习心得和笔记供大家参考,吹水,开车更是不在话下,感兴趣的小伙伴可以点击:Android开发交流

更多相关文章

  1. daliu_IT学习Android笔记第一篇--Android是什么?安卓的logo来源?安
  2. android博客导航总结,以及个人常用android免费学习干货(文章,视频,矢
  3. Android连接mysql demo_Android实现登陆功能,Android与服务器数据
  4. Flutter插件开发之Android高德地图
  5. 最全面的Android资料大全
  6. Android周学习Step By Step(5)--常用widget组件
  7. Android学习及如何利用android来赚钱
  8. 浅谈android中的反编译
  9. Android学习笔记之自定义UI组件

随机推荐

  1. Android使用Intent Filter来响应隐式Inte
  2. Android(安卓)判断网络状态
  3. 【Based Android】让你的android应用使用
  4. 【译】Android(安卓)Bluetooth
  5. 基于Eclipse的Android(安卓)JNI层测试应
  6. Android的垃圾回收机制(android refbase
  7. Android设置启动界面
  8. Android(安卓)arm linux kernel启动流程
  9. 【Android(安卓)P】 JobScheduler服务源码
  10. Android(安卓)4.0 Space和Gridlayout