自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (1)
  • 收藏
  • 关注

原创 【 Android官方文档读书笔记】保存数据

Android提供了3种数据保存方式:SharePreference、文件与数据库。1,SharePreference如果想保存一个相对较小的key-values集合,可以使用 SharedPreferences API. SharedPreferences对象指向包含key-value对的文件,并且提供简单的读写方式。每个SharedPreferences文件均由框架管理,私人或共享

2014-09-05 19:28:15 1087

原创 【 Android官方文档读书笔记】连接网络

网络连接时应用的最基本的功能之一,Android系统对网络连接进行了封装,使得开发者能够更快的给应用增加网络功能。大多数网络连接的Android应用使用HTTP发送和接受数据,Android包括两个HTTP客户端:HttpURLConnection和Apache HttpClient。开发者可以使用这两个客户端中的任意一个去完成网络连接。       1, 网络连接的基本步骤:(1

2014-09-04 09:58:56 973

原创 【 Android官方文档读书笔记】硬件加速

为了让应用在Android系统运行起来更加流畅,从3.0开始,Android 2D的绘制流程就设计为能够更好地支持硬件加速。所谓硬件加速就是使用GPU进行View上的绘制操作,从而是渲染速度更快,应用体验更加流畅。 1,启动硬件加速的方法启用硬件加速的最简单方法就是为整个系统打开硬件加速的全局设置,然而硬件加速并不支持所有2D画的操作,所以开启硬件加速可能会对使用自定义组件的应用程序造

2014-09-03 19:35:54 1057

原创 Android 启动

1,Android OS启动Android在Linux字体启动步骤如下:(1) init 进程启动:内核启动之后启动的第一个用户级进程,该进程将根据init.rc和inir.xxx.rc建立几个基本服务(ServiceManager、Zygote)(2) Native 服务启动:Servicemanager 和zygote 进程就奠定了Android 的基础。Z

2013-09-30 10:03:07 1730

原创 Android 事件分析

总体流程:在WindowManagerService启动过程中会启动InputManager的一个服务,在这个服务中会开启两个线程,一个读线程,负责从系统读取设备事件,并写入一个事件队列。一个分发线程,负责将事件分发到目标应用。在Activity启动的过程中,会创建一个ViewRoot的实例,ViewRoot会初始化一个InputHandle的实例,并在setView 方法中,将其注册为消

2013-09-30 09:29:43 1192

原创 快速开发:团队与激励

团队合作高效的团队的特征:共同的、可提升的愿景或目标;团队成员的认同感;结果驱动的结构;胜任的团队成员;对团队的承诺;相互信任;团队成员的相互依赖;有效地沟通;自主意识;授权意识;小的团队规模;高层次的享受团队合作指导方针:团队结构团队结构因考虑的因素第一因素,决定团队的主要目标(解决问题?创新?战术执行?)团

2013-09-12 09:22:35 1943 1

原创 快速开发:功能限定与项目修复

项目早期--功能的简化制定一个与项目进度和预算等目标一致的功能集合缩小范围的途径:规格说明最小化、需求提炼、版本开发项目中期--功能蔓延的控制需求变化的重要原因:迷人程序综合症(追赶最佳同类产品)、不清楚或不可能的目标变更的影响:费用超支与进度超时的根源变更策略:适宜的时间内只允许有助于产品(可提高产品价值)的变更;让所有受影响的项目成员进行评估并通报给所以项目

2013-09-09 09:23:10 948

原创 快速开发:估算与进度

估算软件工程估算是一个逐渐改进的过程可以向客户承诺在每个阶段向他们提供更加精确的估算在估算的乐观系数与悲观系数之间找平衡寻找估算与实际情况的交汇点精确与准确:55人月 与 40-70 人月;估算应该保证准确而不是精确估算步骤估算产品规模估算工作量估算进度提供某一范围内的估算,并随着项目的进行,定期改进范围,以提供更高的精确度规模估算

2013-08-29 09:35:08 2352

原创 快速开发:核心问题

快速开发需要考虑需求的可靠性首先需要考虑需求的价值,包括商业价值与技术价值其次要对需求的可行性进行论证快速开发需要选择适合的开发方法进度计划受严格限制:必须在某个时间点完成项目表面的快速开发:防止失控状态、可预测性、最低的费用、注意转折点全力以赴的开发:客户期望:低费用、短进度、高质量一般只能做到3选2,而且质量应该是要得到保证的,所以一般只能是在费用与

2013-08-24 09:58:33 959

原创 快速开发-风险管理

风险管理的5个层次:    危机管理:风险已经造成麻烦了才去处理它们    失败处理:察觉到风险并迅速做出反应,但只在风险发生之后    风险缓解:事先做好风险发生的补救措施,但不做风险预防措施    着力预防:将风险识别与风险防范作为软件项目的一部分加以规划和执行    消灭根源:识别和消除可能产生风险的根源风险管理包含两大块内容:风险评估与风险控制,轻重风险

2013-08-23 12:45:52 1210

原创 快速开发:基本原则

管理原则:准确判定产品规模(功能、复杂度等);根据产品规模分配资源;制定资源计划;监控、引导资源保持项目方向不偏离技术原则:进行需求管理:需求分析方法、系统建模实践、沟通实践、需求管理和其他生命期模型的关系好的设计:把握预先设计的度,多重构频繁构建:从开发的集成到构建(Build)到位的软件配置管理:版本控制质量保证原

2013-08-22 20:37:23 983

原创 一些设计模式的比较

设计模式的基本概念是比较容易懂的(见设计模式概括),但运用起来就比较复杂。尤其是,很多设计模式的UML图看上去长得差不多。这里对一些比较像的设计模式作对比,找出异同点。策略模式与状态模式可以通过环境类状态的个数来决定是使用策略模式还是状态模式。策略模式的环境类自己选择一个具体策略类,具体策略类无须关心环境类;而状态模式的环境类由于外在因素需要放进一个具体状态中,以便通过其方

2013-08-07 09:47:05 950

原创 快速开发:有效开发、策略与典型错误

快速开发的总体战略包括以下四种:避免典型错误、打好开发基础、管理风险、面向进度的实践。开发速度一般由四个维度决定:人员、过程、产品、技术。人员:发挥人员最大潜能的方法:项目组成员的选择(绝顶天才、工作匹配、职业晋升、团队平衡、排除不称职人员)、项目组结构(项目团队应与项目规模、产品特点以及进度目标匹配)、人员激励。过程:过程的关注点:避免重复工作、质量保证(尽早找出

2012-12-29 14:22:15 1141

原创 面向对象—抽象

面向对象分析与设计的主要任务是,找出类和对象,构建对象模型。对象模型的主要要素:抽象、封装、模块化与层次结构。对象模型的次要要素:类型、并发、持久。抽象描述了一个对象的基本特征,可以将这个对象与所有其他类型的对象区分开来,因此提供了清晰定义的概念边界,它与观察者的角度有关。抽象关注一个对象的外部视图,用来分离对象的基本行为和实现。我们可以理解为抽象关注接口,即可观察到的

2012-12-28 09:42:42 8011

原创 软件系统的复杂性

软件系统的本质是复杂的,开发团队的任务就是制造出简单的假象。软件的复杂性是其根本特征,原因在于:问题域的复杂性:软件系统一般都是处理逻辑或业务规则比较复杂的问题。管理开发过程的困难性:不存在标准的流程,且现有的各种流程都只适合特定的团队、项目或者产品。软件实现的灵活性:软件的实现是没有标准的,即便存在一些所谓的原则(如面向对象设计原则),这些原则也可以在进度或特定限制下妥协

2012-12-27 09:29:44 6085

原创 体系架构风格与模式

Garlan和Shaw对通用体系结构风格的分类:数据流风格:批处理序列;管道/过滤器调用/返回风格:主程序/子程序;面向对象风格;层次结构独立构件风格:进程通讯;事件系统虚拟机风格:解释器;基于规则的系统 仓库风格:数据库系统;超文本系统;黑板系统每一大类风格中会包含许多子风格,这些子风格有时候也被称之为架构模式。这些风格并不是彼此孤立,互相对立的,而是相互联系的。做设

2012-12-25 20:33:30 2027

原创 Binder介绍

1.1  Android系统使用的一些IPC机制信号机制(进程管理)Socket通信(调试)DBUS(蓝牙)共享内存(匿名共享内存Ashmem)Binder1.2  Binder由来Binder是一个分布式的组件架构,它类似于COM和CORBA。最初用于构建传统的操作系统BeOS的系统级消息传递机制的,在BeOS退出历史舞台之后,又被Palm收购用于Pa

2012-11-28 16:52:39 2438

原创 Webkit加载模块

1,Webkit加载的主要模块Loader的主要模块包括Frameloader、DocumentLoader以及MainResourceLoader,加载的命令是Frame传进来的。加载主要涉及的Webkit模块是page、loader与platform。主要模块图如下:  图1:加载模块图2,主要类结构在加载模块中,Page与Frame是最主要的与客户代码打交

2012-11-20 18:05:11 2515

原创 Webkit总体结构与流程

1,体系结构Webkit主要包括WebCore和JavascriptCore两部分,其中最重要的部分是WebCore,包含了一个客户请求到加载、再到解析、再到渲染的整体过程。JavascriptCore主要负责对Javascript的支持。      图1:Webkit体系结构图从该图中我们可以看出WebCore主要包含了page、html、editing、loader、d

2012-11-20 09:31:34 3542

翻译 给黑莓程序添加快捷键

黑莓开发文档中描述了如何给应用程序添加快捷键。In your Project Properties in the Integration Development Environment (IDE), click the Resources tab.  Under the Title ID option, specify the Resource variable name (App

2012-11-16 09:45:03 1838

原创 企业应用架构模式之Web表现模式

(1)MVC:把用户界面交互分拆到不同的三种角色模型、视图、与控制器上。模型表示领域信息对象;视图表示UI中模型的显示;控制器获得用户输入,对模型进行操作并更新视图。MVC关注两个分离:从模型中分离表现和从视图中分离控制器。(2)页面控制器:在Web站点上为特定页面或者动作处理请求的对象。页面控制器在Web站点上为每一个逻辑页面都准备了一个输入控制器。这个输入控制器可能是页面本

2012-10-29 09:38:13 1117

原创 企业应用架构模式之对象-关系元数据映射模式

对象-关系元数据映射模式是用来描述数据库中域是如何对应到内存对象中的域的,它包括元数据映射、查询对象、资源库三种模式。元数据映射:在元数据中保持对象-关系映射的详细信息该模式最主要的决策是如何根据运行代码来表示元数据中的信息。解决方案有两种方法:代码生成和反射编程。代码生成方法需要写一个程序,输入的是元数据,输出是映射实现类的源代码,这些类是在在编译前的构建流程生成的。产生的映射器

2012-10-29 09:08:26 2514 1

原创 企业应用架构模式之对象-关系结构模式

前面已经介绍了对象--关系行为模式,包括工作单元、标识映射、延迟加载,这些都是协调内存对象与关系数据库之间行为操作的一些方法。内存对象与关系数据库除了行为需要协调之外,在结构上也需要一些方法来保证彼此的完整,这就是对象-关系结构模式。这些方法主要有:标识域、外键映射、关联表映射、依赖映射、嵌入值、序列化大对象、单表继承、类表继承。具体表继承。 (1)标识域:为了在内存对象和数据库之间维护标

2012-10-21 15:54:30 1549

原创 企业应用架构模式之数据源模式

一旦选择了领域层(见领域逻辑架构模式),就必须决定如何与数据源相联系,这时候的选择是以领域层的选择为基础的。一般里说有以下4种方法:表数据入口、行数据入口、活动记录、数据映射器。称之为数据源架构模式。(1)表数据入口:充当数据库表访问入口的对象;一个实例处理表中所有的行。表数据入口包含了用于访问单个表或视图的所有SQL,如选择、插入、更新、删除等。其他代码调用它的方法来实现所有与数据库的操

2012-10-13 17:07:59 2519

原创 企业应用架构模式之领域逻辑模式

一般的,企业架构过程从领域层开始的,一些经典的领域逻辑方法也就被称之为领域逻辑模式。主要有:事务脚本、领域模型、表模块。选择依据实际领域逻辑的复杂性,事务脚本是最简单的,而领域模型则比较复杂。(1)事务脚本:使用过程来组织业务逻辑,每个过程处理来自表现层的单个请求。将事务脚本组织成类,并与处理表现层与数据源层的类相分离,可应用命令模式来管理事务脚本类。该模式简单,但有冗余,尤其是领

2012-10-12 11:33:55 4498 1

原创 企业应用架构模式之延迟加载

延迟加载也是一种对象-关系行为模式,其定义如下:一个对象,它虽然不包含所需要的所有数据,但是知道如何去获取这些数据。        当一个对象的状态,需要从外部获得时,系统就需要从外部(包括数据库,文件系统,网络)加载数据。这时候,要考虑加载一个对象时需要从数据库(或文件)读取多少数据以及数据库调用的次数。这两个方面,前者涉及内存后者涉及速度,都是至关重要的系统性能参数。因此设计者需要

2012-10-08 17:01:28 2004 2

原创 企业应用架构模式之标识映射

标识映射也是一种对象-关系行为模式,其定义如下:通过在映射中保存已加载的对象,确保每个对象只加载一次;当要访问他们的时候,通过映射来查找它们。标识映射的主要目的是保持一致性,而不是提高性能。     一般而言,为了达到确保每个对象只加载一次的目的,可以引入对象池来保存已加载的对象。当客户端需要使用对象时,先根据映射键在对象池中查找,如果对象池中没有,就从数据库里加载。

2012-10-07 17:39:46 1996

原创 企业应用架构模式之工作单元模式

工作单元模式是一种对象-关系行为模式。其定义如下:维护受业务影响的对象列表,并协调变化和并发问题的解决。该模式主要考虑的问题是:数据库的数据读入内存后的数据对象,被改变后在什么时机提交。一般而言,可以有两种提交方式,即时提交和择机提交。(1)即时提交:当对象改变的时候马上提交到数据库。这样的好处是不需要维护一个受影响对象的列表,但是会导致数据库的连接操作过多,影响性能。而且,它

2012-10-06 13:44:20 5707 3

原创 Qt 进程间通信(IPC)

Qt 是一个跨平台的应用框架,其进程间通信机制当然可以使用所在平台的进程间通信机制,如在Windows平台上的Message机制、共享内存、文件映射、管道、Socket等。其中,Qt对一些许多平台共有的IPC机制进行了封装。Qt官方文档中对Qt的IPC机制是这样介绍的:TCP/IP其实就是通过网络模块实现的IPC。不过Qt对其进行了封装,并提供了两个层次的API,包括应用程序级

2012-09-29 09:35:26 10657 1

原创 Android的面向组件思想

面向组件思想是在软件规模扩大,复杂度上升的背景下,以面向对象为基础而提出的一种软件设计思想。可以把它理解为一种更粗粒度的面向对象,其粒度一般大于对象,但具体要到什么程度,又可以根据实际情况来决定。这种思想以组件为基础,强调“服务”的概念。面向组件具有以下特点:低耦合性:组件之间一般互不依赖,一个组件只需要知道另一个组件的“名字”就可以访问它;高重用性:系统级的重用;高互操作性:不同

2012-09-26 09:27:34 2314

原创 Nokia S40 真机调试

长期以来,诺基亚 Serial 40平台上的J2ME程序一直不支持真机调试,最近诺基亚推出一款叫做Series 40 On-Device Debugger的工具,填补了这一空白。用户可以在http://www.developer.nokia.com/Develop/Java/Tools/Series40_debugger.xhtml 上下载该工具,现在推出的还是Beta版。Series 40

2012-09-24 13:56:56 1582

原创 J2me 的作用域

Java Me的四个作用域:1. Manufacture domain—无弹窗,通常Nokia只签自己拥有的或者有管理义务的程序2. Operator domain –无线服务供应商使用,无弹窗,同上(通过使用operator的sim card的手机来接受operator-signiature,通常你都不可能达到,这个级别的权限是留给预装程序或给network-operator提供增值

2012-09-24 13:26:24 600

原创 一些特殊的Jad属性

三星触屏手机去掉虚拟键盘:在Jad和Jar中添加属性:MIDlet-Touch-Support = TRUE如果只在Jad中添加则自带浏览器在下载的时候会出现“描述不正确”的错误。其他Jad属性MIDlet-Delete-Confirm 该程序被删除时向用户显示的信息。MIDlet-Delete-Notify 改程序被删除时,发送报告使用的URL,必须以http:/

2012-09-24 08:54:18 736

原创 单例模式的讨论

单例相对于静态变量的优势:(1),可以支持延迟加载(2),可以支持多态最简单的单例模式public class Singleton {    private static final Singleton instance = new Singleton();        private Singleton() {    }        public

2012-09-24 08:50:33 996 1

转载 C++预编译

C++提供的编译预处理功能主要有以下三种:  (一) 宏定义  (二) 文件包含  (三) 条件编译预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽

2012-09-22 22:07:32 5021 1

原创 C++ 特殊机制收集

类型转换reinterpret_cast 将一个类型指针转换为另一个类型指针const_cast    用于去除指针变量的常属性,将它转换为一个对应指针类型的普通变量,反过来也可以将一个非常量指针转换为一个常量指针变量static_cast    用于转换基本类型和具有继承关系的类新之间转换,不太用于指针类型的之间的转换dynamic_cast    只能在继承类对象的指针之间或引

2012-09-22 22:00:54 697

转载 C++模板

1. 什么是模板模板定义:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性。我们知道,C++ 是一种“强类型”的语言,也就是说一个变量,编译器必须确切的知道它的类型,而模板就是构建在这个强类型语言基础上的泛型系统。2. 模板的语法模板函数template类型参数名称}, [ int {Name}=...][, ...

2012-09-22 21:46:51 474

原创 启动黑莓应用程序

启动应用程序这里将介绍两种在BlackBerry中启动应用程序的方法。(1)使用Invoke:为启动一个应用程序,开发者可以调用带有合适常量和ApplicationArguments 子类的对象的Invoke.invokeApplication(int, ApplicationArguments)方法。使用这种方法将导致一个处理上下文的转化,当BlackBerry程序启动时

2012-09-22 19:40:53 733

原创 增加黑莓程序自定义菜单项

BlackBerry支持给它自带的一些应用程序添加自定义的菜单,并通过激活这些菜单来完成开发者自定义的事件,从而有效的扩展这些应用程序的功能。例如,在打开浏览收到短信息(SMS)的时候,在菜单中增加一项“Open with MyApp”的菜单项,点击该菜单项后会用自己的程序去处理短信息中包含的内容。要实现这种功能需要用到应用程序菜单项API,该API在net.rim.black

2012-09-22 18:41:55 899

原创 Java多线程模式

介绍以下多线程模式,这里主要是列举Java有哪些线程模式以及其主要的使用方式。详情可阅读《Java多线程模式》一书。 1、Single Thread Execution——能通过这座桥的,只有一个人该模式用锁来保护关键的执行区域。 2,Immutable ——不可破坏的Immutable类是指实例化之后状态不再改变的类。该模式可以在以下情况下考虑使用:确认类的实例状态不

2012-09-22 16:53:48 764

VC++程序 动态添加控件

可以在界面上动态的添加控件 VC++实现

2008-10-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除