面试大纲
1.java基础、面向对象、集合、线程使用;
2.Android 机型适配、SDK适配、内存优化、内存溢出、内存泄漏;3.MVC/MVP/MVVM的使用场景;
4.了解并能使用最新流行开源库RXjava+Retrofit+OKHttp、Glide、EventBus等5.JNI及NDK的使用、熟悉Framework。
频繁面试题
1.面向对象(OOP)
2.数据类型
3.equal和==的区别
4.字符串运行速度:StringBuilder、StringBuffer、 String
5.Queue 队列、Stack 栈
6.ListView机制
7.Fragment生命周期
8.四大引用类型
9.线程、进程及其通信方式
10.PackageManagerService
11.binder机制
12.launcher的实现
13.Android 版本特性
14.BroadcastReceiver广播
15.RecycleView
16.各种集合比较SparseArray、HashMap、ArrayMap、LinkedList、ArrayList
17.SQLite升级
18.Bitmap
19.Handler机制
20.性能优化技巧
21.ANR
22.自定义View
23.MVC、MVP、MVVM三种架构设计
24.APP 启动流程
25.插件化
26.Kotlin 多平台应用的静态编程语言
27.Framework 工作原理
28.Android 屏幕适配
29.事件分发机制
30.Android 动画分类:视图,属性,帧,gif
31.Android 进程
32.Android 五大存储方式
33.屏幕旋转Activity生命周期
34.Activity 四大启动模式
35.CPU、GPU工作原理
36.UI卡顿原因
37.Application的生命周期
38.如何避免因引入的开源库导致的安全性和稳定性?
39.简单的音频/视频格式
40.线程同步的方法
41.线程安全的单例
42.Serializable、Parcelelable
43.Service启动方式和生命周期
44.Android 常见布局
45.Http、Https、Volley、OkHttp、RxJava + Retrofit + OkHttp、TCP、UDP
46.如何节省内存使用,主动回收内存?
47.Activity如何生成View?
48.为什么要使用多线程?
49.现场保护
50.内存溢出、内存泄漏
51.JNI和NDK
52.常用的设计模式及其实现思想和作用
53.HashMap、 HashTable、HashSet的异同
54.Android 中内存泄漏原因及优化方案
55.LeakCanary 内存泄漏检查的开源工具
56.多线程、线程池
57.腾讯 Bugly
58.Glide
59.Fresco
60.React