Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 571|回复: 0

NDK开发指南---NDK使用方法-  Android学习

[复制链接]

该用户从未签到

发表于 2011-10-24 14:38:39 | 显示全部楼层 |阅读模式
Android NDK的使用方法:
======================


NDK的用户提示和技巧集合


如何强制显示build命令
------------------------


执行"ndk-build V=1",实际生成的命令将会被显示。这可以用来验证你编译的东西,并且还会检查NDK的
build system中的错误。


(V=1 来自Linux内核的build system)


如何强制重新编译你的源码
------------------------
使用GNU Make的“-B”选项


ndk-build -B


如何存储本地源码到除$PROJECT/jni以外的位置:
-------------------------------------------


首先,你可以在你的$PROJECT/jni/Android.mk中包含另一个不同位置的Android.mk


另外,你需要在你的Application.mk文件中定义APP_BUILD_SCRIPT来指向那个替代的Android.mk文件


如果在不使用cd-ing的情况下来编译你的本地项目文件
------------------------------------------------
有时候,你需要在不用使用cd命令切换到根目录的情况下重新编译你的本地项目文件,可以使用
GNU-Make的'-C <path>'选项,如:


ndk-build -C <project-path>


如何将你的Application.mk文件存储子$PROJECT/jni目录之外
------------------------------------------------------
从NDK r4开始,你可以简单的将源文件放到$PROJECT/jni/目录下,然后执行'ndk-build'脚本


如果你想使用'ndk-build'命令但是将源文件放到了其他的位置,你可以使用如下命令:


ndk-build NDK_APPLICATION_MK=/path/to/your/Application.mk


如果你想使用传统的$NDK/apps/<name> 来build system,你可以创建一个符号链接到你最终的Application.mk
比如:


$PROJECT/foo/Applicatio.mk


用如下的命令创建符号链接


ln -s $PROJECT/foo $NDK/apps/<name>


这将使得你的$NDK/apps/<name>/Applicaiton.mk文件直接指向$PROJECT/jni/Application.mk


注意,这样生成的文件将仍然在$NDK/out/apps/<name>目录下。


Windows用户在使用Cygwin的情况下,它可以通过"ln -s"命令来创建符号链接,例如


ln -s <target> <link>


如何正确的添加一个包含目录到你的模块中:
--------------------------------------


如果你定义了若干模块,在编译另一个模块的时候需要包含某个模块的头文件,例如


$PROJECT/jni/foo/
Android.mk
foo.h
foo.c


$PROJECT/jni/foo/
Android.mk
fo.c


bar.c使用了"#include <foo.h>",你需要正确的将路径添加到foo模块的jni/bar/Android.mk中


例如,可以使用如下这样


LOCAL_C_INCLUDES := ../foo


但是这样是不会执行的,因为所有编译都从'ndk-build'被调用所在的目录开始,这些包含文件必须是
相对的才可以。


正确的方法是:


LOCAL_C_INCLUDE :=$(LOCAL_PATH)/../foo


它才哦那够了相对路径的方式,你需要将foo和bar移到源码目录的更深层次下。


如果你必须需要它,你可以使用NDK_APP_PROJECT_PATH指向你的项目目录


LOCAL_C_INCLUDES :=$(NDK_APP_PROJECT_PATH)/jni/foo


然而我们不建议这种方式,相对路径$(LOCAL_PATH)这种方式会更好些
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 11:59 , Processed in 0.316937 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表