歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android框架簡介

這裡簡單的介紹了Android的java環境基礎,在後面一節中會結合具體的實例來理解這一節的內容。

一、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,負責孵化所有的新應用

Copyright © Linux教程網 All Rights Reserved