Android框架简介

2014-11-24 12:16:33 · 作者: · 浏览: 2

一、Dalvik虚拟机


Dalvik是android的程序的java虚拟机,代码在dalvik/下,


./
|-- Android.mk
|-- CleanSpec.mk
|-- MODULE_LICENSE_APACHE2
|-- NOTICE
|-- README.txt
|-- dalvikvm 虚拟机的实现库
|-- dexdump
|-- dexlist
|-- dexopt
|-- docs
|-- dvz
|-- dx
|-- hit
|-- libcore
|-- libcore-disabled
|-- libdex
|-- libnativehelper 使用JNI调用本地代码时用到这个库
|-- run-core-tests.sh
|-- tests
|-- tools
`-- vm


二、android的java框架


android层次中第3层是java框架,第四层就是java应用程序。


android的java类代码,主要是在frameworks/base/core/java/下,


./
|-- android
|-- com
|-- jarjar-rules.txt
`-- overview.html


我们再看一下frameworks/base/目录


./
|-- Android.mk
|-- CleanSpec.mk
|-- MODULE_LICENSE_APACHE2
|-- NOTICE
|-- api
|-- awt
|-- build
|-- camera
|-- cmds
|-- common
|-- core
|-- data
|-- docs
|-- graphics
|-- include
|-- keystore
|-- libs
|-- location
|-- media
|-- native
|-- obex
|-- opengl
|-- packages
|-- preloaded-classes
|-- sax
|-- services
|-- telephony
|-- test-runner
|-- tests
|-- tools
|-- vpn
`-- wifi


这里也有android的java框架代码。


三、JNI


在android中,通过JNI,java可以调用C写的代码,主要的实现是在frameworks/base/core/jni,通过查看Android.mk,我们可以看到最后生成了libandroid_runtime.so,具体实现JNI功能需要上面我们介绍的libnativehelper.so,


四、系统服务之java


1、binder,提供android的IPC功能


2、servicemanager,服务管理的服务器端


3、系统进程zygote,负责孵化所有的新应用