NDK
BetterDaZhang
做软件开发,个人感觉要勤于思考和坚持不懈。
展开
-
Android 端IjkPlayer交叉编译的逻辑分析
Android 端IjkPlayer交叉编译的逻辑分析交叉编译的原理为什么要交叉编译交叉编译的工具Android NDK 支持的编译器Android NDK 提供了两种编译器: GCC、ClangAndroid平台的交叉编译Android NDK 的目录结构高版本NDK toolchiains目录:GCC 编译 FFmpegClang 编译 FFmpegIjkPlayer的交叉编译ijkplaye...原创 2020-03-14 16:21:06 · 786 阅读 · 0 评论 -
JNI(连接Java代码与原生代码的桥梁)
一、前言我们在学习完AndroidStudio NDK环境3中搭建方式和Android NDK构建系统后,已经明白了如何创建一个简单的Android NDK工程。本篇博客将以前两篇为基础,更深入的了解NDK开发。学习如何通过JNI技术实现Java代码与Native代码的通信;二、知识点概述对于开发者来讲,我们所有的工作都是围绕着数据。不同的数据有不同的数据类型。Java以及C两种语言规定的数...原创 2019-01-14 17:27:02 · 671 阅读 · 0 评论 -
AndroidStudio NDK环境3种搭建方式
一、前言如今Android开发IDE都是使用的AndroidStudio,之前我写过一篇文章介绍的是如何在Eclipse中搭建NDK环境 Android NDK --初始android NDK这边博客介绍下在AndroidStudio中搭建NDK环境的三种方式。二、知识点概述本片我们将从以下几点初步认识、创建Android NDK:1.Java加载/调用NDK端的代码;2.本地 c++...原创 2019-01-02 18:29:06 · 2023 阅读 · 0 评论 -
Android NDK构建系统
一、前言当我们把C/C++代码写好了之后,如何编译成动态库(Java端代码调用)?这就需要我们编写一个构建文档(Android.mk/Application.mk) NDK交叉编译器根据构建文档编译出我们需要的、Java端可以调用的动态库;Android NDK --初始android NDK介绍了android NDK组件:1、ARM、x86和MIPS交叉编译器:我们可以使我们的项目支持一...原创 2019-01-03 17:28:30 · 559 阅读 · 0 评论 -
Error: Cannot determine signature for Surface
在进行NDK开发时,我们需要向jni层传递Surface,Bitmap, …… 时,就会出现Error:Cannot determine signature for xxxx;原因:the javah tool does not recognize Android classes, so you must add the classpath option to javah command.原创 2018-01-20 11:11:14 · 618 阅读 · 0 评论 -
[Android NDK]命令行编译C++代码(JNI)的方式(windows和linux通用)
1,假设工程名字叫ProjTest,先建一个ProjTest文件夹,然后在ProjTest目录下新建两个目录:jni和lib,最终结果如下:ProjTest |----jni |----libs2,在jni目录下加入你的C/C++代码,这里测试用的C代码如下:test.c #include #include转载 2018-01-19 18:08:01 · 1280 阅读 · 0 评论 -
[Android NDK]添加C++11和C++14支持
网上查了一下,大概时间表是这样的:android ndk从2013年开始支持了C++11,从2015年开始支持C++14。设置方法:1、支持标准:在 Android.mk 中加入① c++ 11 标准:LOCAL_CPPFLAGS += -std=c++11② c++ 14标准:LOCAL_CPPFLAGS += -std=c++1y2、支持STL:转载 2018-01-19 17:58:58 · 14530 阅读 · 0 评论 -
Configure CMake
A CMake build script is a plain text file that you must name CMakeLists.txt and includes commands CMake uses to build your C/C++ libraries. If your native sources don’t already have a CMake build scri原创 2018-01-19 16:23:49 · 631 阅读 · 0 评论 -
Android JNI局部引用表溢出:local reference table overflow (max=512)
转载:http://blog.csdn.net/xyang81/article/details/44873769在《JNI局部引用、全局引用和弱全局引用》这篇文章中详细介绍了在JNI中三种引用的使用方式,区别、应用场景和开发注意事项。由于都是理论,看完之后可能印象不够深刻,由其是在开发当中容易出错的地方。所以这篇文章用一个例子说明引用使用不当会造成的问题,以引起大家对这个知识点的重视。首先转载 2018-01-23 19:47:55 · 922 阅读 · 0 评论 -
JNI局部引用、全局引用和弱全局引用
本文转载:http://blog.csdn.net/xyang81/article/details/44657385这篇文章比较偏理论,详细介绍了在编写本地代码时三种引用的使用场景和注意事项。可能看起来有点枯燥,但引用是在JNI中最容易出错的一个点,如果使用不当,容易使程序造成内存溢出,程序崩溃等现象。所以讲得比较细,有些地方看起来可能比较啰嗦,还请轻啪!《Android JNI局部引用表溢出:lo转载 2017-10-21 11:54:06 · 798 阅读 · 0 评论 -
JNI异常处理
文章转载:http://blog.csdn.net/xyang81/article/details/45770551异常简介异常,显而意见就是程序在运行期间没有按照正常的程序逻辑执行,在执行过程当中出现了某种错误,导致程序崩溃。在Java中异常分为运行时异常(RuntimeException)和编译时异常,在程序中有可能运行期间发生异常的逻辑我们会用try…catch…来处理,如果没有处理的话,在运转载 2017-10-20 15:32:18 · 335 阅读 · 0 评论 -
Android NDK --初始android NDK
一、前言Android NDK将用于在Androud平台上的C++开发;Android NDK是SDK的相关工具集,用来扩展Androud SDK的功能,从而使开发人员能够使用机器代码生成的编程语言(如C、C++和汇编语言)实现一些对代码性能要求比较高的模块并将这些模块嵌入到Adroud应用程序中; 从今天起,让我们开启Androud NDK的学习之旅!二、知识点概述本片我们将从以下几点初步认识、原创 2016-10-23 17:49:55 · 949 阅读 · 0 评论