跟Android初学者分享几点经验:该如何自学Android开发?(Android自学资料大全)

有了一定的Java基础(不需要精通Java),就可以开始入门Android。建议初学Android者,一定要先搭建自己的开发环境,先准备jdkAndroid Studio环境。再看书的过程,一边看知识点一边写示例程序,一来加深印象,二来提高动手能力。

• 《疯狂Android讲义》:作者李刚,这是我看过的第一个Android书籍,目前有第三版了,我当时看的是第二版基于Android 4.2,书中有大量的实例,记得当时每看完一个实例就跟着敲了一遍,大概花了一周时间把这本书看完并把大部分的实例代码都亲手敲了一遍。

• 《第一行代码》:作者郭霖,网上有不少人都推荐这本书作为Android入门书,但我当时没有看过。这是图灵系列图书,前段时间图灵的编辑看到我的博客,于是联系到我问是否有兴趣出书,便提到郭霖的《第一行代码》也是他们出版社推出的,然后就给我邮寄了一本。我大概扫了一扫这本书,内容的确比较基础,作者文笔不错,书中还穿插了不少打怪涨经验升级的片段,比较风趣,初学者可以看看。

Android的基本书籍,只需一两本即可,没有必要看太多基础书籍,不同能力就该有不同的追求,这里就不再介绍其他基础书籍。 另外,Android开发过程中总是需要各种开发环境、工具的下载,再这里推荐一个不错的网站 AndroidDevTools.cn,收集整理了 Android开发、设计等相关的各种工具大集合,非常全面,而且速度也不错哦,最重要的不用翻墙就可下载到最新的工具。

1.3 Android一手资料

何为Android一手资料?那就是Google官方给出的资料,这里往往是英文版的,营养价值极高。其实你只要英文还凑合+翻墙工具,强烈建议你直接看Android官网的资料,千万别被英语所吓倒,因为很多专业名称,大家一看就明白比如Activity/Service等这些代码名称本身就是英语,剩下地都就非常基础语法,不懂可以随时翻译,我一般都是用Chrome浏览器+Google翻译插件,哪里不会点哪里,妈妈再也不用担心我的英语了。

言归正传,如果你能看完并理解下列的内容,那么你完全可以没有必要再看前面介绍的书籍,并且对于Android已有相当熟悉了。

• developer.android.com:Android开发官网,下面列举常用的资料:

Android training:Android培训文档;

另外由胡凯发起了Android培训课程中文版;对官方文档进行翻译;

Android API指南:Android组件、Manifest配置文件,动画/图像等相关介绍;

Android Tools:性能、测试、Android Studio等各种工具说明文档;

source.android.com:介绍Android开源码相关的内容;

• Android Performance Patterns:2015年Google陆续在Youtube上发布的Android性能优化的视频,目前已更新第4季。

国内Google组织,优酷上发布了相应的 (中文)Android 性能模式 第四季

另外由胡凯发起了Android性能优化典范中文版文档;对官方视频进行翻译并整理;

• android-developers.blogspot.com:Android官方博客,有一些比较不错的feature,博客会第一时间呈现。

1.4 Android资源整理

到这里,那么你已经具备开发App的本领。平时需要自己动手多写写App,另外就是看看别人优秀的App是如何写的,下面列举一些开源库、工具以及App:

• android-arsenal.com:作者vbauer整理收集Github中各种开源库与工具,并提供搜索功能,是国外整理得最全面的库;
• Android 开源项目汇总:作者Trinea整理的各种开源库,是国内整理得最全面的库;
• codeKK 开源项目源码分析:从源码的角度,分析Android较流行的优秀开源框架;
• codota.com:这是一个代码搜索引擎,收集的是各种API的优秀示例Java代码。

当然还有很多优秀的博客和网站值得推荐… //TODO

二、进阶篇

作为程序员,不去阅读源码,仅仅看API文档,只是浮于表象,这是远远不够的。真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读Andoid系统源码,也包括阅读各种优秀的开源库。

2.1 阅读源码的重要性

借用Linux之父Linus Torvalds的一句名言:Read the fucking source code。不管是阅读Andoid系统源码还是优秀的开源框架,对能力那都会有一个巨大的提升;首先,能学习到优秀的代码风格和设计思想;能真正做到“知其然,还需知其所以然”;能指导自己更加灵活的使用API,能更加快速地找到系统bug的根源。

