摘要: html5 的一些新特性 用于绘画的canvas元素 用于媒介回放的video和audio元素 对本地离线存储的更好支技 新的特殊内容元素,如:article footer header nav section 新的表单控件:calendar date time email url searchhtml5 视频 通过video元素菜来包今视频的标准方法 支持的三种视频格式 ogg 带有Theora视频编码vorbis音频编码 MPEG4 带有H.246视频编码和AAC音频编码 WebM 带有V8视频编码和vorbis音频编码 示例代码:... 阅读全文
posted @ 2012-09-04 10:35 retacn_yue 阅读(136) 评论(0) 推荐(0)
摘要: 全局引用/局部引用/弱全局引用 java对象传到本地代码时会产生引用,这样就会产生垃圾回收问题 全局引用 Global Reference 跨越当前线程,在多个native中有效,需要手动释放 ReleaseGlobalRef函数释放 示例代码 jobject NewGlobalRef(jobject obj); void DeleteGlobalRef(jobject obj); 局部引用 Local Reference JNI返回的引用都是局部引用,只在native函数中有效 DeleteLocal Reference手动释放 示例代码 jobject NewLocalRef... 阅读全文
posted @ 2012-09-04 10:29 retacn_yue 阅读(178) 评论(0) 推荐(0)
摘要: 处理数组 基本类型的数组 Get<TPYE> ArrayElements(<TYPE>Array arr,jboolean* isCopied); Release<TPYE> ArrayElements(<TYPE>Array arr,jboolean* isCopied); GetPrimitivArrayCritical(<jarray arr,jboolean* isCopied); Release<TPYE> ArrayElements(jarray arr,void* array,jboolean* isCopied) 阅读全文
posted @ 2012-09-04 10:29 retacn_yue 阅读(153) 评论(0) 推荐(0)
摘要: 本地代码中创建java对象 //第二个参数为构造方法 jobject NewObject(jclass clazz, jmethodID methodID, ...) 示例代码(使用默认构造器创建对象): jclass clazz_date=ent->FindClass("java/util/Date"); jmethodID mid_date=env->GetMethodID(clazz_date,"<init>","()V"); jobject now=env->NewObject(clazz_dat 阅读全文
posted @ 2012-09-04 10:28 retacn_yue 阅读(194) 评论(0) 推荐(0)
摘要: 访问java类中的属性和方法jfileID 属性jmethodID 方法JNIEnv 的函数GetFieldIDGetStaticFieldIDGetMethodIDGetStaticMethodID 示例代码 env_>GetMethodID(data_Clazz,"<int>","()V") 整体实例方法 java 代码 public class TestNative{public void function(int i){ System.out.printfln("integer:"+i); } public 阅读全文
posted @ 2012-09-04 10:27 retacn_yue 阅读(222) 评论(0) 推荐(0)
摘要: 本地代码访问java代码JNIEnv类型实际上代表了java环境JNIEnv类中的常用函数 NewObjece NewString New<TYPE> Array Get/Set<TYPE> field Get/SetStatic<TYPE> field Call<TYPE> Method CallStatic<TYPE> Methodjobject 对象java的类型在c/c++中的映射关系 java c/c++ jni定义的别名 int long jint/jsizejclass的取得JNI.h 头文件中定义了jclass 表示j 阅读全文
posted @ 2012-09-04 10:26 retacn_yue 阅读(113) 评论(0) 推荐(0)
摘要: java 调用本地方法在java类中添加native方法使用javah 生成c/c++头文件 javah.exe 在jdk目录下的bin中 命令格式如下: javah 类的全路径 (workspace中的bin目录下)按照生成的头文件编写c/c++源文件 示例代码如下: #include "cn_yue_jni_TestNative.h"#include <iostream>using namespace std;JNIEXPORT void JNICALL Java_cn_yue_jni_TestNative_sayHello(JNIEnv * env, jo 阅读全文
posted @ 2012-09-04 10:25 retacn_yue 阅读(107) 评论(0) 推荐(0)
摘要: 函数 1 函数的重载: 函数名相同,参数个数不同 参数个数相同,参数类型不同 函数的签名 重载和指针参数 例如:int temp(int * pnum1,int * pnum2); int temp(long * pnum1,long * pnum2); 重载和引用参数 重载和const参数 2 函数模板 一个简章的函数模版 template<class T> T larger(T a, T b){ //函数体} 创建模版的实例 larger(1.5,2.5); 显示指定模板参数板 larger<long>(num1,num2)... 阅读全文
posted @ 2012-09-03 15:29 retacn_yue 阅读(133) 评论(0) 推荐(0)
摘要: 使用函数编程 程序的分解 1 函数 定义函数 函数头格式:返回类型 函数名(参数列表) 参数和变元 返回值 return 2 函数的声明 函数的原型 函数的参数传递 按值传送 给函数传送指针 给函数传递数组 常量指针参数 多维数组参数 按引用传送机制 例如:int num=10; int &rnum=num; main的参数 一般格式如下:int main(int argc,char * argv... 阅读全文
posted @ 2012-09-03 15:28 retacn_yue 阅读(107) 评论(0) 推荐(0)
摘要: 指针 可以使用指针记号操作存储在数组中的数据 可以在函数中访问函数外部的大块数据 动态为新变量分配空间 1 指针的声明: long * pnumber; 2 地址运算符: & 例如:long number=1234L; long * pnumber; pnumber=&number; 3 间接运算符: * 4 指针的初始化 : 可以用变量地址初始化指针,代码如下: int number=10; int * pnumber=&number; 还可以int * pnumber=0; 5 把指针初始化为char类型 可以用字... 阅读全文
posted @ 2012-09-03 15:28 retacn_yue 阅读(138) 评论(0) 推荐(0)