基于安卓系统的手机应用开发和安全外文翻译资料

 2022-08-30 11:08

International Journal of Computer Trends and Technology- volume3Issue3- 2012

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

Suhas Holla#1, Mahima M Katti#2

# Department of Information Science amp; Engg, R V College of Engineering

Bangalore, India

Abstract In the advancing world of technology, Mobile applications are a rapidly growing segment of the global mobile market. Mobile applications are evolving at a meteor pace to give users a rich and fast user experience. In this paper, Android mobile platform for the mobile application development, layered approach and the details of security information for Android is discussed.

Google released Android which is an open-source mobile phone operating system with Linux-based platform. It consists of the operating system, middleware, and user interface and application software. Certainly, Android is about to become the most widely used OS on mobile phones, but with Android comes a security vulnerability that few users take into account. On Android Market, where you can download thousands of applications for Android, anyone can upload their programs without having to submit them to careful security checks. This makes Android a prime target for computer criminals. In this paper, we discuss a layered approach for android application development where we can develop application which downloads data from the server. Also an Android Application Sandbox (AASandbox) which is able to perform both static and dynamic analysis on Android programs to automatically detect suspicious applications is also discussed.

Keywords— Android, application framework, android runtime, layered approach, AASandbox

I. INTRODUCTION

Android is a new, next-gen mobile operating system that runs on the Linux Kernel. Android Mobile Application Development is based on Java language codes, as it allows developers to write codes in the Java language. These codes can control mobile devices via Google-enabled Java libraries. It is an important platform to develop mobile applications using the software stack provided in the Google Android SDK. Android mobile OS provides a flexible environment for Android Mobile Application Development as the developers can not only make use of Android Java Libraries but it is also possible to use normal Java IDEs. The software developers at Mobile Development India have expertise in developing applications based on Android Java Libraries and other important tools. Android Mobile Application Development

can be used to create innovative and dynamic third party applications. Mobile Development India has worked extensively on projects ranging from gaming software, organizers, media players, picture editors to go-cart devices and more.

II. BACKGROUND STUDY

The platform was officially announced and the SDK tools were available in October 2008. Currently there is only one mobile phone that runs the Android OS, the G1 from T-Mobile. According to the official Android website (Android 2008) the platform is based into the four core features as shown in the Fig 1:

Fig. 1 Four core features of the android platform

A. Application Fundamentals

Android applications are written in Java programming language. However, it is important to remember that they are not executed using the standard Java Virtual Machine (JVM). Instead, Google has created a custom VM called Dalvik which is responsible for converting and executing Java byte code. All custom Java classes must be converted (this is done automatically but can also be done manually) into a Dalvik compatible instruction set before being executed into an Android operating system. Dalvik VM takes the generated Java class files and combines them into one or more Dalvik Executable (.dex) files. It reuses duplicate information from multiple class files, effectively reducing the space requirement (uncompressed) by half from a traditional .jar file. Dalvik was

ISSN: 2231-2803 http://www.internationaljournalssrg.org Page 486

International Journal of Computer Trends and Technology- volume3Issue3- 2012

created to support the nature of lightweight mobile operating systems require because of the limited hardware capabilities compared to conventional desktops or laptops.

B. Android Platform overview

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language [3]. Android based on Linux version 2.6. The system services such as security, memory management, process management are controlled by Linux. Fig 2 shows android architecture.

Fig. 2 Architecture of android [1]

C. Developing Android Applications

The Android SDK provides an extensive set of application programming interfaces (APIs) that is both modern and robust. Android handset core system services are exposed and accessible to all applications. When granted the appropriate permissions, Android applications can share data among one another and access shared resources on the system securely [5]. Android applications are written in Java programming language.

D. Application Framework

By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more.

Developers have full access to the same framework

剩余内容已隐藏,支付完成后下载完整资料


基于安卓系统的手机应用开发和安全

摘要

在前进的科技世界里,手机应用是全球手机市场中一个快速发展的部分。手机应用正在以流星般的速度进化,给使用者一种丰富和快速的用户体验。在本论文中,手机应用开发的安卓移动平台、分层平台和Android安全信息的细节将会被论述到。

谷歌发布的Android是一个基于linux平台的开源手机操作系统。它由操作系统、中间件、用户界面和应用软件组成。当然,Android将大致成为使用最广泛的手机操作系统,但是很少用户会考虑到它带来的安全漏洞。在Android市场,你可以下载数千的安卓应用程序,任何人也可以上传他们的程序,而无需提交它们去受到仔细的安全检查。这使得Android成为计算机犯罪的首要目标。本论文中,我们论述了android应用程序开发的分层的方法,我们可以开发应用程序从服务器下载数据。同时论述了一个Android应用程序沙箱(AASandbox),能够在Android程序自动检测可疑应用中进行静态和动态分析。

关键字:Android应用程序框架,Android运行环境,分层的方法,Android应用程序沙箱

  1. 引言

Android是一个新的、下一代移动操作系统,它在Linux内核上运行。安卓手机应用程序的开发基于Java语言代码,因为它允许开发人员用Java语言编写代码。这些代码可以通过谷歌授权的 Java库来控制移动设备。它是使用Google Android SDK.提供的软件堆栈来开发移动应用程序的一个重要的平台。Android移动操作系统为Android手机应用程序开发提供了一个灵活的环境,开发人员不仅可以利用Android的Java库,也可以使用普通Java IDEs。印度的移动开发软件人员在基于Android的Java库和其他重要的工具的应用开发上,具有专业的知识。安卓移动应用程序开发可以用来创建创新的和动态的第三方应用程序。印度的移动开发曾广泛从事范围从游戏软件,组织者,媒体播放器,图片编辑到竞技设备等等的项目。

  1. 背景研究

2008年10月,安卓平台被正式公布同时SDK工具可以被使用用。目前只有一个手机运行Android操作系统,即t - mobile的G1。根据官方Android网站,Android(2008)平台是基于四个核心功能的,如图1所示:

图1 android平台的四个核心特征

  1. 应用基础

Android应用程序是用Java编程语言编写的。但是,他们不是使用标准的Java虚拟机(JVM)执行的。相反,谷歌创造了一个Dalvik 虚拟机,负责转换和执行Java字节码。所有自定义Java类在被执行到一个Android操作系统前必须转换成Dalvik指令集兼容(这个过程是自动完成的,但也可以手动完成)。Dalvik虚拟机将生成Java类文件,并将其组成一个或多个Dalvik可执行文件(.dex)文件。它重新使用多个类文件中的复制信息,有效地减少到传统的. jar文件空间需求(未压缩的)的一半。Dalvik用来支持轻量级的移动操作系统,因为相比较于传统的台式机或笔记本电脑,它硬件功能更有限。

B.Android平台概述

Android是一个移动设备的软件栈,包括操作系统、中间件和关键应用程序。Android SDK提供了必要的工具和APIs,在Android平台上使用Java编程语言[3]开发应用程序。Android基于Linux版本2.6。包括安全、内存管理、进程管理在内的系统服务都是由Linux控制的。android架构如图2所示。

图2 android的架构

C.开发Android应用程序

Android SDK提供了一组广泛的应用程序编程接口(api),既现代又健壮。安卓手机核心系统服务能接触和访问所有应用程序。授予相应的权限时,Android应用程序之间共享数据,可以访问共享资源对系统安全[5]。Android应用程序是用Java编程语言编写的。

D.应用程序框架

通过提供一个开放的开发平台,Android赋予了开发人员极其丰富和创新的构建应用程序的能力。开发者可以自由地利用设备硬件、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等很多其他资源。

开发人员完全可以访问相同的框架核心应用程序所使用的api。应用程序架构旨在简化组件的重用,任何应用程序都可以发布它的功能,而且任何其他应用程序也可以使用这些功能(由框架实施安全约束)。这个机制允许用户组件所取代。

底层所有应用程序是一系列的服务和系统,包括:

· 一组丰富的和可扩展的视图,这些视图可以用来构建一个应用程序,包括列表、网格、文本框、按钮、甚至一个可嵌入web浏览器。
·内容提供商,使应用程序访问其他应用程序的数据(如联系人),或分享自己的数据。
·一个资源管理器,提供非代码资源,如本地化字符串图形和布局文件。
·通知经理,使所有的应用程序显示在状态栏自定义警报。
·活动管理器管理应用程序的生命周期,提供了一个通用导航堆栈。

