理解Android软件栈:
库:
- C/C++库(libc,SSL)
- Android 运行时可以让Android手机从本质上与一个移动Linux实现区分开来。Dalvik并不是Java虚拟机,是一个基于寄存器的虚拟机,它依赖于Linux内核进行线程和底层内存管理。
Dalvik 虚拟机:
- 作用:Dalvik 不是传统的Java虚拟机,比如Java ME。Android使用定制的虚拟机来保证多个实例可以高效的运行在同一个设备上。
- Dvalvik使用底层的Linux内核来处理基本功能:安全、线程以及进程和内存管理。NDK用于Android 的C/C++开发。
- 所有Android硬件和系统服务访问都是使用作为中间层的Dalvik来加以管理的。通过VM来承载应用程序的执行。
- Dalvik VM执行Dalvik可执行文件,这种优化后的格式可以保证最小限度的占用内存。使用SDK提供的工具,可以把Java语言编译的类转换为.dex可执行文件。