Android面试题汇总

570 阅读4分钟

面试问题汇总

笔者面试经历,仅作记录以方便复盘。

Android

  1. handler 一个线程中可以有多少个handler多少个looper

    Handler的postdelay准时吗、同步屏障

    target为null时,认为是同步屏障,取异步消息;

    Idle Handler:考察深度,next

    Looper,一个线程只有一个,如何保证,ThreadLocal,

  2. view绘制

  3. 事件分发:action-cancel如何产生如何消费、事件拦截前后事件流的变化

  4. 三级缓存、glide缓存机制

  5. RecycleView复用机制、对比listview

  6. 常见布局:cotrantsLayout限制布局

  7. 遇到的内存泄漏

  8. MVC MVP MVVM对比选择

  9. dp sp dip

  10. 延迟加载viewstub、include、merge

  11. contentprovider与ContentResolver区别

  12. 四大组件及职责

  13. activity启动模式

  14. service两种启动方式、生命周期区别(什么时候创建什么时候销毁)、多处调用同一个service,什么时候销毁

    IntentService

  15. 判断app在前台和后台的方法:application中注册全局activity的lifecycle的callback,判断onStop(),可以监控第三方sdk的activity;如果使用基类,所有activity继承基类activity,只能监控自己的界面

  16. 多进程:有一个新的activity或者service放到子进程中,创建子进程,在manifiest文件中,service的属性process,设置子进程名字

  17. 多进程通信:contentprovider、broadcast、aidl(用的多)

  18. Webview:与前端页面交互,加注解、灵活部署

  19. Handler内存泄漏:activity中使用handler,静态声明handler,弱引用,ondestory()中消息清空

  20. apk包优化:AS proguard混淆、分析器apk analysis、资源文件大小缩小(设计师的图片太大,自己缩小下在引用;适配主流机型,删除xxxhdpi包下图片、so库,删除x86库)、

  21. Bitmap内存占用计算,加载图片

  22. Invalidate()和postInvalidate()的区别

  23. ViewTouch事件

  24. 广播的两种注册方式 blog.csdn.net/u011484134/…

  25. 重启Activity时的生命周期

  26. 结合微信说一下activity的启动模式

  27. onTouch()、 onTouchEvent()和onCLick()有什么关系?

  28. activity启动流程:Instument

    juejin.cn/post/688308…

  29. 任务栈、返回栈:网易云音乐跳转到淘宝,点击返回返回的淘宝主页

  30. 自定义view方法

  31. Android四大组件,对哪个最熟?activity、横竖屏切换时生命周期?不重建activity:cofigchanges

    一个activity,两个fragment之间交换数据用什么方式最合适?

Java

  1. 传参:值引用和地址引用

  2. for循环调用顺序

  3. 设计栈、出错设计

  4. 多线程开发、线程池参数含义、生产者消费者模式

  5. 抽象类与接口

  6. hashmap如何添加元素、是否线程安全、hashtable、concurrenthashmap为啥性能好,Hashmap如何解决hash冲突、默认大小、扩容优化

    hashmap存储1000条会不会扩容,扩容因子0.75, 设置大小为1000,实际容量是1024,因为大小为2的N次方 , 链表+数组后面变成树+数组

  7. Java GC算法

  8. java 线程提前停止运行、interrupt()、

  9. 线程安全、用过哪些锁、volitate含义、CAS

  10. 死锁产生条件、工作中死锁产生的场景及如何解决、循环等待一定会产生死锁吗

  11. Synchronized使用方式及对谁加锁、与volitale区别、voltale能保证原子性?有序性?

计算机知识

  1. get 与post区别
  2. https非对称加密和对称加密、离线推送原理
  3. TCPIP的四层结构、TCP拥塞控制、websocket、socket、socket一端异常断开,另一端怎么处理
  4. tcp udp
  5. https与http区别 非对称加密针对密钥,对称加密针对数据

第三方框架

  1. 头条autosize实现原理

  2. Leakcancary使用后发现的内存泄漏,dialog

  3. okhttp特点(其他库没有的)、retrofit、替换底层DNS?retrofit类型安全?callAdapter、convertAdapter作用、常见的异步编程rxjava

    retrofit, okhttp拦截器责任链模式 5大拦截器、2层用户自定义拦截器(应用拦截器和网络拦截器)rxjava 包装者模式,observerOn每次都有效, subOn只有第一次有效

    okhttp socket短链接长连接、android如何保持一个socket链接、保活service、保持socket活跃度与服务器不断开、okhttp有相关功能吗?

  4. Eventbus 阅读源码、Eventbus 优缺点、A往B发消息,B收到之后告诉A,使用eventbus合适吗?用什么更合适?

其他

  1. Kotlin
    • 空指针怎么实现的 java空指针异常如何避免
    • 协程和进程的区别
  2. Flutter
    • 如何实现跨平台、 自己渲染的引擎;与原生通信使用messagechannel
    • 有看过吗?编译后apk中包含哪些东西?与原生交互?flutter view底层容器是啥?混合栈?
  3. Hybird开发
  4. 使用的设计模式
  5. davlink 和art
  6. git:merge rebase区别
  7. 线程 单核CPU与多核CPU区别
  8. AOP插桩