Android studio NDK配置使用

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

常用的是平台变量:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值