Android面试知识点总结-Android篇
面试中,常被问到的一些关于Android本身的知识点有哪些呢?下面我整理了一些,相信这些会了,应对Android方面的面试应该没有问题了。关于问题答案太多太杂,大家可以查阅书籍,资料,看博客来各个击破。
基础篇:
-
Activity的生命周期、启动模式、IntentFilter 匹配规则。
-
Service的生命周期,和两种启动方式。
-
Fragemnt的生命周期和使用场景。
-
BoardCastReciever的两种注册方法。
-
ContentProvider的基本使用方法和作用。ContentValue的使用方法,他和HashMap的区别是什么?
-
SharedPreference三种获得方法和区别,commit和apply的区别。
-
SQLite数据库的基本操作API
-
Android基本网络库OkHttp的使用方法和优缺点。
-
Android执行异步有哪些方法?线程间通讯的方式?
-
AnycTask的优缺点?串行or并行?内部线程池是怎样的?
-
6大常用的布局有哪些?
-
View的绘制流程?
-
View,SurfaceView,GLSurfaceView有什么区别?
-
ListView的优化。
-
RecyclerView与ListView的区别。RecyclerView的优缺点。
-
WebView的基本使用方法。WebViewClient和WebChromeClient。
-
Android和H5通信。(基本上就是JS和Android原生互调)
-
Intent的作用。
-
Android的屏幕适配方法有哪些?
-
XML加载的几种方式,各自的原理。都有什么优缺点?
-
Android中动画的分类,各自的优缺点。(基本上讲了帧动画,Tween动画,属性动画就OK了,至于Transition Framework可讲可不讲。)
-
Android中图片加载和缓存怎么做?(bitmap加载、缓存:LRUCache、DiskLruCache、LinkHashMap,一般原生的话加载使用BitmapFactory,缓存使用LruCache就可以了。)
-
JSON数据解析
-
线程、线程池、多线程
-
Android中的消息传递机制。(Message,Handler,MessageQueue,Looper)
-
有哪些容易造成内存泄漏的原因?
-
MVC,MVP,MVVM
-
ANR的原因、解决方法
-
什么是Force close?
-
IPC:Serialzable、Parcelable、Binder、Socket
高级篇:
-
Android的Touch事件分发过程
-
Android应用从Launcher的启动过程
-
Android中进程保活的方法
-
Android中的IPC Binder是怎么回事?出于什么考虑?
-
Android中的Zygote是什么鬼?出于什么考虑?
-
Android中的DVM和JVM有什么区别?又加入的Android Runtime是出于什么考虑?有什么优势?
-
Android中各个版本的功能特性?
-
Android内存泄漏场景及解决方法
-
进行过哪些性能优化
-
AIDL的使用。
-
NDK、JNI开发。
-
开源库(一般要求看过源码,知道原理):Retrofit、RxAndroid、EventBus、Picasso(优点)、OKhttp3
-
Android的插件化技术:Atlas、OSGI和热修复技术。
-
Android混淆
-
Android反编译
-
设计模式(六大原则:SOLID + 迪米特)
单例模式:获取各种service
工厂方法:activity、service(onStart)
责任链:Android事件分发
builder:dialog、Picasso
观察者:listview更新、EventBus
适配器:listview adapter
支持我的话可以关注下我的公众号,每天都会推送新知识~
欢迎关注微信公众号:Android技术大全