Android面经_150道安卓基础面试题答案解析

系列专栏:

安卓面经专栏:《Android面试题解析大全》 安卓面经目录详情:安卓面经_anroid面经_150道安卓基础面试题目录

嵌入式面经专栏:《嵌入式面经C++软件开发面经111道面试全解析》 嵌入式面经目录详情:111道嵌入式面经题全解析软件开发面经C++面经目录

alt

1份外卖价格助您提高安卓面试准备效率,为您面试保驾护航!!

目录

第一部分:四大组件篇

1、Activity

  • 请介绍Activity的生命周期?⭐⭐⭐⭐⭐
  • 请介绍Activity的4种启动模式?⭐⭐⭐⭐
  • 请说下切换横竖屏时 Activity的生命周期变化?⭐⭐⭐⭐

2、Service

  • 请介绍Service的启动方式,启动方式的区别?⭐⭐⭐⭐⭐⭐
  • 请介绍Service的生命周期?⭐⭐⭐⭐⭐
  • Activity、Service、intent之间的联系?⭐⭐⭐⭐
  • 在Activity和Service中创建Thread的区别?(进阶题)⭐⭐⭐
  • android进程的优先级?以及如何保证Service不被杀死?(进阶题)⭐⭐⭐⭐

3、BroadCast

  • 请介绍Android里广播的分类?⭐⭐⭐⭐
  • 程序A能否接收到程序B的广播?⭐⭐⭐
  • 请列举广播注册的方式,并简单描述其区别?⭐⭐⭐⭐⭐

4、内容提供者

  • 什么是内容提供者?⭐⭐⭐⭐⭐
  • 简单介绍下 ContentProvider 是如何实现数据共享的(原理)?⭐⭐⭐⭐
  • 说说 ContentProvider、ContentResolver、ContentObserver 之间的关系?⭐⭐⭐⭐
  • 说说如何创建自己应用的内容提供者的使用场景。⭐⭐⭐
  • 说说ContentProvider的权限管理。⭐⭐⭐
  • 为什么要使用通过ContentResolver类从而与ContentProvider类进行交互,而不直接访问ContentProvider类?⭐⭐⭐
  • ContentProvider的底层是采用Android中的Binder机制,既然已经有了binder实现了进程间通信了为什么还会需要contentProvider?⭐⭐⭐⭐

第二部分:Android基础知识篇

5、Context

  • 谈谈你对Activity的Context的认识?⭐⭐⭐⭐⭐
  • Application和Activity,Context的区别?⭐⭐⭐⭐⭐
  • getApplication()和getApplicationContext()的区别?⭐⭐⭐⭐
  • context错误用法有哪些?⭐⭐⭐
  • 如何正确使用Context,如何获取Context?⭐⭐⭐⭐
  • 一个应用程序有几个Context? ⭐⭐⭐⭐

6、Intent

  • 什么是Intent? ⭐⭐⭐⭐⭐
  • 显式Intent和隐式Intent的区别?⭐⭐⭐⭐
  • 在隐式启动中Intent可以设置多个action,多个category吗?⭐⭐⭐⭐
  • 隐式Intent的匹配规则?⭐⭐⭐⭐⭐
  • Activity之间传递数据的方式Intent是否有大小限制,如果传递的数据量偏大,有哪些方案?⭐⭐⭐

7、8、Handler异步消息机制

  • 请介绍下Handler消息机制 ⭐⭐⭐⭐⭐
  • Handler 引起的内存泄露原因以及最佳解决方案 ⭐⭐⭐⭐⭐
  • 为什么我们能在主线程直接使用 Handler,而不需要创建 Looper ? ⭐⭐⭐⭐⭐
  • Handler、Thread和HandlerThread的差别 ⭐⭐⭐⭐
  • 子线程中怎么使用 Handler? ⭐⭐⭐⭐
  • 为什么在子线程中创建 Handler 会抛异常?⭐⭐⭐⭐
  • Handler 里藏着的 Callback 能干什么?⭐⭐⭐
  • Handler 的 send 和 post 的区别?⭐⭐⭐⭐
  • 创建 Message 实例的最佳方式 ⭐⭐⭐
  • Message 的插入以及回收是如何进行的,如何实例化一个 Message 呢?⭐⭐⭐
  • 妙用Looper机制,或者你知道Handler机制的其他用途吗?⭐⭐⭐
  • Looper.loop()死循环一直运行是不是特别消耗CPU资源呢?不会造成应用卡死吗?⭐⭐⭐⭐⭐
  • MessageQueue 中如何等待消息?为何不使用 Java 中的 wait/notify 来实现阻塞等待呢?⭐⭐
  • 你知道延时消息的原理吗?⭐⭐⭐⭐
  • handler postDelay这个延迟是怎么实现的?⭐⭐⭐⭐
  • 如何保证在msg.postDelay情况下保证消息次序?⭐⭐⭐
  • 更新UI的方式有哪些 ⭐⭐⭐⭐
  • 线程、Handler、Looper、MessageQueue 的关系?⭐⭐⭐⭐
  • 多个线程给 MessageQueue 发消息,如何保证线程安全?⭐⭐⭐
  • View.post 和 Handler.post 的区别?⭐⭐⭐
  • 你知道 IdleHandler 吗?⭐⭐

