1、jstack 用法jstack [option] pid -l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况 -m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法...
分类:
编程语言 时间:
2014-07-30 21:01:04
阅读次数:
249
如果要向运行时常量池中添加内容,最简单的做法就是使用String.intern()这个Native方法。该方法的作用是:如果池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象;否则将此String对象包含的字符串添加到常量池中,并且返回此String对象的引用。..
分类:
其他好文 时间:
2014-07-28 16:44:34
阅读次数:
234
在纯java中使用JNI文章中可以看到,java的native方法与C/C++代码函数是通过Java___这种方式对应的,即它是静态注册的。当需要使用现C/C++代码函数时,需要以这种形式定义包装函数,在包装函数中调用现有C/C++代码函数;而且这样的函数名也非常长,不适合管理。使用动态注册,可以不受上述命名的限制。
下面我将Android NDK中的samples\hello-jni示例,由原...
分类:
其他好文 时间:
2014-07-22 22:39:32
阅读次数:
287
在前文《Android多线程分析之二:Thread的实现》中已经详细分析了Android Thread 是如何创建,运行以及销毁的,其重点是对相应 native 方法进行分析,今天我将聚焦于 Android Framework 层多线程相关的类:Handler, Looper, MessageQueue, Message 以及它们与Thread 之间的关系。可以用一个不太妥当的比喻来形容它们之间的关联:如果把 Thread 比作生产车间,那么 Looper 就是放在这车间里的生产线,这条生产线源源不断地从 ...
分类:
移动开发 时间:
2014-07-12 18:20:56
阅读次数:
303
打算整理一下对 Android Framework 中多线程相关知识的理解,主要集中在 Framework 层的 Thread, Handler, Looper, MessageQueue, Message, AysncTask,当然不可避免地要涉及到 native 方法,因此也会分析 dalvik...
分类:
移动开发 时间:
2014-07-11 09:00:24
阅读次数:
224
打算整理一下对 Android Framework 中多线程相关知识的理解,主要集中在 Framework 层的 Thread, Handler, Looper, MessageQueue, Message, AysncTask,当然不可避免地要涉及到 native 方法,因此也会分析 dalvik 中和线程以及消息处理相关的代码:如 dalvik 中的 C++ Thread 类以及 MessageQueue 类。本文将从一个使用 Thread 的简单 应用入手,引入 Thread 这个话题,接下来的几篇文...
分类:
移动开发 时间:
2014-07-11 08:34:39
阅读次数:
241
Android APP中时常用到JNI(java本地调用),如果接触过反编译方面的知识,肯定会觉得Android APP是如此地透明。
本文主要总结Android APP用JNI的两种方式,第一种就是在源码下编译源文件生成.so文件 ;第二种是Eclipse配置NDK,不管是哪种方式都有以下的步骤:
1、编写包含native方法的java文件,native关键字申明的方法即是JNI方法。
2...
分类:
移动开发 时间:
2014-07-01 07:23:14
阅读次数:
285
1、编写native方法(java2c)和非native方法(c2java):package
com.example.provider;public class CallbackJava { // C调用java空方法 public void
helloFromJava() { ...
分类:
移动开发 时间:
2014-06-16 09:43:06
阅读次数:
286
1、编写native方法(java2c)和非native方法(c2java):package
com.example.provider;public class CallbackJava { // C调用java空方法 public void
helloFromJava() { ...
分类:
移动开发 时间:
2014-06-02 16:42:34
阅读次数:
413
1、需要准备的工具,eclipse,cdt(c++)插件,cygwin(unix)和
android ndk.2、开发步骤:a.创建一个android工程b.JAVA代码中写声明 native 方法 public native String
helloFromJNI(); 通过javah 包名.类....
分类:
移动开发 时间:
2014-05-31 01:09:30
阅读次数:
337