阿里工作十年的Android架构师,总结2024最新阿里、腾讯、字节、京东等一线大厂高频面试真题合集,以及从业心得(1)

1.Android基础:

1.什么是Activity?
2.请描述一下Activity 生命周期
3.常见的Activity类型有FragmentActivitiy,ListActivity,TabAcitivty等。请描述一下Activity 生命周期
4.如何保存Activity的状态或者(Activiy 重启怎么保存数据?)
5.两个Activity之间跳转时必然会执行的是哪几个方法?
6.横竖屏切换时Activity的生命周期(★★★★)
7.如何将一个Activity设置成窗口的样式
8.如何退出Activity?如何安全退出已调用多个Activity的Application?
9.Activity的四种启动模式,singletop和singletask区别是什么?一般书签的使用模式是singletop,那为什么10.不使用singletask?
11.Android中的Context, Activity,Appliction有什么区别?(★★)
12.两个Activity之间传递数据,除了intent,广播接收者,content provider还有啥?
13.Context是什么?,一个应用有多少个Context(2019.5.5)(★★)
14.activity 之间还有 activity 和 service 之间如何传值, 可以传图片吗?
15.Service是否在main thread中执行, service里面是否能执行耗时的操作?(★★)
16.Activity怎么和Service绑定,怎么在Activity中启动自己对应的Service?
17.请描述一下Service的生命周期(★★★)
18.什么是IntentService?有何优点?(★★★)
19.请描述一下BroadcastReceiver(★★)
20.在manifest和代码中如何注册和使用BroadcastReceiver
21.BroadCastReceiver的生命周期
22.请介绍下ContentProvider是如何实现数据共享的(★★★)
23.为什么要用ContentProvider?它和sql的实现上有什么差别?(★★★)
24.说说ContentProvider、ContentResolver、ContentObserver之间的关系(★★★★)
25.使用 contentProvider 获取本地所有的音频文件(上海)(★★★)
26.ListView如何提高其效率?(★★)
27.当ListView数据集改变后,如何更新ListView
28.ListView如何实现分页加载(★★★★★)
29.ListView可以显示多种类型的条目吗(★★)
30.ListView如何定位到指定位置
31.如何在ScrollView中如何嵌入ListView(★★★★)
32.ListView中如何优化图片(★★)
33.ListView中图片错位的问题是如何产生的(★★★)
34.如何刷新ListView中单个item的数据,不刷新整个ListView的数据?

image

2.Android 高级:

1.如何对Android应用进行性能分析(★★★★)
2.什么情况下会导致内存泄露(★★)
3.如何避免OOM异常(★★★★)
4.Android中如何捕获未捕获的异常(★★★)
5.ANR是什么?怎样避免和解决ANR(★★★★★)
6.Android线程间通信有哪几种方式(★★★)
7.Devik进程,linux进程,线程的区别(★)
8.描述一下android的系统架构?
9.android应用对内存是如何限制的?我们应该如何合理使用内存?(★★★★)
10.简述android应用程序结构是哪些?(★★★★)
11.请解释下Android程序运行时权限与文件系统权限的区别?(★★★)
12.Framework工作方式及原理,Activity是如何生成一个view的,机制是什么?(★★)
13.多线程间通信和多进程之间通信有什么不同,分别怎么实现?(★★★★★)
14.说下你所知道的设计模式与使用场景
15.java语言的特点与OOP思想
16.说下java中的线程创建方式,线程池的工作原理。
17.说下handler原理
18.内存泄漏的场景和解决办法
19.如何避免OOM?
20.说下Activity的启动模式,生命周期,两个Activity跳转的生命周期,如果一个Activity跳转另一个22.Activity21.再按下Home键在回到Activity的生命周期是什么样的
23.启动模式
24.onRestart的调用场景
25.是否了解SurfaceView,它是什么?他的继承方式是什么?他与View的区别(从源码角度,如加载,绘制等)。
26.如何实现进程保活
27.说下冷启动与热启动是什么,区别,如何优化,使用场景等。
28.为什么冷启动会有白屏黑屏问题?
29.Android中的线程有那些,原理与各自特点
30.ANR的原因
31.三级缓存原理
32.LruCache底层实现原理:
33.说下你对Collection这个类的理解。
34.JVM老年代和新生代的比例
35.jvm,jre以及jdk三者之间的关系?JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
36.谈谈你对 JNIEnv 和 JavaVM 理解?
37.Serializable与Parcable的区别?

image

