自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(29)
  • 资源 (12)
  • 收藏
  • 关注

原创 在windows下使用Charles/Fiddler/Wireshark对Andriod/IOS抓包分析

一、首先安装1.1Charles跨平台1.2Fiddler1.3Wireshark三者的安装及配置自行百度。1.在windows下使用Charles对移动终端抓包分析2.Android抓包方法(一)之Fiddler代理3.Wireshark安装时候选择一块网卡进入即可二、三者的区别首先不管是Charles、Fiddler还是Wireshark都必现保证手机和电脑在同一局域网。Charles、Fidd

2017-07-19 11:26:52 1634

原创 System.load 和 System.loadLibrary区别与详解

1.它们都可以用来装载库文件,不论是JNI库文件还是非JNI库文件。在任何本地方法被调用之前必须先用这个两个方法之一把相应的JNI库文件装载。2.System.load 参数为库文件的绝对路径,可以是任意路径。 例如你可以这样载入一个windows平台下JNI库文件: System.load(“C://Documents and Settings//TestJNI.dll”);。System.

2017-07-19 11:26:06 2102

原创 JNI 调用构造方法和父类实例方法

在前面我们学习到了在 Native 层如何调用 Java 静态方法和实例方法,其中调用实例方法的示例代码中也提到了调用构造函数来实始化一个对象,但没有详细介绍,一带而过了。还没有阅读过的同学请移步《JNI——C/C++ 访问 Java 实例方法和静态方法》阅读。这章详细来介绍下初始一个对象的两种方式,以及如何调用子类对象重写的父类实例方法。 构造方法和父类实例方法 我们先回过一下,在 Java

2017-07-19 11:23:36 500

原创 JNI类型签名和方法签名

一、基本数据类型二、引用数据类型 注意: 1、引用数据类型则不能直接使用,需要根据JNI函数进行相应的转换后,才能使用 2、多维数组(包括二维数组)都是引用类型,需要使用 jobjectArray 类型存取其值 ; 例如:二维整型数组就是指向一位数组的数组,其声明使用方式如下: //获得一维数组 的类引用,即jintArray类型 jc

2017-07-18 09:30:27 1077 2

原创 C/C++ 访问 Java 实例方法和静态方法

通过前面 5 章的学习,我们知道了如何通过 JNI 函数来访问 JVM 中的基本数据类型、字符串和数组这些数据类型。下一步我们来学习本地代码如何与 JVM 中任意对象的属性和方法进行交互。比如本地代码调用 Java 层某个对象的方法或属性,也就是通常我们所说的来自 C/C++层本地函数的 callback(回调)。这个知识点分 2 篇文章分别介绍,本篇先介绍方法回调,在第七章中介绍本地代码访问 Ja

2017-07-18 09:30:09 385

原创 JNI内存释放以及泄露处理方法汇总

在c++中new的对象,如果不返回java,必须用release掉,否则内存泄露。包括NewStringUTF,NewObject 。如果返回java不必release,java会自己回收。 jstring jstr = env->NewStringUTF((*p).sess_id); env->DeleteLocalRef( jstr); ....jobject jobj = env

2017-07-18 09:29:49 2807

原创 JNI 访问数组

JNI 中的数组分为基本类型数组和对象数组,它们的处理方式是不一样的,基本类型数组中的所有元素都是 JNI 的基本数据类型,可以直接访问。而对象数组中的所有元素是一个类的实例或其它数组的引用,和字符串操作一样,不能直接访问 Java 传递给 JNI 层的数组,必须选择合适的 JNI 函数来访问和设置 Java 层的数组对象。阅读此文假设你已经了解了 JNI 与 Java 数据类型的映射关系,如果还不

2017-07-18 09:29:27 396

原创 JNI 字符串处理

JNI 字符串处理 处理字符串 从第三章中可以看出 JNI 中的基本类型和 Java 中的基本类型都是一一对应的,接下来先看一下 JNI 的基本类型定义:typedef unsigned char jboolean; typedef unsigned short jchar; typedef short jshort; typedef float

2017-07-18 09:29:08 469

原创 JNI 数据类型与 Java 数据类型的映射关系

当我们在调用一个 Java native 方法的时候,方法中的参数是如何传递给 C/C++ 本地函数中的呢?Java 方法中的参数与 C/C++ 函数中的参数,它们之间是怎么转换的呢?我猜你应该也有相关的疑虑吧,咱们先来看一个例子,还是以 HelloWorld 为例: HelloWorld.java:package com.study.jnilearn; class MyClass {} pu

2017-07-18 09:28:46 442

原创 NdkDemo开发从环境搭建到入门提高

1.环境搭建 2.添加Log打印到logcat 3.Android NDK开发相关知识集合 4.JNI 数据类型与 Java 数据类型的映射关系 5.C中处理Java中传递的字符串-字符串相加 http://www.jianshu.com/p/f2d3f71a1c99“>6.JNI 访问基本类型数组–返回数组之和,返回数组给java http://www.jianshu.com/p/f2

2017-07-18 09:28:21 349

原创 dlopen failed: cannot locate symbol "__aeabi_memclr4

jni中使用(*env)->GetIntArrayRegion(env, mjintArray, 0, cLen, cPArray);时出现crash07-12 20:52:05.931: E/AndroidRuntime(2900): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__aeabi_memcl

2017-07-18 09:27:41 5073 3

原创 Eclipse中编写jni c文件中报错Type could not be resolved

如下Type 'JNICALL' could not be resolvedType 'jstring' could not be resolvedType 'jclass' could not be resolvedMethod 'NewStringUTF' could not be resolvedSymbol 'NULL' could not be resolved出现的提示信息如下:

2017-07-18 09:26:56 1798

原创 C 库函数 – memset()

描述 C 库函数 void memset(void str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。声明 下面是 memset() 函数的声明。void *memset(void *str, int c, size_t n)参数 str – 指向要填充的内存块。 c – 要被设置的值。该值以 int 形式传递,但是函数

2017-07-17 09:10:25 391

原创 C语言free()函数:释放动态分配的内存空间

头文件:#include int a[10];// ...free(a);如果 ptr 所指向的内存空间不是由上面的三个函数所分配的,或者已被释放,那么调用 free() 会有无法预知的情况发生。如果 ptr 为 NULL,那么 free() 不会有任何作用。注意:free() 不会改变 ptr 变量本身的值,调用 free() 后它仍然会指向相同的内存空间,但是此时该内存已无效,不能被使用。所

2017-07-17 09:10:07 2646

原创 Eclipse中NDK开发使用Application.mk指定需要编译的平台

ABI(Application Binary Interface)实际就是指应用程序基于哪种指令集来进行编译,我们能用到的ABI 也就四种 armeabi armeabi-v7a x86 和mips ,前两者是最常见的。 其次这4个编译选项的含义: 1.‘armeabi’ – 默认选项,将创建以基于 ARM* v5TE 的设备为目标的库。 具有这种目标的浮点运算使用软件浮点运算。 使用此 AB

2017-07-17 09:09:33 1364

原创 NDK开发错误 use of invalid jobject 0x7fb147b460

JNI中直接返回C/C++的字符串时会报如下错误 JNI DETECTED ERROR IN APPLICATION: use of invalid jobject 0x7fb147b46007-12 11:35:02.133: A/aoc(21402): aliyunos/aoc/vm/jni/java_vm_ext.cc:399] from java.lang.String com.e

2017-07-17 09:09:05 7784 1

原创 C语言strlen()函数:返回字符串的实际长度

头文件:#include #include<stdio.h>#include<string.h>int main(){ char *str1 = "http://see.xidian.edu.cn/cpp/u/shipin/"; char str2[100] = "http://see.xidian.edu.cn/cpp/u/shipin_liming/"; char

2017-07-17 09:08:17 8835

原创 android jni 中文乱码,该怎么解决

android jni 中文乱码 下面这个在java中调用就返回乱码了。 JNIEXPORT jstring JNICALL Java_com_example_nativeaudio_NativeAudio_readFromAssets(JNIEnv* env) { return env->NewStringUTF(“你好”); } 下面这个在java中调用没有问题,返回的是he

2017-07-14 10:08:49 691

原创 JNI日志调试中文乱码

JNI中如果使用jstring jstr = (*env)->NewStringUTF(env,"English");//正常但是使用jstring jstr = (*env)->NewStringUTF(env,"中文输出");//有中文报错 JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illeg

2017-07-14 10:08:26 693

原创 C语言strcat()函数:连接字符串

头文件:#include #include <stdio.h>#include <string.h>int main (){ char str[80]; strcpy (str,"these "); strcat (str,"strings "); strcat (str,"are "); strcat (str,"concatenated.");

2017-07-14 10:07:16 913

原创 C语言strncpy()函数:复制字符串的前n个字符

头文件:#include #include<stdio.h>#include<string.h>int main(void){ char dest1[20]; char src1[] = "abc"; int n1 = 3; char dest2[20]="********************"; char src2[] = "abcxyz";

2017-07-14 10:06:54 5532

原创 C语言strcpy()函数:复制字符串

定义函数:char *strcpy(char *dest, const char *src);函数说明:strcpy()会将参数src 字符串拷贝至参数dest 所指的地址。返回值:返回参数dest 的字符串起始地址。附加说明:如果参数 dest 所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况,在编写程序时请特别留意,或者用strncpy()来取代。#inclu

2017-07-14 10:06:26 1613

原创 C++动态分配内存(new)和撤销内存(delete)

在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除。在C语言中是利用库函数malloc和free来分配和撤销内存空间的。C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数。注意: new和delete是运算符,不是函数,因此执行效率高。虽然为了与C语言兼容,C++仍保留malloc和free函数,但建议用户不用malloc和fr

2017-07-13 08:54:56 753

原创 C语言calloc()函数:分配内存空间并初始化

头文件:#include char *ptr = (char *)calloc(10, 10); // 分配100个字节的内存空间下面的两种写法是等价的:// calloc() 分配内存空间并初始化char *str1 = (char *)calloc(10, 2);// malloc() 分配内存空间并用 memset() 初始化char *str2 = (char *)malloc(20

2017-07-13 08:54:30 2079

原创 C语言malloc()函数:动态分配内存空间

头文件:#include **注意:函数的返回值类型是 void *,void 并不是说没有返回值或者返回空指针,而是返回的指针类型未知。****所以在使用 malloc() 时通常需要进行强制类型转换,将 void 指针转换成我们希望的类型**,例如:char ptr = (char )malloc(10); // 分配10个字节的内存空间,用来存放字符 “`

2017-07-13 08:54:11 1235

原创 C语言字符串二种方式定义

1.字符串的定义形式有两种 1).使用字符数组来存储: 将字符串数据的每1个字符存储到字符数组的元素中,追加1个’\0’表示结束. char name[] = “jack”; 2).使用字符指针来存储: 直接为字符指针初始化1个字符串数据. char *name = “jack”;不管是用上述那种方法,在字符串的最后都有\0以代表字符串结束。计算