E.android的运行环境

Android包括一组核心库提供的大部分功能的核心库Java编程语言[5]。每个Android应用程序都在其自己的进程上运行,有自己的Dalvik虚拟机实例。Dalvik可以被写,来让一个设备可以有效地运行多个虚拟机。Dalvik 虚拟机在Dalvik可执行文件(.dex)上执行,该文件格式小,内存占用优化。虚拟机是基于寄存器的,同时运行类编译的Java语言编译器已经变成.dex包括“dx格式的工具。Dalvik 虚拟机依赖于Linux内核实现线程和低级内存管理等基础功能。

  1. 分层的应用程序开发方法

在本文中,我们为android应用程序开发提出了分层的方法。这可以用于基于web的应用程序开发。

图三 分层架构

图3所示是用分层的方法对android应用程序进行开发。最后一层是负责HTTP层向服务器发送HTTP get和post请求,以及接收的响应。它的上一层是应用界面(API)层。这是查询解析来自服务器的响应和制定并发送给HTTP层。API层从HTTP层得到响应并解析字符串。它还有助于提取必要的字段并将其传递到数据层。通用数据层包含的组件有设计业务层,它能实现的功能,比如有缓存、异常管理、日志记录和验证等。再上一层是平台数据层,它从API层提取出数据并使用。它用依赖于平台的方式存储数据。一些适配器、视图等的类依赖平台存储数据。最上面一层是用户层界面。它能显示数据,以便用户和管理用户进行交互。它有两个组件:用户界面组件和用户进程组件。用户界面组件提供一种方式供用户与应用程序交互。用户进程组件用来同步和组织用户交互。用户层界面在android上负责视图,包括查看,按钮,布局等。

  1. 应用程序模型

在Android的应用程序模型[1],一个应用程序是一套组件,每一个都可以被实例化并进行必要的运行(甚至可能由其他应用程序运行)。

组件类型[5]如下:

活动组件构成用户界面的基础。通常,每个窗口的应用程序是由一些活动控制。服务组件在后台运行,即使窗口切换也保持活跃。它可以与其他应用程序服务公开接口,进行通信。接收机组件从其他应用程序里异步反馈消息。提供者组件通常在数据库中存储数据相关的应用程序。这些数据可以在应用程序之间共享[3]。

试想,例如,一个基于Android的手机的在线图片浏览软件。这个应用程序可能有多个组件。查看手机上的照片有活动形式的网格或列表。可能有一个服务在后台下载照片。可能有接收器暂停应用程序。当有电话打进,在重启应用程序调用结束时,应用程序不会影响设备的来电,传入的短信,电池低指示等优先功能,。最后,可能有一个提供者,用于存储照片和细节的电话。

  1. 组件类和方法

Android 软件开发包为每种类型的组件提供一个基类(活动、服务、接收机和提供者),在相关组件的不同生命周期中调用回调方法。每个组件都有一个生命周期。应用程序的每个组件是由扩展一个基类来确定,并覆盖在这个类的方法。尤其是:

·Activity类的方法是创建活动,或活动调用一些其他的活动,或返回到活动时运行。
·服务类的方法是服务启动,甚至一些组件绑定到该服务或两者的结合时运行。
·运行接收器类的方法是当一个消息发送到接收机时运行。
·提供者类的方法是删除、查询和更新存储的数据的提供者。

  1. Android安全框架

谷歌的Android手机平台是一个最值得期待的智能手机操作系统。智能手机可以代替电脑/笔记本电脑使用。随着移动设备功能增加的实现,更多的新颖应用有发展的机会。移动应用程序开发的最近发展,已经达到如今手机市场的高需求。Android开发移动应用程序定义了一个新的基于组件的框架,其中每个应用程序包含不同数量和类型的组件。活动组件是用户界面的基础;每个屏幕呈现给用户的是一个不同的活动[6]。服务组件提供后台处理,即使应用失去焦点也一直保持。内容提供者组件以关系数据库的形式共享信息。SQLite嵌入到android,可以支持关系数据库。例如,系统包含一个应用程序,内容提供者致力于分享用户的其他应用程序,便于查询通讯录。最后,广播接收机组件作为来自系统和其他应用程序的消息的异步邮箱。总的来说,这个应用程序框架支持应用程序之间灵活的的合作,相关性和形势需要一样简单或复杂。

  1. Android应用程序沙箱

