android 源码目录结构

本文详细介绍了Android源代码的组织结构,包括顶层目录及其子目录的功能划分,特别强调了与应用开发、硬件驱动及系统移植相关的部分。同时,列举了external目录下的多个开源项目和技术组件,为读者提供了丰富的参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:吕超
链接:https://www.zhihu.com/question/19946250/answer/13440005
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

不需要全部了解,阅读你感兴趣或者与你工作相关的部分就可以了。比如:

顶层目录:
.
|– bionic (bionic库,Android的基础库)
|– bootable (bootloader, recovery等,ROM移植相关)
|– build (编译和配置所需的脚本和工具)
|– dalvik (dalvik的Java虚拟机)
|– development (开发应用程序所需的模板和工具)
|– external (由其他平台移植过来的项目,对于移植工作是非常好的参考)
|– frameworks (应用程序框架层,请仔细阅读此部分代码,对于开发App会有很大帮助)
|– hardware (与硬件相关的库,驱动开发相关)
|– kernel (linux内核)
|– out (编译后生成的目录,包含构建文件系统所需的文件)
|– packages (Android的原生应用程序,App开发者需要重点关注)
|– prebuilt (Android在各平台下编译的预置脚本)
|– system (Android的底层库)
`– vendor / device (设备相关的代码,AOSP里不会有太多涉及,但是CM中却是重点)

external目录:
.
|– aes (ASE加密)
|– apache-http (网页服务器)
|– bison (自动生成语法分析器,将无关文法转换为C,C++)
|– bluez (Linux下的蓝牙工具)
|– bsdiff (diff工具)
|– bzip2 (压缩工具)
|– clearsilver (html模板系统)
|– dbus (低延时,低开销,高可用性的IPC机制)
|– dhcpcd (DHCP服务)
|– dosfstools (DOS文件系统工具)
|– dropbear (SSH2的服务器/客户端)
|– e2fsprogs (EXT2文件系统工具)
|– elfcopy (ELF复制工具)
|– elfutils (ELF工具)
|– embunit
|– emma (Java代码覆盖率统计工具)
|– esd (将多种音频流混合在一个设备上播放)
|– expat
|– fdlibm
|– freetype (字体)
|– gdata (google的无线数据)
|– genext2fs
|– giflib (gif库)
|– googleclient (google用户库)
|– grub
|– icu4c
|– iptables (防火墙)
|– jdiff
|– jhead (jpeg头部信息工具)
|– jpeg (jpeg库)
|– libffi
|– libpcap (网络数据包捕获函数)
|– libpng (png库)
|– libxml2 (xml解析库)
|– netperf (网络性能测试工具)
|– opencore (多媒体框架,最让人诟病的模块,Andoird 4.0中已被 stagefright 取代)
|– openssl (SSL模块,需要注意的是一定要静态编译此模块,否则会出现兼容问题)
|– qemu (Android 模拟器,Android 4.0之前只支持 arm-eabi,现在已支持 arm-v7)
|– skia (SKIA图像引擎)
|– sqlite (数据库)
|– strace (调试跟踪工具)
|– tcpdump (TCP抓包软件)
|– webkit (浏览器核心)
|– wpa_supplicant (无线网卡管理)
|– yaffs2 (yaffs文件系统)

参考: cnrgb.com/android-sourc (做了一些修改,原文比较老了)
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值