9、HandlerThread

  • HandlerThread是什么?⭐⭐⭐⭐⭐
  • HandlerThread原理和使用场景?⭐⭐⭐⭐

10、AsyncTask

  • AsyncTask是什么?能解决什么问题 ⭐⭐⭐⭐
  • 给我谈谈AsyncTask的三个泛型参数作用以及它的一些方法作用。⭐⭐⭐
  • 给我说说AsyncTask的原理。⭐⭐⭐
  • 你觉得AsyncTask有不足之处吗?有何使用注意事项?⭐⭐⭐

11、IntentService

  • IntentService是什么?⭐⭐⭐⭐⭐
  • IntentService原理和使用场景?⭐⭐⭐⭐
  • IntentService和Service的区别 ⭐⭐⭐⭐⭐

12、Fragment

  • Fragment是什么?和Activity的联系?生命周期如何?⭐⭐⭐⭐⭐⭐
  • Activity和Fragment之间如何通讯?Fragment和Fragment之间如何通讯?⭐⭐⭐⭐⭐
  • Fragment的回退栈了解吗?⭐⭐⭐⭐
  • Fragment的使用方式⭐⭐⭐
  • 你有遇到过哪些关于Fragment的问题,如何处理的?⭐⭐⭐

13、Binder

  • 请介绍什么是Binder机制⭐⭐⭐⭐⭐
  • 请介绍Binder机制流程 ⭐⭐⭐⭐
  • Binder机制需要多少次内存拷贝 ⭐⭐⭐
  • Android有很多跨进程通信方法,为何选择Binder?⭐⭐⭐

14、AIDL

  • 请介绍什么是AIDL⭐⭐⭐⭐⭐
  • 有几种AIDL文件?⭐⭐⭐
  • 一个程序AIDL文件的数量? ⭐⭐
  • 你有没有使用过AIDL?谈谈你如何实现的? ⭐⭐⭐⭐
  • 知道AIDL语法中的定向tag吗?⭐⭐⭐
  • 你能不能简单描述AIDL实现的原理?⭐⭐⭐

15、SharedPreferences

  • SharedPreference是线程安全的吗?⭐⭐⭐
  • SharedPreference的apply和commit的区别?commit 一定会在主线程操作嘛?⭐⭐⭐⭐⭐
  • SharedPreferences 是如何初始化的,它会阻塞主线程吗?⭐⭐⭐
  • 每次获取 SP 对象真的会很慢吗?⭐⭐⭐
  • 在使用时需要注意哪些问题,以及有什么优化点呢?⭐⭐⭐⭐

16、线程池

  • 线程池的种类⭐⭐⭐⭐⭐
  • 线程池的优点⭐⭐⭐⭐
  • 平时当中使用案例⭐⭐⭐⭐
  • ThreadPoolExecutor类有了解吗?⭐⭐

第三部分:View相关篇

17、Activity、Window、DecorView以及ViewRoot层级关系

  • 请讲述Activity、Window、DecorView以及ViewRoot之间的层级关系⭐⭐⭐⭐⭐
  • DecorView什么时候可见?⭐⭐⭐⭐

18、触摸事件分发机制

  • 请介绍什么是事件分发机制,以及对应流程⭐⭐⭐⭐⭐
  • 谈谈你对MotionEvent的认识?Cancel事件是什么情况下触发的⭐⭐⭐
  • OnTouchListener & OnTouchEvent & OnClickListener三者之间的关系⭐⭐⭐⭐

