
去年我有一个Android工程师职位的面试。正如你可以从这篇文章的标题中猜到的那样......我失败了😅。但是从高级面试官那里获得11条建议让我在今年再次面试Android工程师能够成功斩获了第一份工作。
一连串的面试和技术任务已经让人心碎了。几次失败后?我觉得自己做的很失败,而且一度怀疑自己,曾在那段时间非常没有动力。
所以我从那段怀疑中休息了一段时间,来让自己冷静下来,后通过反思和高级面试官给与的11条建议让我恢复了自信心。
在休息和思考之后,我从这些经历中学到了宝贵的东西。下面我将分享一下让我斩获offer的高级面试官的11条建议,希望能够帮助现在还处在迷茫的人:
1.做好你的调研🔍
-
确保自己了解自己所面试的公司的一切。
-
这包括他们的历史、使命和价值观。
-
检查公司网站、Linkedin、社交媒体和声誉。
-
如果你空手而来,你的机会就会更少。
2.从基础开始✔️
-
如果您是就业市场的新手,您需要从基础开始。
-
如何写一页简历,如何填写工作申请,以及如何在面试中表现。
-
这些都是您获得第一份工作所需的基本技能。
3.知道自己在找什么样的工作🔭
-
在你开始找工作之前,知道你在找什么很重要。
-
你想要什么样的工作?
-
你的技能和资格是什么?你的目标是什么?
-
一旦你知道了这些问题的答案,你就可以开始寻找符合你条件的工作了。
4.多准备常见面试问题❓
-
准备回答常见的面试问题。
-
熟能生巧(好记性不如烂笔头)。
-
花一些时间熟悉常见的面试问题以及如何回答这些问题。
-
做很多面试练习(锻炼自己动手能力,让自己笔试的时候能够得心应手)。
-
即使你认为自己没有资格胜任一份工作,也值得申请。在你尝试之前你永远不会知道。
5.多问问你自己的问题❔
-
问问题表明你对职位和公司感兴趣。
-
提前准备几个问题,但要确保它们与其他人所问的问题不同。
6.准时⏰
-
面试迟到肯定会给人留下不好的印象。
-
在你的面试和工作中,保持专业很重要。
-
这包括准时、有礼貌和有礼貌。
7.做你自己,不要去伪装自己👧👦
-
面试是你大放异彩的机会。(一定不要说谎,因为谎言必定会有戳破的一天。)
-
在面试官问很多关于许多技术的问题他们会更期待一些“我不知道”,而这种诚实会增加价值。
-
很多公司从来没有雇用过了解所有要求的技术的人。
-
永远不要撒谎(再次提醒)。
8.了解自己熟悉的工具🛠️
- 如果你有一个技术面试,熟悉工具和技术,没有时间即兴发挥,所以一定要有自己熟悉的工具。
9.发展自己的技能🙍
- 很多实习经历不可能是独自一个人完成的。所以在面试过程中可能会询问团队合作的情况。
10.带上你的项目 📈
-
如果你没有经验,你可以展示你对一些开源项目的贡献。
-
准备好在面试中详细谈论你的项目。
11.推销自己🛒
-
在你的面试中,你需要推销自己。
-
自信并突出您的技能、资格以及您可以为工作增加的所有价值。
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
如果对第4点还没有准备的话,那么下面分享这份最新版《Android 高级开发面试题以及答案整理 》包含各个大厂的高频面题及行业最新技术,是由阿里P6的大佬花两月时间整理和完善而出,资料内容全面、结构清晰,希望能帮助到有心在技术这条道路上一路走到黑的朋友!
因为文件太多,全部展示会影响篇幅,暂时就展示部分截图。欢迎大家一起交流,有需要也可以*****私信给我
一、Handler 相关知识
-
Handler Looper Message 关系是什么?
-
Messagequeue 的数据结构是什么?为什么要用这个数据结构?
-
如何在子线程中创建 Handler?
-
Handler post 方法原理?
-
Android 消息机制的原理及源码解析
-
Handler 源码解析
-
Android Handler 消息机制
-
Android 消息机制

二、Activity 相关
-
启动模式以及使用场景?
-
onNewIntent()和onConfigurationChanged()
-
onSaveInstanceState()和onRestoreInstanceState()
-
Activity 到底是如何启动的

