Nixo Home

蓝瓴笔试题笔经

字数统计: 605阅读时长: 2 min
2019/07/15 Share

主要内容

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当中))
CATALOG
  1. 1. 主要内容
    1. 1.1. Android部分
    2. 1.2. Java部分
  2. 2. Android部分
    1. 2.1. Android 常用的5个布局
    2. 2.2. Context
    3. 2.3. Intent都有哪些属性
    4. 2.4. Handler消息机制 5个组成部分
    5. 2.5. Dalvik虚拟机是什么,有什么用,他与JVM的区别