2.2 阅读源码的准备

1. Java基础:上层framework以及App层都是采用Java语法;
2. C/C++基础:Android的jni/native层代码采用C++,Linux 采用C;
3. Linux:Android内核基于Linux的,了解Linux相关知识对深入掌握Android还是很有必要。
4. Git:Android源码采用git和repo进行管理;
5. Make:Android源码采用Make系统编译,源码系统中会看到很多Android.mk之类的文件;
6. Source Insight:这绝对是看源码的神器;可以在Java、C++、C代码之间无缝衔接;
7. Eclipse:熟悉常用快捷键,工欲善其事必先利其器;虽然Source Insight很方便,但由于对Eclipse的熟悉感,对于framework Java层面的代码,我还是更习惯用Eclipse来看,对于Native代码以及linux代码则采用Source Insight来看;
8. Android Studio:这是Google官方支持的App开发环境,关于Android Studiod使用教程;
9. Google Drawings:这是画图工具。
10. StarUML:这是类图工具。

2.3 阅读源码的姿态

阅读源码绝不是从源码工程按顺序一个个的文件,从首行看到尾行。正确而高效地阅读源码的姿态应该是以某一个主线为起点,从上层往底层,不断地追溯,在各个模块、文件、方法之间来回跳转,反复地阅读,理清整个流程的逻辑。同时带着思考去看源码,尝试去揣测作者的用意,去理解代码的精妙之处,去思考代码可能存在的缺陷,去总结优秀的代码设计思想。下面说说我在阅读Android源码过程常涉及的库。

阅读Android源码:

下面是我以Android开机过程为主线,展开一系列的文章 Android开篇中的一副流程图,在公司内部分享时我曾多次以下图为流程整个Android架构,如下图:

Android系统源码

android.googlesource.com:Google官方源码,国内无法直接访问,需要翻墙,对于一个程序员来说具备翻墙的能力是非常有必要的。Android源码中包含的库非常之多,下面列举我在看Android源码过程中涉及较多,也是比较常看的一些库:

• android/platform/packages/apps:Android自带的app,比如Email,Camera, Music等,对于应用开发工程师主要关注的目录;
• android/platform/frameworks/base: Java framework,这是framework工程师看得最多的目录;
• android/platform/frameworks/native:Native framework;
• android/platform/art:Art虚拟机;
• android/kernel/common:Android内核,这是驱动工程师最关注的模块;
• android/platform/system/core:核心系统;
• android/platform/libcore:平台的lib库;

另外,对于无法翻墙的朋友来说,还可以通过上Github通过 Android主页 下载Android源码,这些都是定时从Google官方源码的镜像同步而来的。

2.4 优秀资源

牛顿曾说过:“如果我看得更远一点的话,是因为我站在巨人的肩膀上”,这句话很具有实用价值,看完前面的介绍,你千万不要一上来就一头扎进源码的世界,小心你会进入二次元世界,处于混沌状态,最后崩溃乃至放弃求知之路,一定要合理利用现有的优秀资源

Android 系统源码分析

• Innost的专栏

邓凡平前辈所写博客,条例有序,覆盖了Android系统大部分内容;

《深入理解Android》 (卷I,卷II,卷III)

• 老罗的Android之旅

罗升阳前辈所写博客,从各个层面介绍Android系统;

《Android系统源代码情景分析 》

对于邓凡平和罗升阳两位前辈的博客基于Android 2.x或4.x,目前Android已发展到Android 6.0。不管Android如何变化,其核心思维变化并没有很大,所以两位前辈的博客还是很有值得学习和参考的地方。

2.5 进阶书籍

• 深入理解Linux内核
• 深入Linux内核架构
• Linux内核设计与实现
• Linux设备驱动程序
• 重构 改善既有代码的设计
• 编程珠玑 (卷1, 卷2)
• 设计模式
• 设计模式之禅
• 人月神话

前4本书都是关于Linux,如果你不是需要从事Linux相关开发,只想提升对Android整体的理解,那么只需看一到两本,对Linux的进程、内存、IO以及驱动有所了解,对CPU调度、进程间通信有所熟悉就基本可以。另外,优秀的书还有很多,这里只介绍/列举我看过的书,目前还在看一些优秀的书,后续再更新。

