android makefile(android.mk)分析(序)

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} h1 {mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; mso-outline-level:1; font-size:24.0pt; font-family:宋体; mso-bidi-font-family:宋体; font-weight:bold;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline; text-underline:single;} p {mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:宋体; mso-bidi-font-family:宋体;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->

android makefile(android.mk) 分析(序)

android 是什么就不用说了,android 自从开源以来,就受到很多人的追捧。当然,一部人追捧它是因为它是Google 开发的。对一个程序 员来说,一个系统值不值得追捧得要拿代码来说话。我这里并不打算分析android 的代码,而是androidmakefile ,我想通过分析 andoridmakefile 来告诉大家如何写makefile

对于一个程序新手而言,好的IDE 是他们追捧的对象。但当他接触的代码多了之后,就会逐渐发现IDE 不够用了,因为有好多东西用IDE 是不好做的, 例如自动编译,测试,版本控制,编译定制等。这跟政治课上的一句话有点像:资本主义开始的时候是促进生产力发展的,但到了后来又成了阻碍生产力发展的因素 了。如果一个程序不能摆脱IDE 的限制(不是不用,而是要有选择的用),那么他就很难提高。要知道,IDEmakefile 代表了两种不同的思 想:IDE 根据强调的是简化计算机与用户的交互;而makefile 体现的是自动化。

对于一个一开始就接触linux 的人来说,makefile 可能是比较容易学的(熟能生巧),对于一个一开始就接触Windows 的人来 说,makefile 就不太好学,这主要是应该很多时候会不自觉地去用Visual StudioVisual Studio 是个好东西,特别是它的调试)。不知道大叫有没有这个的感觉:一个人如果先接触c ,再接触java 会比较容易点;如果一个人先接触java , 再接触c ,就会比较反感c

这个先引用一下百度百科对makefile 的一些描述:

一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件 需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 就像一个Shell 脚本一样,其中也可以执行操作系统的命令。

makefile 带来的好处就是——“ 自动化编译 , 一旦写好,只需要一个make 命令,整个工程完全自动编译,极大的提高了软件开发的效率。make 是一个命令工具,是一个解释makefile 中指令的命 令工具,一般来说,大多数的IDE 都有这个命令,比如:Delphi makeVisual C++nmakeLinuxGNUmake 。可见,makefile 都成为了一种在工程方面的编译方法。

Make 工具最主要也是最基本的功能就是通过makefile 文件 来描述源程序之间的相互关系并自动维护编译工作 。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。makefile 文件是许多编译器-- 包括 Windows NT 下的编译器-- 维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。

对于android 而言,android 使用的是GNUmake ,因此它的makefile 格式也是GNUmakefile 格式。现在网络上关 于makefile 最好的文档就是陈皓的《跟我一起写makefile 》,这份文档对makefile 进行了详细的介绍,因此推荐大家先看这份文档(电子 版可以到http://pipi.googlecode.com/files/How%20to%20Write%20makefile.pdf 下 载,陈皓的bloghttp://blog.csdn.net/haoel )。

android 最顶层的目录结构如下:

.
|-- Makefile       
(全局的Makefile
|-- bionic         
Bionic 含义为仿生,这里面是一些基础的库的源代码)
|-- bootloader     
(引导加载器)
|-- build          
build 目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)
|-- dalvik         
JAVA 虚拟机)
|-- development    
(程序开发所需要的模板和工具)
|-- external       
(目标机器使用的一些库)
|-- frameworks     
(应用程序的框架层)
|-- hardware       
(与硬件相关的库)
|-- kernel         
Linux2.6 的源代码)
|-- packages       
Android 的各种应用程序)
|-- prebuilt       
Android 在各种平台下编译的预置脚本)
|-- recovery       
(与目标的恢复功能相关)
`-- system         
Android 的底层的一些库)

本文将要分析的是build 目录下的makefileshell 文件,android 的代码是1.5 的版本。

主要的目录结构如下:

1.makefile 入门

    1.1 makefile helloworld

    1.2 makefile 构建交叉编译环境

    1.3 makefile 里面的一些技巧

2.android makefile 分析

    2.1 android shell 分析

    2.2 android build 下的各个makefile 分析

3. android 其他目录的android.mk 分析

由于最近研究生要毕业了,得找工作了,所以可能分析有时候会间断一两天,望大家能够谅解。

作为序的最后,大家先通过网络的一些文章来了解一下andoroidmakefile

1.Android build system

2.Android Building System 分析

3.Android Build System(介绍使用)

(原地址http://blog.csdn.net/chief1985/archive/2009/10/19/4699831.aspx)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值