android studio使用ndk,jni随记
1.下载ndk(会下载到sdk目录下)
2.配置
3.配置build.gradle(app)
android { defaultConfig {
ndk {
moduleName "JniDemo" //生成so名称
abiFilters "armeabi","armeabi-v7a","x86" //输出指定三种abi体系结构下的so库,可忽略
//ldLibs "log" 添加log库,看自己需求
}
} //这里设置目录,默认就这样写就可以了
sourceSets {
main {
jni.srcDir "src/main/jni"
jniLibs.srcDir "src/main/libs"
}
}
}
gradle.properties添加
android.useDeprecatedNdk = true
loca.properties查看ndk目录是否正确
4.创建包含native方法的类
5.生成.h头文件
(1),使用命令行生成.h。参考Ubuntu下NDK编译环境搭建及在Android Studio中集成NDK
cd app/build/intermediates/classes/debug
javah -jni com.demo.JniUtils
创建jni目录,将.h拷贝到jni并创建.c文件
(2),配置常用命令生成,参考如何优雅使用ndk
6.调用运行
其他参考内容:使用 AndroidStudio 进行 NDK 开发(一)
头文件分析,截图参考这里
#########################################################################以上为配置
1,C中打印log
(1),Android.mk中LOCAL_LDLIBS需要有-llog
(2),gradle中配置
(3),C/C++
#include <android/log.h>
#define LOG_TAG "MYJNI" #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__)
jint Java_com_jieth_myjnidemo_MyJniUtils_sum
(JNIEnv *env,jclass type, jint a,jint b){ LOGE("this is log info string....");
LOGE("this is log info string.... and str is %s", "测试"); jint c = a+b;
return c;
}
新的,用studio创建官方demo,创建项目的时候勾选上。就会自动创建一个含有jni demo效果的项目
android studio使用ndk,jni随记的更多相关文章
- Android Studio上NDK/JNI开发环境问题
基础环境: 操作系统 —— Windows 7 Android Studio —— 1.5.1(android-studio-bundle-141.2456560-windows.exe) NDK — ...
- 【android 开 发 】 - Android studio 下 NDK Jni 开发 简单例子
Android 开发了一段时间,一方面 ,感觉不留下点什么.有点对不起自己, 另一方面,好记性不如烂笔头,为了往后可以回头来看看,就当做是笔记,便决定开始写博客.废话不多说 ! 今天想搞一搞 ndk ...
- Android studio 下 NDK Jni 开发 简单例子
1. 创建一个新的工程 2. 创建一个新的类 JniText.java 点击Build--Make Project 后 选中工程 点击F4键 sdk location 中 Android ...
- Android studio 使用NDK工具实现JNI编程
前言: Android开发中常常会使用到第三方的.so库.在使用.so库的时候就要用到JNI编程.JNI是Java Native Interface的缩写.它提供了若干的API实现了Java和其它语言 ...
- 【Android Studio安装部署系列】二十五、Android studio使用NDK生成so文件和arr文件
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio使用ndk的简单步骤. NDK环境搭建 下载NDK 下载链接:https://developer.and ...
- Android Studio 之 NDK篇
由于工作内容的关系,对于NDK的工作涉及比较广(保密性,安全性),所以本章内容讲述一下NDK的基本使用过程. 网上也有很多这样的教程或者描述,但描述的并不完全 开发工具:Android Studio ...
- 关于Android Studio中使用jni进行opencv配置开发环境的要素秘诀
使用jni进行opencv开发可以快速地将PC端的opencv代码移植到手机上,但是如何在android studio下进行配置,网上几乎找不到教程,大多都是eclipse下使用mk文件的方法,找不到 ...
- Mac下Android studio 之NDK配置教程(一)
Mac下Android studio 之NDK配置教程(一) 1.概述 近期项目全线转移到Mac下使用使用Android studio开发. 遇到关键代码封装到 ***native***层,此时在wi ...
- JNI 在Android Studio利用NDK编译运行一个简单的c库
NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西:另外就是为了效率更加高些.如果你在Eclipse+ADT下开发过NDK就能体会到要么是配置NDK还要下载Cygwin,配置Cygwin ...
随机推荐
- chose.jquery 联动
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Python Day13
堡垒机 权限管理 当你公司的服务器变的越来越多后,需要操作这些服务器的人就肯定不只是一个运维人员,同时也可能包括多个开发人员,那么这么多的人操作业务系统,如果权限分配不当就会存在很大的安全风险,举几个 ...
- Struts2之开山篇
①Struts2是什么? Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图 ...
- SQLSERVER如何使用递增排序的GUID做主键
场景: 产品表数据量较大想用Guid做表的主键,并在此字段上建立聚簇索引. 因为Guid是随机生成的,生成的值大小是不确定的,每次生成的数可能很大,也可能很小.这样会影响插入的效率 1.NEWSEQU ...
- shell正则表达式
正则表达式 主要用于字符串的模式分割/匹配/查找及替换操作. 正则表达式与通配符 通配符 正则与通配符的区别: 正则匹配字符串,通配符匹配文件名. 正则--->包含匹配 通配符--->完全 ...
- C#编写window服务,一步一步(1)
Window服务是啥,这里就不废话了,如何用在哪里用也不废话了,这里我这篇文章只是详述了我在vs2012中创建window服务的经过,希望对你有所帮助. 另外:我在编写服务过程中参考了 Profess ...
- BFC
先看一下英文解释:Floats, absolutely positioned elements, block containers (such as inline-blocks, table-cell ...
- coreseek+sphinx+mysql+thinkphp整合
1.安装coreseek 1.1首先升级或安装系统依赖库 yum install make gcc g++ automake libtool mysql-client libmysqlclient15 ...
- 我们是怎么管理QQ群的
文章背景:腾讯平台上的qq群数以千万百万计,但99%的在吹水扯蛋,从早上的问好开始,到晚上的晚安,无一不浪费青春之时间,看之痛心,无力改变,只好自己建了一个,希望能以此来改变群内交流的氛围或环境. 以 ...
- 通过transform修改位置 大小 旋转 形变
--通过transform修改位置(平移)- CGAffineTransformMakeTranslation(**X偏移量**, **Y偏移量**);- CGAffineTransformTrans ...