android常问面试总结

android面试重点:

1.app启动流程

2.Handler机制

3.Binder机制

4.线程

5.事件分发机制

6.HashMap原理

7.android性能优化

8.android常见的数据结构与算法

一、 android相关

1.app启动流程

  1. 如何做启动优化?
  2. 冷启动、懒加载、丢线程池同步处理(如何知道全部完成)

2.android进程间通信

  1. 进程和线程的概念和关系
  2. 如何启动多进程
  3. 为何需要IPC
  4. android中的IPC方式和优缺点?
  5. Binder机制的作用和原理
  6. AIDL
  7. 进程间通信的方式有哪些

3.Handler机制

4.Android中的多线程有哪些?

5.Activity相关

  1. activity生命周期
  2. 启动模式以及除了LaunchMode外还有哪些实现方式
  3. activity常用的标记位Flags
  4. onSaveInstanceState()属于生命周期方法吗?什么情况下会被调用?
  5. Activity跟window、View之间的关系
  6. 如何启动其他应用的Activity

6.Fragment相关

  1. Fragment生命周期
  2. Fragment add和replace区别
  3. FragmentPagerAdapter和FragmentStatePagerAdapter区别和使用场景

7.广播BroadcastReceiver

  1. 广播分类
  2. 广播注册方式
  3. 广播发送接收原理

8.Service

  1. Service生命周期
  2. Service两种启动方式和区别
  3. 如何保证service不被杀死
  4. 能否在service中做耗时操作
  5. Service和IntentService区别
  6. AMS(ActivityManagerService)

9.ContentProvider

1.android有哪些存储数据的方式?

10.自定义View和ViewGroup原理和流程

  1. 工作流程
  2. 绘制流程
  3. 如何自定义一个View?

11.事件分发机制?滑动冲突解决?

12.SurfaceView与普通View的区别?

13.RecyclerView和ListView区别和优化?

  1. RecyclerView有几层缓存?
  2. 如何让两个RecyclerView共用一个缓存

14.android 动画

  1. 属性动画、补间动画、帧动画区别和使用场景

15.图片框架

  1. Glide、Picasso、Fresco比较?
  2. 三级缓存?
  3. LruCache和DiskLruCache原理?
  4. 如何设计一个图片框架?

16.Bitmap压缩、优化处理、格式大小计算相关(RGB_565、ARGB_8888等),长图加载(世界地图、清明上河图)

17.三方框架原理(okHttp、Retrofit、RxJava、ButterKnife、EventBus、LeakCanary)

  1. Retrofit在okHttp上做了哪些封装?动态代理和静态代理区别?如何实现?
  2. RxJava线程切换原理

18.内存溢出和内存泄漏(常见内存泄漏情况和解决方案)

19.android性能优化

  1. 布局优化
  2. 绘制优化
  3. 内存泄漏优化
  4. 响应速度优化和ANR日志分析
  5. 列表ListView、RecyclerView和Bitmap优化
  6. 线程优化
  7. 性能优化建议
  8. android性能优化工具

20.组件化、插件化、热更新

  1. 如何实现组件化
  2. Router实现原理?以及它如何实现组件间通信
  3. 插件化原理
  4. 热更新原理
  5. android中的类加载器

21.开发模式mvc、mvp、mvvm

  1. 区别和使用场景

22.对后台返回的Json格式处理(对Gson、fastJson的熟练使用以及对java泛型的掌握)

23.android应用保活

24.android打包流程?

  1. apk里面有哪些东西
  2. 签名原理

25.jni ndk相关

26.代码混淆

27.屏幕适配方案

28.android系统架构

29.android各个版本特性以及适配(6.0 7.0 8.0 9.0 10.0)

30.android WebView

  1. js与android交互
  2. webview中有哪些漏洞

二、Java基础相关

1.面向对象思想

2.常见的数据结构

参考1

3.HashMap实现原理

  1. 内部数据结构的实现、扩容、存取操作
  2. 哈希碰撞、哈希计算、哈希映射
  3. 为什是头插法、扩容为什么是2的幂次
  4. HashMap HashTable ConcurrentHashMap区别
  5. hashMap jdk 1.7 1.8不同实现,Java8的链表转红黑树

4.线程和多线程相关

  1. volatile、synchronized、ReentrantLock、CAS区别
    ①上面几个的特性和使用场景
    ②CAS的ABA问题
    ③有哪些锁
  2. synchronized修饰实例方法和静态方法有啥不一样(对象锁和类锁)
  3. 线程常见的几种创建方式和区别
  4. 线程有几种状态
  5. wait()和sleep()、yield()、join()、interrupt()方法区别
  6. wait()的线程如何唤醒
  7. 线程池线程池的使用

5.常用到的设计模式

6.String、StringBuilder、StringBuffer区别

7.ClassLoader

8.深拷贝与浅拷贝

9.final、finally、finalize区别

  1. 为什么匿名内部类使用局部引用要用final

10.static关键字作用

11.注解

12.反射

13.Java虚拟机相关

  1. JVM类加载机制
  2. 垃圾回收算法对比
  3. Java虚拟机结构

14.Java四大引用(强引用、软引用、弱引用、需引用)

15.Java的泛型

  1. 区别
  2. 泛型擦除、通配符

16.接口和抽象类的区别

17.Exception和Error的区别

18.ArrayList和LinkedList的区别

19.ThreadLocal原理

三、计算机网络相关

1.http

  1. tcp有哪些状态
  2. 三次握手和四次挥手 为啥不是两次?
  3. http报文结构
  4. http常用状态码

2.https和http区别

3.浏览器输入一个url,按下回车网络传输的过程

4.网络架构

  1. 每层有哪些协议
  2. FTP相关原理
  3. TCP建立连接后,发包频率是怎样的?

5.加密方式

你可能感兴趣的:(android常问面试总结)