native异常详解
前言 native的异常不同于Java异常,往往堆栈是一堆的地址,如下所示 本文主要介绍如何通过一系列的工具去还原native异常堆栈。 获取崩溃日志 分析Native Crash最直接的方式是查看logcat日志,一般情况下,只要APP没有自己实现信号捕...
前言 native的异常不同于Java异常,往往堆栈是一堆的地址,如下所示 本文主要介绍如何通过一系列的工具去还原native异常堆栈。 获取崩溃日志 分析Native Crash最直接的方式是查看logcat日志,一般情况下,只要APP没有自己实现信号捕...
NDK异常处理 jni异常一般发生在C调用java方法的时候,分为两种情况 当我们使用JNIEnv获取jclass、jmethod等出现了类不存在、方法不存在等 当我们在native层调用的java方法内部出现异常的时候 异常处理方法 检查异常 我们可以使用Exc...
打印日志 #include "android/log.h" #ifndef _ANDROID_LOG_TAG_ #define _ANDROID_LOG_TAG_ #define DEBUG //定义了这个,才打印日志 #define TAG "ndk-jni" // 这个是自定义的LOG的标识 #ifdef DEBUG #defi...
extern 与头文件 一、头文件 首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编译时在 #include的地方展开一下,没别的意义了,其实头文件主要是给别人看的。 我做过一个实验,将头文件的后缀改成 xxx.txt,然后在引...
回收本地引用 我们在使用jni的时候,除了要遵循原生的内存管理规范,比如new出来的对象需要delete掉,还要额外对于jni的对象进行回收处理。 不需要回收的类型:jboolean、 jchar 、jint等基础数据类型 不能会收的类型:jfieldID、jmetho...
前言 在我们使用360手机助手的时候,当卸载360以后,会打开一个反馈的网页,虽然猜想大多数人和我一样直接关了,但是其实现却是一个很有意思的东西,应用都被卸载完了,居然还能打开网页,下面就来介绍下其的实现(Android 5.0以下有效...
前言 在前几篇博客中分别介绍了Java与native层方法互相调用的问题,接下来本篇博客将会介绍如何在Java以及native之间传递复杂参数(对象)。 在native中返回一个复杂对象 首先我们简单的写一个Student类,实现无参构造函数以及有参构造...
前言 在http://27house.cn/archives/1097中,我介绍了下了如何编写一个简单的Demo来让native输出hello world到java层,接下来本篇主要介绍Java层调用native方法,以及native层调用Java层的方法以及修改Java对象的属性。 Java层调用nat...
前言 在前面NDK-CMake初探中我介绍了下Android Studio搭建NDK环境的步骤,当环境搭建起来以后,我们就可以开始编写native代码与Java层进行互相交互了,下面我就来简单的介绍下如何native与Java如何进行交互。 来自native层的hello wor...
前言 随着对Android学习的越来越深入,开始接触到NDK相关知识了,想当年还为了以后没机会使用C/C++而心伤,现在终于有机会在Android上使用C/C++了,下面就来介绍一下Android Studio2.2以后带来的新特性CMake。 官方文档 关于在Android...