您的位置:首页 > 移动开发 > Android开发

Android studio NDK配置使用

2016-05-20 23:34 507 查看

Get Started

安装:

下载NDK,解压(一般是解压到SDK里面,但也可以是其他位置)

配置环境变量:在系统PATH环境变量中添加NDK的根路径

Concepts

介绍

NDK就是能让你在安卓应用中运行C和C++代码(称为”native code”)的工具

主要组件

ndk-build:NDK的核心工具,用来编译native代码,生成二进制文件(机器可直接运行的),并且自动将这些文件复制到你的app路径中(对于android studio 也就是app-src-main下面)

native方法的生命需要加一个native标识符:

public native int add(int  x, int  y);


表明这个方法在一个native库里面

Native共享库,也就是C或者C++代码编译后产生的 .so文件

注意:如果两个库的某个函数使用了同样的名字,在不构成C++的重载情况下,都被视为重复的,将会编译报错

native静态库:.a结尾,可以连接其他库

JNI(java native interface): Java和C++的调用接口

ABI(Application Binary Interface): 因为运行环境的硬件实现不用,所以ABI是用来供在不用的硬件下运行调用的。也即是.so文件干的事

Manifest:如果你的应用 没用java组件,需要在manifest中声明NativeActivity

下面两个文件需要在ndk编译的时候用到:

Android.mk:编译配置文件,ndk-build命令调用时会看这个文件,里面定义了module名字和native code的文件名字等其他信息

Application.mk: 需要的组件的信息

使用流程

决定哪个用native code写

创建一个安卓项目

如果只用native 代码写应用,要在清单文件中配置

创建Android.mk文件

创建你的Application.mk,这里面如果有些配置你没说明,将使用下面默认的配置

ABI: armeabi

Toolchain: GCC 4.8

Mode: Release

STL: system

将你的native代码放在jni目录下

使用ndk-build来编译代码(需要的在jni目录下执行)

应用打包

BUILD

Andorid.mk文件

开头语句:

LOCAL_PATH := $(call my-dir)


指示你源文件的位置,my-dir是个宏,它保存了你的Android.mk的路径位置

下一句:

include $(CLEAR_VARS)


作用是清除变量,像LOCAL_MODULE, LOCAL_SRC_FILES, 以及LOCAL_STATIC_LIBRARIES,但是注意它不清楚上面的PATH变量,为什么清除,因为GNU Makefile时,这些变量是全局共用的

接下来:

LOCAL_MODULE := hello-jni


相当于给你native code组件取个名字,.so文件的名字就是lib + 你的module名字合成的,不用module的名字必须独一无二,且没有空格

下一句:

LOCAL_SRC_FILES := hello-jni.c


指示你C或者C++文件的名字

最后一句:

include $(BUILD_SHARED_LIBRARY)


让GNU makefile收集相关的变量信息运行

Application.mk

常用的是平台变量:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: