linux 源码目录结构,分析Android 源代码编译前后的目录结构

我们看没有编译前的项目目录大致的情况如下 :

在树结构中我们可以了解的有如下一些信息分析:

1.        getSplashy                项目名称;

2.        src                       项目程式;

3.        com                       早期项目接口,这里我们需要删除;

4.          com.haseman             早期项目接口,同上需要删除;

5.        Android Library           Android SDK包中的库集合;

6.        assets                    这个文件夹不常用,具体解释见下;

7.        res                       这里放置了项目的资源;

8.           drawable               图片文件习惯放这里;

9.           layout                 存放的外观文件,以XML为主;

10.       raw                       自定义文件夹,存放音频文件;

11.       values                    存放string.xml;

12.    AndroidManifest.xml          每个项目必备,存放项目描述;

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

out文件夹如下所示:

out/

-- CaseCheck.txt

-- casecheck.txt

-- host                //表示在主机(x86)生成的工具

-- common

-- linux-x86/darwin-x86

-- target(表示目标机,如果编译时候定义TARGET_STRIP_MODULE=false的话,这个目录为debug/target)

-- common

-- product

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

host目录的结构如下所示:

out/host/

-- common

-- obj(JAVA库)

-- linux-x86/darwin-x86

-- bin(二进制程序)

-- framework(JAVA库,*.jar文件)

-- lib(共享库*.so)

-- obj(中间生成的目标文件)

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

target目录的结构如下所示:

out/target/

-- common     //表示通用的内容

-- R (资源文件)

-- docs

-- obj (目标文件)

-- product      //针对产品的内容

-- generic

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

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

out/target/obj/

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

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

在默认的情况下,Android 编译将生成generic目录,如果选定产品还可以生成其他的目录(根据预先设定的产品名命名)。

generic包含了以下内容:

out/target/product/generic/

-- data (存放数据的文件系统)

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

-- root

-- symbols

-- system(主要的文件系统)

-- Android -info.txt

-- clean_steps.mk

-- ramdisk.img

-- system.img

-- userdata.img

--userdata-qemu.img

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

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

几个以img为结尾的文件是几个目标映像文件,其中ramdisk是作为内存盘的根文件系统映像,system.img是主要文件系统的映像,这是一个比较大的文件,userdata.img是数据内容映像。userdata-qemu.img是模拟器使用的数据文件,一般不用userdata.img,只有-wipe-data时才用到userdata.img。这几个image文件是运行时真正需要的文件。0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux vps 运行exe文件夹,在centos环境下运行.exe文件

首先要了解一下Wine:Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层。Wine (Wine Is Not an Emulator)[即Wine不是一个模拟器]是一个在Linux和U…

linux运行时命令找不到,linux - 在运行Bash脚本时找不到命令,但是在直接运行命令时有效 - 堆栈内存溢出...

我一直在使用letencrypt为我的网站生成SSL证书,更具体地说是letencrypt_webfaction。 当我在项目中运行此命令时,它可以工作letsencrypt_webfaction --letsencrypt_account_email --domains --public --username --password 但是,当我在bash脚…

linux iconv命令详解,iconv命令

iconv命令:Convert encoding of given files from one encoding to another,更改文件的编码格式语法格式:iconv -f encoding -t encoding inputfile常用选项:-f encoding :把字符从encoding编码开始转换-t encoding :把字符转换到…

linux服务器u盘启动项检测不到,将U盘设置为第一启动项之后却检测不到U盘怎么办?...

对于如何使用U盘装系统,想必看过小编之前介绍的朋友应该大致都清楚了吧?虽然说咱们使用U盘装系统的操作步骤还是比较简单的,但是却必须要满足一个条件,那便是将咱们的U盘设置为第一启动项,那么如何进行设置呢?这便需要在咱们win…

linux内核io源码,Linux Kernel do_io_submit()函数整数溢出漏洞

发布日期:2010-09-21更新日期:2010-09-27受影响系统:Linux kernel 2.6.x不受影响系统:Linux kernel 2.6.36-rc4描述:--------------------------------------------------------------------------------BUGTRAQ ID: …

linux6无法启动iscsi服务,RHEL6下安装配置ISCSI服务器

1.安装所需软件:yum –y install scsi-target-utils iscsi-initiator-utils功能说明:scsi-target-utils:用来将 Linux 系统仿真成为 iSCSI target 的功能;iscsi-initiator-utils:挂载来自 target 的磁盘到 Linux 本机上。2.target的设定:----…

linux查看r的安装路径,在Linux CentOS 6.5版上安装R3.1.1的问题(检查LDFLAGS以获取Fortran库的路径)...

我正在尝试从CentOS 6.5上安装R3.1.1..configure引发以下错误(...)checking whether we can compute C Make dependencies... yes,using $(CC) -MMchecking whether gcc -stdgnu99 supports -c -o FILE.lo... yeschecking for gcc -stdgnu99 option to support OpenMP... -fope…

