平台

Android之Activity生命周期讲解

拜拜、爱过 提交于 2021-01-30 13:46:47
Activity生命周期 维护一个 Activity 的生命周期非常重要,因为 Activity 随时会被系统回收掉。 生命周期: 现在使用者使用智慧型手机,大多已习惯使用多工 (Multi-Task) 的操作系统 ( 如 Window sMobile),可以在用手机听音乐的同时,也执行其他多个程序。同时执行多个程序有它的明显好处,但是也有它的严重的缺点。每多执行一个应用程序,就会多耗费一些系统记忆体 。而手机里的记忆体是相当有限的。当同时执行的程序过多,或是关闭的程序没有正确释放掉记忆体,执行系统时就会觉得越来越慢,甚至不 稳定。为了解决这个问题, Android 引入了一个新的机制 -- 生命周期 (LifeCycle) 。 行程: 应用程序(一个个Activity )执行的状态称为行程(process) 。在 Android 操作系统 中 ,每个应用程序都是一个行程。 Android 系统平台 ( 准确的说是 Dalvik 虚拟机 ) 会维护一个唯一的 Activity 历史记录堆叠,并从旁观察每个应用程序行程。系统平台会依照系统的记 忆体状况,与 Activity 的使用状态,来管理记忆体的使用。Activity 类别除了负责运行程序流程,与操作界面元件之外,最重要的,就是它提供 了开发者控制行程生命周期的函式。我们已经相当习惯在 OnCreate (建立行程时的行为 )

AgileEAS.NET平台开发实例-药店系统-准备开发环境(中)

落花浮王杯 提交于 2020-04-13 18:55:08
【今日推荐】:为什么一到面试就懵逼!>>> 介绍 上一篇我们讲述了《 AgileEAS.NET平台开发实例-药店系统-准备开发环境(上) 》将生成的解决方案进行相关配置。本篇我们将会开始讲述如下内容:如何基于现有的解决 方案来搭建一个可测试的运行环境,并且我们新建一个简单的例子,通过例子来说明我们如何来开发一个新的功能模块。 一、添加UI层 2、添加“BLL”层类库 添加好之后,我们就可以进行相关的后续工作了。 大纲 1、新建一个BLL层的业务逻辑服务 2、新建一个UI层模块 3、配置测试环境。 4、测试模块运行。 新建一个业务逻辑层服务 上面我们已经添加好了UI、BLL层工程,下面我们就来看看如何来属性业务逻辑层,首先,该层可以是分布式服务层与普通服务层的集成。这个怎么理解呢?下面我们来说 明下: 1、书写普通或者分布式业务逻辑,我们都要进行如下的格式来书写,否则如果之后想进行分布式的迁移,那么将无法通过配置文件来配置就可以完成无缝切换。 a、不使用AgileEAS.NET平台的普通的业务逻辑层: 我们这里添加了一个类“药品字典”实体,该业务逻辑返回所有的行,我们平时可能书写的方式就 是使用贫血模型,在业务逻辑层处理实体真正的业务逻辑,然后服务层完成实体数据的持久化。 b、使用AgileEAS.NET的业务逻辑层写法。 首先、添加如下几个程序集引用。 其次

AgileEAS.NET平台开发案例-药店系统-需求分析

