`
lgz_123
  • 浏览: 665 次
  • 性别: Icon_minigender_1
  • 来自: 洛阳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

android源代码分布结构

阅读更多

google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:
|-- Makefile        (全局的Makefile)
|-- bionic          (Bionic含义为仿生,这里面是一些基础的库的源代码)
|-- bootloader      (引导加载器)
|-- build           (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)
|-- dalvik          (Java虚拟机)
|-- development     (程序开发所需要的模板和工具)
|-- external        (目标机器使用的一些库)
|-- frameworks      (应用程序的框架层)
|-- hardware        (与硬件相关的库)
|-- kernel          (Linux2.6的源代码)
|-- packages        (Android的各种应用程序)
|-- prebuilt        (Android在各种平台下编译的预置脚本)
|-- recovery        (与目标的恢复功能相关)
`-- system          (Android的底层的一些库)


bionic目录展开一个级别的目录如下所示:
bionic/
|-- Android.mk
|-- libc
|-- libdl
|-- libm
|-- libstdc++
|-- libthread_db
`-- linker

bootloader目录展开的两个级别目录:
bootloader/
`-- legacy
    |-- Android.mk
    |-- README
    |-- arch_armv6
    |-- arch_msm7k
    |-- fastboot_protocol.txt
    |-- include
    |-- libboot
    |-- libc
    |-- nandwrite
    `-- usbloader

build目录展开的一个级别的目录如下所示:
build/
|-- buildspec.mk.default
|-- cleanspec.mk
|-- core                       (各种以mk为结尾的文件,它门是编译所需要的Makefile)
|-- envsetup.sh
|-- libs
|-- target                     (包含board和product两个目录,为目标所需要文件)
`-- tools                      (编译过程中主机所需要的工具,一些需要经过编译生成)

其中,core中的Makefile是整个Android编译所需要的真正的Makefile,它被顶层目录的Makefile引用。
envsetup.sh是一个在使用仿真器运行的时候,用于设置环境的脚本。
dalvik目录用于提供Android JAVA应用程序运行的基础————JAVA虚拟机。
development目录展开的一个级别的目录如下所示:
development
|-- apps                       (Android应用程序的模板)
|-- build                      (编译脚本模板)
|-- cmds
|-- data
|-- docs
|-- emulator                   (仿真相关)
|-- host                       (包含windows平台的一些工具)
|-- ide
|-- pdk
|-- samples                    (一些示例程序)
|-- simulator                  (大多是目标机器的一些工具)
`-- tools

在emulator目录中qemud是使用QEMU仿真时目标机器运行的后台程序,skins是仿真时手机的界面。
samples中包含了很多Android简单工程,这些工程为开发者学习开发Android程序提供了很大便利,可以作为模板使用。
external目录展开的一个级别的目录如下所示:
external/
|-- aes
|-- apache-http
|-- bluez
|-- clearsilver
|-- dbus
|-- dhcpcd
|-- dropbear
|-- elfcopy
|-- elfutils
|-- emma
|-- esd
|-- expat
|-- fdlibm
|-- freetype
|-- gdata
|-- giflib
|-- googleclient
|-- icu4c
|-- iptables
|-- jdiff
|-- jhead
|-- jpeg
|-- libffi
|-- libpcap
|-- libpng
|-- libxml2
|-- netcat
|-- netperf
|-- neven
|-- opencore
|-- openssl
|-- oprofile
|-- ping
|-- ppp
|-- protobuf
|-- qemu
|-- safe-iop
|-- skia
|-- sonivox
|-- sqlite
|-- srec
|-- strace
|-- tagsoup
|-- tcpdump
|-- tinyxml
|-- tremor
|-- webkit
|-- wpa_supplicant
|-- yaffs2
`-- zlib