三、Fragment
-
Fragment 生命周期和 Activity 对比
-
Fragment 之间如何进行通信
-
Fragment的startActivityForResult
-
Fragment重叠问题
-
Android Fragment完全解析,关于碎片你所需知道的一切
-
Fragment 重叠, 如何通信
-
Activity 与 Fragment 生命周期探讨

四、Service 相关
-
进程保活
-
Service的运行线程(生命周期方法全部在主线程)
-
Service启动方式以及如何停止
-
ServiceConnection里面的回调方法运行在哪个线程?
-
startService 和 bingService 区别
-
Android 进程保活的一般套路
-
关于 Android 进程保活,你所需要知道的一切

五、Android布局优化之ViewStub、include、merge
-
什么情况下使用 ViewStub、include、merge?
-
他们的原理是什么?
-
布局优化神器 include 、merge、ViewStub标签详解
-
Android布局优化之ViewStub、include、merge使用与源码分析

六、BroadcastReceiver 相关
-
注册方式,优先级
-
广播类型,区别
-
广播的使用场景,原理
-
Android 广播Broadcast的两种注册方式静态和动态
-
Android四大组件:BroadcastReceiver史上最全面解析
-
安卓广播的底层实现原理

七、AsyncTask相关
-
AsyncTask是串行还是并行执行?
-
AsyncTask随着安卓版本的变迁
-
Android AsyncTask完全解析,带你从源码的角度彻底理解
-
Android源码分析—带你认识不一样的AsyncTask

八、Android 事件分发机制
-
onTouch和onTouchEvent区别,调用顺序
-
dispatchTouchEvent, onTouchEvent, onInterceptTouch
-
滑动冲突,如何解决
-
Android事件分发机制完全解析,带你从源码的角度彻底理解
-
Android ViewGroup事件分发机制
-
面试:讲讲 Android 的事件分发机制

九、Android View 绘制流程
-
简述 View 绘制流程
-
onMeasure, onlayout, ondraw方法中需要注意的点
-
如何进行自定义 View
-
view 重绘机制

十、Android Window、Activity、DecorView以及ViewRoot
-
一、职能简介
-
二、DecorView的创建
-
三、DecorView的显示

十一、Android 的核心 Binder 多进程 AIDL
-
常见的 IPC 机制以及使用场景
-
为什么安卓要用 binder 进行跨进程传输
-
多进程带来的问题
-
Android aidl Binder框架浅析
-
Android 应用工程师的 Binder 原理剖析
-
Android进程间通信(IPC)机制Binder简要介绍和学习计划
-
Android 进程间通信

十二、Android 高级必备 :AMS,WMS,PMS
-
AMS,WMS,PMS 全解析
-
Android解析ActivityManagerService(一)AMS启动流程和AMS家族
-
WindowManagerService 启动过程解析
-
PMS 启动流程解析

十三、Android ANR
-
为什么会发生 ANR?
-
如何定位ANR?
-
如何避免 ANR?
-
什么是 ANR
-
如何避免以及分析方法
-
Android 性能优化之 ANR 详解

十四、Android 内存相关
-
什么情况下会内存泄漏?
-
如何防止内存泄漏?

十五、Android 屏幕适配
-
屏幕适配相关名词解析
-
现在流行的屏幕适配方式

十六、Android 缓存机制
- LruCache使用极其原理

十七、Android 性能优化
-
如何进行 内存 cpu 耗电 的定位以及优化
-
性能优化经常使用的方法
-
如何避免 UI 卡顿

十八、Android MVC、MVP、MVVM
- MVC、MVP、MVVM的原理

十九、Android Gradle 知识
-
task 撰写
-
task 实战
-
撰写 plugin

二十、RxJava
-
RxJava 名词以及如何使用
-
Rxjava 观察者模式原理解析

二十一、OKHTTP 和 Retrofit
-
OKHTTP 完整解析
-
Retrofit.create 方法分析
-
ServiceMethod的职责以及 loadServiceMethod分析
-
callAdapter.adapt流程分析

二十二、最流行图片加载库: Glide
- Glide 的基本用法

二十三、Android 组件化与插件化
-
为什么要用组件化?
-
组件之间如何通信?
-
组件之间如何跳转?

最后
如果天空是黑暗的,那就在黑暗之中点燃一束光;如果噪声是危险的,那就在危险之中做沉默的羔羊。不要因为习惯了黑暗就为黑暗说明,也不要觉得自己生活的苟且就觉得小心翼翼,我们可以卑微,但是我们不可扭曲。
网友评论