Android开发如何准备技术面试(含Android面试押题),flutter瀑布流内存

很多人遇到这个问题会很懵逼,感觉基本啥问题都谷歌解决了。当然如果你真的有遇到不是马上能通过谷歌解决的问题便是极好的,按照描述问题、如何解决问题、结果这几个步骤来回答就行了。

那么如果你觉得你的项目真的很简单,没有什么可说的话,就按照以下的几个思路来聊这个话题。比如说你之前从没接触过某个技术,你是如何去学习这个技术的,在学习的过程中遇到了什么问题,怎么解决的。比如说你写了这个项目,自己有了什么感悟、想法。

因为这道题目面试官不是说一定要听你讲出项目里到底遇到了什么难的问题,而是考察你的学习能力以及解决问题的能力。即使你没有什么干货可以说,说点自己的学习过程、挫折、想法感悟也是可以的,毕竟总比说感觉都很简单来的好。

六、2021年Android面试押题


Java相关

1.容器(HashMap、HashSet、LinkedList、ArrayList、数组等)

2.内存模型

3.垃圾回收算法(JVM)

4.垃圾回收机制和调用 System.gc()的区别?

5.类加载过程(需要多看看,重在理解,对于热修复和插件化比较重要)

6.反射

7.多线程和线程池

8.设计模式(六大基本原则、项目中常用的设计模式、手写单例等)

9.Java 四大引用

10.Java 的泛型

11.final、finally、finalize 的区别

12.接口、抽象类的区别

(Java相关答案地址)

Android 相关

1.自定义 View

2.事件拦截分发

3.解决过的一些性能问题,在项目中的实际运用

4.性能优化工具

5.性能优化 (讲讲你自己项目中做过的性能优化)

6.Http[s]请求慢的解决办法(DNS、携带数据、直接访问 IP)

7.缓存自己如何实现(LRUCache 原理)

8.图形图像相关:OpenGL ES 管线流程、EGL 的认识、Shader 相关

9.SurfaceView、TextureView、GLSurfaceView 区别及使用场景

10.动画、差值器、估值器(Android中的View动画和属性动画 - 简书、Android 动画 介绍与使用)

11.MVC、MVP、MVVM

12.Handler、ThreadLocal、AsyncTask、IntentService 原理及应用

13.Gradle(Groovy 语法、Gradle 插件开发基础)

14.热修复、插件化

15.组件化架构思路

16.系统打包流程

17.Android 有哪些存储数据的方式。

18.SharedPrefrence 源码和问题点;

20.sqlite 相关

21.如何判断一个 APP 在前台还是后台?

22.AMS 、PMS

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

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

25.为什么使用 Parcelable,好处是什么?

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

(Android相关答案地址)

源码理解

  • Glide :加载、缓存、LRU 算法 (如何自己设计一个大图加载框架) (LRUCache 原理)

  • EventBus

  • LeakCanary

  • ARouter

  • 插件化(不同插件化机制原理与流派,优缺点。局限性)

  • 热修复

  • RXJava (RxJava 的线程切换原理)

  • Retrofit (Retrofit 在 OkHttp 上做了哪些封装?动态代理和静态代理的区别,是怎么实现的)

  • OkHttp

(源码相关答案地址)

算法与数据结构

  • 时间复杂度 / 空间复杂度

  • 常用的排序算法有哪些?

  • 字符串反转

  • 链表反转(头插法)

  • 如何查找第一个只出现一次的字符(Hash查找)

  • 如何查找两个子视图的共同父视图?

  • 无序数组中的中位数(快排思想)

  • 如何给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

  • 二叉树前序、中序、后序遍历

  • 最大 K 问题

  • 广度、深度优先搜索算法

  • String 转 int。核心算法就三行代码,不过临界条件很多,除了判空,还需要注意负数、Integer 的最大最小值边界等;

  • 如何判断一个单链表有环?

  • 100 亿个单词,找出出现频率最高的单词。要求几种方案;

  • 链表每 k 位逆序;

  • 镜像二叉树;

  • 找出一个无序数组中出现超过一半次数的数字;

  • 计算二叉树的最大深度,要求非递归算法。

  • String 方式计算加法。

(算法与数据结构相关答案地址)

网络

1.网络框架对比和源码分析

  1. 网络七层协议有哪些?

  2. Http 和 Https 的区别?Https为什么更加安全?

  3. HTTPS的连接建立流程

  4. 解释一下 三次握手 和 四次挥手

  5. TCP 和 UDP的区别

  6. Cookie和Session

  7. DNS是什么?

  8. DNS解析过程

10.HTTP报文结构

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

12.如何验证证书的合法性?

13.https中哪里用了对称加密,哪里用了非对称加密,对加密算法

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

(如RSA)等是否有了解?

14.client如何确定自己发送的消息被server收到?

15.谈谈你对WebSocket的理解

16.WebSocket与socket的区别

17.谈谈你对安卓签名的理解。

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

19.视频加密传输

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

21.权限管理系统(底层的权限是如何进行 grant 的)?

(网络相关答案地址)

Kotlin 相关

1.从原理分析Kotlin的延迟初始化: lateinit var和by lazy

2.使用Kotlin Reified 让泛型更简单安全

3.Kotlin里的Extension Functions实现原理分析

4.Kotlin系列之顶层函数和属性

5.Kotlin 兼容 Java 遇到的最大的 “坑”

6.Kotlin 的协程用力瞥一眼

7.Kotlin 协程「挂起」的本质

8.到底什么是「非阻塞式」挂起?协程真的更轻量级吗?

9.资源混淆是如何影响到Kotlin协程的

10.Kotlin Coroutines(协程) 完全解析

11.破解 Kotlin 协程

(Kotlin相关答案地址)

Flutter相关

1.Flutter 原理与实践

2.揭秘 Flutter Hot Reload(原理篇)

3.Flutter 动态化探索

4.Flutter 如何和 Native 通信-Android 视角

5.深入理解 Flutter Platform Channel

6.Flutter Engine 编译指北

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值