写点什么

Android 开发了解这些, 自然无惧面试,2021 最新 Android 面试笔试

用户头像
Android架构
关注
发布于: 刚刚

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学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


并把知识纳入到自己的知识树上,而不是让众多知识点彼此孤立、零散地分布在自己的脑海中。


涉及到学习目标不同、基础不同,每个人的学习路径会不太一样,这里我以一个现成的学习路径为例,来说说如何从零基础开始,完成比较“通用型”的 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架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android开发了解这些,自然无惧面试,2021最新Android面试笔试