源码
更新内容
此版本重构了90%的代码
新特性
增加task任务机制,可运行自定义任务脚本
实现plugin扩展机制,可以很方便扩展实现自定义插件,目前已实现的一些内置插件
增加project文件导出插件(目前已支持makefile的生成,后续会支持:vs, xcode等工程的生成)
增加hello xmake插件(插件demo)
增加doxygen文档生成插件
增加自定义宏脚本插件(支持动态宏记录、宏回放、匿名宏、批量导入、导出等功能)
增加更多的类库用于插件化开发
实现异常捕获机制,简化上层调用逻辑
增加多个option进行宏绑定,实现配置一个参数,就可以同时对多个配置进行生效
增加显示全局构建进度
继续阅读 »
说明
类别名可以随便取。
类别是一个类,它是添加了新功能的现有类。
使用类别就是为了能够为现有类添加新的方法,不用继承该现有类,就可使用现有类的对象调用添加的方法了。
类别可以使类的实现分散在多个文件中。
类别中不能有变量,类别中没有放变量的位置。
如果类中的方法和类别中的方法名称相同,这将造成冲突,类别的方法将完全取代类的方法。
同一个类的不同类别声明了相同的方法,这将导致不稳定,哪个方法会被调用是不确定的。
不建议在类别中覆盖类中的方法,因为在类别中的方法不能调用superClass的方法(因为没有元数据支持)。
类别方法不能覆盖于同一个类的其它类别中的方法。因为无法预知他们的加载优先顺序,就可能在编译时出错。
对类库的类别方
继续阅读 »
清除Mac 项目中的.SVN文件
有时候因为一些SDK,和一些类库的不兼容。导致svn中的某些文件上传不了或者更新不了,这时候你就的清除这个文件下的svn文件,然后 iGnored
find ./ -name ".svn" | xargs rm -Rf
继续阅读 »
随着APP的不断开发,启动时(Application类的onCreate函数中)需要做的事情越来越多,这将导致APP冷启动(杀死进程后的第一次启动)变慢,有分析表明,APP冷启动时间大于2s时,大部分用户将失去耐心。
提升APP启动速度
其实并不是所有的事情都需要在Application类的onCreate函数中执行,例如一些第三方库的初始化,可以专门增加一个SplashActivity来初始化这些第三方库,但是同样的道理,如果这些初始化工作放到SplashActivity的onCreate函数中执行,APP的冷启动依然很慢,进一步的尝试是把这些初始化工作异步化。
继续阅读 »
开发安卓APP的过程中,肯定有不少人遇见过 Activity Not Found 错误和 Activity State Loss 错误,前者是由于启动的目标 intent 对应的 activity 不存在,后者则是由于在 activity onSaveInstanceState 函数被调用之后进行了 fragment transaction,关于后者有一篇文章{:target="_blank"}总结得非常到位,这一篇译文{:target="_blank"}翻译得也还不错,建议看看。本文则主要介绍我的一个开源库 SafelyAndroid{:target="_blank"},其中整合了解决这两类问题的最佳实践,让我们一起利用它打造鲁棒
继续阅读 »
随着公司的业务的发展有幸接触到OpenCV 这个图形库,这篇文章主要是总结一下在Mac 上使用OpenCV做一个动态的广告植入。
OpenCV 是什么:
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。
继续阅读 »
Runtime是什么
Runtime是一个c和汇编写的动态库(感谢Lision的指正),它就像一个小小的系统,将OC和C紧密关联,这个系统主要做两件事 :
1、封装C语言的结构体和函数,让开发者在运行时创建、检查或者修改类、对象和方法等等。
2、传递消息,找出方法的最终执行代码。
继续阅读 »
引言
Lucene6.0于2016年4月8日发布,要求最低Java版本是Java 8。
相信大多数公司的数据库都需要采用分库分表等一些策略,而对于某些特定的业务需求,分别从不同的库不同的表中去检索特定的数据显得比较繁琐,而Lucene正好可以解决某些特殊需求,对于不同库不同表中的数据先建立全量索引,然后将需要检索的数据写入某个单独的表中,供其它业务需求方查询,以后的每天只需要做增量索引并写入数据表即可。
鉴于最近一直在做Lucene相关方面的工作,而本人一向又比较喜欢使用最新发布的版本,而网络上这类资源极少,故将一些要点及示例整理出来,本文主要从实战角度来介绍Lucene 6.0的使用,不涉及过多原理方面的东西,但是对于一些核
继续阅读 »
阅读openNi的个人小结
more
![我的类图][image-1]
流程图概览
大致概览上来说,整个项目的结构是一个标准的中间件结构,上下层分别面向开发者和驱动层,所以圆框内的我略过,用了相对稳定和结实的散在C_API口,为了应对不同人群的胃口,打散了这些功能口的面向对象特性以后又多做了几层封装来包装这些接口;
1是为上下层的书写提供了一个标准和文档注释的说明整理地方
2是为上下层的用户提供了更多的选择和设计可能
3原本的设计用意是散在接口的上下层做库的包装,以上或者以下均可见,驱动层的架构的驱动仅仅是为接口的统一规格实现设计的中间件。如果涉及到加密,我认为主要的openNi实现库实行即可。
同时项目具备良好的跨平台性
继续阅读 »