<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="Android.mk构造学习 - Android" id="card1">
<p> 游客</p><p>
标题:Android.mk构造学习 - Android<br/>
正文:<br/>
Android.mk结构学习<br/>转载自: http://yueguc.iteye.com/blog/762303 Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的， 这篇文档描述了它的语法。<br/> 在阅读下面的内容之前，假定你已经阅读了docs/OVERVIEW.TXT文件，了解了它们的角色和用途。<br/><br/> 概述:<br/> 一个Android.mk file用来向编译系统描述你的源代码。<br/> 具体来说：该文件是GNU Makefile的一小部分，会被编译系统解析一次或多次，解析一次或更多次的build系统。<br/> 因此，您应尽量减少您声明的变量，不要认为某些变量在解析过程中不会被定义。<br/><br/> 这个文件的语法允许把你的源代码组织成模块，一个模块属下列类型之一：<br/>   静态库<br/>   共享库<br/> 只有共享库将被安装/复制到您的应用软件包。<br/> 虽然静态库能被用于生成共享库。<br/> 你可以在每一个Android.mk file中定义一个或多个模块，你也可以在几个模块中使用同一个源代码文件。<br/> 编译系统为你处理许多细节问题。<br/> 例如，你不需要在你的Android.mk中列出头文件和依赖文件。<br/> NDK编译系统将会为你自动处理这些问题。<br/> 这也意味着，在升级NDK后，你应该得到新的toolchain/platform支持，而且不需要改变你的Android.mk文件。<br/> 注意，这个语法同公开发布的Android平台的开源代码很接近，然而编译系统实现他们的方式却是不同的，这是故意这样设计的，可以让程序开发人员重用外部库的源代码更容易。<br/><br/> 简单的例子:<br/> ---------------<br/> 在描述语法细节之前，咱们来看一个简单的&quot;hello world&quot;的例子，比如，下面的文件：<br/> sources/helloworld/helloworld.c<br/> sources/helloworld/Android.mk<br/><br/> 'helloworld.c'是一个JNI共享库，实现返回&quot;hello world&quot;字符串的原生方法。<br/> 相应的Andr<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=831&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=831&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=831&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=831&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=831&amp;Page=5">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=831">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=831">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>