android ndk开发1
来源:互联网 发布:淘宝香港地址怎么填写 编辑:程序博客网 时间:2024/06/05 08:39
创建NDK项目
第一步 , 创建支持C++的项目
其他的选项使用默认的即可 。
第二步 , 关联NDK
创建完成之后会报如下错误:
在项目配置中 , 关联NDK之后就会ok
第三步 , 编写native类及处理方法
在创建项目的时候 , 勾选了C++ support , 项目创建完成之后 , 会自动帮我们生成一个cpp/native-lib.cpp
你可以不用修改文件名 , 在新建native
方法的时候 , 会提示你创建一个C++的JNI函数 , 直接创建就会生成一个JNI函数 , 都不用使用javah
生成一个头文件 , 然后再引入头文件了 , 非常之方便 。
创建函数:
在这里 , 就不使用默认的.cpp
文件了 , 我们新建一个.c
文件 , 创建了HelloNDK.c
文件之后 , Android Studio会提示我们 , 需要在Android.mk/CMakeLists.txt
中进行声明 , 这里 , 我们使用默认的CMakeLists.txt
建构工具 (创建项目的时候自动生成)。
第四步 , build.gradle配置:
externalNativeBuild { cmake { cppFlags "" // 指定只用clang编译器 // Clang是一个C语言、Objective-C、C++语言的轻量级编译器。 arguments "-DANDROID_TOOLCHAIN=clang" // 生成.so库的目标平台 abiFilters "armeabi-v7a" , "armeabi" }}// 配置CMakeLists.txt路径externalNativeBuild { cmake { path "CMakeLists.txt" }}
第五步 , 修改CMakeLists.txt
add_library( # Sets the name of the library. HelloNDK # 生成的.so库文件名称 # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). # Associated headers in the same location as their source # file are automatically included. # 需要生成的.so库的文件路径 src/main/cpp/HelloNDK.c )target_link_libraries( # Specifies the target library. # 项目链接的.so库名称 HelloNDK # Links the target library to the log library # included in the NDK. ${log-lib} )
第六步 , 编写
native
方法,以及C函数
/** * Created by Zeno on 2016/9/10. * * NDK Demo */public class HelloNDK { public static native String sayHelloNDK() ; static { System.loadLibrary("HelloNDK"); }}
#include <jni.h>JNIEXPORT jstring JNICALLJava_com_zeno_encryptanddecrypt_ndk_HelloNDK_sayHelloNDK(JNIEnv *env, jclass thiz) { // TODO return (*env)->NewStringUTF(env, "this String come from C ");}
native
方法的编写以及C函数的写法, 我们都非常熟悉了 , 这里就不再解释各自的意义了 。
第七步 , 编译
编译完成之后 ,我们可以切换到project
视图,来查看.so
文件
第八步 , 运行
如果使用的是genymotion模拟器 , 这需要在abiFilters
加入x86
,不然项目会运行不起来的 。 当然, 也可以使用一个genymotion的arm
插件 , 这样不配置x86
也可以运行 。
// 生成.so库的目标平台abiFilters "armeabi-v7a" , "armeabi" , "x86"
声明:需要切换到project视图下,然后按照build --> intermediates --> cmake --> debug --> obj来找so库。
好多工程师就是找不到,再次声明。
- android ndk开发1
- [Android NDK] Android NDK开发环境配置 --- 1 Linux
- Android NDK开发配置NDK
- Android NDK : NDK开发概要
- Android NDK开发基础-------环境搭建1
- Android NDK纯C++开发(1)
- Android NDK纯C++开发(1)
- Android NDK 学习(1) 搭建开发环境
- android-studio(1):配置NDK开发环境
- Android studio(1.4.1) NDK开发
- android studio 中的NDK开发(1)
- Android NDK开发从0到1
- Android NDK开发从0到1
- android NDK开发相关
- Android NDK应用开发
- Android NDK开发学习
- android NDK 开发
- Android NDK 开发
- JavaScript读书学习笔记(五)——事件
- Kotlin快速上手
- Shell输入输出重定向
- MYSQL操作之DDL
- 正向圈圈
- android ndk开发1
- syn攻击
- HttpConnection的post请求发送数据,接收方出现乱码
- 【版本更新】Word组件Spire.Doc for .NET V6.0.21发布 | 附下载
- 数据库的基本操作
- zookeeper leader选举过程
- 10.9 NOIP[真] 背包 + 状压 + 单调栈 + 最短路
- ubuntu下安装redis
- Windows环境下使用Mongo