摘要:1 static android::sp<android::Surface> native_surface; 2 3 static android::Surface* getNativeSurface(JNIEnv* env, jobject jsurface, jint version) 4 { 5 jclass clazz = env->FindClass("android/view/Surface"); 6 jfieldID field_surface; 7 if(version <=8) 8 { 9 field_surface = e...
阅读全文
摘要:要创建一个新的SurfaceView,需要创建一个新的扩展了SurfaceView的类,并实现SurfaceHolder.Callback。SurfaceHolder回调可以在底层的Surface被创建和销毁的时候通知View,并传递给它对SurfaceHolder对象的引用,其中包含了当前有效的Surface。一个典型的Surface View设计模型包括一个由Thread所派生的类,它可以接收对当前的SurfaceHolder的引用,并独立地更新它。下面的框架代码展示了使用Canvas所绘制的Surface View的实现。在Surface View控件中创建了一个新的由Thread派生的
阅读全文
摘要:1、假如想要使用foo这个模块,先要 #include <foo.h>, 然后链接 /system/lib/libfoo.so 。(在 Android.mk 文件中加入 LOCAL_LDLIBS := -lfoo)ndk-build 会自动链接 C库、数学库、C++库android-3 -> Official Android 1.5 system imagesandroid-4 -> Official Android 1.6 system imagesandroid-5 -> Official Android 2.0 system imagesandroid-6
阅读全文
摘要:Chap7:Jni中C++和Java的参数传递如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:<利用VC++6.0实现JNI的最简单的例子><JNI入门教程之HelloWorld篇><SUN JNI Tutorial>这 些资料的例子中,大多数只是输入一些简单的参数,获取没有参数。而在实际的使用过程中,往往需要对参数进行处理转换。才可以被C/C++程序识别。比如我 们在C++中有一个结构(Struct)DiskInfo ,需要传递一个类似于DiskI
阅读全文
摘要:Jni函数调用分类:C/C++/JAVA学习2011-07-04 17:29193人阅读评论(0)收藏举报Chap1:JNI完全手册... 3Chap2:JNI-百度百科... 11Chap 3:javah命令帮助信息... 16Chap 4:用javah产生一个.h文件... 17Chap5:jni教程(very very good) 19Chap6: JNI传递返回值... 2615.2.2.3 传递字符串... 2815.2.2.4 传递整型数组... 2915.2.2.5 传递字符串数组... 3015.2.2.6 传递对象数组... 31Chap7:Jni中C++和Java的参数传递
阅读全文
摘要:如何在jni层(HAL层)进行直接显示2010-06-23 09:55666人阅读评论(4)收藏举报为了提高刷屏效率,研究了下直接在HAL层刷屏的方法。另外一个好处是这样的能够支持使用YUV 数据直接刷屏。(依赖系统支持)1:使用surfaceview,并按你要求设置surface的格式和颜色格式 holder.setFormat,holder.setType,注在Android2.0以后,貌似这个方法只支持565了,也没有细看源代码,不知道为什么。2:在surfaceCreated函数里面,得到surface 对象,并通过JNI 传到HAL层3:JNI 初始化的时候,得到android/vi
阅读全文
摘要:Android下的多媒体开源项目2011-07-22 19:12762人阅读评论(3)收藏举报1. ffmpeg for x86 http://gitorious.org/~olvaffe/ffmpeg/ffmpeg-android 没有实现android media interface,标准流程是通过surface输出解码后的YUV视频数据,audioTrack输出解码后的音频PCM数据。简单说就是不能用该代码树上的代码来完成多媒体的播放,但是,个人认为ffmpeg本身就不是播放器,所以用ffmpeg来完成reader、demuxer和decoder的功能就足矣,所以该项目还是很有用处的。2
阅读全文
摘要:Java JNI由浅入深(包括:Java和C++互传ArrayList泛型对象参数)2010-11-25 09:571694人阅读评论(1)收藏举报 我们知道Java是一个运行在虚拟机里面的高级的编程语言,如果要调用系统的动态链接库的话,就要先声明native修饰的方法(类似接口里面的方法),再由C/C++程序来实现(类似实现接口里的方法)。这样Java调用这些native方法就相当于调用了C/C++里面实现了的方法。通常我们把这种机制叫做JNI(Java NativeInterfac),即Java本地编程接口 Android也同理,要学会在Android上进行NDK开发,首先我们...
阅读全文