﹥>﹥吖頭↗ 提交于 2019-12-13 11:37:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 开篇 我们知道我们正常的开发流程是从需求-设计-开发-测试-部署等这样的瀑布型的模式或者是瀑布模式的变种等,但是不管是如何的开发模式,前提是必须把需求确定才能从 需求中分析出要开发的用户的功能性需求和非功能性需求,这样我们才能进行后续的开发工作。那么我们本篇就将分析药店系统应该具有的功能及非功能性的需求,来得需求 分析文档的内容。 首先我们来看看一般的软件开发流程吧: 这是传统的软件开发流程,无非目前的不管是迭代开发、增量开发、敏捷开发无非都是基于传统开发模式的一些变种。 迭代开发是基于传统的软件开发流程之上的一种基于原型的迭代开发,开发完成后进行集成测试。 增量开发是将每个模块都走从设计-编码-测试的流程,最后完成集成测试。 敏捷开发是迭代开发+增量开发的合成体。 关于不同的开发模式及开发流程方面的内容,我们后面会详细的阐述,单独讲述AgileEAS.NET敏捷开发平台的软件工程思想的真实体现。 不管我们开发什么样的软件或者多小的软件,我们必须先了解需求,才能继续进行后续的需求分析及详细设计等后续的流程,所以我们知道了需求的重要性,那么我们本 篇就将药店系统的需求来分析和业务梳理下,整理成需求文档。 大纲 1、分析药店的业务流程 2、整理出每个功能的具体需求。 药店业务流程 下面我们就来分析下药店的业务流程

AgileEAS.NET平台开发案例-药店系统-项目说明

安稳与你 提交于 2019-12-07 19:16:07
开篇 我们都知道开发一个软件必须要有开发的背景和特殊的需求等等,我们就来分析我们开发该系统的项目背景和开发该项目的目的。下面我们来分析下开发药店系统的目的 及可行性研究分析,对现有平台构建该项目的风险性等进行分析,可行性方案的分析。其他方面的因素分析。 大纲 1、总论 2、项目建设的背景和必要性 3、项目的方案设计 总论 我们既然要开发药店系统,那么我们必须知道开发这个项目的意义和目的,药店系统主要解决很多的药店的信息化管理,从采购到销售到财务管理等一体化的信息化系统 解决方案。该系统包含药品采购管理,药品库存管理,药店销售管理等子模块,药店信息管理软件针对我国医药企业药品经营管理特点(尤其是中小型药店销售商)而特别设 计,符合GSP管理规范,软件界面设计简洁,美观,其人性化的软件流程,使普通用户不需培训也能很快掌握软件操作使用方法,上手极易。药店信息管理软件广泛适用于医 药批发零售企业、药店、医院药房等用于药品进销存管理, 医药财务管理等场合,是您医药企业进行信息化管理的强大工具。 本药店系统结合AgileEAS.NET敏捷开发平台的完美实践,能够做到良好的扩展性和快速开发,我在现有的基础上通过1星期的时间完成了药店的所有功能,从需求-设计- 编码-测试等过程。可以充分体现AgileEAS.NET敏捷开发平台提供的工具的强大性。 项目建设的背景和必要性

AgileEAS.NET平台开发实例-药店系统-DAL层解析

你离开我真会死。 提交于 2019-12-07 16:04:58
介绍 前面的大量的篇幅已经讲述了,关于系统的配置及如何使用平台提供的相关开发工具来进行应用功能模块的开发,本篇将会开始讲述数据访问层中的相关设计与如何使用 AgileEAS.NET代码生成器生成的DAL层基础之上,进行相关的开发及开发过程中的一些限制。下面我们将会开始详细的阐述AgileEAS.NET平台中的关于DAL层的相关设计的 原理和思路,及相关的实现方案。 上面是给出ORM的一个模型图,AgileEAS.NET的ORM实现机制是通过数据模型来完成实体与数据库表的映射,当然可能大家可以理解为通过XML的模型来生成数据库 表与实体之间的映射关系。 但是其实AgileEAS.NET平台的真正的映射是通过特性+反射的形式来定义的: 通过特性+反射来定义数据库数据列与实体属性之间的关系映射,具体的特性定义如下: 1、表特性映射定义: 2、列映射定义: 3、我们看完了ORM之间映射是通过特性来完成的,下面我们来分析下每个实体的基类“DataEntity<T>”的相关定义和说明: 这样我们就分析完毕该基础实体类提供的相关持久化方法,那么我们在业务逻辑层或者UI层开发或者使用实体时我们就可以直接使用其中提供的方法,而不用我们自己去 书写,这极大的提高了我们的开发效率和速度,并且提高了可维护性等。 大纲 1、主要是讲述DAL层中的属性列的使用和定义说明 2、基于现有代码如何添加其他功能。 3

