MTK6577 Android源代码目录

1.     MTKAndroid4.0 源代码目录

(1)  makeMtk

整个工程编译或是构建(make/build)的入口。

(2)  abi

应用程序二进制接口(application binary interface)。

(3)  bionic:

Android之所以采用bionic而不是glibc,有几个原因:

版权问题,因为glibc是LGPL

库的体积和速度,bionic要比glibc小很多。

提供了一些Android特定的函数,getprop LOGI等

Bionic Libc有如下特点:

采用BSD License, 而不是glibc的GPL License;

大约有200KB, 比glibc小很多,且比glibc要快;

实现了一个更小,更快的pthread;

提供了Android所需要的重要函数,如getprop LOGI等

不完全支持POXIC标注,譬如C++ exceptions, wide chars等;

不支持libthread_db和libm的实现

(4)  bootable

启动引导程序的源代码,包括bootloader、diskinstaller和recovery。

其中bootloader适合各种bootloader的通用代码;diskinstaller是android镜像打包器,x86可生产iso;recovery系统恢复相关

(5)  build

android的编译系统,包含这种makefiles、scripts和其他工具。

(6)  cts

android兼容性测试套件,android设备如果需要google认证,就需要通过google的兼容性检测,目的是确保该设备系统具备标准的SDK API接口。

(7)  dalvik

dalvik虚拟机源代码,是用于android平台的java虚拟机,但不是java标准的虚拟机。

(8)  development

开发所需要的一些例程、文档和工具等。

(9)  device

不同厂商设备相关的代码和编译脚本等,包括TI、三星和摩托等厂商。

(10) docs

介绍开源相关的source.android.com文档。

(11) external

android用到的扩展库,包括bluetooth、skia、sqlite、freetype、webkit等功能库和一些工具库,系统运行库层(LIBRARIES)大部分代码位于这里。

图1

(12) frameworks

android应用框架层代码位于这里,这层为应用层提供API,而且是一种重要的机制。这种机制为应用层提供了可以复用的组件,提供了应用开发的规范,屏蔽了应用层和底层交互的复杂性。Framework层主要的组件有activity manager、content providers等。

(13) hardware

硬件适配层HAL代码,见图1,Android的HAL是为了保护一些硬件提供商的知识产权而提出的,是为了避开linux的GPL束缚。思路是把控制硬件的动作都放到了Android HAL中,而linux driver仅仅完成一些简单的数据交互作用,甚至把硬件寄存器空间直接映射到user space。而Android是基于Aparch的license,因此硬件厂商可以只提供二进制代码,所以说Android只是一个开放的平台,并不是一个开源的平台。也许也正是因为Android不遵从GPL,所以Greg
Kroah-Hartman才在2.6.33内核将Andorid驱动从linux中删除。

(14) kernel

linux内核,见图1的LINUX KERNEL部分。

(15) libcore

核心java库,android2.3之前位于/dalvik/libcore目录下,见图1的ANDROID RUNTIME下的core libraries部分。

(16) mediatek

mtk开发平台源代码、工具、编译配置文件和定制代码。

(17) ndk

android的NDK(Native Development Kit,原生开发套件),NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。

(18) out

编译输出目录,编译后的所有输出(包括对象、二进制和临时文件)都在这个目录,分为主机部分和目标机部分。

(19) packages

应用程序包,包含各种内置的核心应用程序,比如bluetooth、calendar、camera等,见图1的APPLICATIONS部分。

(20) prebuilt

编译所需要的程序文件,主要包含不同平台下的ARM编译器

(21) sdk

SDK(softwaredevelopment kit)软件开发工具包,这里是编译SDK工具所需要的文件,包含hierarchyviewer、eclipse插件、emulator等。

(22) system

嵌入式linux所需要的一些系统工具程序,比如adb、fastboot、debugger、logcat等。

(23) vendor

供应商(这里是CPU厂商MTK)应用、二进制发布库文件。

