分享

androidNDK编译中文版3

 techres 2014-03-10

android NDK编译 中文版3

(2012-07-24 15:57:30)

分类: android

3.Application.mk

3.1.作用

Application.mk目的是描述在你的应用程序中所需要的模块(即静态库或动态库)

Application.mk文件通常被放置在$PROJECT/jni/Application.mk下,$PROJECT指的是您的项目。另一种方法是将其放在顶层的子目录下,既$NDK/apps目录下,例如:

$NDK/apps/<myapp>/Application.mk

<myapp>是一个简称,用于描述你的NDK编译系统的应用程序(这个名字不会生成共享库或者最终的包),这个方法是Android NDK r4以前的,现在仍然兼容。但是我们强烈建议你使用第一种方法,因为它更简单并且不用修改NDK安装树的目录。

3.2.详细说明

下面是Application.mk中定义的几个变量:

3.2.1.APP_MODULES

APP_MODULES 变量是强制性的,并且会列出所有你所需要的模块。它不允许用一个空格来分隔其模块列表,这个模块名字被定义在Android.mk文件中的LOCAL_MODULE中。

3.2.2.APP_PROJECT_PATH

APP_PROJECT_PATH变量也是强制性的,并且会给出应用程序工程的根目录一个绝对路径。这是用来复制或者安装一个没有任何版本限制的JNI库,从而给 APK 生成工具一个详细的路径。例如:

\HelloNDK\Application.mk

APP_PROJECT_PATH := $(call my-dir)/project

APP_MODULES := HelloNdk

这里定义了工程路径为$(call my-dir)/project,而要编译的模块则是HelloNdk,这样编译系统才会找到我们要编译的库和源文件。

3.2.3.APP_CFLAGS

APP_CFLAGS则是当要编译模块中有任何C文件或者C++文件的时候C编译器的信号就会被发出。这里可以在你的应用中需要这些模块时,进行编译的调整,这样就不许要直接更改Android.mk为文件本身了。

3.2.4.APP_OPTIM

这个变量是可选的,可以定义成两个值release或者debug,用于修改编译程序模块时的优化层级。release模式是默认的,会产生高优化的文件,debug模式会生成不优化的文件,使得调试更容易进行。

注意:调试releasedebug文件都是可能的,但是release版在调试节提高的信息很少,一些变量被优化输出,无法检查,代码被重排序,使得跟踪代码很困难,堆栈追踪也不可靠,等等。

3.2.5.APP_CPPFLAGS

当编译的只有C++源文件的时候,可以通过这个C++编译器来设置。

注意:在Android NDK-1.5_r1中,这个标志可以应用于CC++源文件中。并且得到了纠正,以建立完整的与系统相匹配的Android编译系统。你先可也可以使用APP_CFLAGS来应用于C或者C++源文件中。建议使用APP_CFLAGS

4.补充

4.1.两种不同级别的应用apk

目前我所理解是在Android开发中我们会遇到两种不同级别的应用apk:系统级应用apk和普通级应用apk

下面分别描述两种apk

4.1.1.编译系统级应用apk

将应用程序的代码放到武当源代码目录路径下,然后进行编译。将编译生成的*.apk通过adb或者其它方式放到/system/app目录下即可。

4.1.2.编译普通级应用apk

应用程序的代码并没有放到平台的源代码目录下,然后通过编译生成的*.apk通过adb install的方式放到/data/app目录下,就是普通级的apk

5.参考资料

1.

Android ndk r7b for linux/ Android ndk r6b for windows

2.

Android NDK 概览($(NDK)/doc/OVERVIEW.html)

http://hualang./blog/1135105

3.

NDK使用方法($(NDK)/doc/HOWTO.html)

http://hualang./blog/1136209

4.

Android.mk 文件($(NDK)/doc/ANDROID-MK.html)

http://hualang./blog/1140414

5.

Application.mk 文件($(NDK)/doc/APPLICATION-MK.html)

http://hualang./blog/1149359

6.

Android Building System 总结

http://blog.csdn.net/yili_xie/article/details/5004205

7.

build-system.html

Android 源码下:platform/build/core/build-system.html

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多