写在前面
网上有很多关于android的面试题,但是一般都是只有一个问题,答案不确定有时候不能起到很好的作用,现在整理如下,尽量都包含答案,有些直接给出链接,有不全或者不正确的地方希望各位小伙伴指出来。
一、android基础部分
1.四大组件是什么
Activity,Service,BroadcastReceiver,ContentProvider
3.Activity之间的通信方式
1.基于消息的通信机制 Intent,boudle ,extra数据类型有限,比如遇到不可序列化的数据Bitmap,InputStream, 或者LinkList链表等等数据类型就不太好用。
2.利用static静态数据,public static成员变量;
3.基于外部存储的传输, File/Preference/ Sqlite ,如果要针对第三方应用需要Content Provider
4.基于Application Context
14.如何实现Fragment的滑动(不太理解出题人的意图)
36.差值器、估值器(参考属性动画)
二、Android源码相关分析
50.ActivityThread,AMS,WMS的工作原理
51.自定义View如何考虑机型适配
52.自定义view事件
59.说说Activity、Intent、Service 是什么关系
一个Activity通常是一个单独的屏幕,每一个Activity都被实现为一个单独的类,这些类都是从Activity基类中继承而来的。Activity类会显示由视图控件组成的用户接口,并对视图控件的事件做出响应。
Intent的调用是用来进行屏幕之间的切换。Intent描述应用想要做什么。Intent数据结构中两个最重要的部分是动作和动作对应的数据,一个动作对应一个动作数据。
Service是运行在后台的代码,不能与用户交互,可以运行在自己的进程里,也可以运行在其他应用程序进程的上下文里。需要一个Activity或者其他Context对象来调用。
Activity跳转Activity,Activity启动Service,Service打开Activity都需要Intent表明意图,以及传递参数,Intent是这些组件间信号传递的承载着。
63.进程和 Application 的生命周期
65.RecycleView原理
三、常见的一些原理性问题
82.AsyncTask机制
83.AsyncTask原理及不足
84.如何取消AsyncTask?
85.为什么不能在子线程更新UI