三、有效的学习经验分享

一、看Android开发视频:我刚开始接触android的时候,主要是跟着网上Android开发视频入的门,自己跟着一点一点的敲代码,就这样算是简单的入门,现在在电驴上面有很多的视频资源,记得很多前辈说过类似的话:学技术,有Google和电驴足够了。(呵呵,可能自己是太懒了,看视频可能是最容易的了,但是也很费时间)。认识一个高手,说从来不看什么视频,用到什么时候找什么资料,个人感觉这样效率可能高些。

二、看Android开发书:在论坛上面经常看到,初学者到处问,学android有什么好书?我买的第一本Android书是杨丰盛老师的《android应用开发揭秘》,个人感觉不错,当然自己也看了不少android书籍的电子版,发现入门级书都差不多,都是简单介绍下概念,然后给你一个小例子,个人建议是:如果想买哪本书,先在网上找下这些书的评论,看看别人的评价,这样可能能使你少花些冤枉钱。

三、写代码:想学好一个技术,这一点必不可少,一定要自己动手写。。。

四、看代码:多看别人的代码,多学习下别人的设计思路,其实学习最好的教材就是android的源代码了,看看那些大牛们的设计思路和设计方法。在Android sdk文件夹下的samples文件夹里面有很多的常用控件的demo,看了你会发现,活动入门级书和视频里面的demo,都是从samples里面的demo做了个简单的修改。

五、提问:有那么多的好的论坛,还有那么多的开发群,但是遇到问题先不要着急提问,自己先想办法解决,去google上搜一下,或者对比下你的代码和你参照的代码,找下问题根源,然后自己尝试下修改,实在解决不了再去问别人,同时提醒一句,提问的时候请语气谦逊些,毕竟别人不欠你。

六、看Log:一定要学会看log,因为很多时候,log会把你的错误信息很详细的显现给你,同时,会把出现问题的代码提示给你,很方便解决问题。

**七、写blog:**可以把自己遇到的问题,解决方法等,用blog记录下来,写出来,可能更能加深你对技术的理解,同时,别人遇到同样问题的时候,也可以从你的blog上面寻求到帮助,不要太自私,it行业就是个开放的行业,分享才快乐。

**八、逛论坛,看博客:**多去技术性论坛逛逛,多看看Android大牛们的博客,会学到很多。

九、兴趣:兴趣是最好的老师,别太急功近利,沉下心,以前看过一名著名黑客一句话:学好一门技术,一台计算机,网络和塞满冰箱的披萨就够了。

这九条经验不一定对你都适用,但你可以试试自己感兴趣的,肯定会对你有所帮助。

四、其他

最后,再说说关于学习Android开发的番外篇:

• 好奇心比雄心走得更远:很多人对未来空有满腔的雄心壮志,往往不如对技术要有一份好奇心,一份探索欲,再加上一份执着的人。

• 要有open的心态:曾经的我也只是把自己的所思所得都放入自己的云笔记,很少整理,这其实不利于技术发展,有空应该多整理自己零散的知识点,觉得不错的点可以拿出来写成博客,那是对能力的又一层提升。另外,在低头做技术的同时,还应该有空抬头看世界,不能闭门造车。

  • 天道酬勤:学历只能代表过去,能力代表现在,潜力代表未来! 你不把自己逼一把,你压根不知道自己有多优秀,只要努力去学习,去挖掘潜力,进而提升自我技术修为,未来不再是梦!共勉之!

  • 解决问题的方式:遇到问题,一定要先尝试自己解决,解决不了再请教他人。这是对自己的一个锻炼,也是对他人的一个尊重,可以有多种途径自行搜索:

  • 百度一下,很多时候还是能有所帮助的,不要过分强调google,完全抛弃百度,毕竟中文看起来比较快;

  • 先中文关键词google一下;再英文关键词google一下;

  • stackoverflow.com、知乎等技术问答网站内直接搜索;

分享读者

作者2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。

被人面试过,也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!

我们整理了一份阿里P7级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深入学习提升。

主要包括腾讯,以及字节跳动,阿里,华为,小米,等一线互联网公司主流架构技术。

腾讯T3架构师学习专题资料

如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!

我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 27
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值