UI 的知识大体也可以分成三部份——基础控件、自定义控件、动画。其中每个部分几乎都需要花费巨量的时间去学习,如果你写出非常漂亮的控件或者动画框架并开源出来,相信找份好工作是不在话下的。
第二点—架构方面,随着工作的需要及阅历(看代码)的增长,你可能会越来越不满意你自己写的代码模块了。这个时候,你可能就会涉及到架构方面的知识了。架构方面的知识主要包括设计思想,及选择合适架构的能力,这两者通常来讲是相辅相成的。每一种新的架构或设计思想问世往往是用来解决实际问题的,他们解决问题的侧重点各不相同,因此在什么时候采用什么架构或设计就非常考验程序员的阅历了。通常这部分的知识学起来最为困难,因为他仅仅是一种思想,如果你的代码量不多,或是接触的项目都比较小的话,你往往会觉得这部分的知识没什么用,最后自然而言又会忘记了。
第三点—性能方面,同样随着工程的体量越来越大,开发功能越来愈多,你会发现原来非常流畅的 App 可能会出现卡顿、OOM、ANR 等现象。你百思不得其解,每次 Google 后,你可能会发现——原来实现功能的方式存在着许多性能问题。因此,在这个过程中了你得学会使用各种工具去分析代码的效率等。这部分的知识相对比较零散,也很难总结,更多的是一种经验的积累过程,因此工作多年以上的程序员都很吃香。
第四点—NDK 方面,这一部分知识比较特殊,很多 Android 工程师在初中级阶段可能都不会涉及到。只有你在某些领域亦或是特殊的场景的时候才有可能使用 NDK 进行开发,比如说像流媒体、图像处理等场景你才会去进行 NDK 开发,它通常需要你有良好的 C/C++基础,因此这算是一个比较大的知识体系了。
技术分析
总体上,目前市面上可以将互联网公司分为两类:
A. 没有实体产品的,以软件产品为主的互联网公司
B. 有实体产品的,将硬件和软件结合起来的互联网公司
A 类公司往往偏向于 UI 及架构,性能稍次,并且大多数中小型企业会要求应聘者能熟练掌握市面上流行的开源库以节约开发成本。这类公司开发的 App 往往是纯虚拟的产品——社交通讯、各类工具、资源聚合等。这些产品因为竞争激烈,功能需求变化也快,所以版本迭代的速度会非常快。这个时候,一个好的架构就可以节省许多时间,它能快速的响应需求,并迅速添加新的功能模块。UI 也是重点,在两个 App 功能差不多的情况下,拼的就是用户体验了,其中用户最能感受到的就是两点,首先是界面是否美观,动画是否自然;其次才是 App 是否流畅。
他们一般对人才的需求是这样的:
B 类公司因为有实体产品,因此往往会要求应聘者具有某些特殊的技能,例如 BLE、WIFI 等。这类公司往往偏向于性能及 NDK,UI 稍次。在目前的大环境下,这类公司多数都在物联网产业链上,以智能硬件、智能家居、机器人居多,而这类公司的话,大部分其实都是传统企业转型而来,因此其开发的产品比较注重功能的完善及响应速度,UI 的话反而会稍微丑陋一些。毕竟消费者买的是实体产品,配套的 App 就算再丑也得用不是么。
他们对人才的需求往往是这样的:
明确自己想去什么样的公司,或者对哪一类的业务更感兴趣,会有助于你更有的放矢地学习技能。
如何搭建自己的知识体系?
对于初学者来说,因为目前网络上充斥着许多免费的资源,无论是入门的还是进阶的都应有尽有,找到学习资料不难,难的是如何有选择地进行学习,并把知识纳入到自己的知识树上,而不是让众多知识点彼此孤立、零散地分布在自己的脑海中。
涉及到学习目标不同、基础不同,每个人的学习路径会不太一样,这里我以一个现成的学习路径为例,来说说如何从零基础开始,完成比较“通用型”的 Android 入门。
话不多说,先上知识体系示例:
这个图谱总结自业界口碑较好的 Udacity 和 Google 推出的 Android 开发入门认证项目,主要针对没有任何 Android 开发经验的同学。课程内容包括丰富的移动 UI、移动应用性能相关的知识点,并通过每周的线上直播,教授前沿的技术架构、第三方开源库的知识。课程全程依托实战项目,引导学员将所学知识运用到各类应用场景中,帮助学员构建、巩固自己的知识体系。
用 3 个月的时间,认真学习完大概可以达到下面的技能状态:
Udacity 和 Google 也为有基础的 Android 开发者提供进阶课程,学完后的状态大概是:
你会发现,Google 官方推出的 Android 开发的进阶课程中,主要提升的还是 UI 方面的知识——材料设计(Material Design)和动画框架。
需要说明,这两门课程都没有涉及到 NDK 开发,是因为刚刚步入职场的 Android 工程师并不特别需要掌握 NDK 开发技能,你完全可以在找到相关工作后再继续深入自学。
而在技术领域内,没有任何一门课程可以让你学完后一劳永逸,再好的课程也只能是“师傅领进门,修行靠个人”。“学无止境”这句话,在任何技术领域,都不只是良好的习惯,更是程序员和工程师们不被时代淘汰、获得更好机会和发展的必要前提。
如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的技术圈一起学习交流吧!
点击我,加入我们吧!群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。
35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。
本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
现在都说互联网寒冬,其实只要自身技术能力够强,咱们就不怕!我这边专门针对Android开发工程师整理了一套【Android进阶学习视频】、【全套Android面试秘籍】、【Android知识点PDF】。如有需要获取资料文档的朋友,可以点击我的GitHub免费获取!
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://i-blog.csdnimg.cn/blog_migrate/8b4bac77ae1dfed6d881ae2fc677d2c6.jpeg)
分享读者
作者2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。
被人面试过,也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!
我们整理了一份阿里P7级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深入学习提升。
主要包括腾讯,以及字节跳动,阿里,华为,小米,等一线互联网公司主流架构技术。
如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!
我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。
35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
划。35岁后的你只会比周围的人更值钱。