在 android_main(struct android_app* 
state)函数里面设置输入事件处理函数:state->onInputEvent = 
&handleInput;//设置输入事件的处理函数,如触摸响应函数介绍:AMotionEvent_getX():以屏幕左上角为原点,是绝对坐标...
                            
                            
                                分类:
移动开发   时间:
2014-05-23 09:29:18   
                                阅读次数:
585
                             
                    
                        
                            
                            
                                目标
面向 Eclipse (ADT) 的 Android 插件现在支持基于 NDK 的应用开发。 其可自动生成项目和构件文件以及代码存根,并可集成到整个 Android 应用开发中(构建原生库、将库复制到项目内的相应 JNI 文件夹、将应用打包以及生成带有 NDK 代码的最终 APK)。 本文将讨论如何配置 Eclipse 以利用该功能,并示范移植 NDK 应用的示例。
配置 Ecl...
                            
                            
                                分类:
移动开发   时间:
2014-05-23 07:50:44   
                                阅读次数:
395
                             
                    
                        
                            
                            
                                一个简单的例子让我们初步地了解JNI的作用,但是关于JNI中的一些概念还是需要了解清楚,才能够更好的去利用它来实现我们想要做的事情。
那么C++和Java之间的是如何通过JNI来进行互相调用的呢?
我们知道,在Android中,当Java文件被编译成dex文件之后,会由类加载器加载到Dalvik VM(DVM)中,由DVM来进行解释,翻译成机器语言之后,才能由机器来运行。
而对于C/C++来...
                            
                            
                                分类:
移动开发   时间:
2014-05-22 09:28:30   
                                阅读次数:
349
                             
                    
                        
                            
                            
                                1.在工程下新建 jni/libs  文件夹   , jni 是和原来的libs  同级 ,将所有的.so文件放入 新建的libs文件下
2.在build.gradle 文件中新增以下内容到android{ } 下
  task copyNativeLibs(type: Copy) {
        from(new File(project(':HealthCare'...
                            
                            
                                分类:
移动开发   时间:
2014-05-22 08:50:52   
                                阅读次数:
381
                             
                    
                        
                            
                            
                                我们可以看到方法名是以Java_com_lms_jni等开头的,还有什么所谓的Signature,那这些其实都是什么意思呢,今天我们就来简单地认识一下。
JNI 命名规则
对于传统的JNI编程来说,JNI方法跟Java类方法的名称之间有一定的对应关系,要遵循一定的命名规则,如下:
1) 前缀: Java_
2) 类的全限定名,用下划线进行分隔(_):com_lms_jni_JniTest
3) 方法名:getTestString                                       ...
                            
                            
                                分类:
移动开发   时间:
2014-05-22 08:18:14   
                                阅读次数:
418
                             
                    
                        
                            
                            
                                ubuntu12.04下的android 各自编译环境,包括sdk / ndk /源码编译 及环境配置...
                            
                            
                                分类:
移动开发   时间:
2014-05-22 06:21:18   
                                阅读次数:
431
                             
                    
                        
                            
                            
                                Jni Error(app bug): accessed stale local 
reference这个错误平常是 弱全局变量引起的时候 出现的一个错误,但是今天我却在另外一种情况下遇到了下面是错误截图出现错误的原因其他很简单 
是因为自己的粗心引起的java层函数声明是这么写的 publicnati...
                            
                            
                                分类:
移动开发   时间:
2014-05-21 22:00:58   
                                阅读次数:
390
                             
                    
                        
                            
                            
                                前面两篇文章简单介绍了JNI层跟Java层的一些对应关系,包括方法名,数据类型和方法名称等,相信在理论层面,能够很好地帮助我们去了解JNI在Native本地开发中的作用,对JNI的一些概念也有了一个初步的认识,由于表达能力或者理解还是有限,有些地方讲得不是很清楚,如果各位朋友有觉得云里雾里,欢迎大家有留言一起学习。
概念上的理解有助于我们更好地认识JNI,而一些实际点的例子则能够更好地帮我们从代码上去掌握并应用JNI。
...
这是一种最简单的情况,但更多时候,我们需要在JNI层获得Java对象,对其进行操...
                            
                            
                                分类:
移动开发   时间:
2014-05-21 15:46:17   
                                阅读次数:
233
                             
                    
                        
                            
                            
                                我们知道 android NDK 程序在崩溃时会生成一个 tombstone 的 backtrace (也可利用 ADB logcat 抓取),从这个 backtrace 中我们可以了解是哪个函数引发的崩溃,但是通常由于我们发布时都是 release 版,无法利用 backtrace 中的地址信息直接定位到源码和行号,当引发崩溃的错误不是很明显时,对于我们解决问题的帮助就不大。
这时通常我们是重...
                            
                            
                                分类:
移动开发   时间:
2014-05-21 15:30:02   
                                阅读次数:
502