记2019年8-9月份 Android面试经历总结

1,510 阅读3分钟

前言

最近一个月找工作,9个面试0个offer,实在有点可笑。心态从最初的踌躇满志要进入一家自己喜欢的公司,慢慢变成随便一家过得去的公司给个offer就去,最后到无心无力再继续找工作。还好听了人劝,没有急着辞职,不然要吃土了。

期间通过思维导图的形式做过一些笔记,放在这里当做纪念。

正文

全篇共分为5个模块,分别是:Java、Android、常用三方库、NDK和其他。

1、Java

集合:HashMap、LinkedHashMap、ConcurrentHashMap都有被问到,需要知道其中原理

集合类

Java虚拟机:类加载器问得比较多;

Java虚拟机

Java并发:线程、线程池、锁原理都是高频面试点。

Java并发

2、Android

性能优化:必问

性能优化

Activity启动流程:高频

Activity原理

广播原理:问到过一次,可惜当时没准备

广播原理

Service原理:“startService和bindService区别”问到很多次

Service原理

RecyclerView缓存机制:问到过一次(没准备,扑街了)

RecyclerView缓存机制

Android流程:从没问到(似乎白准备了)

Android流程

插件化:问得较少(大部分面试官似乎也不懂)

插件化

热修复:问得较少(问到的概率仅仅比插件化多一丢丢)

热修复

组件化:高频

组件化没有做笔记了,面试题主要集中在组件化的实现,Arouter页面跳转原理,不同组件间传参实现与原理。

PMS:无人问津

PMS

WMS:“Window和View的关系”有问到过几次

WMS

3、常用三方库

OkHttp:问到OkHttp,一般会问缓存策略和连接池(需要加深理解)

OkHttp

Retrofit:问到过一次怎么监听下载进度(唉)

Retrofit

RxJava:问到过两次操作符的意思(问得都很浅,操作符用法)

RxJava

Glide:超高频,缓存机制必问(其实除了缓存,啥都没看懂)

Glide

EventBus:问到过几次方案的横向对比,为啥选EventBus

EventBus

4、NDK

C++:NDK的基础,没问到过

C++

CMake:一次

CMake

JNI:JNIEnv是这块的必问点

JNI

FFmpeg:错误地认为软解比硬解性能更好,可能正是我没有offer的原因吧

FFmpeg

OpenCV:没问过

OpenCV

OpenGL ES:一家搞直播公司问到过一次(后悔当时要价太高……)

OpenGL ES

5、其他

网络:HTTP、HTTPS高频

网络

Kotlin:很多面试官提过,但是不问(他们觉得太简单还是也不熟呢?)

Kotlin

Flutter:只是了解一点了(有暖用?大部分公司要的是RN)

Dart
Flutter

最后

经过这几次面试,有了两点感悟。

  1. 千里马常有,伯乐不常有。

    一个好的技术面试,我觉得应该是面试官提出技术含量高的问题,然后我水银泻地般地解答给面试官听。然而没有一次面试是这样的,岗位也许与我的技能或工作经验并不匹配,面试官只会挑他们感兴趣的提问,并且会回避他们不擅长的知识。这样的面试无法体现自身的价值,还是静下心来,继续提高自己,不要迷失方向。

  2. 职业规划很重要。

    通过了技术面试之后,一般都有领导过来谈职业规划,在几家物联网相关的公司,总被问到作为一个Android开发加入物联网相关公司,自身是如何定位的。总说纯手机App开发太饱和了,希望以后从事深入的物联网或者音视频开发,对于物联网或音视频,我又能做什么呢?

参考资料

github.com/JsonChao/Aw…