安卓开发面试问题,你的技术真的到天花板了吗?架构师必备技能

起因

事情是这样的。

4年前毕业那会,呆在公司的短视频项目,做 视频。那会做得比抖音还早,但是由于短视频太烧钱了,项目被公司关掉了。当时需要开发横竖屏直播/异步视频的场景,就研究下了市场上的 app,发现输入弹幕的交互并不友好。最直接的体验就是,微信比绝大部分IM软件在聊天场景下输入法与表情面板频繁切换时表现得更为平滑,不会给用户很突兀的闪烁感。但我们除了适配竖屏,们还需要兼容横屏/满屏/沉浸等场景。

摸索了一段时间之后,做出来的效果挺不错,比市面上的直播/异步视频播放场景下的输入交互体验都要好。于是写了个记录的 Blog Android -SystemUI的那点事 。主要是将如何设计横竖屏直/点播场景下良好的输入交互。但是文章并没有写完… 留了横屏模式下使用 PopupWindow 来实现的悬念… 本打算继续接着写第二篇。结果一拖,就是三年。

而在这三年里,前后参与开发了十多个项目(我们是流水线生产,老工具人),而涉及到输入交互的模块已经有IM聊天,直播间,异步视频播放页面,信息流评论等等。这些页面从最初使用 Activity 实现到演化成可用 Fragment,Dialog,PopupWindow 代替。所以原来那套技术实现已经不能满足。在寻找外部开源项目/技术博文无果的前提下,慢慢积累了一个库

在开始复习知识点前,要确认以下 2 点:

定位

“定位” 是指你要确定自己所处的阶段和想要达到的水平。主要包括:

  • 目前是什么水平

  • 有什么项目积累

  • 工作项目里有什么难点

  • 想找什么级别的工作

  • 薪资

比如我,给自己的定位就是:现在是中级水平,常见应用开发需求基本都能解决,开源框架使用没问题,部分读了源码,工作项目里主要是混合开发比较复杂,想找有利于自己成长的、大公司中高级安卓开发工作。

亮点

有的朋友可能对 “亮点” 的定义不是很明白。“亮点” 其实就是能够把你和众多应聘者区分出来的优秀品质。
程序员面试主要考察这几点:

  • 技能水平

  • 学习能力

  • 团队合作

  • 工作心态等

如果你在其中任何一个方面都有自己的优势,就赶紧找出来,写到简历上,面试表达出来。

拿技能水平来说,根据做过项目的类型,确定自己当前擅长的点,比如你做的是电商应用,那可能就擅长混合开发、自定义 View;做的是大用户量应用,那可能就擅长监控、性能优化等等。

找到自己已有的或者该有的亮点,然后去努力掌握、精通。

知识点整理

一、架构师必备Java基础

1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO

二、设计思想解读开源框架

1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计

三、360°全方位性能调优

1、设计思想与代码质量优化
2、程序性能优化
启动速度与执行效率优化
布局检测与优化
内存优化
耗电优化
网络传输与数据储存优化
APK大小优化
3、开发效率优化
分布式版本控制系统Git
自动化构建系统Gradle

四、Android框架体系架构

1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析

五、NDK模块开发(音视频系列)

1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习

六、Flutter学习进阶

1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门

七、微信小程序开发

1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战

掌握了知识点后,接下来就要针对各公司侧重内容重点复习了。

最后

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

最后文末放上一个福利:腾讯文档地址

PS:我的文档中有大量高阶Android学习视频资料和面试资料包~

616938113890)]

最后文末放上一个福利:腾讯文档地址

PS:我的文档中有大量高阶Android学习视频资料和面试资料包~

欢迎大家一起交流讨论啊~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值