2017-07-13 08:53:50 572

原创 Android NDK开发相关知识集合

1.关于方法名 调用 native 方法之前,首先要调用 System.loadLibrary 接口加载一个实现了native 方法的动态库才能正常访问,否则就会抛出 java.lang.UnsatisfiedLinkError 异常,找不到 XX 方法的提示。现在我们想想,在 Java 中调用某个 native 方法时,JVM 是通过什么方式,能正确的找到动态库中 C/C++ 实现的那个 nat

2017-07-13 08:51:45 303

原创 JNI的native代码中打印日志到eclipse的logcat中

若需要添加ndk对log的支持,只需要通过以下2步即可实现。1.1 修改Android.mk 在Android.mk中添加如下内容:LOCAL_LDLIBS:=-llog1.2 在.c或.cpp文件中引用log头文件 添加如下内容:// 引入log头文件#include  LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODUL

2017-07-10 16:03:56 518

原创 Eclipse下搭建NDK开发环境及入门Demo

一、关于NDK:谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK。而在NDKr7开始,Google的Windows版的NDK提供了一个ndk-build.cmd的脚本,这样,就可以直接利用这个脚本编译,而不需要使用Cygwin了。只需要为Eclipse Android工程添加一个Builders,而为Eclips

2017-07-10 15:04:45 1153

