这家不大不小的公司已经做了有三四年了。在技术层面上,至少在公司里已经是数一数二了。本以为空出来的项目经理理应是我上,我的组员也都觉得肯定是我了。
公告出来的时候,我直接懵13了,另一个组长上了经理的位置。他技术层面大不如我,而且在我看来是个玩弄人际吃饭的“老油条”。公司上上下下的人似乎都对他印象挺好,而我对他一直是有点“不屑”的。可能是每个程序员都有的一个天真的“误区”:程序员是个纯技术职业。技术至上,比我菜的都是“辣鸡”。
我天真的像个傻13一样,去找老板理论。凭什么啊?给他上?老子来的比他早,经验比他久,技术甩他几条街。当时老板办公室有客户在谈合作,我说完就走了。
后来我还比较奇怪,老板也没有找过我,好像什么都没有发生过一样。我还是个小小的组长,干活,加班,上版本。
直到疫情爆发,公司宣布要优化。在优化名单里,不出意外的看到了我的名字。
在这个疫情肆虐的寒冬里,我收到了这个宛如一根冰针的消息,扎进了我心里。全身冰凉。
老婆肚子里是快要分娩的孩子,想赶上春暖花开的季节让他来到这个世界。作为家里唯一的经济来源,每天睁眼想的便是房贷车贷、茶米油盐。我几近崩溃。
复苏
让我宽慰的是,父母、包括我的岳父母和我的妻子,都给了我最大程度的鼓励和支持。让我找回重新开始的信心。疫情封城、隔离的期间,我在家复习、准备面试找工作。岳父岳母来到了家里照顾我妻子(妻子家里是杭州本地的,我的父母回了乡下过年)
面试经历
复习了两个月左右。四月中旬开始边投简历边进行复习扫尾、巩固,大大小小的公司投出了大概三四十份简历。收到面试大概20场。下面我挑了几个较好的和一些大厂的真题面经分享一下。
小建议:
面试某家公司前,最好是要先了解你所面试的工作岗位,公司的业务,主要是做哪个方面的,这样可以更加具有针对性的复习和准备。
华润集团下某借贷子公司(借贷公司,肯定对APP安全方面比较着重)
- Activity 的启动过程
- Broadcast 注册方式与区别
- 磁盘缓存怎么实现
- 进程间通信原理、Binder 机制原理
- APK加固、dex文件加密实现、原理
- 说一下类加载的过程、机制,为什么要这样设计?
- 谈谈你对安卓签名的理解。
- 对于提高app的安全性,你有哪些建议或方法?
腾讯新闻(大概就是UI、页面流畅度、适配这些方面吧)
- 如何将一个Activity设置成窗口的样式。
- Android中跨进程通讯的几种方式
- 屏幕适配的处理技巧都有哪些?
- ListView卡顿原因及处理
- 广播传输的数据是否有限制,是多少,为什么要限制?
- 如何防止过度绘制
- View的回执流程
- 说说对Context的理解
- 卡顿的一整套解决方案是怎么做的?
某知名外卖APP(布局、页面、高级UI之类的)
- View的绘制过程,onMeasure方法中两个参数的含义;
- 你在做布局优化的过程中用到了哪些工具?
- 做完布局优化有哪些成果产出?
- 看过哪些源码
- 混合开发有没有做过
- 大致说一下自己做过最满意的项目吧
字节跳动抖音部(音视频、算法)
- 静态注册和动态注册的原理分别说一下吧
- JNI是如何访问java中的方法和字段的?
- JNI规范中定义了哪些引用,区别是什么
- 算法:获取单链表倒数第k个元素
- 单例实现线程的同步的要求?
- LaunchMode应用场景
- 计算一个view的嵌套层级
算法:
某上市公司(母婴类产品)
- 请介绍下ContentProvider是如何实现数据共享的。
- android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。
- 算法:复制含有随机指针节点的链表
- Android系统中GC什么情况下会出现内存泄露呢?
- 三次握手四次挥手说一下吧
- HashMap 、HashTable原理?
- Java 虚拟机&内存结构&GC&类加载&四种引用&动态代理
- 进程保活怎么做
合资外企
- LeakCanary 原理
- OOM 场景及规避
- App 安装过程的怎样的
- ANR是什么?怎样避免和解决ANR
- MVC MVP MVVM原理和区别
- 算法:2000万个整数,找出第五十大的数字?
- App 是如何沙箱化,为什么要这么做?
- flutter用过吗?
- Flutter 如何与 Android iOS 通信?
志安科技(类似于华为海思,对底层很看重)
- HashMap 原理
- andorid的Binder机制是怎么样的
- Linux的原理有了解吗
- 有看过哪些源码,有深入到C++中吗,C++熟练吗?
- 熟悉framework哪些模块的源码,对图像性能优化有了解吗
- 以后的技术发展方向是如何的
阿里巴巴P6岗
- HTTP2.0与3.0的区别
- 项目中常用的设计模式
- https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?
- 了解过Android虚拟机有哪些?
- 对Dalvik、ART虚拟机有什么了解?
- Gradle自动补丁包生成原理
- Hybrid 通信原理是什么,有做研究吗?
- 来介绍下你最成熟的一个项目是哪个?
- 能简单的画一下你这个项目的架构图吗?
- 除了MVP,MVC,MVVM外还有什么其他的架构方式?
- 动态编译和反射相比,除了性能方面外还有什么区别?
- 死锁如何避免、处理?
- Flutter中的Widget、State、Context 的核心概念?是为了解决什么问题?
- 卡顿 {如何检测卡顿,卡顿原理是什么,怎么判断页面响应卡顿还是逻辑处理造成的卡顿} ,BlockCanary 的原理
- 算法:双链表翻转、写出你所知道的排序算法及时空复杂度,稳定性
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
最后
都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。
技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;
我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2021年万事大吉。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2021年万事大吉。