基于android文本阅读器内容摘要:
vice、 Content Provider 四部分组成,但并不是每一个 Android 应用程序都必须由这四部分组成。 在应用程序中使用时,需要在配置文件 中进行配置。 这个配置文件是每个 Android 应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。 (Activity)组件 Activity 是 Android 的核心类,该类的全名是。 Activity 相当于 C/S 程序中的窗体或 Web 程序的页面,是 构成应用程序中最重要的构造块,在 Android 应用程序中,几乎都是通过 Activity 来与用户进行交互,所以 Activity 主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用 setContentView(View)方法来显示你自己的用户界面 [6]。 (1)活动生命周期 活动 (Activity)在系统中以活动栈的形式进行管理。 当一个新的活动启动后,被放到了栈项,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台 [7]。 Activity 的状态转换 如图 22 所示。 图 22 Activity 状态变换 路径 图 [7] Activity 有三个关键循环 [8],如下: ○ 1 活动的整个生命期:从首次调用 onCreate(Bundle)开始,到最终调用 onDestroy()结束。 在DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS onCreate()中进 行所有初始化,在 onDestroy()时进行清理工作,释放资源。 ○ 2 活动的可见生命期:从调用 onStart()开始,到 onStop()被调用为止。 在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。 在这两个方法调用之间,可以维护活动显示给用户的资源。 onStart()和 onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。 ○ 3 活动的后台生命期:从调用 onResume()开始,到 onPause()被调用为止。 在这段 时间内活动处于其它所有活动之前,并与用户进行交互。 一个活动可以不断在 resumed 状态和 paused 状态之间变换 [8]。 (2)活动之间的转换 Android 使用了 Intent 类来实现活动之间的切换工作。 Intent 负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。 根据 Intent 的描述,负责找到对应的组件,将 Intent 传递给调用的组件并完成组件的调用。 因此, Intent 起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。 在应用中,我们可以以两种形式来使用 Intent:直接 Intent,指定了 ponent 属性的 Intent,通过指定具体的组件类,通知应用启动对应的组件。 间接 Intent,没有指定 ponent 属性的 Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此 Intent 的组件。 (Broadcast Receiver)组件 Broadcast Receiver 的唯一功能就是接收广播消息,以及对广播消息做出 响应。 有很多时候,广播消息是由系统发出的,例如,时区的变化、电池的电量不足、收到短信等。 除此之外,应用程序还可以发送广播消息,例如,通知其他的程序数据已经下载完毕,并且这些数据已经可以使用了。 一个应用程序可以有多个广播接收者。 广播 接收者 与服务一样,都没有 用户接口,但在广播接收者中可以启动一个 Activity 来响应广播消息,例如,通过显示一个 Activity 对用户进行提醒。 当然,也可以采用其他的方法或几种方法的组合来提醒用户,例如,闪屏、震动、响铃、播放音乐等 [6]。 (Service)组件 Service 是提供连续信息的应用程序。 它是运行于应用程序后台的服务,在用户进行其它活动的时候 ,这个服务将一直运行在基于 Android 平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运行结束。 系统客户端扩展功能的音乐播放就是采用 Service 来进行设计和开发的,使用户可以边聊天边听音乐。 (Content Providers)组件 [6] Content Provider 应用程序能够将它们的数据保存到文件、 SQL 数据库和其它的存储设备中。 当应用程序需要使用存储设备中的数据时,可以使用 Content Provider 来完成。 使用 Content Provider能够灵活的替换底层使 用的存储设备,使开发者可以专注 于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。 Java 技术 Java 是由 Sun 公司于 1995 年 5 月推出的 Java 程序设计语言(以下简称 Java 语言)和 Java 平台DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS 的总称, Java 平台由 Java 虚拟机和 Java 应用编程接口构成,由于 Java 的跨平台性,更多的计算机游戏 和 应用程序 采 用 Java 语言 进行 开发。 在全球云计算和移动互联网的产业环境下, Java 更具备了显著优势和广阔前景 [9]。 Java 是一种简单的,面向对象的,分布式的,解释型的,健壮安 全的,结构中立的,可移植的,性能优异、多线程的动态语言 [10]。 SQLite 数据库 Android 存储方案的核心 之一是用数据库存储相关数据。 在 Android 系统中使用了 SQLite 数据库 [11]。 SQLite 是 一款轻型的 ,遵守 ACID 的关联式数据库管理系统,它的设计目的主要是用于 嵌入式设备,使用时占用的资源非常少。 它支持 Windows/Linux/Unix 等主流的操作系统, 同时 能够跟很多程序语言相结合,如 Tcl、 C、 PHP、 Java 等。 SQLite 虽然是轻量 级的 ,但在执行某些简单的 SQL语句时甚 至比 MySQL 和 Postgresql 还快。 它具有零配置、 可 储存在单一磁盘文件中、数据库文件可以在不同字节顺序的机器间自由的共享、简单轻松的 API、开源、独立等特性 [12]。 在 开发 中 还可使用有大量的可视化功能的 SQLite 数据库管理工具。 Eclipse 介绍 Eclipse 是一个开放源代码的软件开发项目,专注于 为 高度集成的工具开发提供一个全功能的、具有商业品质的工业平台 [13]。 它主要由 Eclipse 项目、 Eclipse 工具项目和 Eclipse 技术项目三个项目组成,具体包括四个部分组成 ——Eclipse Platform、 JDT、 CDT 和 PDE。 JDT 支持 Java 开发、 CDT支持 C 开发、 PDE 用来支持插件开发, Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台 [14]。 它提供建造块和构造并运行集成软件开发工具的基础。 Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的工具从而无须 分辨 一个工具功能在哪里结束,而另一个工具功能在哪里开始。 在本系统的开发需要用到 Eclipse SDK软件开发包。 它 是 Eclipse Platform、 JDT 和 PDE 所生产的组件合并,这些部分在一起提供了一个具有丰富特性的开发环境, 由 Eclipse 项目生产的工具和来自其他开放源代码的第三方软件组合而成。 3 系统 需求分析 功能性需求分析 需求分析方法概述 需求分析是系统开发的基石,影响着整个系统开发过程。 明确系统开发的需求,是系统开发开发成功的基础。 在系统开发前,本人对当前有关本课题的国内外市场以及现有成果进行了详细的调查和分析,使得系统的需求在实现基本功能的前提下又加入了相应的个性化功能,因此具有一定的竞争力和实用价值。 本系统采用用例驱动的分析方法进行 需求分析。 UML(统一建模语言, Unified Modeling Language)是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。 它融入了软件工程领域的新思想、新方法和新技术。 它的作用域不限于支持面向对象的分析与设计,还支持从需求DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS 分析开始的软件开发的全过程 [15]。 用例建模是 UML 建模的一部分,也是 UML 里最基础的部分。 用例建模的最主要功能就是用来表达系统的功能性需求或行为。 用例建模可分为用例图和用例描述。 用况模型由用况图组成,用况图展示了执行者、用况以及它们之间的关系。 一个用况模型可以由若干幅用况图组成, 一幅用况图包含的模型元素有 参与者( Actor)、用例( Use Case)、系统边界 以及表示它们间的不同关系 , 如关联、扩展、包含、泛化等, 用画图的方法来完成 [16]。 功能 用例图 采用用例驱动方法分析需求,首先识别出系统的参与者。 本系统的参与者也就是本 阅读软件 的用户, 用户可以进行文档阅读、阅读 背景色设定、字体颜色设定、字体大小 设定、阅读文档的翻页操作、对文档的 添加 书签操作 、去往书签操作、清除书签操作、 以及 对 文本的短信共享。 用例图如图 31 所示: 图 31 功能 用例模型 可行性分析 性能需求分析 手机软件要有良好的用户体验,良好的用户体验体现在以下几个方面: ( 1)运行时内存使用不能超过 64M 虽然现在的手机硬件越来越强大,智能手机的内存可达到 1024M,但 Android 还是限制 了 单个DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS 应用程序内存使用的大小。 所以本系统运行时内存使用限制在不超过 64M。 ( 2) 界面友好 用户界面要简洁直观,设计合理,方便用户操作,让用户使用起来比较舒服,并且 UI 视觉效果要好。 ( 3) 无缝性 一个常见的无缝问题就是一个应用的后台进程(如 Service 或 Broadcast receiver)对某事件作出响应而弹出对话框,这看起来仿佛并无大碍,特别是当你在模拟器上单独地构建和测试你的应用时。 然而,当你的应用在真正的设备上运行,后台线程显示对话框时,你的应用当时可能没有获得用户焦点。 这就会出现你的应用会在活动的应用后面显示对话框,或者从当前应用中获得焦点并显示对话框的情况,而 无 论当时用户正在做什么(如正在打电话等)。 那样的行为可能对你的应用或用户不起作用。 为了避免这些问题,你的应用应该利用适当的系统资源 ——Notification 类,来通知用户。 利用通知,你的应用可以通过在状态条上显示一个 图标来通知用户事件已经发生,而非获得焦点和打断用户。 系统安全需求 Android 操作系统具有权限分离的特征,每个应用都有唯一的身份标识。 同一系统的不同部分也有不同的身份。 因此在 Android 安全体系结构设计 中 在默认的情况下 没有任何 应用 程序可以执行 对其他应用程序 、 操作系统或 对用户有损害的 操作。 应用程序 在独立的沙盒中运行,若没有获得权限,就无法 对 其他应用程序进行操作。 4 系统设计 系统 的设计模式 为了使本设计中的 Android 文本阅读器具有 更加 强大的移植性和更好的可扩展性,系统的设计采取 了广泛使用的 MVC(即模型、控制器、视图)设计模式。 软件设计时把应用的输入、处理、输出流程按照 Model、 View、 Controller 的方式进行分离, 将 应用分成三层:模型层、视图层、控制层。 同一模型可以轻易地在不同 Android 平台,不同 UI 中得以实现,而反过来模型的改变也可以做到视图不变。 系统的开发人员还可以通过自身的优势进行分组开发。 总体设计 根据 系统所采用的 MVC 设计模式,可确定基于 Android 的文本阅读器的 总体设计结构 , 如图41 所示: DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS 基 于 A n d r o i d 的 文 本 阅 读 器数 据 库控 制 层U I界面显示用户输入及响应书签存储实 现 文 档 阅 读 书 签 管 理 系 统 设 定翻页控制文本选择添加书签去往书签清除书签文字设置背景设置屏幕设置 图 41 系统总体设计结构图 系统 的 功能设计 本系统是基于 Android 的文 本 阅读器软件,为了使用户方便快捷的操作本系统从而达到良好的用户体验,本系统需要实现以下功能: (1)TXT。基于android文本阅读器
相关推荐
决的信心 ,我相信在后面的编码和实现中 ,我会通过很好的利用网络资源和自己学习的积累对克服存在的问题的。 需求分析 经过前面章节内容的介绍 ,在本章中将对二维码的生成和识别的需求分析进行 阐述。 主要包括系统需求概述、系统需求分析、系统的可行性分析。 系统需求描述 现在二维码是越来越流行 ,当然人们对二维码也越来越感兴趣。 出于对二维码的好奇 ,很多人都开始研究二维码。 人们不断的提问
取得到的数据后,通过把数据经过一系列的解析、转换传送加载到界面给予友好的展示给用户,应用系统设计的简略流程图如图 32 所示: 新闻平台互联网新闻设置加载互联网数据展示互联网新闻本地新闻加载本地数据展示新闻列表展示新闻内容 图 32 应用系统简略流程图 设计数据源到自定义页面组件上展示总体设计框架,把服务器端传送过来数据经过处理、转化成需要的一定数据类型后
它占用的资源非常低。 它能够支持 Windows/Linux/U nix 等主流的操作系统,同时能够跟很多程序语言相结合,比如 php, Java 等,还有 ODBC 接口,同样比起 Mysql, PostgreSQL 来讲,它的处理速度比它们都快。 它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有 250KB 但支持数据库大小至 2TB。 它虽然很小巧,但是支持的
┊ ┊ ┊ ┊ ┊ ┊ 表示变量间的数量关系 )、相关分析 (用相关系数来度量变量间的相关程度 )、差异分析 (从样本统计量的值得出差异来确定总体参数之间是否存在差异 )等。 (7) 模糊集 方法 即利用模糊集合理论对实际问题进行模糊评判、模糊决策、 模糊模式识别 和模糊聚类分析。 系统的复杂性越高,模糊强一般集合理论是用隶属度来刻画模糊事物的亦此亦彼性的。 李德毅 等人在传统 模糊理论
t /*=NULL*/) : CDialog(CDenglu::IDD, pParent) { //{{AFX_DATA_INIT(CDenglu) 24 m_password = _T()。 m_username = _T()。 //}}AFX_DATA_INIT (RGB(160,180,220))。 } 其中 m_brush为 CBrush 类型成员变量。 最后控件颜色的改变 在
2 220I N 1272 3192 418I N 2282 582 615I N 312 714l s b 2 817I N 42E O C7I N 53A D D A25I N 64A D D B24A D D C23I N 75A L E22r e f ( )16E N A B L E9S T A R T6r e f ( + )12C L O C K10U1A D C 08 0 9GND+