![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android之ndk
文章平均质量分 84
wanxiaofan
看着你快乐的讲述你的故事,我替你陷入了深深的思考!
展开
-
Android 之使用libjpeg压缩图片
一、环境Android Studio 4.0.1NDK R15cso包是2.0.6生成的 libturbojpeg.so二、准备1、编写native方法并用javah命令生成头文件object ImageUtil { private external fun compressBitmap(bitmap: Bitmap, quality: Int, fileName: String): Int fun compressImage(bitmap: Bitmap, q原创 2020-08-12 17:27:43 · 932 阅读 · 0 评论 -
Android Studio 编译 libjpeg-turbo 并生成so库
一、编译环境1、Android Studio 4.0.1 且支持CMake编译2、libjpeg-turbo 2.0.5并下载源码 https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.5.zip二、配置1、创建一个Android项目并创建一个存放源码的路径2、 关联CMake文件,选择CMakeLists.txt的路径一般如果你不是有特别需求,不需要自己...原创 2020-08-12 16:39:05 · 1225 阅读 · 0 评论 -
Android 动态注册JNI
一、正常完成Android中的native方法有两种 1、写全路径,全类名方法 2、动态注册二、实现1、全路径实现 例如,我在MainActivity中创建了native方法 public native void test(); 在cpp文件中全路径的写法是extern "C" JNIEXPORT void JNICALLJav...原创 2019-02-27 17:25:11 · 188 阅读 · 0 评论 -
Linux 编译 FFMPEG
先看编译好的so包一、初步准备 1、下载FFMPEG的源码(尽量下载版本较低的,高版本编译如果出现问题,估计网上找不到答案),我这里用的是2.6.9 2、Linux版本的ndk文件 3、还得有个Linux系统二、编译前的准备 1、因为我这里用的Ubuntu 16.04.2 L原创 2017-11-24 15:09:03 · 527 阅读 · 0 评论 -
JNI 之 windows下增量更新全过程
一、先看看效果图二、简述实现过程因为我这里是自己在编译,不是服务器给编译生成差分包,所以我这里是在本地生成差分包,然后在把差分包传到服务器然后下载即可三、编译环境win7系统 Android studio 2.3 jdk1.8 Eclipse(生成差分包) 、vs2013(编译bsdiff源码生成dll)四、实现步骤1、创建Android项目,并创建na原创 2017-10-20 17:39:15 · 499 阅读 · 0 评论 -
JNI 之中文乱码和数据类型访问
因为这一篇是接着上一篇的所以,环境配置什么的都不在赘述了。一、实现1、目录结构2、Test.java中的native方法 //访问构造方法 public native long accessConstructor(); //调用父类方法 public native void accessNonvirtualMethod(); //解决中文乱码 public nativ原创 2017-10-08 23:37:48 · 503 阅读 · 0 评论 -
JNI 之 文件的拆分和合并
一、实现思路创建native方法,然后生成so库,然后调用即可二、实现1、创建native方法NDKFileUtils.javapublic class NDKFileUtils { static { System.loadLibrary("native-lib"); } /** * 文件的拆分 * @param p原创 2017-10-18 11:26:34 · 306 阅读 · 0 评论 -
JNI 之数据类型与属性和方法的访问
一、实现工具 Eclipse的java工程 vs2010的dll库二、实现过程 1、在vs中生成dll动态链接库 2、然后在java中使用dll库三、实现流程1、在java类中创建native方法2、使用javah方法生成jni头文件3、把头文件拷贝到vs项目c文件同目录下,然后添加到头文件中4、生成dll动态内库5、调用c原创 2017-10-06 22:54:59 · 409 阅读 · 0 评论 -
在Android Studio下编写JNI(二)NDK调用java
之前介绍过了,之前创建一个基本的NDK的例子,所以下边我就直接给代码截图,总的来说假如你熟悉Java反射的话,那你理解可能回好一点,在NDK中也是使用反射去调用使用javap打印方法签名如果要是有javap 命令在AS中必须去该目录下才能使用,javap得到签名使用(javap -s Activity路径,斜杠以点代替)这是hello.c#include #i原创 2016-11-03 13:41:13 · 492 阅读 · 0 评论 -
在Android Studio下编写JNI(一)搭配开发环境并输出Hello Wolrd
环境:我用的AS版本是2.2.2 ,JDK是 1.8.0_101,编译版本是24如果你创建AS项目之前没有勾选此选项。你可以在项目选中app目录鼠标右键就可选择Link C++ Project with Gradle 选项来支持JNI默认选择的是CMake,因为以前用的是ndk-build所以我选择的是它,这样的话你写JNI代码就会有提示了。然后创建JNI原创 2016-11-02 18:00:03 · 417 阅读 · 0 评论