AgileEAS.NET平台开发实例-药店系统-BLL层分析

我的梦境 提交于 2019-12-07 16:04:44
介绍 上篇我们分析了AgileEAS.NET平台的DAL层的设计与相关的使用说明分析,本篇我们来分析下业务逻辑层/服务层的设计与分析,并且分析下如何抽离单独的业务逻辑 层,分离出单独的分布式访问服务支持。我们主要是分析如何设计出严格的基于现有DAL层之上的BLL->服务层>UI层这样的分层设计模式,本系列中的药店系统则采用的分层 方式是DAL->BLL层->UI层,下面我们来分析下这2种的不同的实现方案及代码的组织,并且分析关于分布式服务支持的写法和内部的实现原理分析。 大纲 1、DAL->BLL层->服务层->UI层。 2、DAL->BLL层->UI层。 3、AgileEAS.NET平台的分布式访问支持的契约分析。 DAL->BLL层->服务层->UI层 我们先来看看大家比较关系的将业务层与服务层职责相分类的实现方案。 通过上图我们知道这个分层架构中每层的职责,那么下面我们将会对每层的职责进行一个严格的划分和设计说明: 既然DAL层我们不添加任何的内容,那么我们把跟该实体相关的业务逻辑添加到BLL层,下面我们来看看。 有了相关的业务逻辑层我们就可以在服务层完成一些业务逻辑流程的组织:可以理解成服务层就是通过外观模式来控制业务逻辑流程的外观层。 综上所述,服务层就相当于一个业务逻辑流程的粗粒度的接口,当然我们在服务层与业务逻辑层之间通过DTO来传输数据。 关于上述架构的组织

AgileEAS.NET敏捷开发平台案例-药店系统-项目综述

早过忘川 提交于 2019-12-07 08:49:28
开篇 在前面的章节中,我们说明了如何使用AgileEAS.NET敏捷开发平台俩开发药店系统,但是我们没有从总体上去说明AgileEAS.NET的一些功能,我们都是在细节上讲述了 一些该平台的相关特性,我们在药店系统的开发过程中,只是包含了该平台的大部分功能,还有一些功能,并没有使用到,可能我们后续会继续讲述这些功能。本文就将之前 开发的药店系统,来进行总结和综述吧,之前放出的文章中的配套文档相对来说,还有一些内容还需要完善,不过大体上已经很详尽了,本来想把概要设计文档也放出的,但 是我本机没有特别好的UML建模工具,所以就搁浅了,对大家说抱歉了。下面我们就来总结药店系统开发过程中的心得和体会。 大纲 1、AgileEAS.NET解决了药店系统开发中的哪些问题。 2、药店系统中用到了AgileEAS.NET平台中的哪些技术。 3、并且分析这些技术在其他领域的应用。 AgileEAS.NET平台解决的开发问题 我们在药店中遇到的问题,前面也有具体的文档有分析过,平台提供的功能也是比较强大,主要的功能图如下: 从上图中我们也可以发现,我们的非功能性方面的需求,例如药店系统,需要支持分布式访问支持等。包括一些部署等方面的要求等等。 1、打印问题: 我们的可选择: 水晶报表:微软提供的报表解决方案,功能强大,我认为使用该报表可以做出来一切报表,唯一缺点,需要客户机安装,否则无法使用。

