




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
盐 城 师 范 学 院 毕业设计基于XACML的Android应用访问控制 策略的实现 学生姓名 学 院 信息工程学院 专 业 软件工程 班 级 12(4) 学 号 指导教师 2016年5月16日盐城师范学院毕业设计基于XACML的Android应用访问控制 策略的实现摘要随着移动智能终端的普及和移动应用功能需求的不断增加,智能手机中应用软件的数量越来越多。这些软件被广泛应用于我们的日常生活,在提高人们生活效率的同时,也带来了诸多信息安全方面的问题,如个人隐私泄露、内部数据公开等。对敏感资源实行访问控制是确保软件安全的重要手段,访问控制机制由访问控制策略和策略实施点组成,其中访问控制策略定义了主体对资源访问行为的约束,从而保证了敏感资源的隐私性和不可破坏性。XACML是一种基于属性的访问控制策略描述语言,通过为不同角色的用户分配不同操作权限的方式,可以有效地解决敏感资源泄露的问题。但目前XACML多用于PC端,移动应用中对XACML的使用仍处于研究阶段。本文以Android应用“提案审批系统”为例,详细介绍了将XACML访问控制策略运用到Android移动应用中的方法。该系统主要实现了企业内部员工创建项目提案,并由上层领导进行提案审批的功能,系统中为提案审批流程中的不同角色分配了不同的操作权限,直观地体现了基于XACML的访问控制策略在 Android应用中的实现方式。【关键词】 XACML;访问控制策略;Android ;移动应用 全套设计加扣 3012250582Implementation of Android application access control policy based on XACML AbstractWith the popularity of mobile intelligent terminals and the increasing demand for mobile applications, more and more applications are being installed in smart phones.These software is widely used in our daily life, while improving the efficiency of our lives, it also brings a lot of information security issues, such as personal privacy disclosure, internal data disclosure, etc. Sensitive resources to implement access control is to ensure that an important means of software security, the access control mechanism is composed of the access control policy and the policy implementation point. The access control policy defines the constraints of the subject to the resource access behavior, which guarantees the privacy and non destruction of the sensitive resources. XACML is an attribute based access control policy description language, which can assign different user permissions to different users, which can effectively solve the problem of leakage of sensitive resources. But at present, XACML is used in the PC side, and the use of XACML in mobile applications is still in the research stage.In this paper, the Android application proposal approval system as an example, the detailed introduction of the XACML access control strategy applied to the Android mobile applications. The system mainly realizes the enterprise internal staff to create the project proposal, and approving the proposal by the top leadership, system for proposal approval process in the different roles assigned permissions to different operations, intuitively reflects the based on XACML access control strategy in the Android application implementation.【Keywords】XACML,access control policy,Android,mobile application目 录1绪论11.1 背景11.2 主要研究内容21.3 本文的主要工作21.4 论文章节安排22 相关技术介绍32.1 Android32.1.1 Android系统架构32.1.2 Android应用程序组成42.1.3 Android中的访问控制权限52.2 访问控制机制52.3 XACML62.3.1 XACML结构62.3.2 XACML数据流模型72.3.3 XACML语言的特点83 PCAS应用及其访问控制需求的分析与设计83.1系统功能需求分析93.2 系统结构设计113.3 访问控制需求分析123.4 访问控制策略设计134 系统实现154.1 开发工具和环境配置154.2 开发系统客户端应用CAPP164.2.1 功能开发164.2.2 界面UI设计194.3 编写访问控制策略194.4 创建远程服务器204.5 修改策略执行点215 系统功能测试与结果分析235.1 功能测试235.2 结果分析286 总结与未来工作286.1 总结286.2 未来工作29参考文献30致谢311绪论1.1 背景 随着移动互联网技术的发展,手机经历了翻天覆地的变化,从原来打电话、发短信的工具,到如今办公、娱乐、购物等功能应有尽有的智能终端。近年来,智能手机的发展速度令人瞠目结舌,如图1-1所示,智能手机在发展过程中不仅操作系统更加多样,功能也日渐完善。智能手机虽然有诸多优点,但与传统手机相比,智能手机在信息安全方面存在更大的风险。首先是病毒风险,手机病毒是一种具有破坏性和传染性的手机程序,智能手机一旦感染手机病毒,将会导致个人信息泄露甚至手机无法正常使用等安全问题。其次是软件风险,由于很多手机用户没有识别危险软件的能力,造成大量的恶意软件被下载到智能手机上,这将会导致手机用户的隐私或重要信息被肆意传播,给用户的生活带来巨大的影响1。因此智能手机的信息安全问题值得我们所有人关注和重视。 图1-1 智能手机发展历史 随着人们对智能手机功能需求的不断增加,移动应用软件的数量越来越多。这些软件被广泛的应用于我们的日常生活中,在提高我们生活效率的同时,也带来了诸多信息安全问题。与恶意软件相比,这些应用软件本身并不存在危害,但由于软件系统没有对敏感资源采取特殊的保护措施,从而造成了个人隐私泄露的问题,因此对敏感资源实行访问控制是确保软件安全的重要手段。访问控制机制由访问控制策略和PEP(策略执行点,Policy Enforcement Point)组成,其中访问控制策略对主体进行资源访问的请求进行了规范和约束,从而保证了只有拥有相应权限的用户才能对资源进行访问和操作。XACML(eXtensible Access Control Markup Language,可扩展的访问控制标记语言)是一种基于属性的访问控制策略描述语言,通过为不同用户统一分配访问控制权限的方式,确保每一位用户对数据进行访问或操作时都受到访问控制策略的约束。但目前XACML多用于PC端,移动应用中对XACML的使用仍处在研究阶段。1.2 主要研究内容 本文就“基于XACML的Android应用访问控制策略的实现”这一课题进行深入研究,并从如下几个方面展开: (1)XACML语言的研究 1) XACML语言的定义 2) XACML访问控制策略的组成结构 3) XACML访问控制策略的特点 (2)XACML在Android应用中可行性研究 1)Android中的访问控制权限 2)访问控制机制的研究 3)XACML实现资源访问控制的原理 (3)XACML在Android应用中的实现方式 1)Android的系统架构 2)Android应用程序组成 3)XACML在Web应用中的实现方法1.3 本文的主要工作 本文以Android应用PCAS(Proposal Creation and Approval System,提案审批系统)为例,详细介绍了将XACML访问控制策略运用到Android移动应用中的方法。通过PCAS开发和访问控制策略编写与实现的过程介绍,全面分析了基于XACML的访问控制策略在Android应用中的实现实现方法。 1.4 论文章节安排 第一章:绪论,介绍了本文研究的背景、研究的内容以及主要的工作。 第二章:相关技术介绍,详细介绍了系统开发过程中使用到的技术 第三章:系统需求分析与设计,对PCAS移动应用的功能及访问控制需求进行具体的分析与设计。 第四章:系统实现,详细介绍了整个系统的开发过程。 第五章:总结和未来工作,总结论文期间所做的工作和收获,并对系统中存在的问题和未来的工作进行介绍。2 相关技术介绍本文就“基于XACML的Android应用访问控制策略的实现”这一课题进行深入研究,并由此开发了PCAS移动应用。应用开发过程中主要涉及到的技术包括:Android、访问控制机制和XACML。2.1 Android 2.1.1 Android系统架构 图2-1 Android系统架构图上图2-1为Android系统的架构图,从图中可以看出Android系统主要由以下四部分组成。(1)应用程序层Android虽然作为一款操作系统,但它本身也包含了大量系统自带的核心应用程序,例如桌面、浏览器、通话等。(2)应用程序框架层应用系统框架层是Android开发的基础,程序开发人员可以直接使用系统提供的组件进行程序的快速开发,或通过继承的方式拓展这些组件的功能实现系统个性化需求。(3)系统运行库层系统运行库层由Android运行时和系统库两部分组成。系统库包含了媒体库、WebKit、SQLite等九个子系统。而Android运行时又包含了Dalvik虚拟机和Android核心库集两个部分,其中,Dalvik虚拟机用来运行Android应用程序,而Android核心库集则为应用程序开发提供了Java语言核心库的大部分功能。(4)Linux内核层Android系统以Linux2.6为内核,系统大部分的核心服务如内存管理、网路协议、安全性等都由Linux内核提供8。2.1.2 Android应用程序组成 Android应用程序是由系统提供的各个组件构成,这些组件相互关联且都遵循着一个应用程序清单(manifest),这个清单不仅清楚地描述了各个组件之间的交互方式,更为应用程提供了硬件与平台所需的元数据。以下六大组件构成了Android应用程序的基础框架: (1)ActivitiesActivities是应用程序的表示层,它为用户提供了任务交互的窗口。一个应用程序由多个Activities组成,且各自存在着绑定关系。 (2)Services: Services作为应用程序的隐形工作者,主要负责更新用户的数据源和可见的Activities。当应用程序的Activities退出主界面是,Services则在后台处理需要继续运行的程序。 (3)Content Providers: Content Providers负责管理和共享应用程序的数据库。一个ContentProvider是由ContentProvider的子类实现的,并且能够实现其他应用程序可以与之进行通讯的功能。 (4)Intents: Intents是应用程序之间消息传递的框架。当Intents对一个应用程序的Activity或Service发送消息时表示你要执行一个动作,此时系统会辨别出需要执行活动的目标(target)。 (5)Broadcast Receivers:Broadcast Receivers 是Intent广播的消费者。当你注册了一个Broadcase Receiver时,你的应用程序可以监听到特定过滤标准的广播Intent。 (6)Notifications:Notifications是用户通知的框架。Notification可以在不中断当前程序的情况下显示来自其他应用的消息提醒。例如,当手机收到一条短信时,会在屏幕上方显示短信内容,用户不需要退出当前应用去短信应用中进行查看10。2.1.3 Android中的访问控制权限 在Android中涉及到的访问控制权限大致分为如下三类: (1)手机所有者权限:所有Android手机用户都具有此类权限,即用户买入手机后,无需进行任何操作,就具有安装应用软件和使用应用程序的权限; (2)root 权限:该权限允许用户对系统的数据或应用进行任意操作,是系统的最高权限。用户刚买入手机时并没有此类权限,只有通过特别的软件才能进行获取,然而,获取root权限可能使用户失去原厂保修的权益,因此不建议用户使用root权限。 (3)应用程序权限:在Android中每个应用程序对系统资源进行访问时都需要一定的访问权限,这个权限被称为 Android 应用程序权限,它在应用程序开发后就已经设定,但在程序初次安装时才生效。 每个应用程序都包含一个AndroidMainifest.xml文件,这个文件不仅包含了应用程序所需的运行依赖关系、程序运行时库等,而且详细罗列出应用程序所需的系统访问权限。Android中不仅定义了百余种permission权限方法供程序开发人员使用,而且程序开发人员还可以自定义权限。下图2-2为自定义访问权限的代码: 图2-2 自定义权限申明自定义权限声明的含义如下:Label是自定义权限名字的标签,方便了程序开发者查看定义的权限。Description是对自定义权限进行的描述,它的值是从 resource 文件中获取的。Name是权限名称标签,当其他应用程序需要引用该权限时填写这个名字。protectionLevel为权限级别标签,normal代表了低风险权限,其余三类权限级别分别是:dangerous(高风险权限)、signature(应用签名权限)、signatureOrSystem(系统签名权限)2。2.2 访问控制机制访问控制机制是为了防止用户或系统对已经受到保护的资源进行未授权的访问,即只有被授予权限的用户才能对系统资源进行访问,从而降低了资源泄漏的风险2。一个完整的访问控制系统包括主体、客体、访问控制策略、访问控制机构等几个方面。访问控制的经典模型有:RBAC(Role Based Access Control,基于角色的访问控制):访问控制系统首先根据的应用程序的需求设定一系列角色,然后将权限分配给这些角色,用户注册时会选定其中一类角色作为自身的角色类型,当用户对受保护的资源进行访问时,访问控制系统会根据用户所属角色进行授权。ABAC(Attribute Based Access Control,基于属性的访问控制):首先将需要访问资源的用户和被访问的资源通过属性进行描述,然后将决策过程中涉及到的主体、资源、动作和环境的属性作为授权条件5。在实现访问控制时,需要先对访问控制需求进行分析,然后根据需求编写访问控制策略,并在代码中实现访问控制授权的逻辑。 2.3 XACMLXACML是2003年由OASIS(Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织)批准的一种访问控制策略描述语言,它可以对访问控制策略进行统一授权和有效管理7。2.3.1 XACML结构 XACML是一种基于属性的访问控制描述语言。如图2-3所示,一个完整的XACML访问控制策略包含一个PolicySet(策略集),一个PolicySet包含了若干个Policy(策略),一个Policy中有又包含了若干条Rule(规则)。其中每条规则中定义了一个Effect(授权结果),它的值是Permit(允许)或者Deny(拒绝),这个值表明主体的访问请求是否被批准。每条规则有唯一的Target(目标),目标不仅描述了Subject(主题)、Action(动作)、Resource(资源)、和Environment(环境)之间的约束条件,而且限定了包含该目标的策略集、策略或者规则能够适用的访问控制请求范围,即只有当用户访问请求中的四大元素的属性值与访问控制策略目标中的属性值相同,且授权结果为允许时,用户才有权对资源进行访问或操作6。 图 2-3 XACML的结构2.3.2 XACML数据流模型 XACML数据流模型主要由PIP(PolicyInformationPoint,策略信息点)、PEP(PolicyEnforcementPoint,策略执行点)、PDP(PolicyDecisionPoint,策略决策点)、PAP(PolicyAdministrationPoint,策略管理点)和处理器等组成。如图2-4所示,在XACML数据流模型中,当用户向系统发送一个访问请求后,需要经过PDP、PEP等一系列步骤才能完成一个完整的授权决策过程,此过程中涉及到的具体步骤如下所示:(1)首先PAP根据XACML格式创建访问控制策略让PDP使用。(2)当用户向PEP发送服务请求时,PEP将服务请求中包含的主体、资源、动作和环境的属性值发送给处理器。(3)处理器首先将PEP发送的服务请求转换成XACML格式的请求,然后发送给PDP;(4)PDP收到XACML格式的请求后,向处理器请求所需的属性值;(5)处理器将服务请求中涉及到的主体、资源、动作和环境的属性值发送给PIP;(6)PIP将处理器所需的属性值返回给处理器后,处理器根据授权决策决定是否取得相应的资源;(7)处理器将PIP返回的属性值和依据授权决策取得的资源发送给PDP,PDP做出授权评估,并将评估结果发送到处理器;(8)处理器将XACML格式的属性值首先转换成原先的访问请求格式发送给PEP;(9)PEP根据接收到的授权结果进行相应的逻辑处理,如果授权结果为允许,则用户有权对资源进行访问或操作,否则就拒绝用户的数据访问请求11。 图2-4 XACML数据流模型 2.3.3 XACML语言的特点XACML被提出之前,策略决策点和访问控制策略是紧紧相关联的,对于一个新开发的应用系统来说,如果选择采用新的访问控制策略,则必须重新实现策略决策点。即使系统并不发生变化,两者之间的关联在分布式环境下带来的不便也是非常明显的。而基于XACML访问控制机制则将两者进行解耦,使得决策点可以在不同的访问控制策略下被重复使用而无需做任何修改。同时开发人员也可以将更多的精力放在访问控制策略的编写上而不是策略决策点的修改上。这样的特点使得基于XACML的访问控制机制在应对系统变化时更加的得心应手,同时也具有了被应用在分布式环境下的优势9。3 PCAS应用及其访问控制需求的分析与设计针对本次毕业设计课题“基于XACML的Android应用访问控制策略的实现”,开发了PCAS应用,该系统实现了员工创建项目提案并交由上层领导进行审批的功能,系统中通过调用XACML访问控制策略,实现了为提案审批流程中每类角色用户分配不同操作权限的功能在进行系统开发之前,需要对系统功能进行全面的分析,本章详细介绍了PCAS功能及其访问控制需求分析与设计的过程。3.1系统功能需求分析PCAS应用主要实现的是公司员工创建项目提案并交由上层领导进行审批的过程。在提案审批的流程中共有五类角色参与流程的执行,这五类角色分别是:员工、团队长、部门经理、总经理和项目执行总监。在整个提案审批流程中五类角色之间的关系如下图3-1所示。 图3-1 PCAS角色关系图系统中角色之间的关系分析完成之后,需要对系统的功能和角色拥有的操作权限进行具体分析,如下图3-2所示: 图3-2 PCAS系统功能图提案审批系统中的角色关系和具体功能分析完成后,需要对整个提案审批的流程进行全面分析,具体如下:(1)首先为每类角色进行用户注册,确保提案审批流程中每一类角色都有对应的用户可以对提案进行操作。(2)员工类用户登陆系统后需要创建项目提案,提案的创建内容包括:提案标题、项目名称、项目截止日期、总预算、工期和具体的项目内容。其中提案负责人、提案代理人、提案标题、项目名称、截止日期、总预算、工期作为提案封面。提案创建完成后,此用户为提案负责人,可以对提案进行如下操作:查看提案信息、添加提案代理人、删除提案代理人、编辑提案封面、编辑提案内容、删除提案、提交提案。提案负责人必须添加一名团队长或其他员工作为提案代理人,用于代替提案负责人将已经审批的提案提交给流程中下一个角色用户。提案代理人添加完成后,提案负责人将提案提交给部门经理进行审核。(3)部门经理登录系统后可以查看员工提交的提案,并对提案内容进行修改即提出自己对项目的一些建议。如果部门经理认为提案合理可行则同意此提案,如果认为不可行则不同意提案。(4)部门经理同意或不同意此提案后,提案状态应发生相应的变化,即部门经理同意状态和部门经理不同意状态,状态改变之后,提案负责人或提案代理人将此提案提交给总经理。(5)总经理登录系统后,可以查看提案信息,此时如果提案状态为部门经理不同意,则总经理有权删除提案。如果状态为部门经理同意,则总经理可以提出自己对项目的意见即修改提案内容 ,并同意或不同意此提案。如果总经理不同意提案,则有权删除提案。提案一经删除,则代表提案无效,流程结束。(6)如果总经理同意此提案,提案状态会变为总经理同意,此时提案负责人或提案代理人将提案提交给项目执行总监。(7)项目执行总监登录系统查看提案后,开始实施提案项目。(8)项目实施过程中如果遇到问题,项目执行总监可通知总经理,并由总经理撤销项目实施。3.2 系统结构设计 根据系统的功能需求和Android开发基础,将PCAS应用分为客户端应用(CAPP)和服务端应用(MyPDP)两部分。CAPP作为系统的客户端应用,必须提供用户操作界面和满足系统的全部功能需求,因此CAPP应用中需设计七个主界面:用户登陆界面、用户注册界面、 提案列表界面、创建提案界面、提案详情界面、 编辑封面界面、编辑提案内容界面,每个界面分别代表了用户对系统进行操作时的不同状态,每个系统操作状态之间的关系如下图3-3所示: 图3-3 PCAS流程状态图提案审批系统中访问控制策略的实现,主要由三部分组成:XACML访问控制策略、PEP和PDP。XACML访问控制策略的编写是整个系统中最为关键的部分,所有角色对提案的操作权限都在访问控制策略中进行分配,需要严格按照XACML语言编写规范以及本系统的具体功能需求进行编写,最后将编写好的访问控制策略生成XML格式的文件,放在MyPDP应用中。PEP负责执行由PDP分配的策略,当用户需要对提案进行操作时,会先将访问请求提交给PEP,PEP委托PDP对访问请求实施决策,PDP调用访问控制策略并将授权返回给PEP,PEP按照接收到的授权结果决定是否允许用户执行此操作。可以看出在用户对提案进行操作的过程中,PEP和PDP两者之间需要不断地进行通信,所以可以用Bound的Service实现PDP模块。为了降低耦合,可以将PDP模块以远程Service的形式定义在MyPDP应用中。系统访问控制策略实现过程如下图3-4所示: 图 3-4访问控制策略实现过程图3.3 访问控制需求分析在提案审批系统中,涉及到具体的访问控制需求,即不同角色的不同操作权限,如下表3-1所示: 表3-1 提案审批系统访问控制需求 角色操作权限 员工可以创建提案提案负责人(员工)可以添加其他员工或团队长作为提案代理人可以删除提案代理人可以编辑提案封面和提案内容可以删除提案可以将提案提交给部门经理部门经理同意后可以将提案提交给总经理总经理同意后可以将提案提交给项目执行总监 提案代理人 (员工或团队长)提案创建后可以编辑提案封面和提案内容不能删除其他代理人不能删除提案可以将提案提交给总经理和项目执行总监部门经理可以同意或不同意提案可以查看提案不能编辑提案封面不能删除提案可以编辑提案封面和提案内容总经理可以同意或不同意提案可以删除部门经理或总经理不同意的提案可以撤销已经开始实施的提案可以编辑提案封面和提案内容项目执行总监开始实施总经理同意的提案项目3.4 访问控制策略设计由XACML结构可知,XACML访问控制策略编写过程中主要涉及四大元素:Subject、Action、Resource和Environmen,而Effect代表了访问控制策略的授权结果,Permit为允许,Deny为拒绝。根据访问控制需求分析的结果,将其四大元素和授权结果一一列举,如下表3-2所示。其中Environment相当于策略执行的条件,而提案共分为6种状态:已创建、部门经理同意、部门经理不同意、总经理同意、总经理不同意、开始实施,这六种状态分别代表了不同访问控制策略的执行条件,如果Environment为空,则代表提案在任何状态下都能执行此访问控制策略。 表3-2 XACML访问控制策略SubjectActionResourceEnvironmentEffect员工创建提案Permit提案负责人添加提案代理人已创建Permit提案负责人添加提案代理人员工已创建Permit提案负责人添加提案代理人团队长已创建Permit提案负责人添加提案代理人部门经理已创建Deny提案负责人添加提案代理人总经理已创建Deny提案负责人添加提案代理人项目执行总监Deny提案负责人添加提案代理人总经理Deny提案负责人删除提案代理人已创建Permit提案负责人编辑提案封面已创建Permit提案负责人编辑提案内容已创建Permit提案负责人删除提案已创建Permit提案负责人提交到部门经理已创建Permit提案负责人提交到项目执行总监Permit提案负责人提交到总经理部门经理同意Permit提案负责人提交到总经理部门经理不同意Permit提案代理人编辑提案封面已创建Permit提案代理人编辑提案内容已创建Permit提案代理人添加提案代理人Deny提案代理人删除提案代理人Deny提案代理人删除提案Deny提案代理人提交到总经理部门经理同意Permit提案代理人提交到总经理部门经理不同意Permit提案代理人提交到项目执行总监总经理同意Permit部门经理同意提案已创建Permit部门经理不同意提案已创建Permit部门经理编辑提案封面已创建Permit部门经理编辑提案内容已创建Permit部门经理删除提案Deny总经理编辑提案封面部门经理同意Permit总经理编辑提案内容部门经理同意Permit总经理同意提案部门经理同意Permit总经理不同意提案部门经理同意Permit总经理删除提案部门经理不同意Permit总经理删除提案总经理不同意Permit总经理撤销提案开始实施Permit项目执行总监提交开始实施总经理同意Permit如上表所示,根据不同角色的访问控制需求进行了详细的XACML访问控制策略设计,共列举出37条访问控制策略,每一条访问控制策略都代表了此类角色在提案审批流程中的操作权限。下一章将详细介绍这些访问控制策略的编写与实现的具体过程,此处我们以Subject为部门经理,Action为同意,Resource为提案,Environment为已创建,Effect为Permit的情况下生成的一条XACML格式的访问控制策略为例,介绍XACML访问控制策略编写规则。1)代码段12)4)5) 6) 7) 8)提案负责人9) /subject(主体)是提案负责人10) 11) 12) 13)提案代理人 /Resource(资源)是提案代理人14)15) 16) 17) 18)删除 /Action(动作)是删除19) 20) 21)已创建 /Environmen(环境)是已创建22) 23) 24) 25) 如上所示,XACML访问控制策略主要由三部分组成:Policy(策略)、rule(规则)、target(目标)。Policy代表了整个访问控制策略的内容,包括策略id和策略内容。rule是访问控制策略的重要组成部分,不仅包含了访问控制的Target,而且体现了访问控制的授权结果(Permit 或 Deny)。而target中又包含了访问控制策略的四大要素:Subject、Action、Resource和Environment。4 系统实现 系统功能及其访问控制需求分析与设计完成之后,将开始进行具体的系统开发与实现的工作,本章详细介绍了PCAS应用程序的开发以及访问控制策略的编写与实现的过程。4.1 开发工具和环境配置笔记本电脑型号:联想Y480笔记本系统:win10 64位系统开发工具:Android Studio 1.2XACML策略编辑器:UMU-XACML-Editor 1.3.2 JDK版本:JDK 1.7运行系统:Android 4.3及以上版本 4.2 开发系统客户端应用CAPP4.2.1 功能开发 根据系统功能设计可知,PCAS客户端应用CAPP由七大主界面构成,这些界面共同完成PCAS应用的主要功能,所以需要对CAPP中各个界面进行详细的功能开发,并按照系统需求,实现不同界面之间的跳转功能。下文介绍了开发过程中的用到的一些重要技术:(1)如果是第一次使用该系统,必须先进行用户注册。在用户注册时需进行相应逻辑处理,保证注册信息的准确有效,代码如下所示:1) 代码段22)account_id=text_account_id.getText().toString(); /获取用户输入的用户名 3)password=text_password.getText().toString();/获取用户输入的密码4)re_password=text_re_password.getText().toString();/获取用户输入的确认密码5)role=spinner_role_list.getSelectedItem().toString(); /调用spinner控件进行角色选择6)if(account_id.equals() /进行逻辑处理,判断输入的注册信息是否有效7) .setTitle(注册失败)8) .setMessage(用户名不能为空)9) .setPositiveButton(确认,null)10) .show();11) else 12) userDAL.insert(new User(account_id,password,role); 13) /如果注册信息有效,则将用户名、密码、角色类型插入数据库中14) editor=preferences.edit();15) editor.putString(account_id,account_id);16) editor.putString(role,role);17) mit();18) new AlertDialog.Builder(SignUpActivity.this) /显示用户注册成功19) .setTitle(通知)20) .setMessage(用户注册成功!)21) 当进行用户注册时,需填写用户名、密码和确认密码并选择需要注册的角色,只有当填写的信息不为空且有效时才能完成用户的注册,否则系统将会弹出错误信息。实现效果如下图4-1、 4-2和4-3所示: 图4-1用户注册 图4-2 注册失败 图4-3 注册成功(2)当用户注册成功或直接登录后,用户进入提案列表界面。此时员工类用户有权进行提案的创建,点击创建按钮进入了提案创建界面,提案中涉及到项目截止日期的选择,此处我们调用日期插件来完成对截止日期的选择,代码如下所示:1)/代码段32) /此处调用日期选择控件,完成对项目截止日期的选择3)datePickerDialog=new DatePickerDialog(CreateProposalActivity.this,4) new dateSetListener(),5) year,month,day);6)datePickerDialog.setTitle(请选择日期:);7)datePickerDialog.setButton(DatePickerDialog.BUTTON_POSITIVE,确定,(Message)null);8)datePickerDialog.show();9) /日期选择完成后需对日期进行判断,系统规定截止日期不能选择今日之前的日期10)if(calendar.before(today_calendar) 11) .12) .setTitle(错误)13) .setMessage(截止日期必须在今天之后)14) .setPositiveButton(确认,new dialogClickListener()15) .show();实现效果如下图4-4所示: 图4-4 日期选择插件(3)提案创建完成后,用户可以对创建的提案进行操作,长按提案列表中的提案,会弹出提案操作框,这里具体的实现代码如下:1)代码段4 /调用AlertDialog.Builder控件,实现长按提案,弹出操作选择对话框2)new AlertDialog.Builder(ProposalListActivity.this)3) .setTitle(请选择:)4) .setItems(new String视图,添加代理人,删除代理人,编辑提案封面,编辑提案内容5),删除,同意,不同意,提交到,开始实施,撤销实施,new menuItemClickListener()6) .show(); 实现效果如下图4-5所示: 图4-5 提案操作选择框4.2.2 界面UI设计系统的功能实现之后,还需要对系统的界面UI进行设计,使系统更加美观
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养殖金融投资合作创新创业项目商业计划书
- 智能家居场景识别与控制大模型创新创业项目商业计划书
- 农畜产品品牌农产品品牌保护创新创业项目商业计划书
- 2025年工具钳工(初中高级)证考试练习题库(含答案)
- 物联网智能设备故障诊断创新创业项目商业计划书
- 电脑硬件降噪创新创业项目商业计划书
- 现场急救知识培训的意义
- 2025年消费与零售行业食品行业可持续发展报告
- 2025年工业互联网平台入侵检测系统数据挖掘与分析优化研究
- 2025年教育行业投资并购风险控制与整合策略报告001
- 高职计算机专业《Python程序设计》说课课件
- 2024年小学六年级上册体育教案全册
- 宣传片拍摄保密协议(2024版)
- 医疗设备采购招标投标文件格式
- 离婚协议书与离婚协议书
- 房屋出租委托协议
- 加装电梯业主同意协议书
- 医疗器械经销商管理
- 非居民金融账户涉税信息尽职调查管理办法
- 拓扑优化教学课件
- 孕期营养需求指南
评论
0/150
提交评论