AndroidStudio NDK开发 之 jni生成so文件
来源:互联网 发布:c stl源码剖析 pdf 编辑:程序博客网 时间:2024/06/05 08:49
最近在想如何将代码写到so包里,以防代码被破解~ 当然了若有人想还是有办法的,哈哈哈!
来吧!
目标:在安卓studio中生成so包;
工具:安卓studio2.0;
1、下载NDK 我下载的是android-ndk-r13b (http://www.androiddevtools.cn/)
2、 配置系统环境变量 Path D:\android-ndk-r13b-windows-x86_64\android-ndk-r13b
3、cmd 下ndk-build如下所示记为成功
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
D:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\build\\..\build\core\build-local.mk:151: *** Android NDK: Aborting . Stop.
4、配置安卓studio的ndk路径
D:\android-ndk-r13b-windows-x86_64\android-ndk-r13b
5、下载tools如下图,LLDB、NDK还有CMake没有截图
接下来上代码
一、在项目的build_gradle的android目录下
defaultConfig { minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" ndk{ moduleName"ndk" abiFilters "armeabi","armeabi-v7a","x86"//输出指定三种abi体系结构下的so库,目前可有可无 }}sourceSets { main { jniLibs.srcDirs = ['libs'] }}
二、创建java类
/** * Created by haohuo on 2017/8/17. */public class JniUtils { Context mContext; public JniUtils(Context context) { mContext = context; } static { System.loadLibrary("ndk");//注意这个名字是我们在build.gradle中ndk中配置的moduleName } public native String NDK();
三、在Terminal输入命令
cd app/src/main/java进入目标目录
javah -jni com.marvin.demo.utils.JniUtils
四、在app目录下创建jni文件夹
创建Android.mk文件代码
代码直接拷贝(拷贝后把注释删掉,否则报错)
LOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE :=ndkLOCAL_SRC_FILES :=ndk.c//注意.c文件的名字和java类及build_gradle中名称保持一致include $(BUILD_SHARED_LIBRARY)
创建对应.c文件,我这里取名ndk.c
#include "com_marvin_demo_utils_JniUtils.h"//这里引入我们刚才的.h头文件JNIEXPORT jstring JNICALL Java_com_marvin_demo_utils_JniUtils_NDK (JNIEnv *env, jobject obj){ return (*env)->NewStringUTF(env,"Im NDK"); }
万里江山已完成一大半,不急就差最后一抖了
五、在app的main目录下创建jniLibs
Terminal下执行命令ndk-build
好神奇的发现jniLibs生成熟悉的arm等文件
结束!
- AndroidStudio NDK开发 之 jni生成so文件
- 《关于ndk jni开发和so文件的生成》
- AndroidStudio引用NDK生成的so文件
- android(NDK+JNI)---NDK编译生成so文件
- Android 使用NDK-build生成so文件 C++ JNI NDK
- AndroidStudio Gradle项目中添加JNI生成文件(.so文件)
- AndroidStudio Gradle项目中添加JNI生成文件(.so文件)
- Android Studio NDK jni 开发生成头文件和加载so库
- 利用IDEA进行JNI开发:使用NDK生成Linux平台下的so文件
- NDK 生成 .so ,jni 调用
- android ndk开发编译生成so文件
- AndroidStudio集成ndk、开发JNI
- android jni开发,用javah生成***.h头文件,用ndk在libs下生成***.so文件
- NDK开发Javah生成Jni 头文件
- NDK生成so文件
- NDK生成so文件
- Android SDK NDK JNI和so文件开发
- AndroidStudio 下用ndk 生成so包
- 新人入职
- Python 中的类(1)
- Android进阶——Android消息机制之Looper、Handler、MessageQueue
- 在安装python的pip工具时,遇到以下报错[Errno -3] Temporary failure in name resolution',)': /simple/pip/
- 一代背锅侠,汉初最能为刘邦背黑锅的人
- AndroidStudio NDK开发 之 jni生成so文件
- easyui datagrid请求数据失败,页面提示
- html dom小案例
- 性能优化——异步加载js文件
- 冒泡排序
- 优先队列详解
- 搭建服务器环境编译源码
- HDU6165 FFF at Valentine(深搜dfs,2017 HDU多校联赛 第9场)
- HTTP 缓存机制详解