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 ...
 
随机推荐
- 移动端阻止body滚动
			
一些移动设备有缺省的touchmove行为,比如说经典的iOS overscroll效果,当滚动超出了内容的界限时就引发视图反弹 阻止滚动: css: body{ height:100%; overf ...
 - CSS3 border-image 属性
			
border-image 属性是一个简写属性,用于设置以下属性: border-image-source 用在边框的图片的路径,默认值none. 如:border-image-source:url(b ...
 - [原创] C# dynamic拼接Json串
			
using Newtonsoft.Json; 之前拼接两个json串,是用的这样的代码 , json1.Length - ); json2 = json2.Insert(json2 - , tmp); ...
 - ORA-01438: 值大于为此列指定的允许精度
			
Number的数据声明如下:表示 作用 说明Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点 ...
 - phpmyadmin  #1045 - Access denied for user 'root'@'localhost' (using password: NO)
			
phpmyadmin访问遇到1045问题 #1045 - Access denied for user 'root'@'localhost' (using password: NO) 解决办法 找到p ...
 - php中引用&的真正理解-变量引用、函数引用、对象引用
			
php的引用(就是在变量或者函数.对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁 在PHP 中引用的意思是:不同的名字访问同一个变量内容. ...
 - js div及table首行顶部吸附示例
			
js div顶部吸附示例,例如这样: 以下为DIV顶部吸附示例:(此示例来自于网络,在此记录与分享!感谢原作者!) 示例1:兼容IE6 <div style="height:300px ...
 - permission denied to create extension "hstore"解决方案
			
首先 sudo -u postgres psql postgres 进入数据库后输入命令 ALTER USER mydb_user WITH SUPERUSER; (把某个用户设置为超级 ...
 - 简单的 MessageBox
			
有时候我们只是想实现一个消息框,给用户一些文字提醒,就像javascript的alert那样.没必要因此动用那些庞大的GUI库,下面是几种轻快的实现方法. 1. ctypes import ctype ...
 - Autoit3 正则表达式 匹配汉字
			
关于Autoit3正则匹配汉字,在网上搜来搜去都是雷同的内容,[\u4e00-\u9fa5] 然而,Invalid all the time 直到认真钻研Help File,最终又看到了这个 http ...