Linux系统Android NDK编译环境搭建

目的

为了把在Windows或者Linux开发的C/C++代码运行在Android平台,Google提供了NDK编译工具链。本文档旨在说明在一台Linux系统中搭建Android NDK编译环境的过程。

平台

平台系统:Ubuntu 16 x64
NDK版本:android-ndk-r14b
JDK版本:jdk1.8.0_144

安装

开始之前,必须先有一个稳定的Linux系统,这里使用了Ubuntu 16 x64版本的系统,您可以在Ubuntu官网或者各种开源社区获取到系统镜像,并且很容易的将其安装在一台电脑或者虚拟机上。

1、安装和配置JDK
Andorid NDK必须基于JDK,所以接下来需要部署JDK,首先从Oracle官网下载JDK,这里选择了1.8的版本。
Linux系统Android NDK编译环境搭建_第1张图片
然后将JDK安装包解压到/user目录下,并配置JDK的环境变量:在这里插入图片描述
配置完成后在命令行执行:# java -version
显示如下的信息,表示JDK安装和配置成功。
在这里插入图片描述
2、安装和配置Android NDK
Google官网提供了Android NDK的下载地址,目前最新稳定版本是r20。
Linux系统Android NDK编译环境搭建_第2张图片在“NDK归档页面”可以下载历史版本的NDK,这里选择了r14版本:
Linux系统Android NDK编译环境搭建_第3张图片
然后将NDK安装包解压到/usr目录下,并配置NDK环境变量:
在这里插入图片描述配置完成后在命令行执行:# ndk-build -v
显示如下信息,表示NDK安装和配置完成。
Linux系统Android NDK编译环境搭建_第4张图片NOTE:
1、配置的环境变量可能需要重启系统才能生效
2、必须选择最稳定支持NDK版本的JDK版本,否则NDK不可用

测试

上一节中Android NDK编译环境已经在Linux系统中完成了配置,本节将会使用一个实例验证NDK环境是否可用。

测试开始时,在Linux系统中创建一个test目录作为测试实例工程的源码目录和编译目录。

以简单的add函数为例:
add.h

#ifndef __ADD_H__
#define __ADD_H__
 
#ifdef __cplusplus
extern "C" {
#endif

int add(int a, int b);

#ifdef __cplusplus
}
#endif

#endif	 

add.c

#include 
#include "add.h"

int add(int a, int b)
{
     return a+b;
} 

在test目录下创建jni目录,将add.h和add.c文件拷贝到jni目录下,并在jni目录下创建Android.mk文件。
编辑Android.mk文件:

LOCAL_PATH := $(call my-dir)

LOCAL_LDFLAGS += -fPIC

include $(CLEAR_VARS)

LOCAL_C_INCLUDES += $(LOCAL_PATH)/
LOCAL_MODULE := libadd
LOCAL_SRC_FILES := ./add.c
LOCAL_LDLIBS := -llog

include $(BUILD_SHARED_LIBRARY)

在test目录下执行如下命令:# ndk-build
编译信息:
Linux系统Android NDK编译环境搭建_第5张图片
编译完成后在test目录下将生成libs目录和obj目录:
在这里插入图片描述在libs目录下就是编译生成的供给各个平台使用的目标文件:
在这里插入图片描述在这里插入图片描述至此,在Linux系统中搭建的Android NDK编译环境完成。

你可能感兴趣的:(Android)