沙箱通常位于内核空间,使来访问操作系统的关键部分可以实现[2]。内核是一个非常系统的重要组成部分,因为它是硬件和软件之间的桥梁。沙箱系统的一种方法是监控系统和库调用,包括他们的论点。这通常是通过系统调用重定向,也称为系统调用劫持来执行。为了从操作系统请求某些服务或资源,由用户空间到内核制造短系统调用,系统调用和函数调用。

  1. Android应用程序的静态和动态分析

两种恶意软件检测的常见方法[4]是静态分析和动态分析。静态分析包括反编译、解密、模式匹配和系统调用分析。在所有这些情况下,软件都没有被执行。在这里,一个常见的方法是过滤恶意二进制文件的模式,称为签名。另一个恶意软件检测技术是动态分析,它涉及系统在受控环境中的运行,并监视其行为。它包括监控文件的变化,网络活动、进程和线程等。一个常见的动态软件分析方法是沙盒。沙箱可以被定义为“一个环境的行为过程限制根据安全策略”。在实践中,这意味着一个沙箱目标操作系统的一个实例,这是用孤立的方式来阻止恶意软件执行有害的行为。由于这两种技术有一定的缺点,托马斯提单[6]提出了一个新颖的两步分析Android应用程序的方法,包括一个完整的内核空间沙箱,和提前预支快速静态。安卓应用程序沙盒自动执行,不需要任何的人工交互,并保存调用的日志系统和进一步检验静态分析。存档Android应用程序的沙盒作为输入,并打包在一个* . APK文件中,因此称为APK。应用程序是用Java编写的,在Dalvik虚拟机中运行。应用程序源代码被第一个标准编译为Java字节码,然后优化转换成Dalvik可执行格式,以便被Dalvik 虚拟机解读。然后将字节码和其他应用程序资源打包在一起,包括UI布局,定位和定义了应用程序结构的清单文件。安卓应用程序沙箱首先执行一个静态提前预支,紧随其后的是一个成熟的动态分析,如图4所示。

图四Android应用程序沙箱的设计

  1. Android平台相关安全问题

Android平台的完整性通过各种安全措施维护[3]。

A.应用程序的操作系统用户

每一个应用程序是一个用户使用的操作系统。当应用程序被安装时,操作系统创建一个新的用户配置文件与应用程序相关联。每个应用程序运行不同的用户,在文件系统中拥有自己的私人文件,一个用户ID,一个安全的操作环境。应用程序在它自己的进程,Dalvik VM实例和用户ID的操作系统下执行。

B.显式定义的应用程序权限

一个Android需要显式定义的应用程序在清单文件上的权限时,为了访问共享资源的系统,Android应用程序注册它们需要的特权。在开发应用程序时,所需的权限应该在Android清单文件中被指定。例如如果手机振动功能是必需的,那么它必须指定android清单文件。安装应用程序时它显示的列表应用程序要访问的资源。这些特权让应用程序有用手机拨打电话,访问网络以及控制摄像机和其他硬件传感器的功能。应用程序也要有访问包含私人和个人信息,如用户首选项,用户的位置和联系信息之类的共享数据的许可。应用程序也可能会通过声明他们供其他应用程序使用的权限来执行。应用程序可以声明任意数量的不同的权限类型,如只读或读写权限,为更好地控制应用程序。

  1. 有限的特殊权限

内容提供者可能需要提供一些动态权限,为其他应用程序公开他们想要分享的特定信息。这是使用特别授予和撤销访问特定资源使用的统一资源标识符(uri)。uri指向特定的系统上的数据资产,如媒体存储、联系人、通话记录等等。这里是一个URI,它提供了所有联系人的电话号码:content://contacts/phones.

  1. 应用程序签名的信任关系

所有Androi

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[147905],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。