
android JNI/NDK开发
文章平均质量分 67
恋恋西风
专业图像处理,CT三维可视化,三维重建,CT后处理,软件开发, 熟悉OpenSSL、VTK、ITK 等第三方库;熟悉C/C++、java、C#,Python。 专注于手术导航系统开发。
展开
-
Android NDK 内存泄露检测
解决方法很简单,将ndk目录中的arm-linux-androideabi-addr2line拷到./thirdparty/LeakTracer/helpers/下,并重命名为addr2line,然后将./thirdparty/LeakTracer/helpers/加到环境变量中,如下代码。建立src/main/cpp/include/native.h和src/main/cpp/native.cpp文件。native.cpp:15行出现泄露,找到15行对应的代码,即如下代码出现泄露。发现之前的泄露不见了。原创 2018-08-01 17:17:17 · 2560 阅读 · 1 评论 -
Android深入理解JNI(一)JNI 静态注册与动态注册
前言JNI不仅仅在NDK开发中应用,它更是Android系统中Java与Native交互的桥梁,不理解JNI的话,你就只能停留在Java Framework层。这一个系列我们来一起深入学习JNI。1.JNI概述Android系统按语言来划分的话由两个世界组成,分别是Java世界和Native世界。那为什么要这么划分呢?Android系统由Java写不好吗?除了性能的之外,最主要的原因就是在Java...原创 2020-03-27 18:43:05 · 1100 阅读 · 5 评论 -
Android NDK 获取手机部分信息 build.prop
以下是 RK3288 build.prop 信息,可同时在java 和 NDK获取到# begin build properties开始设置系统性能 # autogenerated by buildinfo.sh{通过设置形成系统信息}ro.build.id=MIUI(版本ID)ro.build.display.id=oyang06_MIUI(版本号)ro.build.vers...原创 2020-03-12 09:57:04 · 2062 阅读 · 0 评论 -
ubuntu CMake NDK 交叉编译
一、安装 cmake不建议使用 apt-get 安装,因为版本比较低,如ndk17可能就用不了。这里使用 下载 手动安装sudo apt-get autoremove cmakewget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gztar zxvf cmake-3.12.2-Linux-x86_64.t...原创 2019-11-21 19:52:18 · 1900 阅读 · 0 评论 -
Android NDK libjpeg windows 编译
下载 http://www.ijg.org/files/jpegsr9a.zip解压缩在解压后的文件夹内 新建 buil.bat 文件,内容:set PATH=%PATH%;E:\ndk\android-ndk-r10e ndk-build.cmd NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_...原创 2019-10-22 15:25:26 · 430 阅读 · 0 评论 -
NDK 17 error: treating warnings as errors
第一种情况: E:/ndk/android-ndk-r17b/build//../sources/cxx-stl/llvm-libc++/include/sstream:621: warning: relocation refers to discarded section ././../../../src/lib_json/json_reader.cpp:625: warning:...原创 2019-04-11 19:12:27 · 2858 阅读 · 0 评论 -
protobuf-lite的使用C++ 及 windows 平台内存泄露解决方法
protobuf虽然很好,还有一个问题,NDK编译出的Lib SO 近20M,如果在android 上使用,明显不合适。造成包体积过大。所以想到了 protobuf-lite,相对体积减小十倍;相对 protobuf 也很简单,在生成文件里 *.proto文件修改,添加option optimize_for = LITE_RUNTIME;可知成 protobuf-lite使用的类;...原创 2019-04-28 13:59:38 · 11874 阅读 · 2 评论 -
protobuf-lite ndk 编译 windows平台
一 、编译环境介绍:(有一部分原因是环境造成编译失败)系统版本:windows 10 64位(可以使用虚拟机)NDK版本:Android-ndk-r17b源码版本:protobuf-3.6.1二、编译步骤,设置临时编译环境1. 下载并安装最新的 cmake 3.10 x86_642.NDK 环境变量配置;3.解压 protobuf 到固定目标...原创 2019-04-30 14:36:44 · 1319 阅读 · 2 评论 -
java和jni交互 C语言与Java的双向通信(一)
一、概述Java层向C层通信通过调用静态无参数、有参数的native方法 通过调用非静态无参数、有参数的native方法C层向Java层通信C层访问和修改Java层的属性 C层访问和修改Java层的静态属性 C层访问Java层的方法 C层访问Java层的静态方法 C层访问Java层的构造方法,并创建Java对象返回 java中传入数组 C中生成一个数组返回给java二、实...原创 2019-09-26 15:02:41 · 897 阅读 · 1 评论 -
libcurl 移植 支持https,openssl NDK (一)
一 、编译环境介绍:(有一部分原因是环境造成编译失败)系统版本:ubuntu-16.04.3-desktop-amd64 64位(可以使用虚拟机)NDK版本:Android-ndk-r10b (已经测试,使用 Android-ndk-r17b无法通过)源码版本:openssl-1.1.0f https://www....原创 2019-04-04 18:15:25 · 929 阅读 · 0 评论 -
protobuf使用(二)android ndk
简介 1. 官方文档中提到一些protobuf的优点, protobuf灵活高效的结构化数据存储格式.方便用于序列化, 适合做RPC的数据交换.2. 相比 XML , protobuf 比 XML 更小、更快、更简单.仅需要写一个 *.proto 文件描述需要的数据结构, protobuf会帮助你实现相关类和方法(自动化多好!).3. 目前提供 C++, Java, P...原创 2018-11-08 15:47:43 · 965 阅读 · 0 评论 -
protobuf使用(一)android ndk 编译 protobuf-3.6.x windows
首先建议大家看好版本,环境,有可能因为小的变化会造成编译有问题: 我的环境是PC OS: windows10(没办法暂时没机器);NDK: android-ndk-r17b-windows-x86_64ProtoBuf : protobuf-3.6.x 下载链接:https://github.com/protocolbuffers/protobuf/tree/3.6.x代...原创 2018-11-07 18:49:54 · 4968 阅读 · 1 评论 -
Android Studio JNI/NDK 编程简介(一)
首先说一下概念及相关的东西:JNI :JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他编程语言,只要调用约定受支持就可以了原创 2016-05-04 10:21:48 · 670 阅读 · 0 评论 -
Android Studio JNI/NDK 编程(二) Windows 下环境搭建 demo 开发
环境windows 8 (注:其实 Linux 开发可能更方便)Android Studio 2.1;一 . 下载 安装android-ndk开发包 地址:链接:http://pan.baidu.com/s/1c1GSiy8 密码:h7gr; 下载完成后最好解决到一个根目录,中间不要有空格,中文;二. 1、新建项目My原创 2016-05-04 12:30:04 · 1608 阅读 · 1 评论 -
【Android 系统开发】Android JNI/NDK (三) 之 JNIEnv 解析
jni.h文件: 了解 JNI 需要配合 jni.h 文件, jni.h 是 Google NDK 中的一个文件, 位置是 $/Android-ndk-r9d/platforms/android-19/arch-arm/usr/include/jni.h ;1. JNIEnv 作用JNIEnv 概念 : 是一个线程相关的结构体, 该结构体代表了 Java 在本线程的转载 2016-05-04 18:07:22 · 1059 阅读 · 0 评论 -
JNI/NDK开发 进阶(一) JNI异常处理 及 NDK 异常处理
异常简介异常,显而意见就是程序在运行期间没有按照正常的程序逻辑执行,在执行过程当中出现了某种错误,导致程序崩溃。在Java中异常分为运行时异常(RuntimeException)和编译时异常,在程序中有可能运行期间发生异常的逻辑我们会用try…catch…来处理,如果没有处理的话,在运行期间发生异常就会导致程序奔溃。而编译时异常是在编译期间就必须处理的。本章主要介绍运行时异常。 示例1:// 运行...原创 2018-05-21 13:29:11 · 803 阅读 · 2 评论 -
JNI/NDK开发指进阶(二) Android NDK开发Crash错误定位
在Android开发中,程序Crash分三种情况:未捕获的异常、ANR(Application Not Responding)和闪退(NDK引发错误)。其中未捕获的异常根据logcat打印的堆栈信息很容易定位错误。ANR错误也好查,Android规定,应用与用户进行交互时,如果5秒内没有响应用户的操作,则会引发ANR错误,并弹出一个系统提示框,让用户选择继续等待或立即关闭程序。并会在/data/...转载 2018-05-21 13:36:26 · 279 阅读 · 0 评论 -
JNI/NDK开发指进阶(三) NDK 多线程问题
概述 JNI编程和Linux上的C/C++编程还是挺相似的,每次java调用JNI中的函数时都会传入有关JVM的一些参数(如JNIEnv,jobject),每次JNI回调java中的方法时都要通过JVM的有关参数来实现,当在JNI中涉及到多线程的话还是有一些不一样的地方会涉及以下两个地方:1.这是因为 JNIEnv,是依赖于线程的,在子线程函数里使用AttachCurrentThread...原创 2018-06-04 09:33:01 · 810 阅读 · 0 评论 -
JNI/NDK开发指进阶(四) JNI/NDK 调试工具 LLDB, CMake
今天不是来讲lldb ,因为用的是android studio 3.0,只能用CMake 才能调试(3.0 以下可以配合 gradle-experimental,不过也要有改动,这里不再细说),所以需要把原来的 Android.mk 转成CMake,前提,自己去下载 lldb,cmake,ndk,这个在sdk 管理中,见下图:这里主要讲一下,怎么手机编写CMakeList.txt ...转载 2018-06-04 13:21:56 · 1148 阅读 · 0 评论 -
android项目中如何加载已有so库
Android 项目有时需要加载存在的 so 库;原创 2014-05-15 18:41:05 · 1405 阅读 · 1 评论