面试|历经了7次面试,腾讯面试官给我的建议(附(Android岗经验分享))

大家好,我是一名开发者也是一位面试官,现在在腾讯某事业部担任开发专家的职位。
面试,对于我们求职者来说,并不陌生,而且在新一轮的金九银十中,大家对“如何高效准备面试”这个话题呼声尤其高。
的确,作为开发者,大家的时间都很宝贵,尤其是在职跳槽,还需要一边上班一边投简历。
投了好几百份简历,好不容易接到一个面试电话,慌慌张张,不知道如何准备面试,到处搜集各种面试技巧。
殊不知主次不分,舍本逐末,做了大量无用功。
记得,我刚开始参加面试的时候就是这样,技术不成体系,花费很多时间面试上,却没有拿到一个心仪的offer。
我相信经历过这种情况的开发者都知道,这样非常容易打击自己的面试自信心,越来越害怕面试就会导致在面试中紧张,会的忘记、不会的还是不会。
这是一个逆性循环,结果只会越来越糟糕。所以,为了帮助大家提高面试效率,我这里说一下面试中应该注意什么以及**如何搭建技术体系,**复习来准备面试。

一、什么是技术体系?有什么用? 所谓**“知识体系”,**指的是把大量的不同的零散的知识点,通过内化、存储、整理、等方式组合起来,形成以点成线、以线成面、形成系统的、有序的、清晰的脉络结构。
我们在工作中解决问题或者面试时,会使用自己的知识体系做出选择,不论是潜意识还是显性意识.每一次的抉择和行为都将迭代我们的知识体系,让其更加明确清晰,找到自己不足的地方,优化可以改进的地方,明确接下来的方向,提升自己的全局整体思维,强化当下的正在使用的技能等。
二、如何搭建技术体系 这里可以看一下我自己做的思维导图,通过思维导图的学习步骤,无论是在工作中还是在面试中都帮了我很多,可以说我进腾讯离不开它的帮助。
面试|历经了7次面试,腾讯面试官给我的建议(附(Android岗经验分享))
文章图片

不清晰的朋友,思维导图网盘下载链接:https://pan.baidu.com/s/1KWzzCiqTWs5CwEwYCdp9rQ提取码:ur09
在思维导图中我把Android技术栈分为了十三个模块**,并整理相关PDF文档和资料,需要的朋友可以点击下方卡片获取。**
十三个模块大致为了以及核心知识点:
一,Java高级
  • 反射
  • 注解
  • 泛型
  • 多线程:线程、线程池、Synchronized、volatile、ReentrantLock
  • JVM:类加载、内存模型、垃圾回收机制、强弱虚引用
  • 集合容器:Collection、Map
二,安卓多线程
多线程是开发人员必不可少的技术点,也是初学者不太容易掌握好的一个难点。要想设计出优秀的程序,那必然需要合理的线程调度。
  • Handler:Handler、Looper、Message
  • ThreadLocal
  • AsyncTask
三,网络
在 Android 的日常开发和源码阅读中会经常碰到相关知识,掌握这些网络基础知识,也是 Android 程序员真正迈向高阶的过程中必备的一些基本技术素质之一。
  • HTTP、HTTPS
  • TCP UDP
  • TCP/IP
  • SOCKET
  • 网络请求过程:三次握手、四次挥手、证书、断点续传
四,视图
  • Surface
  • View: 自定义 View(measure、layout、draw)
  • Window:PhoneWindow、DecorView、ViewRoot
  • 事件分发机制:滑动冲突、dispatch
  • 动画:帧动画、View动画、属性动画
  • ListView工作原理
  • RecycleView工作原理、与ListView比较
  • Webview:js通信,加载优化
五,图片
  • BitMap:加载效率、缓存策略、内存计算
  • Drawable
  • Glide加载大图
六,安卓系统
  • 系统启动流程
  • 应用启动流程
  • 进程间通信:IPC机制、Binder原理、AIDL
  • 构建:Grale、APT编译注解处理器
  • apk打包:打包流程、v1和v2签名、分包multidex、加固
  • Dalvik与ART
  • SystemServer:ActivityMagangerService、PackageManagerService,WindowManagerService
  • Dalvik与ART
  • JNI:JNI基础、NDK
七,四大组件
Android 四大基本组件分别是 Activity,Service 服务,Content Provider内容提供者,BroadcastReceiver 广播接收器。
  • Acitivity难点:四大launch模式、启动流程、加载布局流程
  • Service难点:启动方式、启动流程、应用场景
  • ContentProvider难点:生命周期、启动流程、原理
  • Broadcast难点:生命周期、注册方式、启动流程
八,性能优化
作为一个 Android 程序员,性能优化是无法避开的事情,并且性能优化也是 Android 中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。
  • 启动优化
  • UI优化
  • 内存优化
  • 卡顿优化
  • 网络优化
  • 数据库优化
  • 包体积优化
  • ANR
九,三方库
Android 平台上的数据库框架非常多,但是有一个共同特点就是基于对象关系映射(ORM) 模型的。实现的目标也都是不需要写 SQL 语句,通过对对象的操作保存和操作数据。
  • 图片加载: Gride、Fresco、Picasso、Android-UIL
  • 网络通信:Retrofit、Okhttp、Volley
  • 异步处理:RxJava、RxAndroid、RxBinding、EventBus
  • 数据库:
十,与时俱进
  • 跨平台:Flutter、ReactNative、Weex
  • 模块化
  • Hook技术
  • 插件化:DroidPlugin、VirtualAPK 、Small、RePlugin
  • 组件化:ARouter、CC
  • 热更新:Tinker、AndFix、Robust
  • 动态化
十一,Kotlin
  • 扩展函数
  • 构造函数
  • 协程
十二,框架
  • Jetpack:ViewModel、LiveData、Lifecycles、Navigation、Room、Paging、WorkManager、DataBinding
  • MVC
  • MVP
  • MVVM
  • 设计模式:六大原则、常见设计模式
十三,音视频
  • 音视频基础
  • ffmpeg
  • WebRTC
  • OpenGL
  • Vulkan
  • OpenCV
知识点配套整理资料 面试|历经了7次面试,腾讯面试官给我的建议(附(Android岗经验分享))
文章图片

面试|历经了7次面试,腾讯面试官给我的建议(附(Android岗经验分享))
文章图片

快速打包通道:点击下方卡片即可
三、面试中应该注意什么? 1,了解公司(背景+产品)
我参加过的几乎每一家公司的面试,都会问这个问题,比如
  • “你对我们公司有什么了解?”
  • “你为何要选择我们公司”
  • “你对我们公司的产品技术架构上有什么建议?”
  • “…”之类的
这些问题其实都在考察你对公司的了解。
那么如何了解一家公司呢?
最简单的方法,就是让HR提供一些材料。当然,有一些公司在发邮件通知你面试的时候,附件一般也会带上公司相关的介绍。
2,准备好简历
【面试|历经了7次面试,腾讯面试官给我的建议(附(Android岗经验分享))】在面试的前一天,要准备并且打印好几份简历,并且一定要熟悉简历项目里的每一项技术,尤其是你的工作经历,你要回忆一下,要能够展开详细说。
总体来说,面试就这几个方面的注意点。
四、总结 知识体系不是一蹴而就的,而是贯穿我们的生活经历和对事物的思考慢慢积累起来的,中间需要海量的知识支撑,不断改变,不断适应。
而这是需要我们不断学习的,我希望大家能在学习不断提升自己的技术能力,并且面试中拿到自己心仪的offer。我们一起努力,共勉!
快速通道:(需要的朋友可以点击下方卡片获取。)

    推荐阅读