MTK6577 Android源代码目录
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源代码目录的更多相关文章
- Android系统源代码目录结构 “Android源代码”“目录结构”
在讲述Android源码编译的三个步骤之前,将先介绍Android源码目录结构,以便读者理清Android编译系统核心代码在Android源代码的位置. Android源代码顶层目录结构如下所示: ├ ...
- Android源代码目录结构(转)
https://android.googlesource.com/ Android 2.2 |-- Makefile |-- bionic (bionic C库) |-- ...
- Android源代码目录组成介绍-android学习之旅(97)
android的主要源代码组成如下: Kernel:Android Linux 内核2.6 bionic:Android 标准C运行支持库 bootloader:内核加载器参考 build:Andro ...
- 【转】如何单独编译Android源代码中的模块--不错
原文网址:http://blog.csdn.net//article/details/6566662/ 第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命 ...
- 如何单独编译Android源代码中的模块
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6566662 第一次下载好Android源代码工 ...
- 1、android源代码下载及目录分析,和eclipser的跟踪
1.在eclipse中跟踪源代码:假如对mainactivity.java里面的activity按Ctrl+鼠标左键(前提已经导入android源代码:方法1:在项目点击右键,然后找到properti ...
- Android Studio目录结构浅析
让我们来简单了解下Android Studio中不同目录(文件)的位置和用途.首先看下一个App的最简单的目录结构 OK,我们这么看,第一,把这么多文件先分成这么三块1. 编译系统(Gradle)2. ...
- Android源代码结构分析
Google提供的Android包含了:Android源代码,工具链,基础C库,仿真环境,开发环境等,完整的一套.第一级别的目录和文件如下所示:----------------├── Makefile ...
- Android 源码获取-----在Windows环境下通过Git得到Android源代码
在学习Android的过程中,深入其源代码研究对我们来说是非常重要的,这里将介绍如何通过在Windows环境下使用Git来得到我们的Android源代码. 1.首先确保你电脑上安装了Git,这个通过 ...
随机推荐
- c++取小数整数部分
#include<math.h> double ceil(double x) //向上取整 double floor(double x) //向下取整 向上取整,取比x大的第一个整数值向下 ...
- while小问题
while(!m_SMque.pop(data)); 看到这个有点忘了,如果pop返回false会一直执行pop,其实这个执行的是空语句,而while每次执行都需要判断条件,所以如果pop返回fals ...
- win7 IIS7 PHP环境配置
PHP5.2.17 官方下载: http://windows.php.net/downloads/releases/php-5.2.17-Win32-VC6-x86.zip PHP5.3.5 官方下载 ...
- 安装JDK后环境变量的配置
1.JAVA_HOME:JDK的安装路径2.CLASSPATH:java运行时加载的类路径,即JDK的lib下面的tools.jar和dt.jar3.PATH:JDK安装包下的bin目录
- UML状态图(转载)
概述: 图表本身的名称,阐明该图的目的和其他细节.它描述了在一个系统中的一个组成部分不同的状态.状态是特定的一个系统的组件/对象. 状态图描述了一个状态机.我们阐明的状态机可以被定义为一台机器,它定义 ...
- uialertview 改变文字显示位置
- (void)willPresentAlertView:(UIAlertView *)alertView{ UIView * view = [alertView.subviews objectAtI ...
- nodeJs入门篇之认识nodejs
摘要:将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏览器就基于V8,同时打开 ...
- 疯狂java讲义——继承
本文章只是记录我在学习疯狂java讲义里面,对之前java知识查缺补漏进行的总结. 方法重写 方法重写要遵循"两同两小一大"规则."两同"即方法名相同.形参列表 ...
- Manacher算法 O(n) 求最长回文子串
转自:http://bbs.dlut.edu.cn/bbstcon.php?board=Competition&gid=23474 其实原文说得是比较清楚的,只是英文的,我这里写一份中文的吧. ...
- Android ListVIew 详解(一)
在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示.抽空把对ListView的使用做了整理,并写了个小例子,如下图. 列表的显示需要三 ...