1. 前言

Android源码中的out目录一开始是不存在的,是在我们执行编译操作之后才由系统自动生成,了解out目录对系统开发是必经之路。

2. 目录结构

编译之后在 "sourceProject/out/target/product/comboname/"下,生成以下产物:
在这里插入图片描述
可以看到有生成各种文件镜像,这些都会将通过升级脚本烧写进系统。除了镜像上边比较重要的文件和目录下面将进行说明。

2.1 system

system子目录结构如下:
在这里插入图片描述
这个子目录对应android系统的system目录,一般做调试就会将在这生成的产物拷贝到系统system对应的位置进行替换,然后重启同步生效。

在这里常用的几个目录或者文件说一下:
app: 一般是系统预置的apk文件放置的目录,在这里的apk安装之后不可被卸载,但并没有系统级权限,如若需要,则需主动在AndroidManifest.xml中添加android:sharedUserId=“android.uid.sysytem”。
bin:可执行程序放置的目录
fonts:字体库ttf文件放置的目录
framework:jar包放置的目录
lib:so库放置的目录
media:开机动画,以及原生音频ogg文件放置的目录
priv-app: 核心应用放置的目录,拥有系统级权限,不可被删除
build.prop: 表示一些预置的属性,在mk文件中通过PRODUCT_PROPERTY_OVERRIDES变量添加

2.2 root

root子目录是跟开机启动相关,在这里有两个文件需要注意的:
default.prop:表示一些预置的属性,在mk文件通过PRODUCT_DEFAULT_PROPERTY_OVERRIDES 变量添加
init.rc:开机进入正常模式init进程通过解析这里的init.rc启动进程,如果想详细了解可以参考浅谈android源码之system

2.3 obj

中间产物生成的目录

2.4 recovery

这个目录跟root相对,不过root目录是开机进入正常模式,而recovery目录进入的是恢复模式的。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