Android

关注公众号 jb51net

关闭
首页 > 软件编程 > Android > Android NDK入门

Android NDK入门初识(组件结构开发流程)

作者:codeteenager

这篇文章主要为大家介绍了Android NDK入门之初识组件结构开发流程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

什么是Android NDK?

Android NDK是Android软件开发包(SDK)的相关工具集,用来扩展Android SDK的功能,从而使开发人员能够使用机器代码生成的编程语言(如C、C++和汇编语言)实现一些对代码性能要求较高的模块,并将这些模块嵌入到Android应用程序中使用。

Android NDK是Android软件开发包(SDK)的相关工具集,用来扩展Android SDK的功能,从而使开发人员能够使用机器代码生成的编程语言(如C、C++和汇编语言)实现一些对代码性能要求较高的模块,并将这些模块嵌入到Android应用程序中使用。

NDK 不适用于大多数初学的 Android 编程者,对许多类型的 Android 应用没什么价值。 因为它不可避免地会增加开发过程的复杂性,所以通常不值得使用。 但如果您需要执行以下操作,它可能很有用:

Android NDK提供的组件

Android NDK不是一个单独的工具,他是一个包含API、交叉编译器、链接程序、调试器、构建工具、文档和示例应用程序的综合工具集。以下是Android NDK的一些主要组件:

Android NDK的结构

Android NDK组件都被安装在NDK的根目录下,下面介绍一些重要的文件和子目录。

Android NDK的开发流程

在java中声明Native方法

public native String hello();

在jni目录中实现原生方法

首先创建jni目录。

在jni目录中创建c/c++文件,并实现对应的方法。

#include <jni.h>
#include <stdio.h>
#include <stdlib.h>
extern "C"
JNIEXPORT jstring JNICALL
Java_cn_com_codeteenager_ndkone_MainActivity_hello(JNIEnv *env, jobject obj) {
 return env->NewStringUTF("Hello World");
}

添加Android.mk文件。

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := helloworld
LOCAL_SRC_FILES := HelloWorld.cpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)
 #LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)

添加Application.mk文件。

# 指定生成哪些cpu架构的库
APP_ABI := armeabi-v7a
# 此变量包含目标 Android 平台的名称
APP_PLATFORM := android-22

通过命令行打开jni目录,然后执行ndk-build命令脚本进行编译。编译后的项目结果如图所示。

Android NDK构建系统

Android NDK的构建系统是基于GUN Make的。该构建系统的主要目的是使开发人员能够用很短的构建文档来描述原生的Android应用程序。

Android NDK的其他两种编译方式

上述Android NDK的开发流程中通过配置Android.mk来编译是其中的一种方式,还有两种方式。

通过配置Android Studio中build.gradle来编译

这种方式简化了编写Android.mk文件,跟上述流程一样,只是不需要编写Android.mk和Application.mk,但是需要添加两样配置。

在主Module的build.gradle的defaultConfig里添加

ndk{
         moduleName 'hello'
        abiFilter 'armeabi-v7a'
       }

注意:这种方式无法再Android Studio3.0以上使用,只能在3.0以下使用,3.0及以上采用cmake来编译生成so文件。

通过Android Studio的cmake插件编译

在Android Studio2.2及以上版本中,可以使用cmake插件来编译c库,这也是最新的ndk开发方式。首先你需要在SDK Tools中下载CMake和LLDB这两个组件,当然ndk也是必须的。

当你安装好上述两个组件后,你可以使用Android Studio创建支持C/C++的新项目。步骤如下:

点击 Finish,创建成功,项目结构如下图所示。

当你创建完成项目后点击Android Studio中Build->Make Project,系统会帮你构建完成后,你就可以在相对应Module下的build->intermediates->cmake下找到so库。

以上就是Android NDK入门初识(组件结构开发流程)的详细内容,更多关于Android NDK入门的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文