![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NDK
紫气东来_life
没有谁的努力会被辜负
展开
-
CMakeLists.txt说明
1.cmake_minimum_required():指定cmake最小支持的版本cmake_minimum_required(VERSION 3.4.1)2.add_library():生成一个库(1)生成静态库#sample:表示生成的静态库的名称 #STATIC:表示生成的是静态库 #test.cpp:表示将指定目录下的cpp文件打包成相应的库文件,我这...原创 2018-10-11 14:44:21 · 406 阅读 · 1 评论 -
Linux系统下编译Android可用的jpeg动态库与静态库
弄了好几天,今天终于成功编译出jpeg的动态库和静态库,这里我记录一下具体的操作一、下载jpeg源码包1.通过wget指令,下载jpeg源码包,得到文件 jpegsrc.v9c.tar.gzwget http://www.ijg.org/files/jpegsrc.v9c.tar.gz2.解压jpegsrc.v9c.tar.gz,得到一个文件jpeg-9c,这里面都是jpeg的...原创 2019-02-08 19:02:25 · 798 阅读 · 0 评论 -
如何在AS中加载.dll文件(Windows的动态库)
其实这是一个很没有用的操作,为什么这么说呢?因为只要是Android开发的程序员都知道,windows只是一个开发平台(当然也有mac),开发的apk的运行平台是android手机,和windows没有了半毛钱关系。虽然没有用,但是的确可以这么做,主要是在测试代码中进行加载,因为AS的测试代码环境是windows(当然也可能是mac)1.生成动态库首先,在VS中创建一个CMakeLists...原创 2019-01-23 23:56:30 · 1004 阅读 · 0 评论 -
将FFMPEG编译成Android可用的静态库
目录一、下载NDK和FFmpeg二、编写编译FFmpeg的脚本三、Android21版本以下(不包含21)编译时注意的问题一、下载NDK和FFmpegFFmpeg是多媒体视频处理工具,有非常强大的功能,包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。我们开发Android端的播放器的时候经常会用到FFmpeg这个强大的多媒体处理库。想使用FFmpeg这个库,我们需要对...原创 2018-11-05 00:29:02 · 1161 阅读 · 1 评论 -
给不支持NDK开发的工程添加支持开发NDK的功能
现在支持NDK开发的工程几乎都是用CMakeLists.txt,很少使用Android.mk了,所以我们以CMakeLists.txt为例(1)在app目录下创建CMakeLists.txt文件(2)app目录下的build.gradle文件中,在android层级下的defaultConfig里添加相关代码;在和defaultConfig平级的位置添加代码,如下:android {...原创 2018-10-15 16:25:23 · 248 阅读 · 0 评论 -
C与C++编译器Android交叉编译配置
目录目录一、gcc与g++编译器二、使用Linux自带的gcc或g++编译源文件生成的可执行文件三、编译Android手机可用的可执行文件四、编译动态库五、编译静态库一、gcc与g++编译器了解C/C++编译器的基本使用,能够在后续移植第三方库进行交叉编译时,清楚了解应该传递什么参数gcc与g++是我比较常用的编译器,关于这两个编译器有几点需要注意:(1)g...原创 2018-10-14 23:31:46 · 4133 阅读 · 1 评论 -
JNI编程中的线程问题
在JNI中使用线程其实代码也不是很难,熟悉POSIX线程或者C++11线程的程序来说都是小儿科了,但是在使用时有一个地方是非常值得注意的,我们看一下错误的代码void* threadTask(void*args){ JNIEnv *env = static_cast<JNIEnv*>(args); //使用env开始一系列操作 //...... /...原创 2018-10-12 18:27:52 · 319 阅读 · 0 评论 -
JNI动态注册介绍
上一篇主要介绍了JNI静态注册的相关内容,这篇博客简单介绍一下动态注册的东西,毕竟android的aosp源码中大量使用了动态注册,简单的贴一下代码,看注释问题应该不大 在Java写两个native方法native void dynamicJavaMethod1(int i);native String dynamicJavaMethod2();在native-lib.cpp文...原创 2018-10-12 16:25:32 · 744 阅读 · 0 评论 -
JNI编程
JNI是一种本地编程接口,也就是桥接语言,它能够使Java与其他编程语言(C、C++、汇编)进行交互。下面我先列出来Java的数据类型对应的JNI类型的表,这里可以暂时先不看,之后的例子中会有介绍,当做字典来用即可。Java类型 本地类型 描述 boolean jboolean C/C++8位整型 byte jbyte C/C++带符号的8位整型 ...原创 2018-10-11 20:14:33 · 316 阅读 · 0 评论 -
Linux系统编译Android可用的MuPDF
公司有一个展示PDF文件的产品需求。之前用的是腾讯的TBS。接入的时候是正常,但是过了一段时间之后,有新用户表示PDF文件不能展示,而之前正常展示的手机依然能展示。这个问题我调查一段时间,得出了一个结论(仅为推测):TBS框架需要在腾讯公司的内核支持下才能正常运行,早之前,这个内核存在于微信和QQ中,只要手机中有微信或者QQ就能正常使用TBS。但是后来腾讯公司把支持的内核从微信和QQ中转移到了QQ...原创 2019-05-20 23:47:21 · 890 阅读 · 2 评论