AndroidRuntime学习总结
AndroidRuntime
是系统的一部分,负责执行和管理应用程序的运行时环境。它是一个运行库,提供了许多核心功能,如内存管理、线程管理、垃圾回收等.
Interpreter 解释器
将源代码翻译成机器码并直接执行。
优点:更容易实现和调试,避免编译时错误。
缺点:执行速度慢,无法进行代码优化。
JIT 即时编译器
程序运行时动态编译字节码为本地机器代码,可根据程序运行情况进行优化。
优点:节省空间
缺点:耗时。
AOT 预编译器
程序安装时,一次将程序字节码编译成机器码。
优点:速度快。
缺点:耗存储空间。
ART PGO
在应用执行的过程中,先使用Interpreter直接解释,当某些二进制代码被调用次数较多时,会生成一个Profile文件记录这些方法存储起来,当二进制代码被频繁调用时,则直接进行JIT即时编译并缓存起来。
当应用处于空闲(屏幕关闭且充电)的状态时,编译守护进程会根据Profile文件进行AOT编译。
当应用重新打开时,进行过JIT和AOT编译的代码可以直接执行。
这样就可以在应用安装速度以及应用打开速度之间取得平衡。