在external中,每个目录表示Android目标系统中的一个模块,可能有一个或者若干个库构成。其中:
opencore为PV(PacketVideo),它是Android多媒体框架的核心。
webkit是Android网络浏览器的核心。
sqlite是Android数据库系统的核心。
openssl是Secure Socket Layer,一个网络协议层,用于为数据通讯提供安全支持。
frameworks目录展开的一个级别的目录如下所示:
frameworks/
|-- base
|-- opt
`-- policies

frameworks是Android应用程序的框架。
hardware是一些与硬件相关的库
kernel是Linux2.6的源代码

packages目录展开的两个级别的目录如下所示:
packages/
|-- apps
|   |-- AlarmClock
|   |-- Browser
|   |-- Calculator
|   |-- Calendar
|   |-- Camera
|   |-- Contacts
|   |-- Email
|   |-- GoogleSearch
|   |-- HTMLViewer
|   |-- IM
|   |-- Launcher
|   |-- Mms
|   |-- Music
|   |-- PackageInstaller
|   |-- Phone
|   |-- Settings
|   |-- SoundRecorder
|   |-- Stk
|   |-- Sync
|   |-- Updater
|   `-- VoiceDialer
`-- providers
    |-- CalendarProvider
    |-- ContactsProvider
    |-- DownloadProvider
    |-- DrmProvider
    |-- GoogleContactsProvider
    |-- GoogleSubscribedFeedsProvider
    |-- ImProvider
    |-- MediaProvider
    `-- TelephonyProvider

packages中包含两个目录,其中apps中是Android中的各种应用程序,providers是一些内容提供者(在Android中的一个数据源)。
packages中两个目录的内容大都是使用JAVA编写的程序,各个文件夹的层次结构是类似的。
prebuilt目录展开的一个级别的目录如下所示:
prebuilt/
|-- Android.mk
|-- android-ARM
|-- common
|-- darwin-x86
|-- linux-x86
`-- windows

system目录展开的两个级别的目录如下所示:
system/
|-- bluetooth
|   |-- bluedroid
|   `-- brfpatch
|-- core
|   |-- Android.mk
|   |-- README
|   |-- adb
|   |-- cpio
|   |-- debuggerd
|   |-- fastboot
|   |-- include            (各个库接口的头文件)
|   |-- init
|   |-- libctest
|   |-- libcutils
|   |-- liblog
|   |-- libmincrypt
|   |-- libnetutils
|   |-- libpixelflinger
|   |-- libzipfile
|   |-- logcat
|   |-- logwrapper
|   |-- mkbootimg
|   |-- mountd
|   |-- netcfg
|   |-- rootdir
|   |-- sh
|   `-- toolbox
|-- extras
|   |-- Android.mk
|   |-- latencytop
|   |-- libpagemap
|   |-- librank
|   |-- procmem
|   |-- procrank
|   |-- showmap
|   |-- showslab
|   |-- sound
|   |-- su
|   |-- tests
|   `-- timeinfo
`-- WLAN
    `-- ti
文章来自:http://www.3gfeixun.com/plus/view.php?aid=2380
分享到:
评论

