34岁安卓开发大叔感慨,含BATJM大厂

开头

25岁那年,我从京东离职,入职百度。

在百度认识了当时的架构师久哥(T9级别),因为他的一番话,彻底改变了我的职业生涯,短短三年的时间,我从一枚普通程序员成长为别人眼中的技术大咖。

当时因为业务需要,也承蒙久哥照顾,他跟我说过这样一段话:

他问,“如果用5年的时间学习数据库,你能不能成为这个领域的专家?”

我说,“应该可以吧”

他说,“你现在25,5年后也才30,30岁就能成为某个领域的专家,为什么不去做呢?你看看周围有多少30岁的人还一事无成,而那个时候的你已经是数据库专家了。”

当时的我,刚刚进入别人梦寐以求的BAT,处于各种浮躁的时期,虽然每天也在学习,看起来也很努力,但是效果极其有限,今天想学大数据,明天想学云计算,后天又要研究机器学习,心境变化无常,不知道自己未来究竟该是什么样。

一面

  • 自我介绍
  • 介绍一下自己做过什么项目 ps:这里会根据项目问一些问题
  • 跨线程通信 主要涉及LooperMessageHandler以及MessageQueue
  • 说一下自定义View需要注意哪些细节 主要说了一下View绘制的三大过程onDraw()不要做耗时操作 不要创建新对象 以及 怎么处理View的触摸事件
  • View的事件冲突的解决办法 ps:重写dispatchEvent()或者touch()方法
  • 手写代码:给你一个无限大的数(用字符串表示),计算这个数加一以后的结果 手写代码在这个网站进行 ps:面试官发给你一个链接 你写代码面试官会同步看到

二面

  • 手写代码 两个有序链表合并成一个有序链表
  • Object中有哪些公有方法 ps:clone();toString();wait();notify();getClass();finalize();equals();hashCode();
  • 讲一下listView的优化方法
  • 讲一下RecycleView与listview的区别
  • view的绘制过程

阿里

  • 问了一下大体情况 比如什么时候可以实习啊 考不考研啊
  • 都会什么算法 讲一下
  • 做过什么项目没有 讲一下项目优化的地方
  • Activity的启动模式
  • 跨线程通信
  • 夸进程通信 主要是Android的AIDL
  • 如何解析json数据和xml

蘑菇街

  • 说说做了什么项目
  • 自定义view的几个步骤 怎么刷新view ps:onLayout(); onMeasrue();onDraw();
  • RecycleView的优化
  • 几种context的区别
  • 看过什么源码没有
  • 讲一下binder类
  • Runnable运行在哪个线程里面 ps:开启一个子线程的唯一方法就是new Thread().start();
  • HashMap和HashTable的区别
  • raw和assets文件夹的区别
  • activity关闭后尚未运行完毕的thread会怎么样 ps:会变成空进程线程,优先级最低 很容易被终止回收
  • mainfest文件的合并规则

网易

网易内推后笔试,过了笔试后去杭州面试 ps:报销来回车费 报销上限是600元 这个回来没记 可能不全

一面

  • 自我介绍
  • 跨线程通信
  • 讲了其中一个项目是怎么实现的 问jsoup怎么拼 = =
  • 用过哪些开源库 讲一下他的架构是怎样的
  • java的四种引用 虚引用的作用
  • 图片三级缓存 内存缓存满了怎么办 ps:优先级队列 满了后根据优先级主动删除一部分图片 根据LRU算法确定优先级
  • 讲一下JNI开发的过程 java怎么找到c函数 ps:JNINativeMethod保存函数对应关系
  • 平时有什么爱好没有 = = ps:潜泳 可以潜好几天 然后自己浮上来

二面

  • activity的四中启动模式
  • service的生命周期
  • 讲一下自己的项目
  • 项目中用JNI做什么 为什么要用他呢
  • 什么是OAuth协议 做什么的
  • 其他的记不清楚了

hr面

  • 什么时候可以来实习 实习多久
  • 多个offer怎么选
  • 你有团队开发经验 内部冲突怎么解决
  • 你觉得杭州怎么样
  • 为什么选择网易
  • 用过网易什么产品 ps:吃过网易猪肉
  • 其他忘记 好像聊了好久 得一个小时吧

最后说一下我的学习路线

其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:

  1. 架构师筑基必备技能
  2. Android框架体系架构(高级UI+FrameWork源码)
  3. 360°Androidapp全方位性能调优
  4. 设计思想解读开源框架
  5. NDK模块开发
  6. 移动架构师专题项目实战环节
  7. 移动架构师不可不学习微信小程序
  8. 混合开发的flutter

34岁安卓开发大叔感慨,含BATJM大厂

Android学习的资料

我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。需要的小伙伴,我免费分享给大家,或者直接点击下面链接领取,谢谢大家这么久以来的支持。

Android学习PDF+架构视频+面试文档+源码笔记

如果你有其他需要的话,也可以在文档上查看,下面的资料也会陆续上传到文档

330页PDF Android学习核心笔记(内含上面8大板块)

34岁安卓开发大叔感慨,含BATJM大厂

Android学习的系统对应视频

34岁安卓开发大叔感慨,含BATJM大厂

总结

我希望通过我自己的学习方法来帮助大家去提升技术:

  • 1、多看书、看源码和做项目,平时多种总结

  • 2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理

  • 3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习

  • 4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!

    进阶学习资料领取方式:点击腾讯文档

  • 4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!

    进阶学习资料领取方式:点击腾讯文档

希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!

上一篇:游戏开发(Unity&C#)总结34 - Func委托作为方法参数


下一篇:34岁安卓开发大叔感慨,好文推荐