- 博客(8)
- 收藏
- 关注
原创 jni引用
jni引用:jni和java关系:jni是jvm的一部分,如果要用jni去访问虚拟机内部的数据结构。jni在java中自定义的class,在jvm中会形成内部数据结构。当需要访问时,jni就要提供一套接口来访问。这个接口给我们去访问jvm数据结构时和jni之前就声称对应的数据结构,这个就是引用当我们想要访问jvm虚拟机中数据结构时,只可以使用jni的引用jni三
2017-09-08 16:03:05 308 2
原创 jni访问数组
jni访问数组:jni两种数组:基本类型数组,引用类型数组实现数组排序public native void giveArray(int[] arry);c需要的数据类型jintArray arr;流程:将jintArray转换成C可以识别的int。通常都会进行转换将指针当作数组使用。jint = longjint *elemts = (*env)
2017-09-08 16:01:42 259
原创 jni访问java方法
java访问静态方法实现原理:JVM在系统层会将运行的相关类名加载到虚拟机中去,为动态加载过程,用到的时候才会加载。类加载器ClassLoader把静态方法class加载进入jvm中。加载失败时会报错报java.lang.ClassNotFoundExceptionjni去访问静态方法时和jvm访问静态方法非常类似获取jclass通过jobject搜
2017-09-08 15:26:14 303
原创 jni访问java成员
访问非静态域(域=成员)例如:现在要在C中访问一个java文件中的string变量keypublic String key;可以自定义jni在C上的接口java_类名_native名称首先非静态获取jclassjclass jclz = (*env)->GetObjectClass(env,jobj);获取key属性的idjava jni中给每一个field
2017-09-08 15:14:00 241
原创 jni基础知识2
生成.h文件在c中调用native方法该方法会有两个参数:参数:JNIEnv *,jclass/jobject参数1:JNIENV是一个结构体指针代表java的运行环境,可以调用java的代码env是二级指针因为JNIENV是一级指针为什么这么定义?因为c和c++需要兼容,必须要用同一个头文件,所以C中要用2级指针C++要用一级指针参
2017-09-08 15:11:53 179
原创 ndk开发 jni基础知识准备
JNIjava native interfacejava 连接windows或者linux系统的功能的连接器的作用jni为了java而生的Host environment 操作系统环境,有自己的本地库和cpu指令集全部都是由本地程序c++和c编译的,编译成本低可识别的二进制代码。因此本地程序和本地库通常依赖于操作系统环境jni其实是java虚拟机的一个部
2017-09-08 14:36:10 215
原创 ActivityInfo的获取
PackageManager pm = getPackageManager();//获取PackageManager实例 List pmg = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);//获取已经安装的包的信息 Installe 安装 ActivityInfo[] ain;
2017-07-28 16:29:49 2378
原创 java gui Jtable的使用(未更新完毕)
使用效果如上图首先定义表头String[] columnNames = { "First Name", "Last Name", "Sport", "# of Years", "Vegetarian" };初始化内容 Object[][] data = { { "Kathy", "Smith", "Snowboarding", new Integer(5),new Boolea
2017-05-21 10:28:43 709
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人