WorkFlow设计篇Step.6—InvokeMethod调用对象或类型方法-WF4.0

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-07 04:16:58
开篇 上篇我们主要是讲述了《 WorkFlow设计篇Step.5—用户自定义工作流活动-WF4.0 》如何使用用户自定义活动来完成工作流的设计与开发,本篇我们将要开始讲述 设计篇的最后一章的内容,主要是讲述如何使用InvokeMethod的用法。 摘要 本篇我们是设计篇的最后一篇,本篇主要是讲述InvokeMethod的用法,一般来说有二种形式,一种是调用对象实例内的方法,一种是调用类型内部的方法,关于 具体的调用,我想大家也就基本了解了。 关于InvokeMethod的用法,我们本篇就会结合二种形式来说明。 关于InvokeMethod的二种不同的用法我们后面细细来说。 大纲 1、开篇 2、摘要 3、大纲 4、InvokeMethod活动的用法 InvokeMethod的用法 1、类型方法[静态方法] 1、新建一个控制台项目: 2、在现有项目上,添加一个静态类“TestMethod” class文件: 3、我们下载《 药店系统 》中的源码,使用其中的程序集: 4、修改静态类TestMethod内部的方法,代码如下: 5、修改项目中的配置文件的信息如下: 6、设计器视图内的工作流设计: 7、定义变量sequence上: 8、设置InvokeMethod活动上的属性: 9、下面我们就来设置相关的内容,我们来看看具体的其他的设置吧: a、选择targetType类型为静态类 b

WorkFlow扩展篇Step.1—集合分组下的活动使用[上]-WF4.0

让人想犯罪 __ 提交于 2019-12-07 04:16:43
开篇 上篇我们主要是讲述了《 WorkFlow设计篇Step.6—InvokeMethod调用对象或类型方法-WF4.0 》如何使用InvokeMethod完成工作流的设计与开发,本篇我们将要开始讲述 扩展篇的内容,主要是讲述如何使用集合Collection在工作流中的用法。 摘要 本篇我们是扩展篇的第一篇,本篇主要是讲述Collection的用法,一般来说我们对集合的操作,无非就是以下几种,增、删、查这几种,所以WF默认提供了一下四种 集合活动: 具体的作用,我想大家从字面上也能看出来个八九不离十,下面我们就具体的使用细节来说明下吧。 最后,我们来整理个流程,把这四类集合的活动,全部集成到一个流程中看看吧。 大纲 1、开篇 2、摘要 3、大纲 4、集合活动的用法 集合的用法 1、AddToCollection<T>活动 1、新建一个控制台项目: 2、将相应的节点添加到设计器中: 3、在顺序控制流中拖拽一个AddToCollection活动,选中该活动并查看相关属性,按F4 如下: 4、我们在sequence内定义一个变量,是集合类型的,比如Ilist,我们设置AddToCollection活动的相关属性: a、添加变量: 并且给MyCollection必须要初始化,否则会报错: b、设置AddToCollection活动的属性如下: 5、我们添加个foreach<T>活动

AgileEAS.NET平台开发实例-药店系统-UI层分析

ぃ、小莉子 提交于 2019-12-07 02:31:48
介绍 上一篇我们给出了AgileEAS.NET的关于Bll层的实现原理和Bll层的写法,我们可以在实际的开发过程中更深入的了解和实践,本篇我们就来讲述下UI层的实现原理和相关的 技巧,可能会和之前讲述的环境配置部分内容会有小部分的冲突吧,不过应该本篇讲述的更具有原理方面的内容,本文会讲述资源管理平台如何通过插件+平台的思路来实现这 种资源化的管理平台的原理和技术内幕。当然由于本人对AgileEAS.NET平台的理解的深度不足,或者说是认识上还有一定的偏差,可能会有错误之处,当然如果您有更深入的 了解,还请批评指正。 AgileEAS.NET平台采用的是平台+插件的设计思路,具体的UI层表示可以简单理解成如下图 通过上图我们知道符合插件契约的模块才能被资源管理平台识别,否则无法被资源管理平台识别和管理,也就无法享受容器提供的相关服务。 当然我们也可以不用AgileEAS.NET平台提供的资源管理工具,我们直接使用普通的Form窗体作为主窗体运行,也是可以的,不过AgileEAS.NET平台为我们提供了很多 底层模块的一些服务,例如组件的资源分配,动态释放对象,对象复活等,对象的生命周期等等。这些我们都要自己开发的过程中进行考虑。 下面我们来分析下如何新建一个新的应用程序来结合使用UI层,一种方式是自定义的不使用AgileEAS.NET平台提供的资源管理器