- 浏览: 48168 次
- 性别:
- 来自: 西安
最新评论
-
nanapoleon:
test_angel 写道test_angel 写道 我在编译 ...
本地方法调用1 -
test_angel:
test_angel 写道 我在编译so库的时候报以下错误:指 ...
本地方法调用1 -
test_angel:
我在编译so库的时候报以下错误:指点指点error: exp ...
本地方法调用1 -
nanapoleon:
现在网上满天飞的各类关于Android图像渲染的水文实在让我不 ...
How about some Android graphics true facts?--转
文章列表
想一想上节中,我们提到了D代表double的方法.
想不起来不要紧,再贴一次
jfieldID id_salary = (*env)->GetFieldID(env, class_Employee, "salary", "D");
很困惑吧,D是个什么东西?
为了访问实例域和调用Java编程语言中定义的方法,你必须学习“编入”数据类型的名称和方法签名的规则(方法签名描述了参数和该方法返回值的类型)。下面是编码方案(类型签名):
在jni.h中有说明
typedef union jvalue {
jboolean ...
继续本地调用的相关知识。前面已经讲过了关于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 ...
这期继续网络方面的话题。
学习android,肯定都会知道统一资源标示符URI。其实我对这个中文字面十分不敏感,因为无法形成一个具体抽象的事物,所以,常常URI URL傻傻分不清楚。因为URL的中文是统一资源指示符,啊不对,统一 ...
最近找了找方向,随便翻了翻书,先写一些和主线无关的吧,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( ...