Android NDK开发

  • 安装ndk并测试

官网下载ndk,ndk向后兼容,并非版本越新越好,低版本兼容高版本。

  • 配置环境变量

ANDROID_NDK_HOME 值为ndk安装目录
如:
D:\android-ndk-r14b-windows-x86_64\android-ndk-r14b

  • gradle中ndk配置
android{

ndk {
            moduleName "module_count"
            ldLibs "log", "z", "m"
            abiFilters "armeabi", "armeabi-v7a", "x86"
        }

}
  • local.gradle配置添加ndk路径
ndk.dir=D\:\\android-ndk-r14b-windows-x86_64\\android-ndk-r14b
  • 修改gradle.proties
android.useDeprecatedNdk=true
  • 使用native关键字声明java方法

test.lucky.ndktest.MainActivity 代码片段

public static native  method();
static{
System.loadLibrary('libiaryName.so');
}
  • 生成头文件

在terminal控制台,切换到test同级目录

javah -jni   test.lucky.ndktest.MainActivity
  • 实现native方法
    main下创建jni文件夹,写c文件,参考生成的头文件,实现native方法

  • 生成so文件

    • 方式一 :make–>project
      在app/build/intermediates/ndk/debug/lib生成so文件,拷贝全部so文件到libs下

    • 方式二 :ndk-build
      若使用ndk-build命令生成so文件,需要手动编写android.mk和application.mk文件,这里给出的是使用第一种方式自动生成的代码。
      application.mk主要指定module名称,c 文件路径,头文件路径等。

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

LOCAL_MODULE := module_count
LOCAL_LDFLAGS := -Wl,--build-id
LOCAL_LDLIBS := \
    -llog \
    -lz \
    -lm \

LOCAL_SRC_FILES := \
    G:\AndroidSource\WcAutoReply-master\WcAutoReply-master\NdkTask\app\src\main\jni\testC \

LOCAL_C_INCLUDES += G:\AndroidSource\WcAutoReply-master\WcAutoReply-master\NdkTask\app\src\main\jni
LOCAL_C_INCLUDES += G:\AndroidSource\WcAutoReply-master\WcAutoReply-master\NdkTask\app\src\debug\jni

include $(BUILD_SHARED_LIBRARY)

applcation.mk

APP_ABI := armeabi armeabi-v7a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值