当前位置: 首页 > 工具软件 > android lib > 使用案例 >

Android libcore 目录

靳涵亮
2023-12-01

Android 核心库(Android core libraries)是 Android 系统中支持,但是本身不属于 Android
的 Java 库。Android 系统中支持众多 Java 标准的库,例如 java.lang 包。这部分内容由 libcore 来提供。

libcore 中的各个子工程目录支持的 Java 包

Android 9.0.0_r3

子工程目录描述
luniJava 基础包、扩展包、组织提供的类库等
libartart 运行时部分相关包
dalvikdalvik 虚拟机相关的包
dom文档对象模型
jsonjson 串在 Java 中的支持
xmlXML工具
ojluniOpen JDK 版的 Java 包

luni 实际上是 lang、util、net、io 这 4 个内容头字母的组合,Java 中主要类库模块的首字母组合,表示 Java 语言最为核心部分的内容。
luni 目录的主要结构如下所示:

luni
|--src
    |-benchmark
    |-main
    |   |-java
    |   |-native
    |-module
        |-java
            |-module-info.java
    |-test

main 目录为 Java 的主要实现内容,按照包名、类名组织目录结构,其中包含了 Java 代码和本地代码;native 则是部分 Java 代码的本地实现内容。

module-info.java 显示了 luni 中所有导出的类。

libcore 中其他子工程的目录结构和 luni 类似。

标准 Java 库中的很多代码来自 Java Apache Harmony( http://harmony.apache.org/ )。Android 对其中的一些内容做出内存和 CPU 方面的优化更改。
Android 做出更改的部分,通常具有如下的注释标记:

// BEGIN android-added
// 此间的内容为 Android 系统实现中增加的内容
// END android-added

// BEGIN android-changed
// 此间的 Android 内容为系统实现中更改的内容 
// END android-changed

// BEGIN android-removed
// 此间的 Android 内容为系统实现中删除的内容 
// END android-removed

luni 中支持的几个最主要的包为:Java 标准包(java 包及其子包)、Java扩展包(javax 包及其子包)、企业和组织提供的 Java 类库(org 包及其子包)。

其中也有一些包是 Android 系统中专用的,例如其中的 src/java/libcore 目录实际上是 libcore.* 包及其子包,这显然是 Android 当中专用的实现,某些 Java 标准库也利用这些专用内容进行优化实现。

提示: libcore 中支持的很多 Java 包是 Android 内部使用的,因此并不包含在 API 帮助文档中。

 类似资料: