摘要: 之前写过一篇PhoneGap中Plugin用法的博客,http://www.cnblogs.com/wuwangSaber/archive/2012/05/28/2521321.html不过当时用的是cordova-1.7.0这个版本,而在cordova-1.7.0.js中也明确指出addPlugin方法将在2.0版本中被移除,以下为源码// TODO: remove in 2.0. addPlugin: function(name, obj) { console.log("[DEPRECATION NOTICE] window.addPlugin and window.p... 阅读全文
posted @ 2012-09-05 23:11 saber酱 阅读(3438) 评论(9) 推荐(0) 编辑
摘要: Android 系统默认时区为GMT + 00:00,在设置中的“日期和时间”中可以看到,下面是修改默认时区的方法。在Android源码中找到Device/(设备或平台名称)/(这里可能还有一层是编译的代号之类的吧)/system.prop在其中添加,若已存在则修改为persist.sys.timezone=Asia/Shanghaipersist.sys.timezone属性的对应值在如下文件中,frameworks\base\core\res\res\xml\time_zones_by_country.xml这个xml文件中可以找到中国所在的 GMT + 8:00时区的对应值 <!- 阅读全文
posted @ 2012-09-03 23:01 saber酱 阅读(5802) 评论(0) 推荐(0) 编辑
摘要: 早在几十年前IBM大型机之父佛瑞德·布鲁克斯就发表过一篇关于软件工程的经典论文,即《No Silver Bullet》(《没有银弹》)。他指的是没有任何一项技术或方法即银弹可使软件工程的生产力在十年内提高十倍。虽然经过历史的发展,他的这种说法亦或是预测得到了验证,但人们追求方法的、研发新技术的脚步却从未停止。面向对象的编程思想就是其中最有效的方法之一,他通过封装、继承、多态的抽象编程思想使软件合理分层各模块之间相互独立,构建高内聚、低耦合的软件结构,使软件更易复用和维护。设计模式是由被称为四人帮的Gof总结出的在面向对象基础之上的更高层次的软件结构。对应解决不同问题的不同设计模式是经 阅读全文
posted @ 2012-08-22 23:09 saber酱 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 今天要做一个操作线程的程序,就是让线程暂停并可以继续开始。可以用一个标志位指示,在线程的每个循环执行前判断,通过操作标志位来使线程暂停开始,例如while(flag){ //do something}但这样使线程空跑,有些浪费,仿佛有些不只是无脑循环的程序也不能这么写。想到了用 wait 和 notify,他们是Object这个最低层的类就具有的方法,是用来操作锁的,只能在synchronized方法或者synchronized块中使用。wait 和 sleep的不同也是大家喜闻乐见的讨论的问题,当线程sleep时他会持续占有锁,而wait时他会把锁解开。下面是实现的大体思路clas... 阅读全文
posted @ 2012-05-29 16:41 saber酱 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 1.Java代码一个继承自Plugin的类,并实现execute方法。public class test01 extends Plugin{ public static final String ACTION = "test"; @Override public PluginResult execute(String action, JSONArray data, String callbackId) { // TODO Auto-generated method stub PluginResult result = null; ... 阅读全文
posted @ 2012-05-28 14:41 saber酱 阅读(3230) 评论(13) 推荐(0) 编辑
摘要: 1.Java代码public class test01 extends Plugin{ public static final String ACTION = "test"; @Override public PluginResult execute(String action, JSONArray data, String callbackId) { // TODO Auto-generated method stub if(ACTION.equals(action)){ Log.e("test", "test plugin... 阅读全文
posted @ 2012-05-14 16:13 saber酱 阅读(880) 评论(0) 推荐(0) 编辑
摘要: Dalvik是Android平台的Java虚拟机,但他又与JVM不同。Dalvik是专门为Android这种移动设备而存在的。每个APP都会运行在一个Dalvik的实例上,而一个Dalvik实例则是一个Linux下的进程。Dalvik会将Android程序编译成.dex文件,他于.class文件不同,它是由多个.class文件组成的,这样就减少了编译后代码的体积,就像压缩文件一样,压缩的文件越多,压缩率就越高。Java代码中的常量占了很大一部分,JVM的constant pool即常量池为Java的class节约了很多的空间,每一个class使用一个constant pool,而.dex中的多 阅读全文
posted @ 2012-05-10 17:28 saber酱 阅读(1098) 评论(0) 推荐(0) 编辑
摘要: 今天在写一个下载文件的程序,想当然的写出了下面一段程序 byte [] buffer = new byte[1024]; FileLength = connection.getContentLength(); message.what = 0; handler.sendMessage(message); int temp; while((temp = bis.read(buffer)) != -1){ bos.write(buffer... 阅读全文
posted @ 2012-05-10 16:39 saber酱 阅读(468) 评论(0) 推荐(0) 编辑
摘要: FFMpeg中主要数据结构存在包含关系,如下标题显示的就是包含层级的关系。AVFormatContext ->AVStream->AVCodecContext->AVCodec,其中后者是前的的数据成员。AVFormatContext是一个贯穿始终的数据结构,很多函数都用到它作为参数,是输入输出相关信息的一个容器。他的主要成员如下:1. AVInputFormat和AVOutputFormat,同一时间只能存在一个。当播放视频时AVInputFormat生效,录制视频时则AVOutputFormat生效。2. AVStream是继AVFormatContext之后第二个贯穿始 阅读全文
posted @ 2012-04-25 18:23 saber酱 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 之前编译过havlenapetr-FFMpeg,参考网上的一些帖子编译成功生成libffmpeg_jni.so,并使用havlenapetr提供的libjniaudio.so和libjnivideo.so,在虚拟机下播放正常,在真机下出现花屏问题,参考http://blog.csdn.net/yarpee/article/details/6910877,做相应更改后正常播放,但只可以在android2.2下运行。主要原因是libjnivideo.so和libjniaudio.so 这两个so文件因为不同的版本或者修改过的framework是不一样的,所以需要在android源码中 编译出自己的 阅读全文
posted @ 2012-04-16 16:02 saber酱 阅读(3041) 评论(0) 推荐(0) 编辑