相关推荐

    ADB源码(android / platform / system / core)

    源码位于`android / platform / system / core`目录下,这个目录包含了Android系统的核心组件,其中ADB源码主要分布在以下几个子目录: 1. `adb/`: 这里包含了ADB的主程序代码,包括服务器端(adb_server)和客户端...

    Android系统源代码

    Android源代码中还包含了大量用于开发和调试的库和工具,如`external`目录下的开源项目,以及`tools`目录下的编译、测试和模拟器工具。 9. 系统启动流程: 从引导加载器(Bootloader)到系统初始化,Android的启动...

    android 飞机游戏源代码

    本篇将深入探讨这些方面,帮助你理解这款"飞机游戏"的源代码结构。 1. **游戏框架** - 游戏通常基于某种游戏引擎或框架构建,如Unity、Cocos2d-x或自定义的轻量级框架。在这个案例中,由于是源代码,我们可以推测...

    俄罗斯方块android源代码

    本篇文章将基于提供的“俄罗斯方块android源代码”,探讨如何使用Android Studio来实现这一游戏的开发。我们将从源代码结构、主要组件、关键算法以及UI设计等多个方面进行详尽的分析。 一、源代码结构 Android ...

    舒尔特方格android源码

    在Android中,可以使用XML布局文件来定义方格的结构,每个数字可能是一个ImageView或TextView,放置在一个相对布局或者网格布局(GridLayout)中。为了实现随机分布的数字,开发者可能会用到Java或Kotlin的随机数...

    Android应用源码之Settings.zip

    文件列表中的"Settings"可能包含了这些关键组件的源代码。 2. **SettingsService** SettingsService是Android系统中的一个关键组件,它负责处理系统设置的更改请求,并将这些更改同步到系统服务。源码中会包含各种...

    android源码下载需要使用的repo脚本

    `repo`是一个版本控制系统工具,专门用于管理Android的源代码仓库。本文将详细解析`repo`脚本及其在下载Android源码中的应用。 ### 1. `repo`工具简介 `repo`是由Google开发的一个Python脚本,它封装了Git命令,...

    android 8.0 源码下载(26)

    首先,Android 8.0的源码下载主要通过Android开放源代码项目(AOSP)进行。访问官方网站<https://source.android.com/source/downloading>,你需要设置一个Git环境,包括安装Git工具,并确保系统满足最低硬件需求。...

    Android抽奖转盘源码

    这个"Android抽奖转盘源码"提供了实现这一功能的完整代码,可以帮助开发者快速理解和集成到自己的项目中。 首先,转盘抽奖的核心是动画效果。在Android中,可以使用`ViewPropertyAnimator`、`ObjectAnimator`或...

    Android连连看游戏源码

    《Android连连看游戏源码解析》 Android连连看游戏源码是一个基础的移动平台游戏开发实例,它展示了如何在Android环境中构建一款具有完整功能的连连看游戏。虽然游戏界面相对简洁,但其核心逻辑和算法设计是完整的...

    android 源代码(彩色弹珠游戏)

    - **Android工程结构**:一个标准的Android项目包含`res`资源文件夹、`src`源代码目录、`AndroidManifest.xml`配置文件以及`assets`、`lib`等其他必要组件。在这个项目中,源代码可能分布在`src/...

    Android电子商城项目源码

    这个项目不仅包含源代码,还有丰富的辅助文档,如开发文档、项目截图、接口文档和需求文档,这使得学习和复用变得更加方便。 首先,从源码的角度来看,这个项目涵盖了Android开发的基础和高级概念。基础部分可能...

    Android团购信息源代码.zip源码资源下载

    2. **项目结构**:Android应用通常有特定的目录结构,包括`app/src/main/java`(存放Java源代码)、`app/res`(存放资源文件如布局、图片、字符串等)、`build.gradle`(构建文件定义项目依赖)等。在压缩包中,源...

    Android 图表源码

    源代码应该包含了类层次结构,允许开发者根据需求选择不同的基类进行继承和重写。 7. **APP源代码** 除了图表库本身,提供的APP源代码是实践和学习的好材料,可以展示如何在实际项目中集成和使用这些图表组件。...

    Android程序研发源码Android Tools4U源码.rar

    这个压缩包“Android程序研发源码Android Tools4U源码.rar”很可能包含了完整的Android Tools4U应用的源代码,让我们来深入探讨这个项目可能涵盖的一些关键知识点。 1. **Android Studio IDE**: Android Tools4U...

    用android studio实现的记账本app源码.zip

    3. src:源代码目录,分为main和test两个部分,main用于存放主应用代码,test则存放测试代码。 4. build.gradle:项目构建脚本,定义了项目依赖、版本信息等。 5. AndroidManifest.xml:应用程序清单文件,记录了...

    Android 安卓麻将识别源码Demo APP

    【源码说明.txt】文件可能包含关于如何构建、运行以及源码结构的详细信息,对于开发者来说,这将是一份宝贵的参考资料。它可能会涵盖开发环境的设置、依赖库的引入、关键代码的解释等内容,有助于理解和复现麻将识别...

    android 扫雷程序 java 源代码

    《Android扫雷程序Java源代码解析》 在移动设备领域,Android系统因其开源特性与丰富的应用生态,成为了开发者们的热门选择。本篇文章将深入探讨一个基于Android环境开发的扫雷程序,该程序采用Java语言编写,是...

    安卓Android源码——andbatdog监视电池.zip

    本压缩包文件“安卓Android源码——andbatdog监视电池.zip”提供了这个功能的相关源代码,让我们深入探讨一下其中涉及的知识点。 1. **Android源码结构**:Android系统是开源的,其源码主要分布在AOSP(Android ...

    安卓Android源码——Elose-wr.zip

    Elose-wr项目可能分布在多个目录下,需要通过查看源码结构来理解其在整个系统中的位置和作用。 4. **关键组件解析** - **Linux内核**:Android基于Linux内核,负责硬件抽象、内存管理、进程调度等底层任务。Elose-...

Global site tag (gtag.js) - Google Analytics