英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料
Android 应用程序开发:Android平台简要概述
和安全系统的演进
Anirban Sarkar1
电气工程与计算机科学系
德州农工大学–金斯维尔
美国德克萨斯州金斯维尔
anirban.sarkar@students.tamuk.edu
Debadrita Sarkar2
计算机科学工程系
新英格兰学院
新罕布什尔州亨尼克尔
Ayush Goyal1
电气工程与计算机科学系
德州农工大学–金斯维尔
美国德克萨斯州金斯维尔ayush.goyal@tamuk.edu
Saikat Hazra2
信息技术部
FIEM
印度加尔各答saikathazra75@gmail.com
David Hicks1
电气工程与计算机科学系
德州农工大学–金斯维尔
美国德克萨斯州金斯维尔david.hicks@tamuk.edu
摘要—-随着新的移动技术的出现,移动应用产业发展迅速。 包括几个操作系统,如塞班操作系统,iOS,黑莓等,Android操作系统被公认为使用最广泛、最流行的以及用户友好的移动平台。这种基于linux 内核的开源操作系统具有高度的灵活性,因为其自定义属性使其成为占主导地位的移动操作系统。 Android应用程序使用Java语言编程。 Google Android SDK提供了一个特殊的软件堆栈,为开发人员提供了一个简单的平台来开发Android应用程序。此外,开发人员可以利用现有的Java IDE,这为开发人员提供了灵活性。Java库在第三方应用程序开发过程中占主导地位。跨平台方法可确保开发人员不必开发依赖于平台的应用程序。借助这些方法,可以将应用程序部署到多个平台,而无需更改编码。但是,Android更容易出现大多数用户没有考虑的安全漏洞。任何Android开发人员都可以在Android市场上上传其应用程序,这可能对任何Android设备造成安全威胁。这些应用程序不必经过严格的安全检查。本文讨论了用于Android应用程序开发的分层方法以及各种跨平台方法。此外,还简要介绍了新的Android平台,包括安全框架和安全系统。
关键字--Android架构,跨平台方法,Android安全性。
- 引言
Android是在Linux内核上运行的开源操作系统。Android应用程序是使用Java语言开发的。 Google拥有自己的SDK,使用这些Java代码可控制手机,平板电脑等设备。Android移动应用程序开发为开发人员提供了一个灵活的平台,使他们可以同时使用Java IDE和android java库。如今,Android操作系统是一个重要的平台,它提供了动态方式来开发创新的第三方应用程序。Android操作系统因其可定制的特性而在开发人员中广受欢迎。在一个平台上构建应用程序并同时在多个平台上部署它非常有效,而无需担心要进行的更改。跨平台提出了几种以有效和创新的方式实现此目标的方法。安全是Android操作设备的主要关注点。它不允许外部应用程序更改或修改已安装的文件。它允许自定义权限,以指定应用程序使用设备的硬件和软件资源。Android用户有权接受或拒绝已安装应用程序的权限。但是,Android允许IPC(进程间通信),这会使设备容易受到安全威胁的影响,从而导致盗版。该操作系统的主要功能之一是其体系结构与个人计算机完全相同。因此,可以以类似方式解决安全问题。但是,两种技术都可能成为使用蓝牙或Wi-Fi等资源的DoS攻击的受害者。尽管Android应用程序是高度可定制的,但它也增加了无意使用资源或无意安装的风险。因此,用户需要注意此类恶意活动,以减少安全漏洞的风险。
- Android架构
- 应用层
在这一层中,将执行Android应用程序组件。最终用户可以使用通过Dalvik虚拟机编译和执行的应用程序。开发的应用程序使用API库来利用设备中可用的核心资源。在此层中,可用的默认应用程序如联系人,消息传递[1]。
- 应用框架层
该层旨在允许开发人员访问核心应用程序服务。这些服务可以命名为Active和Windows管理器、资源和包管理器等。在这一层中,开发人员可以自定义其应用程序,以自定义其应用程序的系统结构,以便他们可以使用API库提供的各种服务[1]。
- Android运行时层和Linux内核
Android运行时层主要集中在进程的运行状态。在这一层中,每个程序都有其自己特定的Dalvik VM环境。Android内核类似于运行linux的桌面内核。这是一个开放的环境,提供对内核系统的访问。Android内核主要与管理实用程序(包括进程,电源和内存)相关联。此外,它也与网络管理和安全系统有关[1]。
- 开发Android应用程序,应用框架
Android应用程序是使用Java语言开发的,使用提供可靠且有效的应用程序编程接口(API)的SDK。用户授予权限后,Android应用程序可以使用设备的本机功能。进程间通信和共享资源在Android中比其他平台更安全。Android提供了一个开放的应用程序开发环境,同时利用了每个核心功能[3][1]。Android开发平台提供的服务集包括以下功能[1][2]:
-
- 一组可定制和可扩展的视图,包括按钮,文本框,浏览器,列表等。
- 内容提供者用于启用进程间通信。这些提供程序负责应用程序检索并与其他应用程序共享数据。
- 资源管理器负责使应用程序能够访问诸如字符串,布局文件等资源。
- 应用程序通知由可自定义的通知管理器处理。从权限请求到用户通知,所有内容都由通知管理器处理。
- 活动管理器管理和分析应用程序的每个生命周期阶段。
- 应用程序开发的分层方法
图 1:分层架构
Android应用程序开发过程由几层组成。层次结构中的最低层是HTTP层,用于向服务器发送和接收HTTP请求。API层解析服务器响应并制定查询。然后,这些查询传递到HTTP层。随后,API层将响应字符串解析为通用数据层,同时从字符串中提取重要字段。通用数据层中包含必要功能的实现。这些重要功能可以称为缓存,验证程序和数据管理系统。在依赖于平台的数据层中,从通用数据层收集必要的数据以供使用。该层称为平台相关的,因为所收集的数据根据要使用的平台存储在多个类(如适配器或列表视图)中。UI层负责通过视图,布局,按钮等与最终用户进行交互。该层由两个组件组成,分别名为用户界面和用户进程。第一个模块,用户界面组件负责用户与开发的应用程序的交互。用户流程组件负责交互的同步和组织[3][1]。
- 应用程序模型
在此模型中,每个应用程序都包含几个组件。每个组件甚至可以被其他应用程序使用。这些组件可以分类为活动,服务,接收者和提供者组件。活动组件用于用户界面。这些组件负责应用程序的每个窗口。服务组件对于与其他应用程序进行通信非常有用。当用户切换到另一个窗口时,这些组件可以在后台保持活动状态,并在必要时恢复。接收器组件负责与其他应用程序进行通信。这些通信是通过消息完成的。这些消息由接收器组件异步接收和处理。提供程序组件负责将应用程序所需的数据存储在数据库中。这些数据可以同时被多个应用程序利用[1][2]。
例如,考虑用于Android的聊天应用程序。此应用程序将其数据存储在firebase中。此应用程序包含几个组件。在某些活动中,可以查看用户的个人资料图片。有一些服务,例如上传用户的个人资料图片。当诸如来电或消息之类的优先功能到达,应用程序暂停并在这些功能终止后再次恢复时,接收器组件将非常有用。最后,对于此应用程序来说,将凭据和媒体文件上传到数据库时,可以看到提供程序组件正在工作,这是实时的Firebase数据库。
- 组件类和方法
Android应用程序开发框架由几个组件类组成。该框架对于应用程序开发非常灵活,其中应用程序依赖项可以彼此协作,从而根据情况提供必要的简单或复杂功能。一个应用程序有多个屏幕或活动,每个活动负责一组不同的任务。这些组件称为活动组件。用户界面由这些组件处理。接下来是负责管理和组织后台流程的服务组件。内容提供者负责以关系数据库的形式在应用程序之间共享重要数据。 Android嵌入了SQLite,为关系数据库提供支持。最后,广播接收器组件充当系统与应用程序之间的通信桥梁[4]。
V.跨平台方法
在应用程序开发过程中,开发人员倾向于开发可在特定平台上运行的应用程序。然后,该应用程序可以在单个平台上单独运行。例如,使用Java语言开发android应用程序,而使用Objective-C或快速编程语言开发iOS应用程序。 Windows电话支持使用可视C#或C 开发的应用程序。跨平台方法的主要目标是在一个环境中开发应用程序同时在许多平台上部署它们。这些
方法有利于节省成本和时间。开发人员只能使用一种编程语言来开发应用程序,并使用跨平台框架将该代码转换到许多平台[5]。
- 跨平台方法的要求
跨平台方法可以有效地为各种平台生成应用程序。要保持这些应用程序的高性能,存在一些要求。跨平台必须支持应用程序的可伸缩性和可维护性。如果需要进行修改,则跨平台需要允许开发人员仅在跨平台级别上进行这些修改,并将其部署在多个平台上。这些应用程序需要具有使用设备所有资源的功能。在跨平台应用程序开发过程中,最好没有中间层来访问资源和功能。资源的最大分配和优化是跨平台应用程序的主要关注点。开发人员需要考虑资源的有效消耗,但是跨平台也需要提供自动优化和管理。安全性一直是开发人员关注的问题,因为有很多方法可以渗透到设备的安全系统以及在公共场合丢失设备。在这两种情况下,丢失机密数据的风险都更高。开发人员需要以将加密数据存储在设备中的形式来注意安全漏洞的风险。因此,跨平台必须考虑安全策略。跨平台需要具有环境集成的能力,其中包括自动完成,调试器等[5]。
-
跨平台方法的类别
- Web方式
此方法基于移动Web浏览器,并使用HTML,JavaScript和CSS进行实施。在这种方法中,应用程序的实现是在网站上完成的,而浏览器是在运行时环境下使用的。出于开发目的,需要考虑诸如设备屏幕尺寸之类的必要优化技术。 Web移动应用程序具有相似的界面,不需要更新。但是,这些应用程序对设备的本机功能(例如GPS,消息传递服务等)的访问受到限制。此外,这些应用程序速度较慢,因为它们需要时间才能从网络呈现网页。Web应用程序在诸如playStore或iOS市场之类的应用程序商店上不可用,这是此方法的主要缺点[5][6]。
图 3:混合方式
图 2:Web方式
- 混合方式
这种方法是网络方法的优点和设备功能的结合。在这种方法中,可以使用JavaScript的抽象桥来访问本机功能。使用手机浏览器将HTML内容嵌入到设备的WebView或UIWebView Web容器中。Web应用程序在应用程序商店中不可用,而混合应用程序可以在各种应用程序商店中分发。抽象层负责确保应用程序可以使用本机功能[5][6]。
- 模型驱动方法
模型驱动的体系结构是这种方法的基础。这种方法由不需要处理低级问题的建模活动驱动。这些问题类似于将数据保存到数据库或向用户发送通知等。MDA由三个基本模型组成:平台独立模型的PIM,PSM或平台特定模型以及PIM到PSM模型。
PIM模型不依赖于已在其中实现的平台。而PSM模型取决于使用该系统的特定平台的详细信息。MDA可用于一次实现多个平台的接口,此后可用
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[259624],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。