
前言
Android 面试经常会出现大量英文专业名词,很多同学看得懂、写得出,但是面试口述的时候容易读错、解释不清,这样真的十分掉价。本文整理 Android 面试高频名词,包含音标、释义、面试考点说明,覆盖 Java、Kotlin、Dart、Android SDK、Framework、性能优化、网络、架构、跨端、热修复等方向,适合面试复习、博客收藏。
一、Java 基础 & JVM & 并发
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| JDK | /ˌdʒeɪ diː ˈkeɪ/ | Java Development Kit,Java开发工具包,包含JRE、编译器、调试工具 |
| JRE | /ˌdʒeɪ ɑːr ˈiː/ | Java Runtime Environment,Java运行环境,JVM + 基础类库 |
| JVM | /ˌdʒeɪ viː ˈem/ | Java Virtual Machine,Java虚拟机,执行class字节码,实现跨平台 |
| Bytecode | /ˈbaɪtkoʊd/ | 字节码,javac编译源码生成,JVM识别的中间代码 |
| ClassLoader | /ˈklɑːsloʊdər/ | 类加载器,负责加载class字节码,核心考点:双亲委派模型 |
| Parent Delegation Model | /ˈperənt ˌdelɪˈɡeɪʃn ˈmɑːdl/ | 双亲委派模型,类加载安全机制,防止核心类被篡改 |
| Heap | /hiːp/ | 堆,JVM内存区域,存放对象实例,GC主要回收区域 |
| Stack | /stæk/ | 虚拟机栈,存放局部变量、方法帧,方法调用入栈出栈 |
| Method Area | /ˈmeθəd ˈeriə/ | 方法区,JDK8之后被Metaspace替代,存放类信息、常量、静态变量 |
| Metaspace | /ˈmetəspeɪs/ | 元空间,JDK8替代永久代,使用本地内存,不在堆内 |
| GC (Garbage Collection) | /ˈɡɑːrbɪdʒ kəˈlekʃn/ | 垃圾回收,自动回收无引用对象内存 |
| GC Root | /ˈɡɑːrbɪdʒ ruːt/ | GC根,可达性分析起点,从根不可达对象判定为垃圾 |
| Mark-Sweep | /mɑːrk swiːp/ | 标记清除算法,先标记再清除,缺点:产生内存碎片 |
| Copying | /ˈkɑːpiɪŋ/ | 复制算法,存活对象复制到新区域,无碎片,占用双倍空间 |
| Mark-Compact | /mɑːrk ˈkɑːmpækt/ | 标记整理,标记后压缩存活对象,消除碎片 |
| Generational Collection | /ˌdʒenəˈreɪʃnl kəˈlekʃn/ | 分代收集,年轻代、老年代使用不同回收策略 |
| Young Generation | /jʌŋ ˌdʒenəˈreɪʃn/ | 年轻代:Eden + S0 + S1,对象大多朝生夕灭 |
| Old Generation | /oʊld ˌdʒenəˈreɪʃn/ | 老年代,长期存活、大对象,回收频率低 |
| Minor GC | /ˈmaɪnər ˌdʒiː siː/ | 年轻代GC,速度快、触发频繁 |
| Major GC / Full GC | /ˈmeɪdʒər ˌdʒiː siː / fʊl ˌdʒiː siː/ | 老年代GC / 全堆GC,耗时高,开发尽量避免 |
| CMS | /ˌsiː em ˈes/ | Concurrent Mark Sweep,并发标记清除,低停顿老年代收集器,存在碎片问题 |
| G1 (Garbage-First) | /ˈɡɑːrbɪdʒ fɜːrst/ | G1收集器,分区堆,可预测停顿,JDK9默认 |
| ZGC | /ˌziː dʒiː ˈsiː/ | Z Garbage Collector,超低延迟GC,适合大堆场景 |
| Reference | /ˈrefrəns/ | 引用,Java包含四种引用类型 |
| Strong Reference | /strɔːŋ ˈrefrəns/ | 强引用,默认引用,GC不会回收 |
| Soft Reference | /sɔːft ˈrefrəns/ | 软引用,内存不足时回收,适合缓存场景 |
| Weak Reference | /wiːk ˈrefrəns/ | 弱引用,下一次GC一定会回收,典型:WeakHashMap |
| Phantom Reference | /ˈfæntəm ˈrefrəns/ | 虚引用,仅用于对象回收追踪,无法获取对象 |
| Synchronized | /ˈsɪŋkrənaɪzd/ | 内置锁,支持偏向锁、轻量级锁、重量级锁升级 |
| Lock | /lɑːk/ | JUC显式锁,代表实现 ReentrantLock |
| ReentrantLock | /riːˈentrənt lɑːk/ | 可重入锁,支持公平/非公平、可中断、条件变量 |
| Volatile | /ˈvɑːlətl/ | 关键字,保证可见性、禁止指令重排,不保证原子性 |
| CAS | /ˌsiː eɪ ˈes/ | Compare And Swap,比较并交换,无锁乐观操作,存在ABA问题 |
| ABA Problem | /ˌeɪ biː ˈeɪ ˈprɑːbləm/ | ABA问题,CAS识别对象中间修改,可用版本号解决 |
| Thread | /θred/ | 线程,操作系统最小调度单元 |
| Process | /ˈprɑːses/ | 进程,资源分配最小单元,内存隔离 |
| Concurrency | /kənˈkɜːrənsi/ | 并发,同一时间段交替执行 |
| Parallelism | /ˈpærəlelɪzəm/ | 并行,同一时刻多核同时执行 |
| ThreadPool | /ˈθruːdpuːl/ | 线程池,复用线程,避免频繁创建销毁 |
| JUC | /ˌdʒeɪ juː ˈsiː/ | java.util.concurrent,Java并发工具包 |
| Deadlock | /ˈdedlɑːk/ | 死锁,多个线程循环等待对方持有的锁 |
| Livelock | /ˈlaɪvlɑːk/ | 活锁,线程反复重试,无法推进,没有阻塞 |
| Starvation | /stɑːrˈveɪʃn/ | 饥饿,线程长期拿不到资源无法执行 |
| Atomic | /əˈtɑːmɪk/ | 原子性,操作不可拆分,要么全部成功要么失败 |
| Visibility | /ˌvɪzəˈbɪləti/ | 可见性,一个线程修改对其他线程立即可见 |
| Ordering | /ˈɔːrdərɪŋ/ | 有序性,禁止指令重排序 |
| Inner Class | /ˈɪnər klæs/ | 内部类:成员内部、静态内部、局部、匿名内部类 |
| Polymorphism | /ˌpɑːliˈmɔːrfɪzəm/ | 多态,继承 + 重写 + 父类引用指向子类 |
| Encapsulation | /ɪnˌkæpsjuˈleɪʃn/ | 封装,隐藏内部实现,对外暴露接口 |
| Inheritance | /ɪnˈherɪtəns/ | 继承,复用父类代码,Java只支持单继承 |
| Overload | /ˌoʊvərˈloʊd/ | 重载,同类中方法名相同、参数不同 |
| Override | /ˌoʊvərˈraɪd/ | 重写,子类重写父类方法 |
| Interface | /ˈɪntərfeɪs/ | 接口,抽象契约,Java8支持default方法 |
| Abstract Class | /ˈæbstrækt klæs/ | 抽象类,可包含抽象与普通方法,拥有构造器 |
| Generic | /dʒəˈnerɪk/ | 泛型,编译期类型检查,存在类型擦除 |
| Type Erasure | /taɪp ɪˈreɪʒər/ | 类型擦除,泛型信息编译后被抹除 |
| Reflection | /rɪˈflekʃn/ | 反射,运行时获取类信息、调用方法,开销大 |
| Annotation | /ˌænəˈteɪʃn/ | 注解,元数据,编译期/运行期处理 |
| Exception | /ɪkˈsepʃn/ | 异常 |
| Checked Exception | /tʃekt ɪkˈsepʃn/ | 受检异常,必须catch或throws声明 |
| Unchecked Exception | /ʌnˈtʃekt ɪkˈsepʃn/ | 非受检异常,RuntimeException,无需声明 |
| Serializable | /ˌseriəˈlaɪzəbl/ | 序列化,对象转字节流 |
| Deserialization | /ˌdiːseriəlaɪˈzeɪʃn/ | 反序列化,字节流转回对象 |
| HashMap | /hæʃ mæp/ | 哈希表,数组+链表+红黑树,JDK8链表长度>8转红黑树 |
| HashTable | /hæʃ ˈteɪbl/ | 线程安全哈希表,方法加synchronized,效率低 |
| ConcurrentHashMap | /kənˈkɜːrənt hæʃ mæp/ | 并发哈希Map,JDK7分段锁、JDK8 CAS+sync |
| ArrayList | /əˈreɪlɪst/ | 数组列表,随机访问快,插入删除慢 |
| LinkedList | /ˈlɪŋkt lɪst/ | 双向链表,随机访问慢,头尾插入性能好 |
| BlockingQueue | /ˈblɑːkɪŋ kjuː/ | 阻塞队列,线程池核心组件,满/空时阻塞 |
| ForkJoin | /fɔːrk dʒɔɪn/ | 分治线程框架,任务拆分合并,工作窃取 |
| Work Stealing | /wɜːrk ˈstiːlɪŋ/ | 工作窃取,空闲线程偷取其他线程队列任务 |
二、Kotlin 高频面试
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| Kotlin | /ˈkɑːtlɪn/ | JetBrains开发,Android官方首选语言,兼容Java |
| Null Safety | /nʌl ˈseɪfti/ | 空安全,编译期管控空指针,?可空、!!非空断言 |
| Nullable Type | /ˈnʌləbl taɪp/ | 可空类型,类型后带? |
| Non-Null Type | /nɑːn nʌl taɪp/ | 非空类型,Kotlin默认不可为null |
| Smart Cast | /smɑːrt kæst/ | 智能类型转换,is判断后自动转型 |
| Data Class | /ˈdeɪtə klæs/ | 数据类,自动生成equals、hashCode、toString、copy |
| Sealed Class | /siːld klæs/ | 密封类,受限继承,子类只能同文件,适合状态管理 |
| Enum Class | /ɪˈnʌm klæs/ | 枚举类 |
| Object | /ˈɑːbdʒekt/ | object关键字:单例、伴生对象 |
| Companion Object | /kəmˈpæniən ˈɑːbdʒekt/ | 伴生对象,替代Java静态成员 |
| Extension Function | /ɪkˈstenʃn ˈfʌŋkʃn/ | 扩展函数,不修改源码给类新增方法,静态解析 |
| Lambda | /ˈlæmdə/ | Lambda表达式,匿名函数,函数式编程 |
| Higher-Order Function | /ˈhaɪər ˈɔːrdər ˈfʌŋkʃn/ | 高阶函数,参数或返回值是函数 |
| Inline Function | /ˈɪnlaɪn ˈfʌŋkʃn/ | 内联函数,编译时拷贝代码到调用处,减少函数开销 |
| Crossinline | /ˈkrɔːsɪnlaɪn/ | 禁止lambda被非内联函数捕获 |
| Noinline | /noʊˈɪnlaɪn/ | 标记lambda不内联 |
| Reified | /ˈriːɪfaɪd/ | 具体化泛型,内联函数中获取泛型T,突破类型擦除 |
| Coroutine | /ˌkɔːrəˈtiːn/ | 协程,轻量级线程,用户态调度,suspend挂起 |
| Suspend Function | /səˈspend ˈfʌŋkʃn/ | 挂起函数,只能在协程内调用,不阻塞线程 |
| Continuation | /kənˌtɪnjuˈeɪʃn/ | 续体,挂起后保存上下文,用于恢复执行 |
| Dispatcher | /dɪˈspætʃər/ | 调度器,指定协程执行线程:Main、IO、Default、Unconfined |
| Job | /dʒɑːb/ | 协程任务句柄,支持取消、等待 |
| Deferred | /dɪˈfɜːrd/ | 带返回值Job,await()等待结果 |
| Scope | /skoʊp/ | 协程作用域,管理协程生命周期:GlobalScope、lifecycleScope、viewModelScope |
| Flow | /floʊ/ | 冷流,数据流,上游不发送则不工作,支持背压 |
| StateFlow | /steɪt floʊ/ | 热流,持有最新值,粘性,常用来替代LiveData |
| SharedFlow | /ʃerd floʊ/ | 热流,多播,可配置重播数,无默认值 |
| Backpressure | /ˈbækpreʃər/ | 背压,生产速度大于消费速度,Flow自带处理策略 |
| Modifier | /ˈmɑːdɪfaɪər/ | Kotlin修饰符:public/private/protected/internal,internal同模块可见 |
| Delegation | /ˌdelɪˈɡeɪʃn/ | 委托,by关键字,类委托、属性委托 |
| Lazy | /ˈleɪzi/ | 延迟初始化委托,懒加载,首次访问才初始化 |
| Lateinit | /leɪt ˈɪnɪt/ | 延迟初始化var,非空引用类型,初始化前访问抛异常 |
| Property Delegate | /ˈprɑːpərti ˈdelɪɡeɪt/ | 属性委托,把get/set交给第三方类 |
| Infix | /ˈɪnfɪks/ | 中缀表达式,单个参数函数,可以省略点和括号 |
| Operator Overloading | /ˈɑːpəreɪtər ˌoʊvərˈloʊdɪŋ/ | 运算符重载,operator关键字 |
| Destructuring Declaration | /ˌdiːˈstrʌktʃərɪŋ ˌdekləˈreɪʃn/ | 解构声明,对象字段批量赋值变量 |
三、Dart & Flutter 面试
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| Dart | /dɑːrt/ | Dart语言,谷歌开发,Flutter原生语言 |
| JIT | /ˌdʒeɪ aɪ ˈtiː/ | Just In Time,即时编译,开发期支持热重载 |
| AOT | /ˌeɪ oʊ ˈtiː/ | Ahead Of Time,提前编译,发布编译成机器码,高性能 |
| Hot Reload | /hɑːt ˌriːˈloʊd/ | 热重载,修改代码不用重启App,注入更新 |
| Hot Restart | /hɑːt ˌriːˈstɑːrt/ | 热重启,重建整个App状态,比重载彻底 |
| Isolate | /ˈaɪsəleɪt/ | 隔离区,Dart并发单元,不共享内存,通过Port通信 |
| Event Loop | /ɪˈvent luːp/ | 事件循环,Dart单线程模型,Microtask队列、Event队列 |
| Microtask | /ˈmaɪkroʊtæsk/ | 微任务队列,优先级高于普通事件队列 |
| Future | /ˈfjuːtʃər/ | 异步任务,代表未来完成结果,单次回调 |
| Stream | /striːm/ | 流,异步序列,持续多个数据,分单订阅/多订阅 |
| Async/Await | /əˈsɪŋk əˈweɪt/ | 异步语法糖,基于Future,同步写法写异步 |
| Const | /kɑːnst/ | 编译期常量,对象不可变,相同const复用实例 |
| Final | /ˈfaɪnl/ | 运行期常量,变量只能赋值一次,对象本身可变 |
| Factory Constructor | /ˈfæktri kənˈstrʌktər/ | 工厂构造函数,可以返回缓存实例、子类 |
| Redirecting Constructor | /ˌriːdəˈrektɪŋ kənˈstrʌktər/ | 重定向构造,调用本类其他构造器 |
| Mixin | /ˈmɪksɪn/ | 混入,复用代码,with关键字,解决多继承痛点 |
| Generics | /dʒəˈnerɪks/ | Dart泛型,运行时保留泛型信息,和Java类型擦除不一样 |
| Null Safety(Dart2.12+) | /nʌl ˈseɪfti/ | Dart空安全,可空?、late、required |
| Late | /leɪt/ | 延迟初始化,告诉编译器变量后续一定会赋值 |
| Typedef | /ˈtaɪpdɛf/ | 类型别名,给函数类型起名字 |
四、Android SDK & Jetpack & UI
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| Android | /ˈændrɔɪd/ | 安卓 |
| APK | /ˌeɪ piː ˈkeɪ/ | Android Package,安卓安装包 |
| AAB | /ˌeɪ eɪ ˈbiː/ | Android App Bundle,Google发布包,动态拆分资源 |
| Manifest | /ˈmænɪfest/ | AndroidManifest.xml,清单文件,声明组件、权限 |
| Activity | /ækˈtɪvəti/ | 页面组件,用户交互窗口,生命周期、任务栈管理 |
| Service | /ˈsɜːrvɪs/ | 服务,后台执行任务,无UI |
| BroadcastReceiver | /ˈbrɔːdkæst rɪˈsiːvər/ | 广播接收器,接收系统/自定义广播事件 |
| ContentProvider | /ˈkɑːntent prəˈvaɪdər/ | 内容提供者,跨进程共享数据组件 |
| Intent | /ɪnˈtent/ | 意图,组件间通信载体,显式/隐式Intent |
| IntentFilter | /ɪnˈtent fɪltər/ | 意图过滤器,匹配隐式Intent |
| Task | /tæsk/ | 任务栈,Activity后进先出栈 |
| Lifecycle | /ˈlaɪfsaɪkl/ | 生命周期,组件从创建到销毁回调 |
| ViewModel | /ˈvjuːmɑːdl/ | 视图模型,生命周期独立于配置变更,保存页面数据 |
| LiveData | /laɪv ˈdeɪtə/ | 可观察数据持有者,生命周期感知,自动防泄漏 |
| Room | /ruːm/ | Jetpack ORM数据库框架,SQLite封装,编译期校验SQL |
| WorkManager | /ˈwɜːrkˌmænɪdʒər/ | 任务调度,兼容各版本,适合约束型后台任务 |
| Navigation | /ˌnævɪˈɡeɪʃn/ | Navigation组件,单Activity架构,路由管理 |
| DataBinding | /ˈdeɪtəˌbaɪndɪŋ/ | 数据绑定,xml绑定变量,支持表达式 |
| ViewBinding | /vjuː ˈbaɪndɪŋ/ | 视图绑定,轻量,自动生成绑定类,无表达式 |
| RecyclerView | /ˌriːˈsaɪklər vjuː/ | 复用列表,ViewHolder回收复用,高性能列表 |
| ViewHolder | /vjuː ˈhoʊldər/ | 视图持有者,缓存item view,避免频繁inflate |
| LayoutManager | /ˈleɪaʊt ˈmænɪdʒər/ | 布局管理器,控制RecyclerView排列:线性、网格、瀑布流 |
| Adapter | /əˈdæptər/ | 适配器,数据源和视图中间层 |
| View | /vjuː/ | 视图,UI基础单元,绘制、事件分发 |
| ViewGroup | /vjuː ɡruːp/ | 视图组,View子类,可以包含子View(布局容器) |
| Measure | /ˈmeʒər/ | 测量,onMeasure,计算View宽高 |
| Layout | /ˈleɪaʊt/ | 布局,onLayout,确定子View位置 |
| Draw | /drɔː/ | 绘制,onDraw,Canvas绘制内容 |
| Event Dispatch | /ɪˈvent dɪˈspætʃ/ | 事件分发:dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent |
| Touch Slop | /tʌtʃ slɑːp/ | 触摸阈值,系统最小滑动距离,区分点击和滑动 |
| VelocityTracker | /vəˈlɑːsəti ˈtrækər/ | 速度追踪,获取滑动速率,用于Fling |
| Scroller | /ˈskroʊlər/ | 滚动计算器,平滑滚动辅助,不自己移动View |
| Choreographer | /ˌkɔːriˈɑːɡrəfər/ | 编舞师,接收VSync信号,驱动UI绘制 |
| VSync | /ˌviː sɪŋk/ | Vertical Synchronization,垂直同步,屏幕刷新信号 |
| Surface | /ˈsɜːrfɪs/ | Surface,绘图缓冲区,独立于View,视频/相机渲染 |
| SurfaceView | /ˈsɜːrfɪs vjuː/ | SurfaceView,Surface+View,双缓冲,适合视频 |
| TextureView | /ˈtekstʃər vjuː/ | 纹理View,Surface内容渲染到纹理,可以做变换动画 |
| Canvas | /ˈkænvəs/ | 画布,绘图对象 |
| Paint | /peɪnt/ | 画笔,颜色、样式、抗锯齿 |
| Matrix | /ˈmeɪtrɪks/ | 矩阵,图形变换:平移缩放旋转倾斜 |
| Bitmap | /ˈbɪtmæp/ | 位图,像素图片,内存大户,OOM重灾区 |
| Drawable | /drɔːəbl/ | 可绘制对象,shape、图片、矢量图等抽象绘图资源 |
| Vector Drawable | /ˈvektər drɔːbl/ | 矢量图,xml路径,无损缩放 |
| Density | /ˈdensəti/ | 屏幕密度,dpi |
| DPI | /ˌdiː piː ˈaɪ/ | Dot Per Inch,每英寸像素点 |
| DP / Dip | /ˌdiː ˈpiː / dɪp/ | Density-independent pixel,密度无关像素,适配核心单位 |
| SP | /ˌes ˈpiː/ | Scale-independent pixel,字体单位,跟随系统字体缩放 |
| PX | /ˌpiː ˈeks/ | Pixel,屏幕真实像素点 |
| Configuration | /kənˌfɪɡjəˈreɪʃn/ | 配置变更:横竖屏、语言、字体大小,默认重建Activity |
| SavedStateHandle | /seɪvd steɪt ˈhændl/ | 保存状态句柄,ViewModel保存跨重建临时数据 |
| Permission | /pərˈmɪʃn/ | 权限,普通权限、危险权限、特殊权限 |
| Runtime Permission | /ˈrʌntaɪm pərˈmɪʃn/ | 运行时权限,Android6+危险权限动态申请 |
| Foreground Service | /ˈfɔːrɡraʊnd ˈsɜːrvɪs/ | 前台服务,常驻通知栏,优先级高不容易被杀 |
| Background Restriction | /ˈbækɡraʊnd rɪˈstrɪkʃn/ | 后台限制,高版本Android严控后台,省电策略 |
五、Android Framework & 底层 IPC
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| Zygote | /ˈzaɪɡoʊt/ | 孵化器进程,Android第一个用户进程,孵化App进程,预加载类 |
| SystemServer | /ˈsɪstəm ˈsɜːrvər/ | 系统服务进程,运行AMS、WMS、PMS等核心系统服务 |
| AMS | /ˌeɪ em ˈes/ | ActivityManagerService,Activity管理、任务栈、进程调度 |
| WMS | /ˌdʌbljuː em ˈes/ | WindowManagerService,窗口管理、Z序、输入法、分屏 |
| PMS | /ˌpiː em ˈes/ | PackageManagerService,包管理,解析APK、权限、安装卸载 |
| IMS | /ˌaɪ em ˈes/ | InputManagerService,输入事件管理,触摸按键分发 |
| SurfaceFlinger | /ˈsɜːrfɪs flɪŋər/ | 合成服务,接收各个Surface,合成送屏幕显示 |
| Binder | /ˈbaɪndər/ | Android IPC核心驱动,C/S模型,内存映射mmap |
| IPC | /ˌaɪ piː ˈsiː/ | Inter-Process Communication,跨进程通信 |
| MMAP | /mæp/ | Memory Map,内存映射,Binder零拷贝关键 |
| Parcel | /ˈpɑːrsl/ | 序列化载体,Android跨进程数据载体 |
| Parcelable | /ˈpɑːrsləbl/ | Parcel序列化接口,Android原生序列化,效率高于Serializable |
| AIDL | /ˌeɪ aɪ diː ˈel/ | Android Interface Definition Language,Binder接口定义语言 |
| Messenger | /ˈmesɪndʒər/ | 基于Binder封装,串行消息IPC,简单,不支持并发 |
| SharedMemory | /ʃerd ˈmeməri/ | 共享内存,高性能IPC,无拷贝,同步需要自己处理 |
| Process State | /ˈprɑːses steɪt/ | 进程优先级:前台、可见、服务、缓存、空进程,LMK杀进程 |
| LMK | /ˌel em ˈkeɪ/ | Low Memory Killer,低内存杀手,根据OOM adj杀进程释放内存 |
| OOM Adj | /ˌoʊ em ˈædʒ/ | 内存优先级分值,数值越大越容易被杀 |
| ART | /ˌeɪ ɑːr ˈtiː/ | Android Runtime,Android5+运行时,替代Dalvik,AOT/JIT混合编译 |
| Dalvik | /ˈdælvɪk/ | 旧安卓虚拟机,寄存器虚拟机,执行dex字节码 |
| DEX | /dɛks/ | Dalvik Executable,dex文件,ART/Dalvik执行文件 |
| ODEX / VDEX | /ˈoʊdɛks / ˈviːdɛks/ | 优化dex,提前提取校验信息加快加载 |
| PathClassLoader | /pæθ ˈklɑːsloʊdər/ | 默认App类加载器,只能加载已安装APK |
| DexClassLoader | /ˈdɛks klɑːsloʊdər/ | 加载外部dex,插件化、热修复常用 |
| App Startup | /æp ˈstɑːrtʌp/ | Jetpack启动库,管控初始化依赖,优化启动速度 |
| ANR | /ˌeɪ en ˈɑːr/ | Application Not Responding,应用无响应,主线程阻塞超时触发 |
| Main Thread / UI Thread | /meɪn θred / ˌjuː ˈaɪ θred/ | 主线程/UI线程,只能UI操作,禁止耗时任务 |
| Handler | /ˈhændlər/ | 消息机制,线程间通信,Message、MessageQueue、Looper |
| Looper | /ˈluːpər/ | 循环器,无限循环取MessageQueue消息分发 |
| MessageQueue | /ˈmesɪndʒər kjuː/ | 消息队列,单链表,按when时间排序 |
| Message | /ˈmesɪdʒ/ | 消息对象,what、obj、arg1、arg2,池化复用 |
| ThreadLocal | /θred ˈloʊkl/ | 线程本地存储,每个线程独立副本,Handler底层存Looper |
| IdleHandler | /ˈaɪdl ˈhændlər/ | 空闲消息,队列无任务时执行,适合延迟轻量任务 |
六、性能优化 & 内存 & 编译打包
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| Memory Leak | /ˈmeməri liːk/ | 内存泄漏,对象不再使用但GC无法回收 |
| Shallow Memory | /ˈʃæloʊ ˈmeməri/ | 浅内存,对象本身占用内存 |
| Retained Memory | /rɪˈteɪnd ˈmeməri/ | 保留内存,对象+所有引用子对象总内存 |
| Heap Dump | /hiːp dʌmp/ | 堆快照,内存分析文件,MAT/Profiler |
| MAT | /ˌem eɪ ˈtiː/ | Memory Analyzer Tool,Eclipse内存分析工具 |
| OOM | /ˌoʊ oʊ ˈem/ | Out Of Memory,内存溢出,堆空间耗尽分配失败 |
| Jank | /dʒæŋk/ | 卡顿,掉帧,UI绘制耗时超过一帧预算 |
| Frame Rate | /freɪm reɪt/ | 帧率 |
| Frame Drop | /freɪm drɑːp/ | 掉帧 |
| Systrace | /ˈsɪstreɪs/ | 系统追踪,性能工具,看线程、绘制、锁、IO耗时 |
| Perfetto | /pɜːrˈfɛtoʊ/ | 新一代性能追踪,替代Systrace |
| Profiler | /ˈproʊfaɪlər/ | 性能剖析器,AS内置CPU、内存、网络 |
| TraceView | /treɪs vjuː/ | 方法耗时追踪工具 |
| StrictMode | /strɪkt moʊd/ | 严苛模式,检测主线程IO、内存泄漏违规 |
| Baseline Profile | /ˈbeɪslaɪn ˈproʊfaɪl/ | 基线配置文件,ART提前编译热点路径,提升启动速度 |
| R8 | /ɑːr eɪt/ | 代码压缩混淆器, shrink、obfuscate、optimize,替代Proguard |
| ProGuard | /ˈproʊɡɑːrd/ | 旧混淆工具,压缩、混淆、优化 |
| Shrink | /ʃrɪŋk/ | 代码/资源缩减,删除未引用代码资源 |
| Obfuscate | /ˈɑːbfəskeɪt/ | 混淆,重命名类、方法名,增加逆向难度 |
| Lint | /lɪnt/ | 静态代码检查工具,发现代码隐患、规范问题 |
| Dynamic Feature Module | /daɪˈnæmɪk ˈfiːtʃər ˈmɑːdʒuːl/ | 动态特性模块,Google Play按需模块化 |
七、网络 & 序列化
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| HTTP | /ˌeɪtʃ tiː tiː ˈpiː/ | HyperText Transfer Protocol,超文本传输协议 |
| HTTPS | /ˌeɪtʃ tiː tiː piː ˈes/ | HTTP+TLS,加密传输 |
| TLS | /ˌtiː el ˈes/ | 传输层安全协议 |
| TCP | /ˌtiː siː ˈpiː/ | 传输控制协议,面向连接、可靠、有序 |
| UDP | /ˌjuː diː ˈpiː/ | 用户数据报协议,无连接,不可靠,速度快 |
| OkHttp | /oʊk eɪtʃ ˌtiː tiː piː/ | 安卓主流网络库,连接池、拦截器、缓存 |
| Retrofit | /ˈretrəfɪt/ | 基于OkHttp封装,注解式网络请求框架 |
| Interceptor | /ˌɪntərˈseptər/ | 拦截器,请求响应拦截,日志、签名、Token |
| Connection Pool | /kəˈnekʃn puːl/ | 连接池,复用TCP连接,减少握手开销 |
| DNS | /ˌdiː en ˈes/ | 域名解析 |
| WebSocket | /ˈweb sɑːkɪt/ | 长连接,双向实时通信 |
| RESTful | /rɛstfəl/ | REST风格接口,资源为中心,GET/POST/PUT/DELETE |
| JSON | /ˈdʒeɪsən/ | JavaScript Object Notation,轻量文本序列化 |
| Gson | /dʒiː sɑːn/ | 谷歌JSON解析库 |
| Moshi | /ˈmoʊʃi/ | Square JSON库,Kotlin友好 |
| ProtoBuf | /ˈproʊtəʊ bʌf/ | Protocol Buffer,二进制序列化,体积小、速度快 |
| FlatBuffer | /flæt ˈbʌfər/ | 谷歌二进制序列化,无需解析直接访问,适合游戏视频 |
八、架构 & 设计模式 & DI
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| MVC | /ˌem viː ˈsiː/ | Model-View-Controller,模型视图控制器,Android容易耦合 |
| MVP | /ˌem viː ˈpiː/ | Model-View-Presenter,Presenter解耦View和Model,接口多 |
| MVVM | /ˌem viː viː ˈem/ | Model-View-ViewModel,数据驱动,Jetpack主推 |
| Clean Architecture | /kliːn ˈɑːrkɪtektʃər/ | 整洁架构,依赖向内,外层依赖内层 |
| Repository | /rɪˈpɑːzətɔːri/ | 仓库层,统一数据源入口(本地+远程) |
| Single Source of Truth | /ˈsɪŋɡl sɔːrs əv truːθ/ | 单一可信源,UI只观察本地仓库数据 |
| SOLID | /ˈsɑːlɪd/ | 面向对象五大设计原则 |
| SRP | /ˌes ɑːr ˈpiː/ | Single Responsibility 单一职责 |
| OCP | /ˌoʊ siː ˈpiː/ | Open Closed 开闭原则 |
| LSP | /ˌel es ˈpiː/ | Liskov Substitution 里氏替换 |
| ISP | /ˌaɪ es ˈpiː/ | Interface Segregation 接口隔离 |
| DIP | /ˌdiː aɪ ˈpiː/ | Dependency Inversion 依赖倒置 |
| Design Pattern | /dɪˈzaɪn ˈpætərn/ | 设计模式 |
| Singleton | /ˈsɪŋɡəltən/ | 单例模式 |
| Builder | /ˈbɪldər/ | 建造者模式 |
| Factory | /ˈfæktri/ | 工厂模式(简单、工厂方法、抽象工厂) |
| Observer | /əbˈzɜːrvər/ | 观察者模式 |
| Strategy | /ˈstrætədʒi/ | 策略模式 |
| Decorator | /ˈdekəreɪtər/ | 装饰器模式 |
| Adapter Pattern | /əˈdæptər ˈpætərn/ | 适配器模式 |
| Chain of Responsibility | /tʃeɪn əv rɪˌspɑːnsəˈbɪləti/ | 责任链(OkHttp拦截器就是典型) |
| Dependency Injection | /dɪˈpendənsi ɪnˈdʒekʃn/ | 依赖注入DI |
| Dagger / Hilt | /ˈdæɡər / hɪlt/ | Dagger编译期DI,Hilt是Dagger Android封装 |
九、数据结构 & 算法基础
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| Time Complexity | /taɪm kəmˈpleksəti/ | 时间复杂度 O notation |
| Space Complexity | /speɪs kəmˈpleksəti/ | 空间复杂度 |
| Linked List | /ˈlɪŋkt lɪst/ | 链表 |
| Binary Tree | /ˈbaɪnəri triː/ | 二叉树 |
| BST | /ˌbiː es ˈtiː/ | Binary Search Tree 二叉搜索树 |
| AVL Tree | /ˌeɪ viː ˈel triː/ | 平衡二叉搜索树 |
| Red-Black Tree | /rɛd blæk triː/ | 红黑树,HashMap底层 |
| Hash Table | /hæʃ ˈteɪbl/ | 哈希表 |
| Hash Collision | /hæʃ kəˈlɪʒn/ | 哈希冲突 |
| Queue | /kjuː/ | 队列 FIFO |
| Graph | /ɡræf/ | 图 |
| Context Switch | /ˈkɑːntekst swɪtʃ/ | 上下文切换,线程切换开销 |
十、插件化、热修复、跨端
| 名词 | 音标 | 释义&面试解释 |
|---|---|---|
| Pluginization | /ˌplʌɡɪnaɪˈzeɪʃn/ | 插件化,运行加载未安装APK |
| HotFix | /hɑːt fɪks/ | 热修复,线上修复bug,无需发版 |
| Tinker | /ˈtɪŋkər/ | 微信Tinker,差分包热更新 |
| Flutter | /ˈflʌtər/ | 谷歌跨端UI框架,Dart,自绘引擎Skia/Impeller |
| Skia | /ˈskiːə/ | 2D图形渲染引擎,Flutter、Android原生绘制引擎 |
| Impeller | /ɪmˈpelər/ | Flutter新一代渲染器,预编译着色器,减少卡顿 |
| React Native | /riˈækt ˈneɪtɪv/ | RN跨端,JS桥调用原生 |
| JS Bridge | /ˌdʒeɪ es brɪdʒ/ | JS桥,H5和原生通信 |
结语
面试的时候,面试官不仅会问你这个名词是什么,也会让你口头解释
建议:先读准发音,再理解原理,最后用自己的话复述
本文持续更新,适合 Android 初级、中级、高级工程师面试复习