`
nanapoleon
  • 浏览: 48168 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
文章列表
想一想上节中,我们提到了D代表double的方法. 想不起来不要紧,再贴一次 jfieldID id_salary = (*env)->GetFieldID(env, class_Employee, "salary", "D"); 很困惑吧,D是个什么东西? 为了访问实例域和调用Java编程语言中定义的方法,你必须学习“编入”数据类型的名称和方法签名的规则(方法签名描述了参数和该方法返回值的类型)。下面是编码方案(类型签名): 在jni.h中有说明 typedef   union   jvalue   {         jboolean   ...

本地方法调用3

    博客分类:
  • java
    继续本地调用的相关知识。前面已经讲过了关于java如何调用下面的相关知识,包括如何适配变量,jni调用的方法规范,以及一些jni方法调用的注意事项等等。     根据前面的介绍,我们可以发现,调用的过程,如果真的使用起来,并没有很顺手,因为仅仅只有参数的向下传递是绝对不够的。我们不仅要下层的代码访问上层的,还要来回调用彼此之间的方法,这样做才够cool嘛。而且才能灵活满足各种需求。就像佛经所说:能进能退,乃真正法器(形容能进能退,进退有度,赵云式的霸气),有木有?     那先来介绍下访问实例域吧。在java程序中,有很多方法,会使用到类中的全局变量,比如下面的代码: class Emp ...
    先吐槽一下!你妹java核心技术卷2第八版,说是在卷一12章有字符编码的教程,书没买,那就下呗,找了半天下了个卷一,一看,12章哪来的字符编码???网上找了下,也没有改良utf-8的信息!好吧,最后,抱着试一试的心态,下了个卷一第七版,果然啊,在这里头,不带这样的吧。。。没事搞什么穿越啊。。。以上各位亲如果有兴趣,可以了解一下,各种坑啊,别和我一样悲剧找半天。     好!今天呢,就给大家科普一下!讲得好,有钱的捧个钱场!没钱的转发一下!- -     在很早以前,大家知道有一个叫ASCII码的东西,他使用7位表达128种字符,英语,当然没有问题,但是,不支持我们的汉字肿么可以,于是,我 ...
    这次来介绍一下,带参数和返回值的jni调用。     因为c的int你无法知道他是多少位的,可能16可能32,当然,在java平台上int总是32位的。基于这个原因,java本地接口定义了jint、jlong等类型。 boolean = jboolean 字节为1 byte = jbyte 字节为1 char = jchar 字节为2 .....     在头文件jni.h中,这些类型被typedef语句声明为在目标平台上等价的类型。该头文件也定义了常量JNI_FALSE=0,JNI_TRUE=1。     所以,当你在java层传入的int, long等类型,经过javah的转换,到下 ...
啊,好久没写blog了,更新还真是不适应。这个。。。话说,婚假回来,就一直没有感觉,虽然现在感觉也不是很好,但还是要hold住~ 今天开始要搞一搞jni了,不然一年也屡不清原计划啊。 java的书从来都说的很好,100%纯java的解 ...
介绍完URI,在来一篇互联网方面的内容吧,后面要对c层一探究竟了,虽然还有很多东西可以学,但是,还是完成主线在回头弄清楚所有东西吧。使用Socket却是是一个很底层的方法,用起来灵活性会比较大,但是不方便。日常使用,书中推荐封装好的URLConnection代替繁琐的各种过程。 在工作中,还是使用原始的http post之类的apache包可能会更有自由些。不过,使用connection也肯定是完全没问题的。 我理解的是,URLConnection比Socket是再更高一级的抽象,所以,你可以使用一些封装好的接口,而无需重新创造轮子。啰嗦了这么多,看段代码,所有情况就一目了然了。 首先是得到UR ...

URI介绍

    博客分类:
  • java
这期继续网络方面的话题。 学习android,肯定都会知道统一资源标示符URI。其实我对这个中文字面十分不敏感,因为无法形成一个具体抽象的事物,所以,常常URI URL傻傻分不清楚。因为URL的中文是统一资源指示符,啊不对,统一 ...

socket连接

    博客分类:
  • java
最近找了找方向,随便翻了翻书,先写一些和主线无关的吧,socket连接的使用。 首先,如何连接远端的网络服务器。 先从最基本的说起: Socket s = new Socket(...); as.setSoTimaOut(1000); try{ InputStream in = s.getInputStream(); } catch(Inter ...
果然啊,内容越往后面,就越来越往安全上转移了,转移了有木有,看来得开始制定新的学习计划,这再往后学没神马用啊,或者说短时间用不上。写完这期,开始找找新的学习路线。 这节介绍的是字节码的效验,严格来讲和“ClassLoader学习”这个题目有点不贴切,因为介绍的偏重于效验器(verifier)。不过还是能学到不少东西。 先回顾一下基本知识,在执行一个java文件的时候一般的步骤是: javac Hello.java -> Hello.class java Hello (上面两行,忘记的或者记不清的,去面壁去!) 大家好,我刚面壁回来,给大家继续讲解: 如果执行命令 javac Hello. ...
    写程序的时候,时常会思考,我们的类是哪来的?为何我们想用sdk中的类,就有这个类呢?答案肯定是classloader读进虚拟机来的。那他究竟是怎么被加载到虚拟机中的呢?看看如何定制classloader的代码,就相当一目了然了。 main() { runClass(name, key); } public void runClass(String name, int key){ ClassLoader classLoader = new CryptoClassLoader(key); Class<?> c = classLoader.lo ...
地址已经变了,只是记录一下方法。 在ubuntu 10.04 x64系统上。 第一步,安装git和repo apt-get install git-core curl http://android.git.kernel.org/repo > /bin/repo chmod a+x /bin/repo 第二步,建立git server 建立一个git server发布目录 mkdir /pub/gittree ...
如果是长期的学习计划,我还是比较倾向于学习一本完整的书籍,或者至少是其中的几章重要的章节,这样会比较系统,不会像平时那样的东一榔头西一棒子,如果学得和我们平时工作的息息相关,经常会发现才学的就能被用上。其实,只不过以前不会发现这些隐藏的东西罢了,不信?你可以试试看。 啰嗦了这么多,也该说点实际的了。 我的切入点是java核心编程卷2第九章,安全。第一节是类加载器。这一部分以前只是知道,但并不了解,看来有必要深入一下。翻了翻书,如果不知道反射的童鞋,应该就不用往下看了,你要硬看,还不如刷会微博。(哥,你真刷去了?) ok.先说一些废话(不好意思,又来了),这章介绍的是安全,所以,整章应该是以安全角 ...
How about some Android graphics true facts? I get tired of seeing so much misinformation posted and repeated all over the place about how graphics rendering works on Android. Here is some truth: • Android has always used some hardware accelerated drawing. Since before 1.0 all window compositing to ...
<manifest xmlns:android="http://schemas.android.com/apk/res/android"        android:sharedUserId="android.uid.system"> <application android:icon="@drawable/icon" android:label="@string/app_name"                 android:allowClearUserData="false&qu ...
Field getField(String name)返回已加载类声明的所有public成员变量的Field对象,包括从父类继承过来的成员变量,参数name指定成员变量的名称 而Field getDeclaredField(String name)不能获取从父类那继承过来的成员变量 所以,当A extends B,我们如果仅仅this.getClass().getDeclaredFields();是不可以得到B的field,要这样: this.getClass().getSuperclass().getDeclaredFields(); 设置特定对象的field: A a = new A( ...
Global site tag (gtag.js) - Google Analytics