Android 面试集合(五)

1、JVM和DVM之间的区别:

  • dvm执行的是.dex格式文件 jvm执行的是.class文件 android程序编译完之后生产.class文件,然后,dex工具会把.class文件处理成.dex文件,然后把资源文件和.dex文件等打包成.apk文件。apk就是android package的意思。 jvm执行的是.class文件。
  • dvm是基于寄存器的虚拟机 而jvm执行是基于虚拟栈的虚拟机。寄存器存取速度比栈快的多,dvm可以根据硬件实现最大的优化,比较适合移动设备。
  • class文件存在很多的冗余信息,dex工具会去除冗余信息,并把所有的.class文件整合到.dex文件中。减少了I/O操作,提高了类的查找速度。

2、Activity生命周期

Activity的生命周期.png

3、Activity启动模式

Activity启动模式.png

4、协程

协程是一种编程思想,并不局限于特定的语言。可以简单的理解为线程框架。它是基于线程封装的一套更上层的工机具库,可以使用kotlin协程库提供的api更方便的指定协程中代码执行的线程、切换线程。但是不需要接触Thread类。协程通过非阻塞挂起和恢复实现了异步代码的同步编写方式,把原本运行在不同线程的代码写在一个代码块{}里,看起来就像是同步代码。
协程也不是为了线程而生的,它是为了解决因为多线程带来的编码上的不便的问题而出现的。

你可能感兴趣的:(Android 面试集合(五))