19、View绘制流程

  • 请介绍View的三大绘制流程 ⭐⭐⭐⭐⭐
  • 你知道View绘制前的准备流程吗?⭐
  • 什么是MeasureSpec?⭐⭐⭐
  • 测量模式有哪三种?⭐⭐
  • 为什么有时候getMeasuredWidth获取值为0?⭐⭐
  • 绘制的顺序是怎么样?⭐⭐

20、自定义View

  • 自定义View的流程 ⭐⭐⭐⭐⭐
  • 自定义View需要重写哪些函数?说说你在自定义View时常常重写的一些方法? ⭐⭐⭐⭐
  • 自定义View的种类有哪些?给我说说你之前项目中的案例。⭐⭐⭐⭐
  • 说说自定义View中如何自定义属性?⭐⭐⭐
  • 自定义View如何处理padding?⭐⭐
  • 自定义View效率高于xml布局文件吗?⭐⭐
  • 自定义View什么时候需要处理wrap_content属性?怎么处理?⭐

第四部分:Android进阶篇

21、序列化

22、JNI/NDK

23、设计模式使用案例

24、APK启动流程

25、MVC、MVP、MVVM

  • 说说你对MVC、MVP、MVVM的理解,他们有什么区别和联系,如何演变的? ⭐⭐⭐⭐⭐
  • MVVM的优点和缺点 ⭐⭐⭐⭐
  • 为什么Activity旋转屏幕后ViewModel可以恢复数据 ⭐⭐
  • ViewModel 的实例缓存到哪儿了 ⭐⭐
  • 什么时候 ViewModel#onCleared() 会被调用 ⭐⭐

26、缓存机制

27、签名机制

28、注解

第五部分:Android性能优化篇

29、内存优化

30、卡顿优化

努力更新中,订阅后,提供技术交流,哪里不理解,私聊即可。

#许乔丹安卓面经##Android##安卓##安卓面经##Android面经#
全部评论
感觉大佬分享
点赞 回复 分享
发布于 2023-02-10 18:21 浙江
收藏了,有空就学习
点赞 回复 分享
发布于 2023-02-10 18:09 重庆

相关推荐

2025-12-12 19:01
南京航空航天大学 C++
秋招没咋投,准备 wxg 转正之后摆烂了。结果不堪字节 HR 的骚扰还是面了一下字节。之前想去字节的时候怎么面都挂。现在想着随便面一下结果三面技术面都意外顺利还有加面。十月中旬字节发了意向,wxg 转正结果无响应。十月底字节拉了保温群,wxg 口头通过,系统显示考核中。十一月初和字节 ld 交流之后得知 base 居然能选海外,甚至能小 wlb 一下,wxg 无响应无人联系。十一月中旬把字节 base 转到了海外,wxg 流程灰了,一问超时忘处理了,过两天又变考核中了。十一月下旬字节换了海外 HR 对接,问了期望薪资,wxg 考核终于显示通过,无 HR 保温,无其他保温。十一月底给字节报了个天价,想吓吓他们,同时告诉微信字节要开了,微信无响应。同样十一月底字节 HR 告诉我确实给不到那么高,但是能拿期权补上,问能不能接受。微信无响应。同样十一月底字节 HR 告知了具体方案,符合预期。 微信无响应。十二月上旬催 wxg 不开我就盲拒了,wxg HR 火急火燎的打电话问情况,问期望。我给了一个不算夸张的总包数字,因为今年市场在涨,过了三天还不联系我,我再催,约时间下午打电话,非得在我给出的数字上压下去几万,微信又不差这点,为什么不能满足我,让我没有拒绝的理由呢?一番纠结抗争,求稳还是追求挑战,最终选择接受迎接新的挑战,因为堂吉诃德永远不会停下脚步!回想起来,在 wxg 谈薪的阶段,我认为并没有给予我一定的重视,即使 HR 表示我在实习期间的表现和之前的面评都很靠前。也没有感觉到想要争取我,虽然我表示拒了 offer 之后要给我加面委定 t6 再涨,但我三个月没面试让我面面委那就是白给,还是算了。有缘再见了我亲爱的 wxg,再见了曾经的梦中情厂,再见亲爱的 mt,再见亲爱的朋友们。也再见,北京的一切。我想润了。秋招结束,卸载牛客,下一个三年,下一个五年,下一个十年后再来看看。
面试中的大熊猫爱吃薯...:我嫉妒得狗眼通红
点赞 评论 收藏
分享
评论
25
41
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务