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的数据?
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的区别?
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的作用与理解
第二部分高级开发技术面试题
1.图片:
1、图片库对比
2、LRUCache原理
3、图片加载原理
4、自己去实现图片库,怎么做?
5、Glide源码解析
6、Glide使用什么缓存?
7、Glide内存缓存如何控制大小?
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 的)?
3.数据库:
1.Sqlite升级,增加字段的语句
2.数据库框架对比和源码分析
3.数据库的优化
4.数据库数据迁移问题
4.插件化、模块化、组件化、热修复、增量更新、Gradle:
1.对热修复和插件化的理解
2.插件化原理分析
3.模块化实现(好处,原因)
4.热修复、插件化
5.项目组件化的理解
6.描述清点击 Android Studio 的 build 按钮后发生了什么
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.统计启动时长,标准
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学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!