Android 高级面试高频知识点

25,224 阅读8分钟

Android 高级面试经常会有很多原理分析,以及性能优化监控相关,列出一些高频知识点仅供参考。

s13524801/android-interview-record 欢迎 start 以及补充

Android 相关
性能优化
Java 相关
Kotlin 相关
网络相关
插件化
图片相关
Gradle 相关
Flutter 相关

Android 相关

Android之SharedPreferences内部原理浅析

剖析 SharedPreference apply 引起的 ANR 问题

Android源码分析-消息队列和Looper

Android中Thread、Handler、Looper、MessageQueue的原理分析

Android IntentService完全解析 当Service遇到Handler

Android源码分析—带你认识不一样的AsyncTask

Android AsyncTask 源码解析

Android性能优化之使用线程池处理异步任务

Android 线程和线程池一篇就够了

剖析Android中进程与线程调度之nice

【线程死锁】Android多线程死锁的产生以及如何避免

WatchDog工作原理

《手Q Android线程死锁监控与自动化分析实践》

Android Context完全解析,你所不知道的Context的各种细节

LocalBroadcastManager 的实现原理,与 BroadcastReceiver 异同

Activity的启动方式和flag详解

浅析Activity横竖屏切换时的生命周期

Android源码分析-资源加载机制

Android 源码解析 之 setContentView

深入剖析 Android中的 ArrayMap

深度解读ArrayMap优势与缺陷

startActivity启动过程分析

startService启动过程分析

【凯子哥带你学Framework】Activity启动过程全解析

【凯子哥带你学Framework】Activity界面显示全解析

Android LayoutInflater原理分析,带你一步步深入了解View(一)

由App的启动说起 | jaminzzhang

Android内核开发:图解Android系统的启动过程

为什么 Android 要采用 Binder 作为 IPC 机制?

Android进程间通信(IPC)机制Binder简要介绍和学习计划

Binder VS socket

Android跨进程通信:图文详解 Binder机制 原理

彻底理解Android Binder通信架构

Binder异常解析

ELF文件格式解析

loadLibrary动态库加载过程分析

Android 的 so 文件加载机制

通过ApkTool分析resources.arsc文件以及resources.arsc文件的格式

Toast 原理剖析

Android I/O 那些事儿

10分钟了解Android项目构建流程

RecyclerView性能优化及高级使用

android mvvm architecture-samples

Lifecycle 使用及原理解析 一文搞懂

ViewPager2重大更新,支持offscreenPageLimit

Android View的绘制流程知识点总结

深入理解Android之View的绘制流程

Android JNI 中的线程操作

Android JNI 之 Bitmap 操作

Android组件化方案及组件消息总线modular-event实战

Android 组件化最佳实践

Android中JSBridge的原理和实现

Android Webview H5 秒开方案实现

WebView性能、体验分析与优化

彻底解析Android缓存机制——LruCache

视频缓存AndroidVideoCache攻略

Google Exoplayer之全面认识

设计模式在外卖营销业务中的实践

性能优化

Android性能优化来龙去脉总结

Android 性能优化最佳实践

Android GC 原理探究

JVM 的工作原理,层次结构以及 GC 工作原理

Java内存问题及 LeakCanary 原理分析

Android性能优化(十一)之正确的异步姿势

Android 性能优化之布局优化

Android性能优化:那些不可忽略的绘制优化

Android中Bitmap内存优化

美团点评移动网络优化实践

大众点评App的短视频耗电量优化实战

Android 存储优化 —— MMKV 集成与原理

Matrix IOCanary -- I/O 质量监控

Matrix TraceCanary -- 初恋·卡顿

Matrix ResourceCanary -- Activity 泄漏及Bitmap冗余检测

Android图片加载尺寸监控

美团外卖Android Crash治理之路

理解Android Crash处理流程

理解Native Crash处理流程

彻底理解安卓应用无响应机制

ANR问题分析的一般套路

ANR的监测与信息采集

Android ANR 监测方案解析

Probe:Android线上OOM问题定位组件

《Android 创建线程源码与OOM分析》

安装包立减1M--微信Android资源混淆打包工具

AabResGuard: AAB 资源混淆工具

zstd 高质量压缩算法

AndroidJniBitmapOperations

Android开发高手课

Java 相关

Java 四种线程池的用法分析

Java有几种文件拷贝方式?哪一种最高效?

使用FileChannel(文件通道)来实现文件快速复制

JVM类加载机制详解(一)JVM类加载过程

JVM类加载机制详解(二)类加载器与双亲委派模型

Java实现线程同步的几种方式

java笔记七:IO流之字节流与字节缓冲流

Java NIO浅析

Java内存管理:深入Java内存区域

看完这篇垃圾回收,和面试官扯皮没问题了

理解Java中的ThreadLocal

理解Java中的弱引用

理解Java的强引用、软引用、弱引用和虚引用

Java中的堆和栈的区别

HashMap 用可变对象作为 key 踩坑

聊聊并发(七)——Java中的阻塞队列