3.Android源码相关分析:

  • Android动画框架实现原理
  • Android各个版本API的区别
  • Requestlayout,onlayout,onDraw,DrawChild区别与联系
  • invalidate和postInvalidate的区别及使用
  • Activity-Window-View三者的差别
  • 谈谈对Volley的理解
  • 如何优化自定义View
  • 低版本SDK如何实现高版本api?
  • 描述一次网络请求的流程
  • HttpUrlConnection 和 okhttp关系
  • Bitmap对象的理解
  • looper架构
  • ActivityThread,AMS,WMS的工作原理
  • 自定义View如何考虑机型适配
  • 自定义View的事件
  • AstncTask+HttpClient 与 AsyncHttpClient有什么区别?
  • LaunchMode应用场景
  • AsyncTask 如何使用?
  • SpareArray原理
  • 请介绍下ContentProvider 是如何实现数据共享的?
  • AndroidService与Activity之间通信的几种方式
  • IntentService原理及作用是什么?
  • 说说Activity、Intent、Service 是什么关系
  • ApplicationContext和ActivityContext的区别
  • SP是进程同步的吗?有什么方法做到同步?
  • 谈谈多线程在Android中的使用
  • 进程和 Application 的生命周期
  • 封装View的时候怎么知道view的大小
  • RecycleView原理
  • AndroidManifest的作用与理解

image

第二部分高级开发技术面试题

1.图片:

1、图片库对比

2、LRUCache原理

3、图片加载原理

4、自己去实现图片库,怎么做?

5、Glide源码解析

6、Glide使用什么缓存?

7、Glide内存缓存如何控制大小?

image

2.网络和安全机制:

1.网络框架对比和源码分析

2.自己去设计网络请求框架,怎么做?

3.网络请求缓存处理,okhttp如何处理网络缓存的

4.从网络加载一个10M的图片,说下注意事项

5.TCP的3次握手和四次挥手

6.TCP与UDP的区别

7.TCP与UDP的应用

8.HTTP协议

9.HTTP1.0与2.0的区别

10.HTTP报文结构

11.HTTP与HTTPS的区别以及如何实现安全性

12.如何验证证书的合法性?

13.https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?

14.client如何确定自己发送的消息被server收到?

15.谈谈你对WebSocket的理解

16.WebSocket与socket的区别

17.谈谈你对安卓签名的理解。

18.请解释安卓为啥要加签名机制?

19.视频加密传输

20.App 是如何沙箱化,为什么要这么做?

21.权限管理系统(底层的权限是如何进行 grant 的)?

image

3.数据库:

1.Sqlite升级,增加字段的语句

2.数据库框架对比和源码分析

3.数据库的优化

4.数据库数据迁移问题

image

4.插件化、模块化、组件化、热修复、增量更新、Gradle:

1.对热修复和插件化的理解

2.插件化原理分析

3.模块化实现(好处,原因)

4.热修复、插件化

5.项目组件化的理解

6.描述清点击 Android Studio 的 build 按钮后发生了什么

image

5.架构设计和设计模式:

1.谈谈你对Android设计模式的理解

2.MVC MVP MVVM原理和区别

3.你所知道的设计模式有哪些?

4.项目中常用的设计模式

5.手写生产者/消费者模式

6.写出观察者模式的代码

7.适配器模式,装饰者模式,外观模式的异同?

8.用到的一些开源框架,介绍一个看过源码的,内部实现过程。

9.谈谈对RxJava的理解

10.Rxjava发送事件步骤

11.RxJava的作用,与平时使用的异步操作来比的优缺点

12.说说EventBus作用,实现方式,代替EventBus的方式

13.从0设计一款App整体架构,如何去做?

14.说一款你认为当前比较火的应用并设计(比如:直播APP,P2P金融,小视频等)

15.谈谈对java状态机理解

16.Fragment如果在Adapter中使用应该如何解耦?

17.Binder机制及底层实现

18.对于应用更新这块是如何做的?(解答:灰度,强制更新,分区域更新)?

19.实现一个Json解析器(可以通过正则提高速度)

20.统计启动时长,标准

image

6.性能优化:

1.启动 app 黑白屏优化

2.稳定——内存优化

3.流畅——卡顿优化

4.节省——耗电优化

5.安装包——APK 瘦身

6.冷启动与热启动

7.内存泄漏的场景和解决办法

8. Bitmap 优化

9.LRU 的原理

Android高级架构师

由于篇幅问题,我呢也将自己当前所在技术领域的各项知识点、工具、框架等汇总成一份技术路线图,还有一些架构进阶视频、全套学习PDF文件、面试文档、源码笔记。

  • 330页PDF Android学习核心笔记(内含上面8大板块)

  • Android学习的系统对应视频

  • Android进阶的系统对应学习资料

  • Android BAT部分大厂面试题(有解析)

好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
roid进阶的系统对应学习资料**

[外链图片转存中…(img-JSt3KLG1-1715423294990)]

  • Android BAT部分大厂面试题(有解析)

[外链图片转存中…(img-6t2VzCpQ-1715423294991)]

好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值