Android底部Fragment Tab凸出效果Demo【附效果图和代码】

Android底部Fragment Tab凸出效果Demo,仿 咸鱼app 中间 图标很大的效果图

2023-04-04

上拉刷新下拉加载SwipeRefreshLayout

上拉刷新下拉加载SwipeRefreshLayout

2016-08-27

android supportv4最新版本 20.0.1 -SwipeRefreshLayout的需要

android supportv4最新版本 20.0.1 -SwipeRefreshLayout的需要

2016-08-27

上拉刷新下拉加载+图片轮播

上拉刷新下拉加载,图片轮播,上拉刷新下拉加载支持自定义HeadView和FootView,图片轮播可以自定义样式和位置,完全满足需求

2016-08-27

非常好的轮播图,支持自定义样式和位置

图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等,满足大部分app需求

2016-08-27

非常好的上拉刷新和下拉加载-就一个View方便嵌入

非常好的上拉刷新和下拉加载-就一个View方便嵌入,支持ListView和其它滚动的View

2016-08-27

多线程画图ThreadPaint(超强大,效率高)

多线程画图ThreadPaint(超强大,效率高)

2014-08-17

android 画图画笔

android 画图画笔,画笔画笔,类似于涂鸦

2014-08-17

Android系统菜单与自定义菜单

Android系统菜单与自定义菜单,好用

2014-08-15

仿QQ顶部弹出菜单

仿QQ顶部弹出菜单,居中弹出菜单,底部弹出菜单,以及指定位置弹出,非常好用

2014-08-15

Android Activity之间经典切换动画效果源码

Android Activity之间经典切换动画效果,非常好用,包括左右交错,放大淡出等等等特效。

2014-08-13

Android Activity之间的跳转以及传递参数源代码下载

Android Activity之间的跳转以及传递参数源代码下载

2014-07-22

人脸识别预处理人脸裁剪系统Face Cropping人脸裁切

无需积分下载 人脸识别预处理人脸裁剪系统Face Cropping人脸裁切 rar

2014-07-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除