毕业论文-基于android系统的投票软件设计内容摘要:

++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性 4)分布式 Java 建立在扩展 TCP/IP 网络平台上。 5)健壮性 Java 致力于检查程序在编译和运行时的错误。 6)解释型 Java 是把程序编译成称为自字节码的一种 “中间代码 ”。 字节码是很接近机器码的文件,可以在提供了 java 虚拟机( Java Virtual Machine,JVM)的任何系统上被解释执行 .7)动态 java 程序的基本组成单元就是类 [9]。 毕 业 论 文 第 8 页 共 26 页 3 Android 程序结构 本段从 Android 的 API、应用程序、 intent、 Android Activity 的生命周期及 Fragment的生命周期对 Android 应用程序结构进行了介绍。 3. 1 Android 的 API Android 的 API 主要包括下面几部分 : 注册清单 是系统的控制文件,是 Android 控件和组建进行注册和配置的位置它告诉系统如何处理所创建的所有应用组件 (尤其是 (Activity),服务 (Service),Intent(Intent Receiver)和内容提供者 (Content Provider))。 活动 Activity 就是一个有生命周期的对象。 一个 Activity 就是完成某些工作的代码块,这部分工作还可能包括对用户 UI 界面的显示。 视 图 视图可以将其自身绘制到屏幕上。 Android 的用户界面由一系列的视 图树构成。 接口都是由一组以树的形式出现的视图组成的。 开发者可以通过创建一个新的视图的方法来使用自定义的图形处理技术 (比如开发游戏,或者是使用了不常用的用户图形窗口界面。 意图 Intent 是一个简单的消息对象,它表示程序想做某事的 “意图 ”。 比如应用程序想要显示一个网页,那么它可以通过创建一个 Intent 实例并将其传递给系统来表示 Intent 浏览这个 URI。 系统将定位到能处理这一 Intent 的代码 (在当前情况下就是浏览器 ),并运行之。 Intent 也可以用于广播系统范围内的有效事件 (例如通知事件 )。 服务 Service 是运行在后台的一段代码。 它可以运行于它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要 .。 其它的组件可以绑定到一个服务上来,通过远程过程调用 (AIDL)来调用这个方法 [10]。 通知 通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。 最常毕 业 论 文 第 9 页 共 26 页 见的通知包括短信息、通话记录和语音邮件,但是应用程序也可以创建它们自己的通知事件。 内容提供者 Content Provider 是用来提供对设备上数据进行访问。 典型的例子就是 使用 Content Provider 来访问联系人列表。 应用程序也可以使用其它程序通过 Content Provider 提供的数据,同时也可以定义自己的 Content Provider 来向其它应用提供数据访问服务。 3. 2 Android 应用程序结构 通常由以下 五 个组件来构建一个完整的 Android 应用程序: 1) Activity 2) Intent 3) Service 4) Content Provider 5) BroadcastReceiver 然而,并不是所有的 Android 应用程序都必须具备上面的四个组 件,可以由上面的一个或几个来组建。 当决定使用以上哪些组件来构建 Android 应用程序时,需要将它们在 清单配置文件中注册,这是一个 XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。 这个清单配置文件是每个 Android 应用程序都必不可少的。 Activity Activity是以上四个组件中最常用的一个。 每个 Activity都是 Activity的子类,并实现了一些独有的功能,如管理 UI 显示和 UI 的反馈事件。 一个 Activity就相当于应用程序的一个用户界面,由事件响应以及视图等组成。 大多数的应用程序通常包括多个界面。 例如 :一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。 每个界面其实都可看作是一个 Activity。 显示一个新界面就相当于生成一个对应的 Activity对象。 Activity生命周期: Activity一生中有七种不同的状态。 生命周期分为创建、启动、开始、霸屏、暂停、停止、销毁。 是进行 Android 程序开发的重要一环,不了解 Activity 的生命周期就不知道在每一个部分的内 容该怎么写,哪一部分的代码写到哪里,所以 设备的主屏是大多数任务的启动位置,当用户触摸一个应用程序启动器图标(或者 app 快捷图标),应用程序的任务就会在前毕 业 论 文 第 10 页 共 26 页 台显示。 如果相关应用程序的任务不存在,那么就会有一个新的任务被创建,并且应用程序打开的 “主 ”Activity会作为任务中的根 Activity。 Activity的生命周期如图 所示: 图 Activity 的生命周期 Android 的四种启动模式: 1) standard:( standard 是系统默认的启动模式)标准启动模式,每次激活 Activity时都会创建 Activity,并放入任务栈中。 如果启动此 Activity 的 Intent 中没有设置FLAG_ACTIVITY_NEW_TASK标志 , 则这个 Activity与启动他的 Activity在同 一个 Task中 ,如果设置了 Activity 请参考上面 FLAG_ACTIVITY_NEW_TASK 的详细说明 ,launchMode设置为 standard的 Activity可以被实例化多次 , 可以在 Task中的任何位置 , 对于一个新的 Intent 请求就会实例化一次 [11]。 2) singleTop:如果在任务的栈顶正好存在该 Activity的实例, 就重用该实例,而不会创建新的 Activity 对象,不过它会调用 onNewIntent 方法。 如果栈顶部不存在就会创建新的实例并放入栈顶 (即使栈中已经存在该 Activity实例,只要不在栈顶,都会创建实例 )。 如果启动此 Activity的 Intent 中没有设置 FLAG_ACTIVITY_NEW_TASK 标志 , 则这个 Activity 与启动他的 Activity 在同一个 Task 中 ,如果设置了 Activity 请参考上面FLAG_ACTIVITY_NEW_TASK 的详细说明 ,launchMode设置为 singleTopActivity 可毕 业 论 文 第 11 页 共 26 页 以被实例化多次 , 可以在 Task中的任何位置 , 对于一个新的 Intent请求如果在 Task栈顶 , 则会用栈顶的 Activity 响影 Intent 请求 ,而不会重新实例化对象接收请求 , 如果没有在栈顶 , 则会实例化一个新的对象接收 Intent 请求 3) singleTask:如果在栈中已经有该 Activity 的 实例,就重用该实例 (会调用实例的onNewIntent)。 重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。 如果栈中不存在该实例,将会创建新的实例放入栈中。 和 singleTop 在名字上即可看出区别,即 singleTop 每次只检测当前栈顶的 Activity 是否是我们需要请求创建的,而singleTask则会检测栈中全部的 Activity对象,从上向下,如果检测到是我们所请求的则会消灭此 Activity 对象上面的对象,直接把检测到的我们需要的 Activity 置为栈顶。 launchMode设置为 singleTask的 Activity总是在栈底 , 只能被实例化一次 , 它允许其它Activity 压入 singleTask的 Activity 所在的 Task 栈 ,如果有新的 Intent 请求有此标志的Activity, 则系统会清除有此标志的 Task栈中的全部 Activity,并把此 Activity显示出来。 4) singleInstance:在一个新栈中创建该 Activity实例,并让多个应用共享该 Activity实例。 一旦这种模式的 Activity 实例存在于某个栈中,任何应用再激活这个 Activity 时都 会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity 都会进入同一个应用中。 此启动模式和我们使用的浏览器工作原理类似,在多个程序中访问浏览器时,如果当前浏览器没有打开,则打开浏览器,否则会在当前打开的浏览器中访问。 此模式会节省大量的系。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。