Android 高级工程师 - 面试总结

  • LiveData和EventBus的优缺点

  • Glide原理, Glide的BitmapPool的设计为了解决什么问题

  • 按下列表item的button 同时上下滑动RecyclerView 事件是怎么处理的

  • 启动优化

  • 插件化,资源插件化的原理

  • View.post() 为什么能拿到view的宽高

  • Kotlin 的单例怎么写

  • Kotlin协程怎么做并发

  • synchornized 是怎么工作的

  • HashMap 原理,怎么用HashMap做到线程安全

  • OkHttp的链条流程

  • 用到了哪些设计模式

  • 做了哪些版本适配

  • 数据结构

  • Http协议

  • Json

B公司:


  • LiveData怎么避免粘性消息的

  • HashMap 怎么获取hash值

  • ArrayList和LinkedList区别

  • 四种启动模式

  • kotlin高阶函数

  • kotlin扩展函数底层原理

  • Kotlin inner 关键字

  • 协程原理

  • kotlin object实现的单例线程安全吗

  • 怎么做适配 AutoSize原理

C公司:


  • 混淆的原理

  • 签名v1、v2、v3的区别

  • 性能优化

  • 优化图片加载

  • 哪些数据结构能做到线程安全

  • 视频格式

  • 32/64位平台下char、short、int、long、指针等类型分别占多少字节

  • 自己做一个即时聊天的功能需要怎么设计

D公司:


  • Android应用启动流程

  • 资源热修复、插件化

  • class热修复

  • LeakCanary原理

  • EventBus原理

  • HashMap

  • Kotlin协程原理

  • Intent和PendingIntent

  • EventBus 2.0和3.0的区别

E公司:


  • HashMap原理

  • 马甲包怎么打

  • 怎么获取View的宽高

  • Glide的怎么做生命周期相关管理

  • Glide的缓存结构

F公司:


  • ViewModel原理

  • LiveData原理

  • DataBinding的注解

  • 说说线程

  • 死锁怎么产生

  • 线程池的数据结构是什么

G公司:


  • 说说activity的生命周期

  • Service的启动流程

  • 包体积优化

  • Kotlin有什么优点

H公司:


  • 说说voletile

  • java中都有哪些锁

  • 线程池中核心线程和非核心线程的区别

  • 核心线程在什么情况下会被销毁

  • 说说Looper

  • 怎么判断当前线程是主线程

  • 四种引用

  • Activity A-B的生命周期

  • SP apply和commit的区别

  • 广播有哪几种

  • Service注册方式

  • OkHttp的源码看过吗

  • 子view显示可以超过父view吗,怎么超过

  • 用什么方式实现跨进程通信

  • 用过ViewStub吗

I公司:


  • MVP 和 MVVP 的区别

  • 死锁

  • 算法:25匹马

  • 用数组实现队列

  • 最近有没有解决疑难问题 什么思路

  • 从磁盘加载大图显示

  • 图片怎么压缩

  • 565和8888的区别 底层原理

  • Glide加载图片原理

  • StackOverFlow 是什么异常 怎么产生的

J公司:


最后

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

下面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题全套解析,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,下面只是以图片的形式给大家展示一部分。

image

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

image

讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题全套解析,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,下面只是以图片的形式给大家展示一部分。

[外链图片转存中…(img-yvGvtVnz-1723781480273)]

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

[外链图片转存中…(img-LbxWdRRa-1723781480273)]

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 你对 Android 操作系统的架构有什么了解? Android 操作系统采用了 Linux 内核,并在其上构建了一个应用程序框架。应用程序框架提供了一套 API,使开发者可以创建应用程序,并与操作系统进行交互。Android 操作系统的架构包括四个层次:应用程序层、应用程序框架层、系统运行时层和 Linux 内核层。 2. 你对 Android 应用程序框架有什么了解? Android 应用程序框架提供了一套 API,使开发者可以创建应用程序,并与操作系统进行交互。应用程序框架主要包括以下模块:活动管理器、资源管理器、视图系统、通知管理器、内容提供者、位置管理器、文本到语音、蓝牙和 Wi-Fi。 3. 你熟悉哪些 Android 开发框架? 我熟悉的 Android 开发框架包括:Android Jetpack、Retrofit、OkHttp、Glide、Dagger、Butter Knife、RxJava、Room、LiveData、Navigation 等。 4. 你了解 Android 的多线程编程吗? 是的。Android 的多线程编程可以通过 Java 的多线程机制来实现。常见的多线程编程方式包括使用 AsyncTask、Handler 和 Thread 等。此外,还可以使用线程池来管理线程,以避免因线程数量过多而导致的性能问题。 5. 你熟悉哪些 Android 数据存储技术? 我熟悉的 Android 数据存储技术包括:SharedPreferences、SQLite、ContentProvider、File、Room 等。SharedPreferences 用于存储应用程序的简单键值对数据;SQLite 用于存储结构化数据;ContentProvider 用于在应用程序之间共享数据;File 用于存储应用程序的文件数据;Room 是 Google 推出的 ORM 框架,用于简化 SQLite 数据库的操作。 6. 你了解 Android 的网络编程吗? 是的。Android 的网络编程可以使用 Java 的网络编程 API 来实现。常见的网络编程方式包括使用 HttpURLConnection 和 OkHttp 等。此外,还可以使用 Retrofit 来简化网络请求的代码。 7. 你了解 Android 的推送技术吗? 是的。Android 的推送技术可以使用 Google 推出的 Firebase Cloud Messaging(FCM)来实现。FCM 可以向设备发送推送通知、数据消息和通知消息。开发者可以使用 FCM 控制台或 API 来向设备发送消息。 8. 你熟悉哪些 Android UI 组件? 我熟悉的 Android UI 组件包括:TextView、Button、EditText、ImageView、ListView、RecyclerView、TabLayout、ViewPager、Toolbar 等。此外,还可以使用自定义 View 和自定义布局来实现更复杂的 UI 组件。 9. 你了解 Android 的性能优化技术吗? 是的。Android 的性能优化技术包括:布局优化、UI 绘制优化、内存优化、网络优化、数据库优化、电量优化等。常见的性能优化方式包括使用 ViewHolder、使用 Lint 工具、使用性能分析器、使用缓存策略、使用数据库索引、使用 JobScheduler 等。 10. 你有哪些 Android 项目经验? 我参与过多个 Android 项目的开发,其中包括基于 Retrofit 和 OkHttp 的网络请求库开发、基于 MVP 架构的天气应用开发、基于 Jetpack 组件的音乐播放器开发等。这些项目涉及了网络编程、多线程编程、数据存储、UI 组件和性能优化等方面的知识和技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值