Android Studio 配置NDK环境
来源:互联网 发布:备案的域名 编辑:程序博客网 时间:2024/05/22 14:02
Android开发中可以使用java+c的方式,使用c/c++开发在有的方面会提高效率和安全性。原来就简单的用过jni开发,但是现在好久不用都忘得差不多了,现在从配置环境开始,一步一步记录下来,算是巩固,而且以后自己写的程序会刻意的多使用。
第一步:配置NDK路径
下载好NDK并安装,在下载SDK时可以选择下载NDK,这样在下载SDK时就下载好了NDK;打开设置界面,设置NDK路径,见图1:
图1.设置ndk路径
第二步:配置gradle.properties
在该文件中添加过时ndk版本支持:android.useDeprecatedNdk=true
第三步:配置module的build.gradle
/*NDK配置*/ ndk{ moduleName "encryptLib" abiFilters "armeabi", "armeabi-v7a", "x86" }
第四步:创建java类声明本地代码库,然后定义native方法
/*声明本地代码库*/ static { System.loadLibrary("encryptLib"); } /*声明本地方法,获得加密后字符串*/ public native String getEncryptString();
第五步:生成.h头文件,你可以自己写头文件,只不过繁琐而且容易出错。(最后会给出定制宏命令的方法)
(1)很多博客里面生成的.h文件位置都不对,还需要复制粘贴,其实可以通过命令一步到位的。
(2)打开Terminal窗口,cd到app/src/main/java目录;
(3)执行命令:
javah -encoding UTF-8 -d ../jni -jni 包名+类路径
-encoding UTF-8: 指定编码格式,否则有可能报编码不对应的错误,-d ../jni :是在上一级目录创建jni文件夹,而且让生成的头文件放在这个文件夹里面,-jni 包名+类路径:生成.h头文件。
第六步:编写c++文件
#include "com_wangliang160616_androidtest_activity_EncryptActivity.h"JNIEXPORT jstring JNICALL Java_com_wangliang160616_androidtest_activity_EncryptActivity_getEncryptString1 (JNIEnv *env, jobject obj){ return env->NewStringUTF("Hello,JNI!"); }
第七步:最后,调用
/*handle business*/ public void handleBusiness() { encryptTv.setText(getEncryptString1()); }
在make project后,在build/intermediate/jniLibs下生成了so文件,将jniLibs文件夹拷贝到main目录下,删除刚刚创建的.h文件,.cpp文件。
最后,我们发现第五步生成.h头文件太麻烦了,容易出错,所以我们可以通过宏命令的方法来替代。
(1)设置→External Tools
(2)参数解释
第一个:Program,相当于命令javah,所以这里填写javah.exe的路径,我的路径是:
$JDKPath$\bin\javah.exe
第二个:Parameters:
-encoding UTF-8 -d $ModuleFileDir$\src\main\jni -jni $FileClass$
第三个:Working directory:
$ModuleFileDir$\src\main\java
这一个相当于指定目录:
D:\ASworkspace\AndroidTest2\app\src\main\java>
上面三个加起来就是:
D:\ASworkspace\AndroidTest2\app\src\main\java>javah -encoding UTF-8 -d D:\ASworkspace\AndroidTest2\app\src\main\jni -jni com.wangliang160616.androidtest.activity.EncryptActivity
看看效果:
好了,大功告成!
- Android studio ndk环境配置
- Android Studio 配置NDK环境
- 《android studio ndk环境配置》
- 【Android】Android Studio配置ndk开发环境
- Android Studio 下安装配置NDK环境
- Android Studio开发配置NDK环境
- android-studio(1):配置NDK开发环境
- Android Studio的NDK环境配置
- Android studio之配置NDK开发环境
- Android Studio NDK开发环境配置
- Android Studio配置NDK编译环境
- android studio配置ndk开发环境
- android studio NDK开发环境配置
- 环境配置之Android Studio开发NDK
- 在Android Studio中NDK环境配置
- Android Studio 配置NDK开发环境
- 环境配置之Android Studio开发NDK
- Android Studio NDK开发-环境配置
- iOS swift - 移除所有子视图
- iOS tableView展示最下面一个cell
- 【微信服务号】微信服务号开发常见问题
- iOS设计模式浅析之外观模式
- Java对象序列化小结
- Android Studio 配置NDK环境
- 由mathtype编写latex公式
- Android 6.0(M) BatteryService浅析及充电呼吸灯流程浅析 MTK
- Lua继承原理(如何实现面向对象)
- React和React Native等学习资源整理
- 前端HTML、CSS、JS绘制三角形的方法
- 直通交换转发计算
- 【NOIP模拟题】【DP】【LIS】【中缀表达式】2016.11.15 第一题 小L的二叉树 题解
- varchar和Nvarchar区别