摘要:
一 adb常用的几个命令1. 查看设备adb devices这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示2. 安装软件 卸载软件adb install <apk文件路径>adb uninstall <软件名>4. 登录设备shelladb shelladb shell <command命令>这个命令将登录设备的shell.后面加<command命令>将是直接运行设备命令, 相当于执行远程命令5. 从电脑上发送文件到设备adb push <本地路径> <远程路径>用push命令可以把 阅读全文
摘要:
宏定义是在程序编译前的预处理阶段,对所有使用到宏的地方进行替换;今天看到代码里面一大推的 #define与#undef的使用,却不甚明白看了好一阵子才弄清楚是干什么的,其实很简单。定义:#define PROCESS_TYPE_DEF_SAME_DELETE() PROCESS_TYPE_BASIC_DEF(UMS_PROCESS_TYPE_SAME_DELETE, same_delete)#define PROCESS_TYPE_DEF_GET_SAME_LIST() PROCESS_TYPE_BASIC_DEF(UMS_PROCESS_TYPE_GET_SAME_L... 阅读全文
摘要:
实时操作系统的概念实时系统的特点是,如果逻辑和时序出现偏差将会引起严重后果的系统。能够对外界事件和数据作出快速处理并快速响应。有两种类型的实时系统:软实时系统和硬实时系统。 1.在软实时系统中系统的宗旨是使各个任务运行得越快越好,并不要求限定某一任务必须在多长时间内完成。 2.在硬实时系统中,各任务不仅要执行无误而且要做到准时。 大多数实时系统是二者的结合。多数实时系统又是嵌入式的。这意味着计算机建在系统内部,用户看不到有个计算机在系统里面——嵌入式。一 前后台系统 应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。 中断服... 阅读全文
摘要:
Chain Of Responsibility一 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。二 动机这一模式的想法是,给多个对象处理一个请求的机会,从而解耦发送者和接受者。该请求沿对象链传递直至其中一个对象处理它从第一个对象开始,链中收到请求的对象要么亲自处理它,要么转发给链中的下一个候选者。提交请求的对象并不明确地知道哪一个对象将会处理它—我们说该请求有一个隐式的接收者(implicit receiver)。三 适用性及其结构在以下条件下使用Responsibility 链:• 有多. 阅读全文
摘要:
写代码如坐禅:你是哪一类程序员 原文来自:Are You a Zen Coder or Distraction-Junkie? 当编译占用你时间时你会怎么做。不只是编译,即使是在等待任何短暂的计算机操作结束,这段时间你会干些什么? 和你的工作日休息比起来这点时间是微不足道的,但是总的来说它还是能对你的生产率和幸福感感带来巨大帮助的。 顺便说一下,这篇文章内容不是只针对开发者和程序的。它对任何使用电脑的聪明人都有效。后面还会附上图片。现在让我们开始吧! 为什么要写这篇文章 我最近开始在我的工作习惯里使用某种时间管理技巧来提升我的生产率,减小压力,并帮助我的身体和大脑得到休息。我基本上... 阅读全文
摘要:
Explicit——谨慎定义隐式类型转换函数 在查找别的资料的时候,看到这么一个关键字,以前都没见过觉得挺有用,于是找来More Effective C++进行学习总结一下。一 隐式转换 C++编译器能够在两种数据类型之间进行隐式转换(implicit conversions),它继承了C语言的转换方法。隐式把char——>int和从short——>double。转换可能会导致数据的丢失。自定义的类型时,你就可以有更多的控制力,因为你能选择是否提供函数让编译器进行隐式类型转换。有两种函数允许编译器进行这些的转换:单参数构造函数(single-argument constructor 阅读全文
摘要:
短信PDU编码解析一概述 问题:接收飞信或者配合终端发送的长短信(两三百个字)或者接收运营商发送的话费信息,长短信总是接收不完整。其中会有某些段有丢失。原因分析:1 手机接收到了,但是拼接错误 这样的结果是多条接收不完整的信息,基本上是可以排除的2 网络发送了,手机信号问题或者繁忙,碰巧处理不过来 网络端会收不到反馈信息,网络端会再发一条。3 发送方的信息没全部发送 通过确认发送成功。4 网络根本就只发送此短信的某一段 无法得知,但此原因的概率最高。 此环境中此问题出现:拔打10086查询话费通话过程中,通过辅助机连续发送了5条长短信和飞信连续发送多条到测试机,通话结束后查看,有一条手机发.. 阅读全文
摘要:
FlyWeight模式一 意图运用共享技术有效地支持大量细粒度的对象。二 动机 有些应用程序得益于在其整个设计过程中采用对象技术,但简单化的实现代价极大。使用面向对象的抽象化,可能会造成庞大的对象群,造成空间的巨大消耗,而影响性能。在文档编辑器例子中如果一个字符对应一个对象,那么一篇文档所要容纳的对象将是非常的庞大耗费大量的内存。 而实际组成文档的字符是有限的,是由这些字符不同的组合和排列得到的。所以需要共享,将基本的字符进行共享,将使得字符对象变得有限。Flyweight只存储相应的字符代码这里的关键概念是内部状态和外部状态之间的区别。 内部状态存储于flyweight中,它包含了独立于.. 阅读全文
摘要:
Facade模式一 意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。二 动机 将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观(Facade)对象,它为子系统中较一般的设施提供了一个单一而简单的界面。将各个子系统整合起来作为Facade,提供给客户端使用。 看下面这样一个系统: 转变成: 三 适用性及其结构当你要为一个复杂子系统提供一个简单接口时。客户程序与抽象类的实现部分之间存在着很大的依赖... 阅读全文
摘要:
Decorator模式一 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。——包装器Wrapper。二 动机 有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例所使用。但这种方法不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机。 一种较为灵活的方式是将组件嵌入另一个对象中,由这个对象添加边框。我们称这个嵌入的对象为装饰。这个装... 阅读全文