深入研究java.lang.Object类

Java ArrayList、LinkedList、Vector的区别

HashMap和Hashtable的区别

HashMap、TreeMap、HashTable区别

你想知道的HashMap

ConcurrentHashMap总结

Java 8系列之重新认识HashMap

HashMap多线程死循环问题

深入分析Volatile的实现原理

Java并发编程:Synchronized及其实现原理

Java反射在JVM的实现

Unsafe 与 CAS

Java魔法类:Unsafe应用解析

Java AtomicInteger原理分析

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

理解ReentrantLock的公平锁和非公平锁

Java面试必问-死锁终极篇

深入理解读写锁ReentrantReadWriteLock

CountDownLatch详解

深入理解final关键字的作用

Java CAS 和ABA问题

关于JAVA中的Class.cast方法

如何正确地写出单例模式

【Java】try-catch-finally语句中return的执行顺序思考

二分查找法的实现和应用汇总

二叉树遍历(先序、中序、后序)

Java最小堆解决TopK问题

Kotlin 相关

from-java-to-kotlin

kotlin_tips

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

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

Kotlin里的Extension Functions实现原理分析

Kotlin系列之顶层函数和属性

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

Kotlin 的协程用力瞥一眼

Kotlin 协程「挂起」的本质

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

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

Kotlin Coroutines(协程) 完全解析

破解 Kotlin 协程

网络相关

深度解析HTTPS原理

HTTPS 原理浅析及其在 Android 中的使用

HTTP 断点续传(分块传输)

HttpDns 原理是什么

《客厅TV-APP HttpDNS技术接入与实战》

HttpDns接入以及全局替换的实现

happy-dns-android

TCP、UDP、HTTP、SOCKET之间的区别

一文搞懂TCP与UDP的区别

Android直播开发之旅(7):Android视频直播核心技术(架构)详解

Android最佳实践——深入浅出WebSocket协议

拆轮子系列:拆 Okio

拆轮子系列:拆 OkHttp

Android Volley完全解析(四),带你从源码的角度理解Volley

插件化

Android插件化库比较

深入理解Android插件化技术

Android 插件化 -- ClassLoader 源码分析

Android热补丁之Tinker原理解析

Android插件化原理解析——Hook机制之动态代理

Android 动态代理与Hook机制详解

MultiDex工作原理分析和优化方案

Android 一种在Dalvik虚拟机上多Dex加载优化的方案

Android 8.0 中的 ART 功能改进

DEX、ODEX、OAT文件&Dalvik和ART虚拟机

art dex2oat 加载加速浅析

剖析 Android ART Runtime (1) - 背景知识

剖析 Android ART Runtime (2) – dex2oat

剖析 Android ART Runtime (3) – Compilerb

Android ART运行时无缝替换Dalvik虚拟机的过程分析

入门ART虚拟机(1)——加载DEX文件

入门ART虚拟机(5)——OAT文件

Android运行时ART加载OAT文件的过程分析

Android App Bundle 构建流程浅析

系统级插件化?Google全新的动态化框架Android App Bundles分析

深入解读Android新特性——App Bundles

基于Android App Bundle的动态化方案探索

Qigsaw - dynamic modularization library

图片相关

Fresco图片框架内部实现原理探索

彻底弄懂 GLIDE V4 之宏观原理分析

WebP原理和Android支持现状介绍

浓缩的才是精华:浅析 GIF 格式图片的存储和压缩

高效加载大型位图

Android 高清加载巨图方案 拒绝压缩图片

Lottie 动画原理剖析

SVGA 背后的故事

Gradle 相关

Android Gradle Plugin 源码分析

Android Gradle Plugin 源码阅读与编译

Improving Android Build Performance

Using Gradle's Worker API to reduce build time

Gradle 学习之 Android 插件的 Transform API

Android AOP三剑客之AspectJ

Android AOP三剑客之APT

Android AOP三剑客之Javassist

Chapter-ASM - Android 开发高手课

matrix-gradle-plugin - matrix

Android Lint增量扫描实战纪要

便于性能分析的日志框架hugo

WMRouter:美团外卖Android开源路由框架

ARouter - Android App 进行组件化改造的路由框架

滴滴开源 Booster:移动APP质量优化框架

Flutter 相关

Flutter原理与实践

揭秘Flutter Hot Reload(原理篇)

Flutter 动态化探索

Flutter如何和Native通信-Android视角

深入理解Flutter Platform Channel

Flutter Engine 编译指北

Flutter Engine 线程模型

深入理解Flutter多线程

Flutter状态管理 - 初探与总结

Flutter | 状态管理指南篇——Provider

深入理解Flutter应用启动

Flutter渲染机制—UI线程

Flutter渲染机制—GPU线程

深入理解Flutter应用启动

深入理解setState更新机制

深入理解Flutter消息机制

深入理解Flutter动画原理

Dart虚拟机运行原理

源码解读Flutter tools机制

源码解读Flutter run机制

Fultter App 国际化/多语言

Flutter豆瓣客户端