Android NDK入门 —— 第一个NDK程序

前言

我会在小专栏和一起分享。
最近在搞NDK开发,于是想着申请专栏跟大家一起分享我的学习过程,刚申请完没想到就有人关注了,让我更有了干劲。如今大部分Android开发应该是了Android Studio(AS),所以接下来基本围绕AS来开发。如果有需要Eclipse入门的可以留言给我。

正题

使用AS开发现在有两种方式,分别ndk-build和CMake。不管哪种方式都需要安装Android NDK工具,需要调试需要LLDB工具,使用CMake编译就需要CMake工具,如图,
Android NDK入门 —— 第一个NDK程序_第1张图片

首页讲讲使用ndk-build编译,先使用Android Studio新建一个基础项目,在任意类中新建native方法进行一次编译。接着打开Terminal工具,通过命令行“cd app/src/main/java”进去到工程目录,然后使用命令“javah -jni <包名>.<类名>”,噌。蹦出一个错误找不到xxx类,进过一翻搜索后发现原来现在是要这样“javah -classpath . -jni <包名>.<类名>”,注意在-classpath后面是有一个空格和一个点,敲完回车.h文件就生成了。把得到的.h文件拉到我们的jni文件夹中,在新建一个.c文件进行编码。接下来就是要生成.so文件,根据一位大神的方案配置了External Tools。
1.javah命令生成.h文件


Android NDK入门 —— 第一个NDK程序_第2张图片

2.ndk-build命令生成.so文件
Android NDK入门 —— 第一个NDK程序_第3张图片

除了以上设置以外,还有必须配置在build.gradle ->defaultConfig

ndk{
   moduleName "HelloJniLibName"         //生成的so名字
}

根据存放的so文件配置

sourceSets.main {
    jni.srcDirs = ['src/main/jni']
    jniLibs.srcDir 'src/main/jniLibs'
}

在gradle.properties中需要加入

android.useDeprecatedNdk=true

最后别忘了Android.mk文件和Application.mk文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := HelloJniLibName
LOCAL_SRC_FILES := ndktest-jni.c
include $(BUILD_SHARED_LIBRARY)

以上都搞定后,你可以在你的jni目录右键使用NDK->ndk-build操作就会在响应目录生成.so文件了。

结尾

第一次写望大家见谅,可留言指点,今天就先到这了明天继续CMake方式生成so文件。

你可能感兴趣的:(Android NDK入门 —— 第一个NDK程序)