主要内容
Android部分
- Android五大布局都有哪些
- Context是什么,它实现了哪些功能,它的实现类是什么?
- Intent都有那些属性
- Handler消息机制 5个组成部分
- Dalvik虚拟机是什么,有什么用,他与JVM的区别
- AsyncTask的使用,他与Handler+Thread的区别
- OOM怎么形成的,如何解决
- ANR是怎么产生的,如何定位问题
- IPC机制,Binder,以及其他两种分别是什么,进行几次数据拷贝
- 热更新都用过哪些框架,它与其他热更新框架的区别,他是做怎么实现热更新的(APP启动流程上进行Hook替换)
- App启动流程详细说明(√)
- 事件分发的三个方法,以及调用顺序(√)
- 整个Android 是怎么启动的,具体的启动流程
Java部分
- 反射怎么获取私有对象(Field √)
- 反射怎么获取一个类的所有方法
- 反射怎么获取一个类的所有public对象(设置Modifer √)
- 反射怎么获取一个类中的所有注解
- 反射怎么获取对象的真实类型(getGenericReturnType √)
- 反射怎么获取方法参数类型(getActualTypeArguments √)
- 注解怎么获取参数类型
Android部分
Android 常用的5个布局
- LinearLayout(线性布局)
- RelativeLayout(相对布局)
- TableLayout(表格布局)
- FrameLayout(框架布局)
- AbsoluteLayout(绝对布局)
Context
- Context是一个抽象类,它主要实现了对资源的访问.getResouces,应用中Context的数量等于Activity的个数 + Service的个数 + 1,这个1为Application,他的实现类为ContextImpl
Intent都有哪些属性
启动{
- ComponentName(显式)
- Action(隐式)
- Category(隐式)
} 传值{ - Data(隐式)
- Type(隐式)
- Extra(隐式、显式)
} 启动模式{ - Flag
}
Handler消息机制 5个组成部分
- Looper
- Handler
- Message
- MessageQueue
- ThreadLocal(如果是4个就去掉ThreadLocal)
Dalvik虚拟机是什么,有什么用,他与JVM的区别
Dalvik是Android虚拟机,他基于寄存器使得编译时间更短,执行效率更快,占用内存更少,他可以编译APK中的dex文件(将所有的class统一整合成的dex),相对于JVM虚拟机而言,JVM是基于栈的,所以对比JVM,寄存器用部分区域式的存储,就会比基于条形的栈更快很多,更适合移动平台,在编译的程序上,
执行的直接码文件不同
- JVM(.java -> .class -> .jar)
- DVM(.java -> .class -> .dex(APK当中))