MTK6577 Android源代码目录的更多相关文章

  1. Android系统源代码目录结构 “Android源代码”“目录结构”

    在讲述Android源码编译的三个步骤之前,将先介绍Android源码目录结构,以便读者理清Android编译系统核心代码在Android源代码的位置. Android源代码顶层目录结构如下所示: ├ ...

  2. Android源代码目录结构(转)

    https://android.googlesource.com/ Android 2.2 |-- Makefile |-- bionic               (bionic C库) |-- ...

  3. Android源代码目录组成介绍-android学习之旅(97)

    android的主要源代码组成如下: Kernel:Android Linux 内核2.6 bionic:Android 标准C运行支持库 bootloader:内核加载器参考 build:Andro ...

  4. 【转】如何单独编译Android源代码中的模块--不错

    原文网址:http://blog.csdn.net//article/details/6566662/ 第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命 ...

  5. 如何单独编译Android源代码中的模块

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6566662 第一次下载好Android源代码工 ...

  6. 1、android源代码下载及目录分析,和eclipser的跟踪

    1.在eclipse中跟踪源代码:假如对mainactivity.java里面的activity按Ctrl+鼠标左键(前提已经导入android源代码:方法1:在项目点击右键,然后找到properti ...

  7. Android Studio目录结构浅析

    让我们来简单了解下Android Studio中不同目录(文件)的位置和用途.首先看下一个App的最简单的目录结构 OK,我们这么看,第一,把这么多文件先分成这么三块1. 编译系统(Gradle)2. ...

  8. Android源代码结构分析

    Google提供的Android包含了:Android源代码,工具链,基础C库,仿真环境,开发环境等,完整的一套.第一级别的目录和文件如下所示:----------------├── Makefile ...

  9. Android 源码获取-----在Windows环境下通过Git得到Android源代码

    在学习Android的过程中,深入其源代码研究对我们来说是非常重要的,这里将介绍如何通过在Windows环境下使用Git来得到我们的Android源代码. 1.首先确保你电脑上安装了Git,这个通过  ...

随机推荐

  1. Bootstrap的宽度和分辨率的差别

    首先在bootstrap里面所有的样式并在pc上是根据px的单位来判断的,就是我们说的分辨率, @media(min-width:1200px){ ......里面的样式 } 那么就是说当你的屏幕放大 ...

  2. 【BZOJ】【1023】【SHOI2008】cactus仙人掌图

    DP+单调队列/仙人掌 题解:http://hzwer.com/4645.html->http://z55250825.blog.163.com/blog/static/150230809201 ...

  3. 两种高性能I/O设计模式(Reactor/Proactor)的比较

    原文出处: Alex Libman   译文出处:潘孙友   欢迎分享原创到伯乐头条 综述 这篇文章探讨并比较两种用于TCP服务器的高性能设计模式. 除了介绍现有的解决方案,还提出了一种更具伸缩性,只 ...

  4. 驱动笔记 - IO端口和IO内存

    访问IO端口 (#include <asm/io.h>) 设备资源struct resource{ resource_size_t start; //资源起始物理地址 resource_s ...

  5. 【六】PHP正则表达式方法

    PHP中正则表达式的声明格式有两种方式,一种是POSIX老版模式,已经不常用.还有一种是其他语言中常见的PCRE方法. 1.正则表达式的匹配方法并返回匹配的项:array preg_grep(stri ...

  6. 《Thinking in C++》学习笔记(二)【第三章】

    第三章 C++中的C 3.4.4 指针简介 ‘&’运算符:只要在标识符前加上‘&’,就会得出标识符的地址. C和C++有一个专门存放地址的变量类型.这个变量类型叫做指针(pointer ...

  7. Javascript 图片延迟加载之理论基础

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  8. javascript console

    javascript console console.log(object[, object, ...])在控制台输出一条消息.如果有多个参数,输出时会用空格隔开这些参数. 第一个参数可以是一个包含格 ...

  9. shell如何自动输入密码

    shell如何自动输入密码 http://linux.ctocio.com.cn/171/12162171.shtml

  10. ZOJ 2588 Burning Bridges (tarjan求割边)

    题目链接 题意 : N个点M条边,允许有重边,让你求出割边的数目以及每条割边的编号(编号是输入顺序从1到M). 思路 :tarjan求割边,对于除重边以为中生成树的边(u,v),若满足dfn[u] & ...