Android编译完成后的代码结构

移动开发 Android
Android编译完成后会生成一个out文件夹,主要的两个目录为host和target,前者表示在主机(x86)生成的工具,后者表示目标机(模认为ARMv5)运行的内容。

Android编译完成后,将在根目录中生成一个out文件夹,所有生成的内容均放置在这个文件夹中。out文件夹如下所示:

  out/
  |-- CaseCheck.txt
  |-- casecheck.txt
  |-- host
  |   |-- common
  |   `-- linux-x86
  `-- target
      |-- common
      `-- product

主要的两个目录为host和target,前者表示在主机(x86)生成的工具,后者表示目标机(模认为ARMv5)运行的内容。

host目录的结构如下所示:

  out/host/
  |-- common
  |   `-- obj              (JAVA库)
  `-- linux-x86
      |-- bin              (二进制程序)
      |-- framework        (JAVA库,*.jar文件)
      |-- lib              (共享库*.so)
      `-- obj              (中间生成的目标文件)

host目录是一些在主机上用的工具,有一些是二进制程序,有一些是JAVA的程序。

target目录的结构如下所示:

  out/target/
  |-- common
  |   |-- R           (资源文件)
  |   |-- docs
  |   `-- obj         (目标文件)
  `-- product
      `-- generic

其中common目录表示通用的内容,product中则是针对产品的内容。

在common目录的obj中,包含两个重要的目录:

APPS  中包含了JAVA应用程序生成的目标,每个应用程序对应其中一个子目录,将结合每个应用程序的原始文件生成Android应用程序的APK包。

JAVA_LIBRARIES  中包含了JAVA的库,每个库对应其中一个子目录。

在默认的情况下,Android编译将生成generic目录,如果选定产品还可以生成其他的目录。generic包含了以下内容:

  out/target/product/generic/
  |-- android-info.txt
  |-- clean_steps.mk
  |-- data
  |-- obj
  |-- ramdisk.img
  |-- root
  |-- symbols
  |-- system
  |-- system.img
  |-- userdata-qemu.img
  `-- userdata.img

在generic/obj/APPS目录中包含了各种JAVA应用,与common/APPS相对应,但是已经打成了APK包。

system目录是主要的文件系统,data目录是存放数据的文件系统。

obj/SHARED_LIBRARIES中存放所有动态库。

obj/STATIC_LIBRARIES中存放所有静态库。

几个以img为结尾的文件是几个目标映像文件,其中ramdisk是作为内存盘的根文件系统映像,system.img是主要文件系统的映像,这是一个比较大的文件,data.img是数据内容映像。这几个image文件是运行时真正需要的文件。

责任编辑:徐川 来源: OSChina
相关推荐

2010-05-31 15:21:17

Cacti配置

2010-02-02 16:41:27

Fedora ftp

2016-12-13 13:54:10

EasyUI form数据加载

2010-01-26 17:53:30

Android代码结构

2009-01-20 22:43:00

2023-06-14 18:00:13

2009-04-03 08:28:39

2019-12-06 13:59:37

代码开发Python

2009-10-12 17:14:50

RHEL内核编译

2009-12-17 15:28:32

内核模块编译

2021-02-04 10:30:59

pythonpyd命令

2017-02-20 13:54:14

Java代码编译

2014-03-04 15:26:10

Windows 8.1

2009-04-23 08:23:09

AndroidGoogle移动OS

2009-12-29 11:11:10

2010-02-02 13:26:53

Linux内核

2009-04-25 09:21:37

Windows 7微软操作系统

2013-11-11 13:24:21

cocos2dx 2.Android编译

2010-06-10 10:49:32

openSUSE使用教

2010-05-13 09:45:26

Linux地址空间
点赞
收藏

51CTO技术栈公众号