面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)

前言

金九银十已经快接近尾声了,不知道各位小伙伴有没有找到自己心仪的工作呢。

笔者前几天内推刚刚收获了腾讯高级Android开发岗的offer,得益于内推朋友面试时的面试经验,照着他给的方向复习刷题,顺利的通过了面试。

在这里也无偿分享给广大网友们,喜欢也能帮助到你们。如果觉得文章不错,烦请点个赞,谢谢!

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第1张图片

Android高级知识点

一、Android性能优化

1.描述一下android的系统架构?

2.Android线程间通信有哪几种方式

3. 如何避免OOM异常

4.Android程序运行时权限与文件系统权限的区别?

5.Hybrid 通信原理是什么,有做研究吗?

6.Framework工作方式及原理,Activity是如何生成一个view的,机制是什么

7.ANR是什么?怎样避免和解决ANR

8.Devik进程,linux进程,线程的区别

9.卡顿 {如何检测卡顿,卡顿原理是什么,怎么判断页面响应卡顿还是逻辑处理造成的卡顿} ,BlockCanary 的原理

二、Android热修复、插件化、组件化

1.谈谈对 ClassLoader 的理解

2.自定义 ClassLoader

3.插件化为什么会出现,如何代码加载,资源加载,代理 Hook)

4.如何从一个老项目一步步实现组件化,主要问思路,考察架构能力和思考能力。(需要考虑很多,每一步做什么,顺序很重要)

5.组件化和模块化的理解与区别?

6.class文件加载Dex原理

7.Gradle自动补丁包生成原理

三、Android Framework、 ROM定制、Ubuntu、Linux之类的问题

1.Binder 机制(IPC、AIDL 的使用)

2.Activity 启动流程,App 启动流程

3.Android 图像显示相关流程,Vsync 信号等

4.为什么使用 Parcelable,好处是什么

5.AMS 、PMS

6.类加载机制

7.Ubuntu编译安卓系统

8.对Dalvik、ART虚拟机有什么了解?

9.JVM内存区域,开线程影响哪块内存

四、架构设计和设计模式

1.MVC MVP MVVM原理和区别

2.项目中常用的设计模式

3.说说EventBus作用,实现方式,代替EventBus的方式

4.Fragment如果在Adapter中使用应该如何解耦?

5.实现一个Json解析器(可以通过正则提高速度)

6.从0设计一款App整体架构,如何去做?

7.Fragment如果在Adapter中使用应该如何解耦?

8.谈谈你对Android设计模式的理解

五、算法

1.手写一个冒泡排序

2.快速排序的过程、时间复杂度、空间复杂度

3.蚁群算法与蒙特卡洛算法

4.两个不重复的数组集合中,求共同的元素。

5.2000万个整数,找出第五十大的数字?

6.求1000以内的水仙花数以及40亿以内的水仙花数

7.写出你所知道的排序算法及时空复杂度,稳定性

8.二叉树给出根节点和目标节点,找出从根节点到目标节点的路径

六、网络和安全机制

1.TCP的3次握手和四次挥手

2.HTTP与HTTPS的区别以及如何实现安全性

3.App 是如何沙箱化,为什么要这么做?

4.谈谈你对WebSocket的理解

5.请解释安卓为啥要加签名机制?

6.HTTP1.0与2.0的区别

7.视频加密传输

8.https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?

七、Flutter相关

1.Flutter 中的生命周期

2.Widget 和 element 和 RenderObject 之间的关系?

3.Flutter中的Widget、State、Context 的核心概念?是为了解决什么问题?

4.State 对象的初始化流程?

5.讲一下flutter的几个特点/优缺点

6.Flutter 如何与 Android iOS 通信?

7.说一下什么是状态管理,为什么需要它?

8.说一下 BLoC 模式?

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第2张图片

二、复习刷题笔记

复习刷题笔记涵盖了:JVM篇、多线程&并发篇、Android基础篇、Handler篇、Binder篇、Framework篇、UI动画篇、Jetpack篇、Android架构篇、Android性能优化篇、数据结构与算法篇、NDK篇、Gradle篇、kotlin篇、Flutter篇。

面试有需要的同学,或者朋友们可以点击下方卡片进去通道获取

比如:比如以JVM为例;

  • Java 类加载过程?
  • 描述一下JVM 加载 Class文件的原理机制?
  • Java 内存分配
  • GC 是什么? 为什么要有GC?
  • 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
  • 垃圾回收的优点和原理。并考虑 2 种回收机制
  • 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  • Java 中会存在内存泄漏吗,请简单描述

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第3张图片

Android面试笔记(组件+View+线程)

以Android四大组件为例

  • 说下Activity的生命周期?
  • onStart()和onResume()/onPause()和onStop()的区别?
  • Activity A启动另一个Activity B会回调哪些方法?如果Activity B是完全透明呢?如果启动的是一个Dialog呢?
  • 谈谈onSaveInstanceState()方法?何时会调用?
  • onSaveInstanceState()与onPause()的区别?
  • 如何避免配置改变时Activity重建?
  • 优先级低的Activity在内存不足被回收后怎样做可以恢复到销毁前状态?
  • 说下Activity的四种启动模式?(有时会出个实际问题来分析返回栈中Activity的情况)
  • 谈谈singleTop和singleTask的区别以及应用场景

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第4张图片

Android面试笔记(Binder+Handler+Bitmap)

以binder为例

  • Binder的定向制导,如何找到目标Binder,唤起进程或者线程
  • Binder中的红黑树,为什么会有两棵binder_ref红黑树
  • Binder一次拷贝原理
  • Binder线程、Binder主线程、Client请求线程的概念与区别
  • Binder线程的睡眠与唤醒(请求线程睡在哪个等待队列上,唤醒目标端哪个队列上的线程)
  • Binder协议中BC与BR的区别
  • Binder在传输数据的时候是如何层层封装的–不同层次使用的数据结构(命令的封装)
  • Binder驱动传递数据的释放(释放时机)
  • 一个简单的Binder通信C/S模型

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第5张图片

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第6张图片

Android面试笔记(RecyclerView+Webview)

以RecyclerView为例

  • 请说一下RecyclerView?adapter的作用是什么,几个方法是做什么用的?如何理解adapter订阅者模式?
  • RecyclerView绘制原理如何理解?性能优化本质是什么?RecyclerView绘制原理过程大概是怎样的?
  • RecyclerView常见的优化有哪些?实际开发中都是怎么做的,优化前后对比性能上有何提升?
  • 如何解决RecyclerView嵌套RecyclerView条目自动上滚的Bug?如何解决ScrollView嵌套RecyclerView滑动冲突?
  • RecyclerView的Recyler是如何实现ViewHolder的缓存?如何理解RecyclerView三级缓存是如何实现的?
  • RecyclerView源码分析

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第7张图片

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第8张图片

Android面试笔记(架构篇)

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第9张图片

Android面试笔记(Jetpack篇)

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第10张图片

Android面试笔记(NDK开发篇)

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第11张图片

有需要的同学,或者朋友们可以点击下方卡片进去通道获取

最后,希望每个人都等待到自己心仪的offer!

面试官透露!Android中高级开发岗必问知识点,赶紧收藏!(吃透70%入职腾讯)_第12张图片

你可能感兴趣的