博客园 - 追海逐风uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=1866382017-05-13T14:57:31Z追海逐风https://www.cnblogs.com/ajeyone/feed.cnblogs.comhttps://www.cnblogs.com/ajeyone/p/6848370.html安卓程序进入后台和前台的判断 - 追海逐风按照最简单的思路,一个app的所有Activity全部onStop后就算进入后台,但可能用户只是切出去看了一眼别的程序又跳了回来。从技术上来说,这种判断没有问题,但从用户活跃的角度来讲,用户并没有真正离开我们的app。还有一种情况,就是需要在程序进入前后台的时候,执行一些操作,如果用户切换的十分频繁2017-05-13T14:06:00Z2017-05-13T14:06:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】按照最简单的思路,一个app的所有Activity全部onStop后就算进入后台,但可能用户只是切出去看了一眼别的程序又跳了回来。从技术上来说,这种判断没有问题,但从用户活跃的角度来讲,用户并没有真正离开我们的app。还有一种情况,就是需要在程序进入前后台的时候,执行一些操作,如果用户切换的十分频繁 <a href="https://www.cnblogs.com/ajeyone/p/6848370.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/p/5709446.htmlAndroid代码故事第一回,平均间隔的按钮 - 追海逐风我们的APP新做了一个放操作按钮的界面,老板要求简洁美观有内涵,按钮要均匀分布,于是参考之前的实现,设计MM给了一张图,像这样: | | | [Button] [Button] | | [Button] [Button] | | | 当然设计MM给的是高清图片,这里只是示意一下。经过分析,需求应该是2016-07-27T12:40:00Z2016-07-27T12:40:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】我们的APP新做了一个放操作按钮的界面,老板要求简洁美观有内涵,按钮要均匀分布,于是参考之前的实现,设计MM给了一张图,像这样: | | | [Button] [Button] | | [Button] [Button] | | | 当然设计MM给的是高清图片,这里只是示意一下。经过分析,需求应该是 <a href="https://www.cnblogs.com/ajeyone/p/5709446.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/p/layoutparams.html安卓冷知识:LayoutParams - 追海逐风安卓的布局有很多种,每种都有对应的LayoutParams类,那么它们之间到底是什么关系?为什么在编写Layout的XML文件时,有的layout_前缀属性有用有的没有用?一句话道出LayoutParams的本质:LayoutParams是Layout提供给其中的Children使用的。我们来看一段...2014-12-16T07:30:00Z2014-12-16T07:30:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】安卓的布局有很多种,每种都有对应的LayoutParams类,那么它们之间到底是什么关系?为什么在编写Layout的XML文件时,有的layout_前缀属性有用有的没有用?一句话道出LayoutParams的本质:LayoutParams是Layout提供给其中的Children使用的。我们来看一段... <a href="https://www.cnblogs.com/ajeyone/p/layoutparams.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/p/ndk.html初识Android NDK - 追海逐风本文介绍Windows环境下搭建Android NDK开发环境,并创建一个简单的使用Native代码的Android Application。一、环境搭建二、JNI函数绑定三、例子一、环境搭建1. 操作系统:Windows7 64位2. 安装Java,最新的JDK8貌似还不支持,敢于折腾的同学可以试...2014-11-22T07:55:00Z2014-11-22T07:55:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】本文介绍Windows环境下搭建Android NDK开发环境,并创建一个简单的使用Native代码的Android Application。一、环境搭建二、JNI函数绑定三、例子一、环境搭建1. 操作系统:Windows7 64位2. 安装Java,最新的JDK8貌似还不支持,敢于折腾的同学可以试... <a href="https://www.cnblogs.com/ajeyone/p/ndk.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2012/06/18/2554172.html[转]VS2010 旗舰版显示代码覆盖率 - 追海逐风原文地址:http://www.cnblogs.com/heshuai/archive/2011/04/08/2009984.html代码覆盖率在测试中是一个很重要的指标那么强大的VS肯定少不了这个东西,况且是旗舰版。在今天的测试中,我想要查看代码覆率,但是却提示:找不到任何覆盖率数据真相如下:根据提示,测试运行详细信息中并不存在错误!!这肯定不正常!!给力~解决办法:1.打开 Local.testsettings,弹出“测试设置”窗口2.在“测试设置”的左边,选择“数据和诊断”3.高潮来了:该窗口的右下角,选中“代码覆盖率”后面的复选框4.高潮还未退去:寻找“配置”按钮,灰常隐蔽,找到后用鼠2012-06-18T15:43:00Z2012-06-18T15:43:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】原文地址:http://www.cnblogs.com/heshuai/archive/2011/04/08/2009984.html代码覆盖率在测试中是一个很重要的指标那么强大的VS肯定少不了这个东西,况且是旗舰版。在今天的测试中,我想要查看代码覆率,但是却提示:找不到任何覆盖率数据真相如下:根据提示,测试运行详细信息中并不存在错误!!这肯定不正常!!给力~解决办法:1.打开 Local.testsettings,弹出“测试设置”窗口2.在“测试设置”的左边,选择“数据和诊断”3.高潮来了:该窗口的右下角,选中“代码覆盖率”后面的复选框4.高潮还未退去:寻找“配置”按钮,灰常隐蔽,找到后用鼠 <a href="https://www.cnblogs.com/ajeyone/archive/2012/06/18/2554172.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2012/04/27/2473345.html[转]关于Tarjan算法的一段描述 - 追海逐风转自headacher,具体网址没有找到Tarjan算法基于深度优先搜索的框架,对于新搜索到的一个结点,首先创建由这个结点构成的集合,再对当前结点的每一个子树进行搜索,每搜索完一棵子树,则可确定子树内的LCA询问都已解决。其他的LCA询问的结果必然在这个子树之外,这时把子树所形成的集合与当前结点的集合合并,并将当前结点设为这个集合的祖先。之后继续搜索下一棵子树,直到当前结点的所有子树搜索完。这时把当前结点也设为已被检查过的,同时可以处理有关当前结点的LCA询问,如果有一个从当前结点到结点v的询问,且v已被检查过,则由于进行的是深度优先搜索,当前结点与v的最近公共祖先一定还没有被检查,而这个最近2012-04-27T04:53:00Z2012-04-27T04:53:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】转自headacher,具体网址没有找到Tarjan算法基于深度优先搜索的框架,对于新搜索到的一个结点,首先创建由这个结点构成的集合,再对当前结点的每一个子树进行搜索,每搜索完一棵子树,则可确定子树内的LCA询问都已解决。其他的LCA询问的结果必然在这个子树之外,这时把子树所形成的集合与当前结点的集合合并,并将当前结点设为这个集合的祖先。之后继续搜索下一棵子树,直到当前结点的所有子树搜索完。这时把当前结点也设为已被检查过的,同时可以处理有关当前结点的LCA询问,如果有一个从当前结点到结点v的询问,且v已被检查过,则由于进行的是深度优先搜索,当前结点与v的最近公共祖先一定还没有被检查,而这个最近 <a href="https://www.cnblogs.com/ajeyone/archive/2012/04/27/2473345.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2011/12/22/2298038.html[转]Event Model - 追海逐风An event model is composed of the event source, the event itself, and the event listener: the event source, or provider, is the sender of the events; the event is the object that is sent; and the event listener, or event sink, is the receiver of the events.An event model is a set of classes and inte2011-12-22T08:36:00Z2011-12-22T08:36:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】An event model is composed of the event source, the event itself, and the event listener: the event source, or provider, is the sender of the events; the event is the object that is sent; and the event listener, or event sink, is the receiver of the events.An event model is a set of classes and inte <a href="https://www.cnblogs.com/ajeyone/archive/2011/12/22/2298038.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2011/05/12/2044680.html编译 QGIS 1.7.0 - 追海逐风前面的几个步骤大部分可以按照官方文档安装,点击这里下载。这里用的是VC9(2008)编译。必须的几个工具软件:Cmake, Flex, Bison, SVN, OSGeo4W。其中Flex和Bison注意要安装在没有空格的目录中,比如C:\GnuWin32,不要用默认的路径。checkout源代码,按照官方文档的地址checkout就行了,用什么软件无所谓。用OSGeo4W安装各种依赖库,用默认的路径C:\OSGeo4W即可。OSGeo4W会自动安装所选的库所依赖的库,按照官方文档内的列表和所需的最低版本选就可以了。将C:\GnuWin32\include(就是Flex和Bison的安装目录)2011-05-12T10:26:00Z2011-05-12T10:26:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】前面的几个步骤大部分可以按照官方文档安装,点击这里下载。这里用的是VC9(2008)编译。必须的几个工具软件:Cmake, Flex, Bison, SVN, OSGeo4W。其中Flex和Bison注意要安装在没有空格的目录中,比如C:\GnuWin32,不要用默认的路径。checkout源代码,按照官方文档的地址checkout就行了,用什么软件无所谓。用OSGeo4W安装各种依赖库,用默认的路径C:\OSGeo4W即可。OSGeo4W会自动安装所选的库所依赖的库,按照官方文档内的列表和所需的最低版本选就可以了。将C:\GnuWin32\include(就是Flex和Bison的安装目录) <a href="https://www.cnblogs.com/ajeyone/archive/2011/05/12/2044680.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2010/12/29/1920788.html生成WORD的替代方案:生成RTF - 追海逐风周知WORD的二进制格式是相当复杂的,如果不用Office提供的COM对象生成是非常困难的。而WORD完全可以识别RTF格式,对于一般的文档是完全可以替代WORD的。且RTF是基于文本的,这就简化了对文档的处理,只需处理字符串即可。理论上不用任何组件即可生成RTF文件,但实际上RTF的格式也很复杂,如果不是要生成任意的文档,那么可以用模板的方法。1. 先在WORD中编辑好模板,在要替换字符串的地方用个占位标识符,占位标识符的选择很重要,不能与RTF中的格式代码相同。2. 再将该文档另存为RTF格式,这个文件就可以当做模板了。在程序中可以读取这个文件,替换标识符为你想要的文本,就可以生成定制化的2010-12-29T08:08:00Z2010-12-29T08:08:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】周知WORD的二进制格式是相当复杂的,如果不用Office提供的COM对象生成是非常困难的。而WORD完全可以识别RTF格式,对于一般的文档是完全可以替代WORD的。且RTF是基于文本的,这就简化了对文档的处理,只需处理字符串即可。理论上不用任何组件即可生成RTF文件,但实际上RTF的格式也很复杂,如果不是要生成任意的文档,那么可以用模板的方法。1. 先在WORD中编辑好模板,在要替换字符串的地方用个占位标识符,占位标识符的选择很重要,不能与RTF中的格式代码相同。2. 再将该文档另存为RTF格式,这个文件就可以当做模板了。在程序中可以读取这个文件,替换标识符为你想要的文本,就可以生成定制化的 <a href="https://www.cnblogs.com/ajeyone/archive/2010/12/29/1920788.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2010/11/28/1890163.html开始 OpenGL - 追海逐风OpenGL是一个状态机,书上如是说。OpenGL的API是给C语言设计的,和面向对象的思维很不相同。比如说大部分绘图API都是这样的:drawRectangle(Rect r, Pen p, Brush b),在画一个图元的时候指定颜色和样式,而OpenGL不是这样,而是将颜色样式等因素保存在全局状态中,glVertex3f(1.0, 0.5, 0.5),画一个点只指定点的坐标,其他信息都有一个“当前值”。这个“当前”状态的概念贯穿整个OpenGL框架,比如说“当前矩阵”、“当前投影”、“当前颜色”、“当前窗口”。这种方式使用起来似乎不那么直观,而且在使用过程中要注意一些常见的问题,之所以这2010-11-28T05:16:00Z2010-11-28T05:16:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】OpenGL是一个状态机,书上如是说。OpenGL的API是给C语言设计的,和面向对象的思维很不相同。比如说大部分绘图API都是这样的:drawRectangle(Rect r, Pen p, Brush b),在画一个图元的时候指定颜色和样式,而OpenGL不是这样,而是将颜色样式等因素保存在全局状态中,glVertex3f(1.0, 0.5, 0.5),画一个点只指定点的坐标,其他信息都有一个“当前值”。这个“当前”状态的概念贯穿整个OpenGL框架,比如说“当前矩阵”、“当前投影”、“当前颜色”、“当前窗口”。这种方式使用起来似乎不那么直观,而且在使用过程中要注意一些常见的问题,之所以这 <a href="https://www.cnblogs.com/ajeyone/archive/2010/11/28/1890163.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2010/10/26/1860975.html三种方式获得int的size - 追海逐风size_t getIntSize() { int a[2]; return (char*)(a+1) - (char*)a;}size_t getIntSize2() { int n = 0; int i = 1; do { i = i << 8; n++; } while (i != 0); return n;}size_t getIntSize3() { union { short ival; char cval[8]; } v; for (int i = 0; i < 8; ++i) { v.cval[i] = 1; } v.ival = 0; int n = 0; 2010-10-26T00:19:00Z2010-10-26T00:19:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】size_t getIntSize() { int a[2]; return (char*)(a+1) - (char*)a;}size_t getIntSize2() { int n = 0; int i = 1; do { i = i << 8; n++; } while (i != 0); return n;}size_t getIntSize3() { union { short ival; char cval[8]; } v; for (int i = 0; i < 8; ++i) { v.cval[i] = 1; } v.ival = 0; int n = 0; <a href="https://www.cnblogs.com/ajeyone/archive/2010/10/26/1860975.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2010/10/18/1854048.html[转]stdafx.h的作用 - 追海逐风以下内容摘自百度知道:stdafx.h = Standard Application Fram Extend没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:◎AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFCinclud2010-10-18T02:41:00Z2010-10-18T02:41:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】以下内容摘自百度知道:stdafx.h = Standard Application Fram Extend没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:◎AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFCinclud <a href="https://www.cnblogs.com/ajeyone/archive/2010/10/18/1854048.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2010/10/01/1840637.htmlpku 1142 Smith Number - 追海逐风/*Author: JackWangDate: 01-10-10 20:20Description: 求Smith数,Smith数的所有因数的数字之和等于自己的数字之和例子:本题中,质数不算Smith数解题思路:因为要因式分解,所以要算质数,而且要存储从2开始的一些质数,方便分解计算。算质数用筛法计算。 质数要算多少是一个问题,题目保证最大的数是100,000,000以内,在32位int之内。但是用筛法算100,000,000内的所有质数是耗时很长的,因此只能算一部分。其余部分直接用简单判别法判断。 简单判别法:判断它是否能整除小于等于它平方根的数,如果能整除,就不是质数,如果都不能整除则它是2010-10-01T12:47:00Z2010-10-01T12:47:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】/*Author: JackWangDate: 01-10-10 20:20Description: 求Smith数,Smith数的所有因数的数字之和等于自己的数字之和例子:本题中,质数不算Smith数解题思路:因为要因式分解,所以要算质数,而且要存储从2开始的一些质数,方便分解计算。算质数用筛法计算。 质数要算多少是一个问题,题目保证最大的数是100,000,000以内,在32位int之内。但是用筛法算100,000,000内的所有质数是耗时很长的,因此只能算一部分。其余部分直接用简单判别法判断。 简单判别法:判断它是否能整除小于等于它平方根的数,如果能整除,就不是质数,如果都不能整除则它是 <a href="https://www.cnblogs.com/ajeyone/archive/2010/10/01/1840637.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2010/09/25/1834487.html细节决定成败 - 追海逐风such an easy problem that I didn't AC. WA 4 times.Problem:Judge if the (m, d) is a valid date, the year is 2010.1. 2010 is not a leap year, so February has only 28 days.2. Negative numbers must be considered.#include <iostream>using namespace std;const int DAYS[] = {0, 31, 28, 31, 30, 31, 2010-09-25T05:21:00Z2010-09-25T05:21:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】such an easy problem that I didn't AC. WA 4 times.Problem:Judge if the (m, d) is a valid date, the year is 2010.1. 2010 is not a leap year, so February has only 28 days.2. Negative numbers must be considered.#include <iostream>using namespace std;const int DAYS[] = {0, 31, 28, 31, 30, 31, <a href="https://www.cnblogs.com/ajeyone/archive/2010/09/25/1834487.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2010/08/09/1795664.htmljavascript树形控件第二版 - 追海逐风使用了prototype的自定义事件;进一步抽象了树节点。数据还是用上个版本的随机数据。都写在一个HTML中了。<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">2010-08-09T05:22:00Z2010-08-09T05:22:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】使用了prototype的自定义事件;进一步抽象了树节点。数据还是用上个版本的随机数据。都写在一个HTML中了。<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <a href="https://www.cnblogs.com/ajeyone/archive/2010/08/09/1795664.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2010/07/28/1786600.htmljavascript 树形控件 - 追海逐风学了点Ext,确实很酷很强大,但学习起来有点复杂,大部分功能都要依赖CSS,不使用Ext的Resources就用不了。于是能不能自己写一个不用CSS虽然不好看但也能用的控件。下面就是树形控件Tree的测试和实现(使用了prototype)。HTML测试页。有两个按钮,一个是生成两棵树,另一个是显示当前选择的节点的标签(显示在树上的字符串)。树的数据和树的HTML是分开的,数据是具有树状结构的对象,这里使用的是这种结构:{label: '...', children:[childtree, childtree, ...]}。数据是随机生成的,包括标签、树的深度、子树的数量都是在一2010-07-28T01:55:00Z2010-07-28T01:55:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】学了点Ext,确实很酷很强大,但学习起来有点复杂,大部分功能都要依赖CSS,不使用Ext的Resources就用不了。于是能不能自己写一个不用CSS虽然不好看但也能用的控件。下面就是树形控件Tree的测试和实现(使用了prototype)。HTML测试页。有两个按钮,一个是生成两棵树,另一个是显示当前选择的节点的标签(显示在树上的字符串)。树的数据和树的HTML是分开的,数据是具有树状结构的对象,这里使用的是这种结构:{label: '...', children:[childtree, childtree, ...]}。数据是随机生成的,包括标签、树的深度、子树的数量都是在一 <a href="https://www.cnblogs.com/ajeyone/archive/2010/07/28/1786600.html" target="_blank">阅读全文</a>https://www.cnblogs.com/ajeyone/archive/2010/07/16/1779074.html使用Eclipse开发X3D - 追海逐风目前X3D开发工具很少,官方的推荐是基于NetBeans的X3D-Edit,以及一些X3D浏览器厂商提供的专用编辑器,另外还有很多如3DsMax、Maya等并不是以X3D开发为主的三维软件。 X3D-Edit有一个优点,三个缺点。优点是节点工具栏中包含了完整的X3D规范中的节点,规范中的所有节点都可以在工具栏中找到,这对尚未记住节点名称的初学者来说有很大的帮助;工具栏中按节点所在的Componet分栏显示节点,这也可以给出一个X3D所有节点的概貌,同样有助于初学者学习;从工具栏中拖拽节点到编辑器时还有详细的对话框弹出来编辑节点的属性。X3D-Edit使用内嵌的Xj3D浏览器(X3D的Ja...2010-07-16T09:12:00Z2010-07-16T09:12:00Z追海逐风https://www.cnblogs.com/ajeyone/【摘要】目前X3D开发工具很少,官方的推荐是基于NetBeans的X3D-Edit,以及一些X3D浏览器厂商提供的专用编辑器,另外还有很多如3DsMax、Maya等并不是以X3D开发为主的三维软件。 X3D-Edit有一个优点,三个缺点。优点是节点工具栏中包含了完整的X3D规范中的节点,规范中的所有节点都可以在工具栏中找到,这对尚未记住节点名称的初学者来说有很大的帮助;工具栏中按节点所在的Componet分栏显示节点,这也可以给出一个X3D所有节点的概貌,同样有助于初学者学习;从工具栏中拖拽节点到编辑器时还有详细的对话框弹出来编辑节点的属性。X3D-Edit使用内嵌的Xj3D浏览器(X3D的Ja... <a href="https://www.cnblogs.com/ajeyone/archive/2010/07/16/1779074.html" target="_blank">阅读全文</a>