- 浏览: 263814 次
- 性别:
- 来自: 济南
文章列表
1 使用内置的camera应用程序捕获图像
/*** 拍摄一张照片保存到sd卡上*/private void takeAndSaveImage() {// 取得路径imageFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myfavoritepicture.jpg";Log.i("tag", "sd card path:" + imageFilePath);File imageFile = new File(imageFileP ...
新的form 属性:
? autocomplete
? novalidate
新的input 属性:
? autocomplete
? autofocus
? form
? form overrides (formaction, formenctype, formmethod, formnovalidate, formtarget)
? height 和width
? list
? min, max 和step
? multiple
? pattern (regexp)
? placeholder
? required
浏览器支持
Input type IE Fi ...
html5 在客户端存贮数据
有两种方式:
1. localStorage 没有时间限制的存储
示例代码如下:
<script type="text/javascript">
localStorage.lastname="yuezhenhua";
document.write(localStorage.lastname);
<script>
例如对用户访问页面的次数进行计数
2. sesionStorae 针对一个s ...
html5 音频
audio支持的三种音频格式:
Ogg Vorbis
MP3
Wav
示例代码如下:
<audio controls="controls">
<source src="" type="audio/ogg">
<source src="" type="audio/mpeg">
错误信息显示
</audio>
常用属性:
...
html5 的一些新特性
用于绘画的canvas元素
用于媒介回放的video和audio元素
对本地离线存储的更好支技
新的特殊内容元素,如:article footer header nav section
新的表单控件:calendar date time email url search
html5 视频
通过video元素菜来包今视频的标准方法
支持的三种视频格式
ogg 带有Theora视频编码vorbis音频编码
MPEG4 带有H.246视频编码和AAC音频编码
WebM 带有V8视 ...
全局引用/局部引用/弱全局引用
java对象传到本地代码时会产生引用,这样就会产生垃圾回收问题
全局引用 Global Reference
跨越当前线程,在多个native中有效,需要手动释放
ReleaseGlobalRef函数释放
示例代码
jobject NewGlobalRef(jobject obj);
void DeleteGlobalRef(jobject obj);
局部引用 Local Reference
JNI返回的引用都是局部引用,只在native函数中有效
DeleteLocal Reference手动释放
示例代码 ...
处理数组
基本类型的数组
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* ...
本地代码中创建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->Ne ...
访问java类中的属性和方法
jfileID 属性
jmethodID 方法
JNIEnv 的函数
GetFieldID
GetStaticFieldID
GetMethodID
GetStaticMethodID
示例代码
env_>GetMethodID(data_Clazz,"<int>","()V")
整体实例方法
java 代码
public class TestNative{public void function(int i){ System.out.printfln("integ ...
本地代码访问java代码
JNIEnv类型实际上代表了java环境
JNIEnv类中的常用函数
NewObjece
NewString
New<TYPE> Array
Get/Set<TYPE> field
Get/SetStatic<TYPE> field
Call<TYPE> Method
CallStatic<TYPE> Method
jobject 对象
java的类型在c/c++中的映射关系
java c/c++ jni定义的别名
int ...
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_sayH ...
函数
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);
显示 ...
使用函数编程
程序的分解
1 函数
定义函数
函数头格式:返回类型 函数名(参数列表)
参数和变元
返回值 return
2 函数的声明
函数的原型
函数的参数传递
按值传送
给函数传送指针
给函数传递数组
常量指针参数
多维数组参数
按引用传送机制
例如:int num=10;
int &rnum=num;
main的参数
...
指针
可以使用指针记号操作存储在数组中的数据
可以在函数中访问函数外部的大块数据
动态为新变量分配空间
1 指针的声明: long * pnumber;
2 地址运算符: &
例如:long number=1234L;
long * pnumber;
pnumber=&num ...
while
do-while
for循环
循环和变时作用域
跳过循环迭代: continue;
循环的中断 : break;
第六章 数组和字符串
1 数组的定义
double tempertures[366];
避免幻数:可以声明一下数组的大小
初始化数组: int sample[]={2,3,4,5,6};
初始化数组的大小: int sample[5]={2,3,4,5,6};
取得数组所占用的字节数 : sizeof 数组名
字符数组: char values={'a','b','c','d'}; 自动在数组末尾添加'\n'
多 ...