linux weblogic 内存溢出,weblogic 安装升级补丁出现内存溢出问题解决

执行weblogic升级命令时,出现内存溢出问题:d:\Oracle\Middleware\utils\bsu>bsu.cmd -install -patch_download_dird:\Oracle\Middleware\utils\bsu\cache_dir -patchlistFMJJ -prod_dird:\Oracle\Middleware\wlserver_10.3Exception in thread "main"…

linux脚本vrrp_script,keepalived 的 vrrp_script

[rootcentos01 keepalived]# cat check_httpd.sh 脚本需要有执行权限 通常情况下,利用keepalived做热备,其中一台设置为master,一台设置为backup。当master出现异常后,backup自动切换为master。当backup成为master后,m…

linux设备驱动open,Linux设备驱动程序 之 open和release

open方法open方法提供给驱动程序以初始化的能力,在大部分驱动程序汇总,open应该完成以下工作:1. 检查特定设备的错误,如设备为准备就绪或者硬件问题;2. 如果设备是首次打开,则对其进行初始化;3.…

linux执行.sql脚本 db2,DB2 如何执行sql脚本

如果现在没有连接则你的sql种一定需要有连接的sql.如果现在已经建立连接,且在db2>字符下,则必须按照如下操作:db2 > quitc:/> db2 -stvf sql文件名是语句结束符。db2 [option ...] [db2-command | sql-statement |[? [phrase | message | sqlstate | class-code]]]op…

linux 查看设备 中断号,查看powerpc linux 软件中断号 硬件中断号映射关系

在基于powerpc的linux中,request_irq里填的是软件中断号,也就是/proc/interrupts 里的编号很不幸的是他们不是一一对应,也没有线性规律做移植的时候对着dts和手册反复比较,有时会有拿不准的时候最好能够一目了然地流出来内核识别的…

linux socat rpm,RabbitMQ系列(三)RabbitMQ Server的安装(基于Linux RPM)

提示:在Fedora和RHEL仓库中包含了RabbitMQ,但这些版本往往是滞后的且不再被支持,我们建议你使用PackageCloud或者Bintray的Yum仓库进行安装;RabbitMQ RPM包将需要sudo特权来安装和管理。在没有sudo的环境中,可以考虑使…

windows c语言传输文件,C++_Windows网络编程之winsock实现文件传输示例,本文实例展示了Windows网络编程 - phpStudy...

Windows网络编程之winsock实现文件传输示例本文实例展示了Windows网络编程中winsock实现文件传输的方法,对于进行Windows下的winsock网络编程有一定的借鉴参考价值。该程序代码主要是基于TCP流协议的winsock网络文件传输示例,采用Windows下的C语言编写。…

encrypt函数c语言,Crypt加密函数简介(C语言)

定义函数char * crypt (const char *key,const char * salt);函数说明crypt是个密码加密函数,它是基于Data Encryption Standard(DES)演算法。crypt只适用于密码的使用,不适合用于资料加密。crypt()将参数key所指的字符串加以加密,key字符串长…

串的块链存储c语言栈,小蚂蚁学习数据结构(18)——串的块链的代码实现

感觉上块链的代码实现比数组的代码实现要难一些,估计因为数组的实现书上有伪代码,而块链连伪代码都木有,不过归根到底还是水平不行……哭瞎……╥﹏╥.../*数据结构C语言版 串的块链存储表示和实现*/# include # include # include /* 链表元…

c语言sort函数排序二维数组,js 二维数组排序sort()函数

一、按数值排序var arr [[1, 2, 3], [7, 2, 3], [3, 2, 3]];arr.sort(function(x, y){return x[0] – y[0];});其实是数组依次将数组元素复制给x,y,比如首先将arr[0]赋给x,arr[1]赋给y,然后用x[0] – y[0],根据返回的值&#xff…

c 语言 abs 库函数,absread,abswirte - C 语言库函数手册

absread, abswirte功 能: 绝对磁盘扇区读、写数据用 法: int absread(int drive, intnsects, int sectno, void *buffer);int abswrite(int drive, int nsects, in tsectno,void *buffer);程序例:/* absread example */#include #include #include #include int main(void){int…

每天一个linux命令博客nano,11 个鲜为人知的 Linux 命令(1)

英文:Tecmint,编译:Linux中国linux.cn/article-2258-1.html如有好文章Linux命令行吸引了大多数Linux爱好者。一个正常的Linux用户一般掌握大约50-60个命令来处理每日的任务。Linux命令和它们的转换对于Linux用户、Shell脚本程序员和管理员来说…

谷歌发布最新版安卓Android,谷歌发布安卓 9 正式版,代号 Android Pie

爱搞机 8 月 7 日消息,据外媒报道,北京时间今日凌晨,谷歌开始向用户推送安卓 Android Pie 正式版,除了确定新系统的代号为 Pie(派)之外,谷歌还将原本的安卓 9.0 称作 Android 9 Pie,这与此前的官方命名有所…