如何系统由高效的自学Android,字节大牛如实说道,记住这几个点超越90%的Android开发者(1)

  • 《疯狂Android讲义》:作者李刚,这是我看过的第一个Android书籍,目前有第三版了,我当时看的是第二版基于Android 4.2,书中有大量的实例,记得当时每看完一个实例就跟着敲了一遍,大概花了一周时间把这本书看完并把大部分的实例代码都亲手敲了一遍。这里需要说明这本书对于理解Android系统帮忙并不太大,只是当初次接触Android时恰巧看到这本书,并非其他书不好,对于应用入门级的书其实大同小异。

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

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

有朋友好奇私信我是否即将要出书了,目前没有相关计划,自觉能力尚不及很多前辈,还需加深内功修为,将更多的知识写成文章来分享大家。

2.2 一手资料

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

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

2.3 开源资源

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

此处本文提及的网址与博客,当然还有很多优秀的博客和网站值得推荐,这里就不一一介绍。

三、Android高级篇

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

如果想成为Android系统工程师,那么阅读Android系统源码便是必修课。

如果想成为高级App开发工程师,那么阅读Android系统源码算是选修课,阅读一些优秀的开源框架库算是必修课。

如果你是刚刚入门,建议先打好基础,千万不要一上看源码,一来看得费劲,二来你可能在代码间来回跳转,可能会迷失在某一个环节,更甚是理解错误,记住一定要循序渐进。

3.1 阅读源码的重要性

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

3.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. Android Studio:这是Google官方支持的App开发环境,另外,能方便地阅读framework Java层面的系统源码。

  8. Atom: 是Github推出的开源文本编辑器,支持linux、window等多平台,可能不是最好用的,但我已习惯Atom.

  9. Google Drawings:这是画图工具,Gityuan博客中的文章都是采用Google Drawing完成,比如Binder开篇文中的图。

  10. StarUML:这是类图,Gityuan博客文章的类图和流程图都是采用StarUML完成,比如理解Android进程创建流程文中时序图。

3.3 阅读源码的姿态

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

阅读Android源码:

如下以Android系统启动为主线,展开一系列的文章Android开篇中的流程图,在公司内部分享时我曾多次以下图为流程,来阐述Android架构,如下图:

点击查看大图

process_status

Android系统源码

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

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

3.4 优秀资源

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

Android 系统源码分析:邓凡平和罗升阳都是我的好朋友,对于Android方面的理解有着很多共通之处,下面推荐给大家。

  • Innost的专栏

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

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

  • 老罗的Android之旅

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

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

  • Gityuan源码分析

  • 前面两位的博客基于Android 2.x或4.x,目前Android已发展到Android 6.0。不管Android如何变化,核心思维变化并不大,两位前辈的博客还是值得学习和参考的地方。但是Android经过几个大版本迭代,无论是从代码结构还是整体逻辑仍有很多变化。故博主(Gityuan)撰写了Android 6.0源码系列的博文。

3.5 进阶书籍

  • Linux内核设计与实现

  • 深入理解Linux内核

  • 深入Linux内核架构

  • Linux设备驱动程序

  • 重构 改善既有代码的设计

  • 编程珠玑 (卷1, 卷2)

  • 设计模式

  • 设计模式之禅

  • 人月神话

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

**需要再次强调一下,**此处高级篇更主要的是针对系统工程师,对于android开发高级工程师的修炼之路,只需要掌握其中一部分即可,更核心的重点还是在app层面的知识。

四、复习知识

工作这么久要重新再去面试肯定是要将自己的知识储备重新拿出来,要把各个知识点复习到位,需要通过各个方式,选择自己最习惯的。无论是读电子书籍还是观看视频都是可以的,但要记得做好自己的学习笔记,能够起到总结的作用,再去复习起来就特别清晰了。

每个知识点都有左侧导航书签页,看的时候十分方便,需要的记得帮忙点赞评论支持一下,评论区,评论【666】即可来获取下面的大厂Android面试解析+技术知识点笔记”锦集了

4.1 Android快速面试指南

4.2 Android从入门到架构成长笔记

就拿我们移动开发人员来说,从初级程序员进阶到高级程序员,从初级架构师到资深架构师,应该如何构建自己的知识体系,成为移动架构师需要掌握哪些技能?

13年java转Android开发,在小厂待过,也去过华为,百度等,去年四月份辞职现在进了字节跳动。等大厂待过也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

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

主要包括腾讯,以及字节跳动,华为,小米,等一线互联网公司主流架构技术。如果你有需要,拿走记得刷不要收藏夹里吃灰。

点击我的:【GitHub】免费领取Android高级教程和面试题PDF;需要的点击查看自行下载保存!

4.3 Android从入门到精通逆向学习视频

推荐一个B站up主,里面有Android系列学习视频,专题分类!

实战MVVM和Jetpack的完美结合让页面开发不再烦恼

1.什么是插件化

2.插件化能解决的问题及与组件化的区别

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、混合式开发(ReactNative+Weex)全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!**

往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、混合式开发(ReactNative+Weex)全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

[外链图片转存中…(img-Ti33Xsrc-1712394319759)]

[外链图片转存中…(img-zc9ThN3W-1712394319759)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值