电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

Android软件

来源:漫步者作者:开心麻花2026-01-051

Android软件(精选12篇)

Android软件 第1篇

Android系统主要 由Activity、Service、ContentProvider和Broadcast Receiver四大基本组件构成。面向组件的设计带来了Android应用程序的灵活性和开放性, 但是也带来了负面影响———缺乏安全性。组件的安全直接影响到整个应用程序乃至Android系统的安全。

2 Activity安全

作为应用程序的表示层, Activity的安全性和权限息息相关。设置Activity启动所要的权限时, 需要在AndroidManifest.xml中为指定 的Activity添加permission属性。比 如 , 要为一个Activity设定START_MY_ACTIVITY权限, manifest文件中应该有如下定义:

以上定义 可以有效 地防止应 用程序在 缺少START_MY_ACTIVITY权限的情 况下启动MyActivity。如果一个应用想启动MyActivity, 除了必须具备START_MY_ACTIVITY权限以外, 还需要创建一个Intent对象来定义必要的特性, 然后调用Context.startActiviy () 或Activity.startActivityForResult () 实现启动MyActivity。如果调用成功, MyActivity才能被启动。如果应用程序没有被授予START_MY_ACTIVITY权限, 两个调用都会失败并拋出一个SecurityException异常。另外, 启动Activity时, 如果应用程序已知所需启动的Activity名称, 最好通过intent中定义的setComponent () 方法调用这个Activity, 这样可以防止系统在响应intent时, 误启动其他的Activity。此外, 密码等敏感信息不能放置于启动Activity的intent中, 否则很容易被攻击者利用。

3 Service安全

Service的安全性同样可以通过权限检测方式来提供保障。由于Service执行的操作比较敏感, 涉及更新数据库、提供事件通知等操作, 因此一定要确保访问Service的组件具备适当的权限。

此外, 如果访问Service的应用程序中含有密码等敏感信息, 那么也需要对Service的安全性进行验证, 以防止带有攻击性的Service损害私有信息。保险的做法是, 不要轻易把Intent传递给一个公有的、未知名的Service。

4 ContentProvider暴露

与Activity、Service组件暴露的问题相比, ContentProvider暴露的安全后果更严重。首先, 它更容易暴露。Activity、Service组件只有响应intent或在manifest中设置了android:exported属性为true时才对外暴露。而Provider在早期的Android (Android 4.2) 版本中直接就是对外暴露的。其次, 它暴露的后果可能更严重, Activity、Service组件暴露后, 第三方的应用只是调用这些组件, 执行其入口点代码。而Provider暴露后, 第三方应用不仅可以直接读取或修改它所管理的数据, 甚至可以向其中写入恶意的数据, 这样攻击者就可能通过精心构造的数据来控制应用的运行。与Activity、Service组件暴露问题的解决方法相似, Provider暴露的主要解决方法也是设置自定义权限, 只是在具体方法上有所不同。首先, 如果Provider不需要提供给其它应用访问, 则只需要在manifest中将android:exported的属性设置为false即可。其次, 如果需要将Provider提供给同一团队开发的其它应用访问, 可以在manifest中设置signature级别的自定义权限, 并且可以对读取和写入两种操作分别设置不同的权限。最后, 如果需要将Provider提供给第三方应用访问, 除了直接暴露, 还可以细粒度的对每个URI设置访问权限, 这个权限可以通过在manifest中为Provider添加grant-uri-permission标签来实现。

5 BroadcastReceiver安全

Android应用程序通常通过Broadcast Receiver来监听广播消息。在接收即时消息的客户端中, Service在后台运行, 一旦检测到有新消息到来, 立刻通过BroadcastIntent通知前台的组件做出相应处理。广播发送方通常会选择给每个发送的Broadcast Intent授予Android权限, 而接收方不但需要有符合接收条件的Intent filter, 而且要求Broadcast Receiver也必须具备特定权限才可以接收此消息。这种机制是经发送方来限定接收方Receiver的接收权限的。反过来, 也可以由接收方BroadcastReceiver来限定所能接收的Broadcast Intent类型。

总之, Broadcast Intent可以从发送和接收两方加以保护, 发送方通过为Broadcast Intent设置权限, 确保该Broadcast Intent只允许被授权的Broadcast Receiver接收, 以防止将Broadcast Intent误传给危险的接收方。反之, 接收方Receiver也可以为自己设定访问权限, 要求所接收的Broadcast Intent必须具备所设权限, 防止误收到危险的Broadcast Intent。两者结合使用, 才能确保组件能安全地接收发送方信息。

6 结束语

根据以上组件所暴露出的问题, 开发者应该谨慎地考虑启动Activity的权限, 只有具备访问权限的组件才能够启动相应的Activity。对于Service, 由于Service组件在后台运行, 提供了其它组件需要访问的服务, 这可能涉及敏感数据的操作, 对此应采取相应的权限控制, 确保仅有授权的应用程序才能访问该Service。另外, 如果Service支持绑定并且允许应用程序调用Service所提供的方法, 那么要在程序中为这些方法添加权限检测, 以控制对方法的访问。对于Content Provider, 应当设置独立的只读 / 只写权限, 任何请求访问ContentProvider的组件应该被授予正确的权限, 要防止授予任何不必要的额外权限。Broadcast Receiver是组件间通信的关键技术, 一方面Broadcast的发送方可以要求接收方具备某种权限才能接收Broadcast, 另一方面, 接收方Broadcast Receiver也可以设定只接收来自具备特定权限的发送方的Broadcast, 也就是只接收可信赖发送方发送的Broadcast。当使用Broadcast作为敏感数据的通信方式时, 发送方和接收方都应该提供安全保障。

参考文献

[1]吴倩, 赵晨啸, 郭莹.Android安全机制解析与应用实践[M].北京:机械工业出版社, 2013.5.

[2]肖梓航.再谈Android软件的安全开发[J].程序员, 2013 (3) .

Android软件 第2篇

基本资料

姓 名: YJBYS

性 别: 男

出生年月: 1990年7月

工作经验: 应届毕业生

毕业年月: 6月

居 住 地: 陕西省

籍 贯: 陕西省

求职意向

职位类型: 全职

期望月薪: 2500-3000元

期望地点: 陕西省 西安市

期望职位: 3G手机Android软件开发工程师

意向概述: 希望能满足基本的生活条件要求,其他没有什么要求,希望能得到这次机会。

教育经历

9月 - 206月 XX文理学院 电子信息科学与技术 本科

工作经历

4月 - 205月 中行工业XX集团 实习生

校内奖励

9月 奖学金 XX文理学院

年10月 优秀班干 XX文理学院

校内职务

206月 - 2012年11月 班长 XX文理学院

自我评价

父母从小就希望我成为一个有用的人,我也一直这么要求自己。性格开朗、稳重、有活力,待人热情、真诚;工作认真负责,积极主动,能吃苦耐劳,用于承受压力,勇于创新;有很强的组织能力和团队协作精神,具有较强的`适应能力;纪律性强,工作积极配合;意志坚强,具有较强的无私奉献精神。

团队协作

内很快融入到集体的氛围中。

联系方式

电子邮箱:XXX@yjbys.com

Android软件 第3篇

Android平台丰富的软件对于平板、智能MP4产品用户来说是不小的诱惑,不过对于新购机用户来说,海量应用软件及游戏的下载安装得花上不少时间,笔者今天在这里就以昂达Vi10为例,为大家介绍如何用G蛋管理软件轻松实现软件的批量安装,让你可以轻松“克隆”其它机友们的软件/游戏,更好地体验Android的应用性。

首先在精致网下载G蛋Android应用管理器,再将MP4连接到电脑,打开G蛋Android应用管理器后,软件会自动识别设备。连接成功后,点击“应用管理”,进入应用管理页,选择“添加本地应用”。找到自己下载的APK格式的应用程序所在目录,添加需要安装到设备的程序。表右上方“加单个应用”及“添加整个目录”两个按钮分别对应添加一款本地应用以及批量添加整个目录下所有的APK应用(如图1)。此时本地应用列表中显示的就是刚才添加的所有应用了,显示的应用信息非常详细!如果只需要安装一款应用,则选中该款应用,并点击右下方“安装选中应用”按钮即可。点击旁边的“安装全部应用”按钮,可以批量安装列表中所有的应用到设备。想知道安装完成与否,可以点击右下角的“查看安装记录”。显示“安装成功”的程序,即可通过MP4运行(如图2)。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

Android软件 第4篇

1 Android恶意软件的基本特征

为深入了解Android恶意软件的特征, 文章从软件的安装方式、触发方式以及恶意负载种类等几个方面进行描述, 同时为后文中检测Android恶意软件提供技术基础。

1.1 安装方式

Android恶意软件通常在形式上比较吸引用户注意, 伪装成一些实用软件, 进而让手机用户下载安装, 迅速蔓延传播。恶意软件在手机中的安装传播方式主要分为三种:重打包下载、更新包下载、偷渡软件下载以及其他方式进入手机。

1.1.1 重打包下载

在一些流行的软件中植入恶意代码, 然后进行重新编译, 提供给Android手机软件官方市场, 这种恶意软件隐藏特征非常强, 很难分辨出来, , 它们挂上合法安全的命名, 具有欺骗性, 在软件安装时运用了代码混淆技术和运行时解密技术。

1.1.2 更新包下载

在下载手机中已有的软件更新包时, 恶意软件会在apk文件中植入恶意代码, 运行更新包时, 通过运行动态获取并下载安装恶意代码, 一般运用静态扫描无法检测出更新包中的恶意负载。

1.1.3 偷渡软件下载

利用未开发的软件吸引用户在不安全的小网站中下载安装偷渡软件, 其实这些偷渡软件就是伪装后的恶意软件, 对手机Android系统存在很大的威胁。

1.1.4 其他方式

利用间谍软件安装入Android手机系统中, 伪装成手机常用软件, 但是没有伪装应用的实际功能, 山寨软件, 在软件中隐藏软件的恶意功能。

1.2 触发方式

当恶意软件进入Android手机系统中, 一般通过这两种方式进行触发:诱导用户点击、媒体系统。

1.2.1 诱导用户点击

当恶意代码隐藏在重打包应用进入手机中, 会伪装成某些重要功能诱导用户点击程序, 进而触发恶意软件, 导致恶意软件自动运行。

1.2.2 媒体系统

媒体系统主要包括手机中自带的广播系统、短信软件、音乐电影等软件。恶意代码可以隐藏在某段音频视频中, 当用户播放广播、音乐或视频时, 就会触发恶意软件;还有一种方式是通过短信发送给手机用户一段网址信息, 用户点击网址时, 就会自动跳转到恶意软件中, 触发运行恶意负载。

1.3 恶意负载种类

Android恶意软件的恶意负载种类主要分为这样几类:提升特权、远程操控、恶意吸取话费、盗取隐私信息以及自我保护。

1.3.1 提升特权

提升特权主要表现在恶意软件可以自行突破手机的运行权限, 恶意软件利用各种不同的Root攻击程序对Android系统本身的Root权限进行攻击、偷渡, 从而提高Root权限, 在攻击的过程中使用了代码混淆技术和代码加密技术, 使Android系统静态分析恶意代码的难度提高了, 有的恶意代码还会混淆伪装在手机自带的软件中。恶意软件除了利用ROOT攻击程序之外, 还会利用Android系统本身的漏洞混淆安全清理吗, 提升Android系统特权。

1.3.2 远程操控

当一些恶意软件进入手机中后, 可以利用远程操控系统对手机进行远程操控, 更新系统中的恶意负载, 把系统信息传输会恶意软件总部。恶意软件中最常用的远程操控模式是利用http网络接收服务器控制指令, 因此可以发现恶意软件只有在有网络的时候才能实现远程操控, 可以增加网络服务器的隐蔽性, 实行加密, 从而抵挡恶意软件的远程操控。

1.3.3 恶意吸取话费

恶意软件提前在手机中植入花费吸取代码, 然后利用SP服务强行吸取手机用户的话费, 同时恶意软件还可以隐藏掉服务商的通信短信, 秘密扣除掉手机中的话费。利用远程操控可以增值号码中的一些无用服务, 提高话费使用数额。

1.3.4 盗取隐私信息

通过盗取隐私模块对手机中的通讯录、短信、录音、音频视频信息和一些隐私数据进行盗取, 通过盗取这些隐私信息实现进一步价值。例如:在盗取到手机用户的通讯录后, 可以利用朋友间的信任骗取大量钱财。在渗透入手机系统后, 可以进一步篡改Android系统漏洞, 实现APT的持续攻击, 。因此, 窃取手机信息对恶意软件来说非常重要。在实际应用中, 一定要注意保密, 对一些重要信息资料进行加密处理, 一旦发生恶意软件入侵, 及时清除掉手机信息。

1.3.5 自我保护

目前, 很多Android恶意软件利用商业级代码保护技术实现自我保护, 加大了Android平台静态分析的难度, 把符号信息和Android代码文件混淆在一起, 恶意软件利用木马工具实现了动态代码解密, 同时加固本身的代码信息, 恶意软件还会利用Android平台的在线服务和预装应用中的漏洞, 对自身进行保护。

通过对恶意软件的特征进行分析得知, 各种恶意软件技术在不断更新换代, Android平台也在高速发展, 随着Android平台的进化特征, 恶意软件也能不断进化自身保护能力, 恶意软件攻击者会利用各种混淆测试技术和反监控技术对Android平台的恶意软件检测进行自我保护。

2 Android恶意软件检测方法

2.1 字节码静态检测技术

这种静态检测技术主要是通ASM字节码处理框架进行解析, 可以追踪到恶意程序中的静态动作, 并对行为标注出来。实施这种技术的主要步骤有: (1) 手机用户对APK文件的MD5值进行计算, 和已分析的程序库进行对比, 如果APK文件的MD5值存在于已分析的程序库中, 证明检测通过了, 进行下一步。 (2) 解压APK分组文件, 得到classes.dex文件和Android Manifest.Xml数据文件。 (3) 利用dex2jar工具把classes.dex文件转化为jar分组文件, 利用AXMLPrinter2工具把Android Manifest.xml文件进行反编译。 (4) 对jar分组文件和反编译后的Android Manifest.xml文件进行分析, 排除其中的危险权限, 然后进行下一步。 (5) 检测反编译后的Java文件, 如果检测出来恶意文件, 提示手机用户选择性处理恶意文件, 可以删除或者隔离恶意文件。 (6) 导出检测结果到已分析程序库中, 完成静态检测分析。

2.2 动态检测技术

动态分析检测过程一般比较复杂, 周期比较长, 它需要进行一系列的准备工作, 而且运行效率不明显。在这里提到的动态检测技术主要是利用是trace工具记录系统, 把调用行为记录在日志文件中, 同时对wireshark网络数据分组文件进行跟踪分析, 最终对两组文件结合分析。其具体步骤有这样几点: (1) 准备工作。首先启动手机桌面上的模拟器, 当软件在模拟器上运行时, 可以调试网络、音频、视频等功能, 对存储的文件翻阅一遍。 (2) 在手机上安装下载trace和wireshark工具;监控应用在运行过程中的动态行为, 包括发送的网络数据和系统API。利用trace记录工具, 把调用行为记录在日志文件上。 (3) 安装下载应用并且启动mokeyrunner工具。当应用在运行时, mokeyrunner工具可以自行运行并模拟手机用户的运行动作。 (4) 收集日志文件记录和网络数据分组文件记录。当mokeyrunner工具运行完成之后, 就会把运行数据存储在文件记录中, 当网络开启后, 也会wireshark网络数据分组文件记录下来, 对这些文件记录进行分析, 确定恶意软件的行为, 并对恶意软件进行清除。

3 恶意软件检测行为

3.1 权限分析

对系统中敏感行为的危险权限进行分析, 对比出恶意软件和正常软件的权限特点, 对带有危险权限的软件进行扫描分析, 筛选出其中的恶意行为和潜在威胁, 然后进行下一步分析检测。对不存在危险权限的应用程序不需要进行扫描分析, 直接视为正常程序。但是在检测中仍然存在缺陷, 恶意软件可以自行提升特权, 不需要受到权限限制, 不用申请权限, 漏过检测。

3.2 动态行为分析

动态行为分析为了不受恶意代码的混淆, 主要对恶意软件的动态、行为和实施方式进行检测。classes.dex文件是应用程序的主要代码, 所以可以对其进行反编译, 然后在总结分析Java文件。恶意行为主要包括窃取隐私行为、远程操控行为和吸取花费的行为, 针对这些恶意行为, 可以采取语意分析行为和污点跟踪行为。对用户意图和行为语义进行抽取, 在设计Android平台时, 可以采用交互密集型设计方法, 把用户的行为意图和自动化可度量的程序结合分析, 从而识别恶意行为。污点跟踪主要是利用污点源跟踪污点, 捕获污点输出信息。

3.3 静态分析

在应用不允许代码时运用静态分析, 通过使用控制流分析、语义分析以及数据流分析技术对Android系统文件进行分析检测, 这种分析技术在运行起来更加快速, 效率比较高, 结果准确, 但是针对恶意软件的代码混淆技术和代码加密技术, 很难识别恶意代码, 从而产生技术漏洞。

4 Android恶意软件检测方法的不足之处和发展趋势

虽然目前Android恶意软件检测在实际运用中取得一些实践成果, 但是在在运行时仍然存在一些不足。主要体现在这些方面: (1) 检测恶意软件缺少标准。 (2) 动态检测方法不够智能化, 需要人为判断; (3) 恶意软件的代码混淆和加密技术逐渐成熟, 导致静态分析中的反编译难度加大, 难以识别各种恶意代码。随着科学技术的发展进步, 未来的Android恶意软件检测方法会逐渐完善, 制定完善的恶意软件标准, 动态检测和静态检测方法更加自动化、智能化。

参考文献

[1]冯博, 戴航, 慕德俊.Android恶意软件检测方法研究[J].计算机技术与发展, 2014 (2) :149-152.

[2]文伟平, 梅瑞, 宁戈, 等.Android恶意软件检测技术分析和应用研究[J].通信学报, 2014 (8) :78-85, 94.

Android软件 第5篇

席卷IT培训市场,开发因其领域新,覆盖面广,而受到广大应届毕业生的关注。现在大学生空有一张文凭,就业形势却颇为紧张,相反,Android开发的职位空缺却相当大,所以很多大学生看准这块“肥肉”,纷纷投身Android培训,希望通过系统培训解决当前就业难,薪水低的问题。

学习Android开发,先要了解主要开发什么。其实主要是针对Android平台开发应用软件和游戏软件。应用软件涉及种类广泛,如办公工具、通信工具、视频播放工具、阅读器等,在智能手机普及的今天,手机用户对于各种应用软件的需求越来越高。这个时候不但需要大量的Android人才储备,还对其技术有了更高的要求。而手机游戏是目前最受年轻人喜爱的,趣味性更强,薪水也乐观。如此耀眼的舞台,自然给了年轻人更多发挥的空间,但这里要注意,学习Android开发,需要对软件开发感兴趣,具备一定的Java基础。

甲骨文盈佳科技通过一个多月的零基础阶段教学,让学员掌握扎实的编程功底,课程内容包含Java开发环境、编程语言基础、面向对象思想、设计模式、数据结构等。而在学员掌握基本的Android开发能力后,甲骨文盈佳科技第三阶段教学,会重点讲授Android游戏开发,利用四周的时间,使学员可以掌握基于Cocos2d框架进行游戏开发的能力。

Android软件 第6篇

省心自动安装

苹果iOS系统令许多人羡慕的原因无外乎APP品质卓越、下载安装过程省心、不需要操心如何选择权限诸如此类的事情。使用Windroy模拟器在PC端也能实现省心安装的效果,只要将想要使用或运行的APK文件拷贝至其自动生成的文件夹即可。

Windroy软件默认安装目录比较特殊,它会直接安装在系统盘根目录(“C:\Windroy”)(图1)。运行它需要OpenGL 2.0或以上版本的API支持,运行时会出现一个黑色的监视控制窗口,在该窗口中会实时地出现该软件执行的命令,无需理会它的存在,将其最小化即可(图2),注意不能将其关闭,这是后台执行命令的地方,关闭此窗口,软件将无法运行。

Windroy以全屏方式运行,且无法切换到可变的窗口状态。首先出现的界面是日历时钟和锁屏挂锁,拖动挂锁可进入Android程序界面(图3)。随后,系统会用英文提示如何将用户喜欢的应用安置在屏幕的合适位置(图4、图5)。接下来显示系统设置窗口,仍以英文界面为主(图6)。可通过PERSONAL设置项下的Language&input,选择“中文(简体)”,将软件的界面设置为简体中文(图7)。

只要将下载的apk文件放入Windroy的安装目录的“\Windroy\windroy_root\system\app”文件夹里,重新启动Windroy即可完成软件的自动安装,基本不需要用户干预。如果Windroy报错,可以试着将APK文件保存至“\Windroy\windroy_root\data\app”下,重启Windroy程序即可(图10)。此外,想直接在Windroy中安装应用的另一个方法是安装各类应用市场(如应用宝、豌豆荚),通过它们直接选择喜欢的APP(图11)。

如遇Windroy的兼容性问题,可以尝试Windroy团队出品的另一款模拟软件Windroye。Windroye默认安装在“C:\ProgramData\Windroye”文件夹中。软件本身默认集成了应用商店、下载中心、ES文件管理器、APK管理器等(图12)。通过软件设置,可控制安卓区域的横屏或竖屏显示分辨率、占用系统内存的大小、系统处理器数量、系统分辨率等(图13)。通过APK管理器,可成批选择电脑中的APK应用,实现一次性安装多款Android应用到Windroye环境中(图14)。安装的应用和数据保存在“C:\ProgramData\Windroye\app\data”文件夹下。Windroye应用同样也可以通过安装在Windroye中的应用市场来进行。

手动选择安装APK

如果说Windroy需要将文件拷贝到固定文件夹才能运行,操作稍显复杂的话,那么双击APK就能自动安装应用的方法则显得更加人性化,这时就要请出经典的BlueStacks(蓝叠)了。BlueStacks使用了硬件虚拟化技术,因此需要电脑开启硬件虚拟化支持,否则运行环境将会非常缓慢。

BlueStacks默认数据被安装在“C:\ProgramData”文件夹下,需要至少1GB空间,通过“更改”按钮,可改变数据空间的指向(图15)。此外,安装时最好同时选择“应用市场访问”和“应用通知”两个选项,这样可以获得更好的运行体验(图16)。

启动BlueStacks时有一个初始化过程,显示初始化界面(图17)。之后进入应用主界面,界面中包含最近玩过的应用、精品推荐应用和时下热门的应用,底部则是Android手机常见的三个控制按钮。点击“所有应用”按钮,可看到本机安装的所有应用(图18)。单击“BlueStacks设置”图标,进入BlueStacks设置窗口,可对Android系统的各项性能进行选择性设置(图19)。

对于希望使用或测试的应用的安装,可通过PC先将APK下载到本地目录中。由于在安装BlueStacks模拟器后,APK与BlueStacks自动建立了关联,因此,通过直接双击APK即可将应用安装到BlueStacks中。

Android软件 第7篇

1 在Dbus的使用中分析Android系统

在Android系统的使用中, D-Bus的使用具有frame协议, 其主要目标是面向对象接口。同时, D-Bus具有互相发现和监视的进程。其在使用的过程中, 会拥有2个系统进行保护, 其中一个是手机系统, 而另外一个则是用户手机使用范围中的生命周期和安全检查等功能[1]。由此可见, 在Android系统的使用中, D-Bus系统的使用可以给其他程序提供相应的功能。

在Android系统的使用中, D-Bus的相比socket和Corba等程序而言, 其具有较慢的效率, 主要是由于Android系统在使用中具有不同的设计思想, 设计者在设计Android系统时, 优先考虑的是系统的安全性, 对其他端口的数据存在不信任的现象, 会通过不断的校验来确保信息的安全性, 从而可以在较大程度上保证用户的信息和财产安全。

由此可见, 在Android系统的设计中, 设计师采用了D-Bus系统, 该系统为了保证系统的安全使用性能, 在使用效率上做出了相应的让步, 这与其他系统的设计存在明显的差异。从中可以体现出Android设计师对安全性能的重视程度, 并且体现出安全性在系统设计中的价值。

2 Android系统的安全设计分析

2.1 开放源的安全设计

在Android系统的设计过程中, 其存在开放源的软件, 相比于常规的闭源软件, 开放源显得相对安全。主要是由于开放源软件在使用的过程中, 是社区共同开发和设计的软件。具有较为超前的设计理念, 与Microsoft和apple等系统的设计存在较大的不同之处, 在对比中可以发现, Android系统的设计更加追求其与参与者的结合[2]。由此可见, 在Android系统的设计中, 对开放源软件的运用无疑增加了系统的安全性能。

2.2 Android系统沿用了Linux的安全性

在Android系统的设计应用中, 使用了Linux, 使用性能相对较高, 并且具有较高的安全性, 可以较好地保证用户信息和财产安全性。例如在user和group ID软件的使用中, 其可以保障数据和核心软件的分离, 继而可以较好地保证用户的数据信息安全[3]。由此可见, 在Android系统的使用过程中, 对系统的优化设计沿用了传统的Linux, 因而具有较高的安全性能, 对于用户的信息和财产安全可以起到较好的保护作用。

2.3 访问权限的安全设计

在手机系统的设计中, 访问权限对于每一种手机系统而言, 均是十分重要的组成部分。对手机权限进行合理地保障, 可以最大程度地保证人们的信息安全。在其他系统的使用中, 其可能会存在部分操作未经过系统的同意而执行, 从而会在一定程度上影响用户的信息安全, 不法分子利用手机软件的缺陷, 会制作相应的病毒来入侵用户的手机系统, 继而盗取用户的个人信息来达到不法分子的目的。而在Android系统的设计中, 对手机权限的保护相对较高, 任何程序都无法对系统造成伤害, 进而会保证用户手机信息的安全性[4]。由此可见, Android系统对访问权限的优化设计可以较好地保证系统的安全性。

2.4 对程序签名的优化设计

在Android系统的文件设计中, 系统的设计要求程序必须具有通过认证的证书, 而在证书申请的过程中, 证书的秘钥必须被开发者掌握, 以便可以保证用户信息的安全性。而证书的标识应该是程序设计的作者。在证书的设计中, 不需要相关的证书组织进行签署。在系统应用程序的使用过程中, 证书仅仅被应用于程序建立的信任关系, 另外, 在程序签名的使用中, 可以通过确定访问权限来共享用户的ID签名, 进而可以在一定程度上保护用户的信息安全[5]。由此可见, 在Android系统的设计中, 对程序签名进行优化设计可以较好地提升系统平台的安全性。

2.5 Google元素的优化设计

在Android系统的使用中, 设计师在系统的设计中融合了Google元素, 对系统的安全性能产生了一定的影响, 主要是在系统的设计过程中, Google元素在保证创意性的同时, 会在一定程度上提升对用户信息安全性的重视, 继而会较好地为用户提供相应的保护服务。在Android系统的设计中, 设计者会对用户的需求进行调查分析, 从而会根据实际情况来设计相应的程序, 在系统的设计中, 设计师还会融入创作元素, 以便可以提升系统对用户的吸引力[6]。由此可见, 在Android系统的设计过程中, Google系统的融入使得用户和软件之间产生了较好的理解, 进而可以为用户提供安全可靠的手机系统使用环境。

2.6 对权限命名的优化设计

在Android系统的设计过程中, 其与常规的系统设计之间不存在相应的关联, 继而用户在使用Android系统的过程中, 如果存在使用无关联软件的情况下, 不会对系统的程度产生影响, 从而会在一定程度上保护用户的信息和财产安全。因此, 用户在使用Android系统的过程中, 对于重要的文件, 可以使用<uses-permission>的强调对该程序的权限。

在Android系统设计的安装应用程序过程中, 通过权限请求后, 会对用户的权限进行保护, 并且在用户使用应用程序的过程中, 不会对用户的权限进行审查, 从而保护了用户的信息隐私。由此可见, 在Android系统的设计中, 设计师对权限命名的优化可以保证用户的隐私安全性。

3 结语

随着科技的不断发展, 手机的使用已经逐渐对人们的生活和学习产生了较大的影响, 在手机系统的使用中, 设计师不断地根据实际情况对系统的安全性进行优化, 以便可以更好地保证系统的运行稳定性和安全性。在Android系统的设计中, 设计师同样对系统的安全性进行优化, 但是在保证系统稳定性和安全性的同时, 在一定程度上降低了系统的效率, 从而会影响系统的运行速度。希望通过本文的相关探讨, Android系统设计师在对系统的设计中, 可以对系统的安全性能进行优化, 同时可以不断地提升系统的运行速度, 进而可以更好地满足用户的使用需求。

摘要:在手机系统的使用中, 对Android系统进行安全设计, 可以保证用户的信息和财产安全。文章主要通过Dbus的使用和Android系统的安全构架来对系统进行设计。以期不断优化Android系统, 进而可以保护用户的信息和财产安全性。

关键词:Android系统,软件,安全设计

参考文献

[1]南秦博, 慕德俊, 侯艳艳.基于Android平台的手机防盗安全软件设计与实现[J].现代电子技术, 2015 (2) :46-49.

[2]张迪, 弓正.基于Android的飞机无纸化维修工作单系统软件设计[J].实验室研究与探索, 2015 (3) :90-95.

[3]肖贺.Android平台下基于流量监测的安全软件设计[J].电子技术与软件工程, 2015 (9) :65-70.

[4]秦海权, 王晨, 尹丹.基于Android系统的恶意软件分析平台的设计与实现[J].警察技术, 2013 (6) :51-54.

[5]张麒, 王秀敏, 任建新.基于Android的桥梁检测车安全监控系统的设计[J].吉林大学学报:信息科学版, 2012 (9) :285-290.

Android软件 第8篇

1敏感API

通常,恶意软件在运行时需要调用特定的API来完成,如隐私窃取型恶意软件需要访问通讯录API,恶意计费型恶意软件需要调用发送短信API,这些API是敏感API[3]。在恶意软件动态分析中,需要用到程序运行时的API调用日志,而Android系统的日志仅提供了有限信息。因此通过dalvik注入的方式在Android源码中hook这些敏感API,使得恶意软件调用这些敏感API时能及时得到调用日志。

敏感API来源于对已知恶意软件分析的经验,以及对已知恶意软件和已知正常软件API统计的差异[4]。最终选定了可以用来收发短信、删除短信、拨打电话、删除通话记录、开启网络、执行shell脚本等功能的API。部分修改敏感API如表1所示。

2 检测方法的设计与实现

恶意软件检测系统功能包括:1)综合信息采集;2)数据预处理;3)数据分析。综合信息采集的目标是获取敏感API调用信息及全面获取程序的其它静、动态信息,以便于人工分析经过数据处理后仍然可疑的应用程序。数据预处理指的是用卡方检验算法对敏感API调用序列做滤波处理,以得到一个更加独立的敏感API调用特征值集合。经过数据预处理后,数据分析模块应用机器学习算法学习分类规则,学习完成后识别未知应用程序。

2.1综合信息采集

分析系统采用自动化设计,用户将目标应用程序导入系统后,系统将应用程序自动安装到分析模拟机上,并运行,分析系统记录下APK运行过程中对系统文件、网络、短信、通讯录、电话、日历、定位、录音的访问记录,以及系统是否有执行进程、注入、拍照等获取手机隐私信息的行为,并将应用程序触发的敏感API序列记录在数据库中。本系统为全自动化运行,分析模拟系统会自动模拟拨打电话、接听电话、收发短信、模拟按键、位置变化等真实的手机行为,应用程序会根据这些行为自动做出响应。部分综合信息如表2所示。

2.2用卡方检验预处理数据

数据采集模块得到的敏感API调用序列数据量很大,且有大量重复冗余调用。系统一共标记了183 处敏感API,运行过程中会调用大部分的API。在获得的敏感API序列中,有些API单独触发对于检测软件是否安全的意义不大,并且很多敏感API在功能上有相似性,如Location类的get Latitude方法和getLongitude方法被应用程序触发后都表示程序正在获取手机位置信息等[5]。因此,可以使用卡方检验算法对样本库的API调用序列进行滤波,筛选掉上述类型的敏感API,以减少分析计算的工作量。卡方检验的公式表示如下:

其中代表了第i个敏感API是否在该序列中被调用,,并且已知代表第i个API被调用的总次数,而代表了调用或未被调用API的总次数。利用该式对敏感API序列的元素依次计算获得卡方值,根据检验置信水平(默认值为0.5)查找卡方界值表获得临界值与其比较,如果查表值小于卡方值,该敏感API调用视为冗余调用,予以去除。经过上述处理,获得样本库敏感API调用集合T。

2.3基于K-means算法的数据分析

经过上一步的去冗余等处理,将敏感API调用集合变成了含有敏感API、调用频数的二维表形式[6]。用K-means算法对各二维表进行学习计算。K-means算法是一种聚类算法,它以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇之间的相似度较低。算法的处理过程为:首先随机选取k个对象作为初始的k个簇的质心;然后将剩余对象根据其与各个簇的质心的距离分配到最近的簇;最后重新计算各个簇的质心。不断地重复此过程,直到目标函数最小为止。簇的质心公式如下:

其中表示属于类的数据点的个数,属于某个簇的所有点的算术平均值即为该簇的质心。对象到质心的距离一般采用欧式距离[7]。

每个Android应用程序的敏感API调用数据,都会被分成2 种:正常的或含有恶意的,分别组成正常调用向量和恶意调用向量。实验中选择分两类即k=2,分类结果出来后,可以对照样本实际分类的情况,调整属性的数量,以及权重分配的方法。完成学习后,识别出既偏离良性,又偏离恶意的软件,可以结合数据库中的综合信息进行人工分析,再将结果重新反馈,建立新的类别。

3测试分析

从”Contagiomobil”网站下载了80个Android手机恶意软件样本。在Android市场上下载了60 个正常应用程序,这140 个程序作为实验的样本,进行分类整理。挑选其中40 个恶意软件和30 个正常软件作为系统学习样本,其余70 个作为测试样本实验。实验的硬件架构如图所示:

经过实验检测:30个正常软件,其中有26个判断正确,4个作为疑似恶意软件提交;40个恶意软件,38个判断正确,2个作为疑似恶意软件提交。将疑似恶意软件的类型反馈给系统后,系统即拥有了对它们的识别能力。从结果来看,该检测方法对恶意软件有较高的判断率,表现出良好的性能,由于学习的样本数量限制,判别为疑似恶意软件较多,可以通过大量样本学习来改善。

3 结束语

文中提出并设计实现了一种Android恶意软件检测方案。该方案通过修改Android源码中的敏感API,实现当导入应用程序到系统后,系统开始将APK自动安装到分析模拟上运行,并自动产生模拟行为让APK做出响应。对APK触发的敏感API调用信息经过卡方检验的预处理后,使用k-means分类算法让系统进行学习,使系统对恶意软件有良好的识别能力。

参考文献

[1]蒋绍林,王金文,张涛,等.Android安全研究综述[J].计算机应用与软件,2012,29(10):205-210.

[2]董振飞,杨康.Android平台恶意软件的静态行为检测[J].江苏通信,2011(2):39-47.

[3]陈文.基于模块签名的Android内核级Rootkit检测方法研究[D].南京:南京大学,2012.

[4]陈洪泉.恶意软件检测中的特征选择问题[J].电子科技大学学报:增刊,2009(11):53-56.

[5]廖明华,郑力明.Android安全机制分析与解决方案初探[J].科学技术与工程,2011,11(26):6350-6355.

[6]吴倩,赵晨曦,郭莹.Android安全机制解析与应用实践[M].北京:机械工业出版社,2013.

Android软件 第9篇

项目管理是在一定的约束条件下, 为高效率地实现项目业主的目标, 以项目经理个人负责制为基础和以项目为独立实体进行经济核算, 并按照项目内在的逻辑规律进行有效地计划、组织、协调、控制的系统管理活动。

从软件工程的角度讲, 软件开发主要分为以下几个阶段:需求分析、总体设计、详细设计、编码和单元测试、综合测试、运行和维护。在开展软件项目管理时, 应遵循以下7条基本原则: (1) 用分阶段的生命周期计划严格管理; (2) 坚持进行阶段评审; (3) 实行严格的产品控制; (4) 采用现代程序设计技术; (5) 结果应能够清楚地审查; (6) 开发小组的人员应该少而精; (7) 承认不断改进软件工程实践的必要性。

2 项目管理实践研究

2.1 项目简介

Android手机操作系统自问世以来, 凭借其强大的易用性、开放性、丰富的硬件选择面及便捷的开发功能, 迅速成为智能手机市场的新宠儿。“PC遥控器”是基于JDK和Android SDK, 以Java语言编写的一款Android平台手机应用软件。本款软件的开发意图在于使随身携带Android手机的人群无需再花钱购买专门的远程控制设备, 如电子笔、无线鼠标等, 或者在忘记携带上述设备的情形下, 直接使用手机远程操控计算机, 为用户节省时间和金钱。从虚拟触摸板功能、文件浏览功能, 到智能PPT遥控功能、虚拟游戏手柄功能, “PC遥控器”将给用户带来更为实用、更为便捷的全新体验, 让用户在工作、娱乐中尽情享受指尖在屏幕上滑动的乐趣。

2.2 生命周期模型选择

增量模型融合了瀑布模型的基本成分 (重复应用) 和原型实现的迭代特征, 该模型采用随着日程时间的进展而交错的线性序列, 每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时, 第1个增量往往是核心的产品, 即第1个增量实现了基本的需求, 但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能, 这个过程在每一个增量发布后不断重复, 直到产生了最终的完善产品。

因本软件涉及触摸板、文件浏览、PPT控制、游戏控制等多个相对比较独立的子功能, 所以我们采用的是以增量模型 (图1) 的方式, 把软件产品作为一系列的增量构件来逐一设计、编码、集成和测试, 根据测试结果不断改善直至达到预期。

采用增量模型的优点是人员分配灵活, 刚开始不用投入大量人力资源。如果核心产品很受欢迎, 则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时, 它提供了一种先推出核心产品的途径。这样即可先发布部分功能给客户, 可以使用户有较充裕的时间学习和适应新产品。此外, 增量能够有计划地管理技术风险。

依据采用的增量模型, 将该系统的开发阶段分为需求分析、系统设计、编码实施、测试、系统试运行等, 在每个开发阶段中进行质量、成本和进度等跟踪控制管理, 主要从文档、工具、沟通、制度、合作4个方面进行。管理模型如图2。

2.3 需求分析

需求分析是每个软件开发的基础, 是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法, 可用于获取、组织和记录系统需求并使客户和项目团队在系统需求变更上保持一致。全面的需求获取是从保证系统开发少走弯路为前提。项目开发中采用了多种方法从不同角度获取不同用户、不同平台的不同需求。分析方法主要有用户调查问卷、定期召开研讨会、原型展示等。对于每一次的调查和会议, 都有专门人员做好全程记录, 会后及时做好应对策略。

本项目具有较强的可行性和创新性, 因此, 正确而又全面地做好系统的需求分析是十分重要的。本项目所开发的系统的主要特点有:

(1) 系统主要分为Android手机端应用软件和配套的PC服务端软件两部分。

(2) 手机端应用软件基于Android操作系统平台, 应充分考虑到针对各种不同硬件配置和操作系统版本的兼容性。

(3) 配套的PC服务端软件应能够跨各种不同操作系统平台运行, 且占用较少系统资源。

(4) 系统应能够在大多数无线环境下使用, 保证数据连接的速率和操作的顺畅。

(5) 软件所面向用户群体的计算机专业知识参差不齐, 因此简单友好的可视化操作界面是至关重要的。

本系统具体功能需求如表1。

2.4 项目规划

项目规划是建立项目行动指南的基准, 包括对软件项目的估算, 风险分析、进度规划、人员的选择与配备、产品质量规划等。本项目采用Microsoft Project制定项目管理计划。在制定计划时注意保证计划的可行性, 明确责任划分。项目管理计划随着系统的进行不断细化, 不断调整。对于影响系统整体进度的调整, 及时召开小组会议进行讨论决定并记录形成文档。

2.5 系统设计与编码

系统设计阶段分为概要设计和详细设计两阶段完成。概要设计阶段将系统划分为连接模块、通信协议模块、触摸板模块、文件浏览模块、PPT控制模块、游戏手柄模块、设置模块、帮助模块、关于模块及退出程序模块等10个模块, 并对这些模块进行了初步设计分析;针对PC服务端软件, 为了达到在各种操作系统平台上的可用性, 编程语言采用了跨平台的Java。系统总体流程如图3。

详细设计阶段给出了每个模块的控制流程、算法和数据结构等。每个模块的层次不同。有些模块难度较大, 涉及范围较大, 会交给编程老练、心思缜密的队员完成。每完成一个模块都将对这一模块进行反复的测试和修改, 直至稳定为止, 尽可能地降低风险和成本。

在编码实施阶段, 采用代码版本管理工具SVN, 使各子系统的功能得到最大限度的发挥, 子系统之间互相补充, 弥补软件开发过程中的短板, 降低软件开发过程中的风险和难度。这还有助于使得软件开发人员在测试和调试过程中能够针对某个特定的开发信息回到以前的任一版本, 提高软件过程的跟踪率。

2.6 测试和运行

软件测试伴随着整个项目进行, 项目中制定了详细的测试计划、精心编写了测试用例。每一个子模块由该模块编程人员之外的人员进行反复测试, 对测试过程中出现的任何问题和建议进行记录, 以备该模块编程人员修改。在编写测试用例过程中, 对测试目标、测试环境、输入数据、测试步骤、预期结果等记录具有代表性的数据, 并形成文档。

试运行阶段, 首先, 小范围地对每个子模块试运行, 试运行成功后再对整体软件试运行, 并对反馈的运行结果记录、斟酌和完善。试运行成功后编写用户手册、制作PPT并录制视频说明, 其中标注联系方式等, 以备用户反馈。

2.7 项目后期管理

当系统经过安装试用一段时间, 具备验收的各项条件之后, 我们就需要着手验收阶段的准备工作。首先我们需要把到目前为止完成的工作进行一个总结, 列出我们已经完成的各项目工作成果、各类文档, 对合同以及各类约定的技术文档中的相关内容进行自查。要彻底了解系统目前完成的情况如何, 对于没有完成的, 要考虑准备采取什么策略去进一步完成或者采取一定的回避措施, 使客户在验收的时候不再提出这些未实现的需求。

系统交付后的软件维护是必不可少的。软件维护主要是指根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改, 修改时应充分利用源程序。修改后要填写程序修改登记表, 并在程序变更通知书上写明新旧程序的不同之处。

2.8 项目跟踪控制

从软件项目前期需求分析到后期运行维护, 均需坚持整个过程的监控, 这是为通过周期性地跟踪项目计划的各种参数如进度、工作量、费用、资源、工作成果、风险等, 不断地了解项目的进展情况, 以便当项目实际进展状况显著偏离计划时能够及时采取纠正措施, 使项目能恢复到正常轨道, 或者更正计划的不合理之处。

2.9 团队管理

软件项目的成功是靠项目管理、系统分析设计、程序编制、测试、市场营销等不同角色人员共同协作完成的, 不同角色的人执行的工作相互促进和制约着其他角色的人的工作, 因此一个高效的软件开发团队是高质量软件项目或产品的保证。

高效的软件开发团队是建立在合理的开发流程及团队成员密切合作的基础之上, 成员共同迎接挑战, 有效地计划、协调和管理各自的工作, 以至完成明确的目标。高效的开发团队具有明确且有挑战性的共同目标, 具有很强的凝聚力, 具有融洽的交流环境, 具有共同的工作规范和框架, 采用合理的开发过程。

本项目的开发团队包括5位成员, 进行科学分工, 相互协助设计、开发和测试。团队成员在专业技术上有所差异, 而项目管理能力的表现也不是很突出, 因此对于整个团队而言, 具有一定的难度。我们严格按照软件工程中开发软件的方法来控制整个项目的进行, 具体成员的工作安排如表2。

团队管理是对项目组全体成员的管理和项目组织自身的管理, 是项目管理中最为根本的一项管理。团队开发, 永远不是一个人在行动, 因此需要制定团队规范来约束大家的行为, 以保证进度和质量。团队规范的内容主要包括: (1) 每个开发人员每天晚上汇报当天的工作进度; (2) 每周末总结本周工作, 制定下周进度计划; (3) 遇到问题及时沟通, 充分利用团队优势; (4) 不能完成任务或提前完成任务及时告知负责人; (5) 个人独立解决一个问题的时间不能超过半小时, 半小时之后未解决应及时与其他成员商讨; (6) 阶段性的技术总结、团队内部技术、经验交流; (7) 使用版本管理工具来协助开发; (8) 保证充分可靠的文档; (9) 周期执行检查工作; (10) 实行公正合理的奖惩制度。团队管理的目的是使项目组人员的主观能动性得到充分发挥, 做到人尽其才、事得其人、人事相宜, 同时保持项目组织高度的团结性和战斗力, 从而成功地实现项目的既定目标。

3 结语

软件项目管理是一门很大的学问, 它贯穿于项目启动、计划、执行、控制、收尾等5个阶段, 它不仅需要项目管理相关的基础理论知识作为指导, 也需要在实践中不断学习、摸索。因此, 总结项目经验是非常重要的, 它有利于团队技术与管理经验的积累, 对于今后的项目有非常重要的指导意义, 必须引起足够的重视。

本项目通过将软件项目管理的相关知识应用到Android应用开发的过程中, 在需求分析、项目规划到系统设计与编码、测试和运行乃至团队管理等方面, 有效地保证了项目保质保量地向前推进, 有利于归纳出适合团队的开发过程, 提高团队的开发经验。同时, 团队的每位成员在项目开发的整个过程中都切实负起责任, 既增强了团队合作意识, 提高了团队的凝聚力, 又保证了用户的真实需求得到满足。

通过在项目中实践软件项目管理的方法, 在最后开发出的软件中, 基本上达到了我们预期的目标, 既完成了预定的各个功能模块, 同时也在软件人性化、系统安全等方面都进行了认真地关注, 并努力修正了很多方面的细节问题。

摘要:通过在一个Android平台小型软件的开发过程中应用软件项目管理的相关知识, 初步探讨了Android平台软件开发的特点, 阐述了需求、质量、进度等方面的管理理念和方法, 特别是如何对项目进行跟踪、监控和度量, 以保证软件按照进度高质量地完成、交付和使用。

Android软件 第10篇

1. 手机账单诈骗

网络罪犯设置及注册一个预缴服务号码, 用户一旦致电或发送短信至该号码, 便需支付比一般短信或电话费要高的款项, 这笔收入由网络罪犯、供货商及短信搜集者摊分。按照不同供货商、每则短信的收费和短信的数量, 网络罪犯可获得预缴服务费的30%至70%不等。

2. 间谍软件

有很多Android应用程序均允许其他人追踪和监察用户的手机, 例如记录和输出所有短信、电邮、通话记录、全球定位系统的位置, 或开启扬声器。不法之徒向厂商购买这些应用程序, 成功在用户手机实体存取数据。提供间谍程序的厂商便能够从中获利, 例如Android.Tapsnake及Spyware.Flexispy。

3. 搜索引擎中毒

有不少搜索引擎建议用户浏览指定网站, 或透过监察用户的浏览量来改变搜寻引擎的排名。恶意程序向这些网站发出各种要求, 搜索引擎所监察的点击率因而中毒。人为窜改搜寻引擎排名让网络罪犯以未来客户的身份增加浏览网站的次数, 或是借着网站上的按浏览或按点击收费广告来骗取报酬。

4. 按点击收费 (Pay-per-click) 诈骗

只要广告网络的成员成功介绍用户登入指定网站 (按点击收费) , 广告网络便要付款给内容供货商。不法之徒趁机利用恶意程序, 伪造有关网站的浏览次数。

5. 按安装次数收费 (Pay-per-install) 计划

用户可以在智能手机随意安装应用程序, 因而使网络罪犯有机可乘, 透过安装按安装次数收费的软件骗财。Android.Geinimi及Android.Rootcager就是能够下载和安装额外应用程序的例子。

6. 广告软件

每当有用户浏览并点击刊登于网站的广告, 广告网络便要付款给内容供货商。恶意程序只需启动浏览器, 便能刊登广告, 或在流动装置上刊登针对应用程序的广告。每次使用该应用程序及刊登广告, 不法之徒就可赚取广告收入。

7. mTAN盗窃

Android软件 第11篇

【摘 要】二维码技术是当前移动商务中的主要技术之一,而Android平台是当前应用非常广泛的移动终端平台。本文介绍了QR二维码的基本编码原理,并在此基础上基于Android平台设计并实现了一个QR二维码搜索软件。

【关键词】二维码;QR码;Android

0.引言

隨着3G网络的普及,移动互联网时代已经到来,移动商务得到了快速发展,给人们的生活带来了极大的便利。无线终端(包括智能手机、平板电脑等)是移动互联网和移动商务的重要载体。Android是用于Google公司推出的用于无线终端的操作系统,提供了丰富的API接口,能够方便地集成很多Google的服务。由于其开源的特性得到了广泛认可,拥有较高的市场占有率。

移动商务的发展离不开二维码技术。目前,二维码在传统商务活动和移动商务中都得到了较好的应用。典型的物流行业、票务和证件防伪等都利用了二维码技术。目前以微信、微博为代表的各种社交类应用中已经纷纷推出二维码功能,二维码形式的广告、电子消费券、电子交易凭证也都应运而生[1]。二维码已经成为移动商务的重要组成部分。

1.QR二维码的基本编码原理

二维码,即二维条码,是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。二维码技术是在一维码无法满足实际应用需求的前提下产生的。由于受信息容量的限制,一维码通常是对物品的标识,而不是对物品的描述。所谓对物品的标识,就是给某物品分配一个代码,代码以条码的形式标识在物品上,用来标识该物品以便自动扫描设备的识读,代码或一维码本身不表示该产品的描述性信息。

QR(Quick-Response)二维码是目前应用较多的二维码之一,解码速度快。QR二维码的基本结构如图1所示。其中:位置探测图形、位置探测图形分隔符及定位图形用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异。校正图形的数量和位置根据规格确定。格式信息表示改二维码的纠错级别,分为L、M、Q、H。版本信息即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本 每边增加4个模块。数据和纠错码字实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。[2]

图1 QR二维码的基本结构

QR二维码的编码过程中首先确定编码的字符类型和纠错等级,按相应的字符集转换成符号字符。然后将数据字符转换为位流,每8位一个码字,整体构成一个数据的码字序列。按需要将码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个新的序列,并按次序放如图2所示的分块中。最后将探测图形、分隔符、定位图形、校正图形、码字模块、生成格式和版本信息放入相应区域内放入相应的区域。

图2 QR二维码分块结构

2.QR二维码搜索软件的设计与实现

2.1开发环境[3]

Android平台为开发者提供了源码开放的软件开发包(SDK),它包含了使用Java语言开发Android平台应用的必要工具和组件(API)。Windows下开发Android应用程序的开发环境主要包括:JDK、Eclipse IDE、ADT扩展包以及Android SDK,其中ADT是一个基于Eclipse的Android开发工具扩展包(Android Development Tools plugin),Android SDK是Android程序开发包(Software Development Kit),包含Android手机模拟器。

2.2系统设计

实际上,目前用于移动商务中的手机端的二维码识别软件已经比较多了,但是这些软件往往是某一个电子商务平台APP中的一项功能,或者是单纯的扫描软件不结合具体的商务平台。这些软件的局限性就在于用户无法选择任意的电子商务平台搜索,换言之,用户必须安装多个不同电商平台的APP,且在不同的APP之间切换才能达到目的。

基于上述原因,本文设计一个能够跨电子商务平台搜索的二维码识别软件。该软件主要包括以下两项功能:

●扫描并识别QR二维码:通过手机摄像头扫描二维码图像,解码该图像。

●二维码搜索:在主流的电子商务平台和搜索引擎中搜索,包括淘宝、当当、京东商城、百度和谷歌搜索。

2.3系统实现

我们采用第三方包zxing[4]进行QR二维码解码。表1是QR二维码解码的关键代码,表2是通过百度搜索的关键代码,其他搜索谷歌、淘宝等的代码类似。图3是我们实现的软件界面。

3.结束语

本文介绍了二维码技术在移动商务中的应用概况,分析了QR二维码的基本编码原理,并基于当前的主流移动终端平台Android设计并实现了一个QR二维码搜索软件。该软件能够通过扫描二维码的形式在当前主流的电子商务平台中搜索。 [科]

【参考文献】

[1]季立寰,卢赛.二维码在移动商务中的应用研究[J].科技致富向导,2013,(11).

[2]冯汉禄,黄颖为等.QR码纠错码原理及实现[J].计算机应用,2011,34(Suppl.1):40-42.

[3]张云.Windows下Android应用程序开发环境搭建详解[J].计算机时代,2013,(01):32-34.

Android软件 第12篇

在民用飞机上,机载平板电脑是为乘客提供机上娱乐的主要设施,乘客可以通过平板电脑来看电影、玩游戏及看新闻等。但是对平板电脑的稳定性和可靠性要求较高,目前主流的机载娱乐设备还是国外的公司如泰雷兹提供,因此自主研发有着重要的意义。

2可靠Android平板电脑概述

Android平板由核心处理器MCU和一个单片机组成。MCU是运行Android系统而单片机是保证系统可靠运行。MCU是基于i.MX 6Quand处理器,四核ARM Cortex-A9架构,单个核心主频最高可达1.2GHz,支持1080P@60fps解码和1080P@30fps编码,带有2GB DDR3内存。MCU主板的人机交互接口是10.1寸的液晶显示屏,并且配有I2C接口的触摸屏。

Android平板内部设计如图1所示,MCU的外部接口包括触摸屏、液晶屏、SGTL5000声卡、网卡及串口UART等。为了使得Android平板稳定可靠,主板内部还接了一个单片机去监控MCU主板的状态。监控单片机主要负责采集MCU主板的温度、电压及电流等信息,并且将这些信号通过串口来发送给MCU。当MCU出现死机的时候单片机能够通过GPIO产生复位信号来重启MCU主板。

3软件设计

3.1 MCU软件设计

MCU系统启动如图2所示,系统上电后启动uboot,由于系统是2G内存因此要修改uboot源码中关于DDR3部分的相应寄存器。uboot完成各个硬件部分的初始化,并且将启动参数传递给Linux内核,Linux内核会去加载I2C触摸屏驱动、网卡、声卡、液晶屏幕LVDS等驱动。全部完成之后,就去加载Android系统,在加载Android系统的时候我们可以根据客户的需要去加载Android启动的开机Logo,最后完成Android系统的启动。

uboot是系统上电后运行的第一段程序,主要分为两个阶段。第一阶段的语言主要是汇编代码,具体的功能包括硬件设备初始化、加载uboot第二阶段代码到RAM空间、设置好栈和跳转到第二阶段代码入口。第二阶段的语言主要是c语言,具体功能包括初始化本阶段使用的硬件设备、检测系统内存映射、将内核从Flash读取到RAM中、为内核设置启动参数和调用内核。由于内存是2G DDR3而默认的内存是1个G,因此我们需要将flash_header.S里面关于内存的寄存器修改为2G。

Android系统在Linux内核上运行的,Linux内核需要完成跟芯片相匹配的Linux BSP移植以及相关的驱动开发。在驱动开发上如触摸屏驱动,触摸屏是人机交互的重要组成。该MCU系统选取了I2C接口的10.1寸的触摸屏,该触摸屏最大支持5点触摸。由于Android系统是在Linux系统之上运行的,采用的驱动开发和Linux驱动开发类似。MCU和触摸屏之间的通信采用I2C总线,因此我们可以运用Linux平台下的I2C总线。将触摸屏的信息添加到Linux的BSP中,这样我们的触摸屏驱动通过I2C总线去匹配触摸屏设备。如图3所示,当触摸屏监测到有按下的信号时候,会产生一个中断,然后会进入中断处理函数,中断处理函数会通过I2C接口去调用触摸屏的寄存器,首先判断是几点触摸,然后用一个for循环去遍历每个触摸点的数据和状态。判断每个触摸点是按下还是放开,如果是按下的话去读取坐标的数据通过输入输出子系统上报系统并且上报为按下;如果是释放的就上报系统是释放信号。最后在Android文件系统的/system/usr/idc/*.idc添加对应的触摸屏信息那么Android触摸屏驱动就完成了。

Android系统是由google公司开发开源的移动终端操作系统,下载完Android源码后我们需要将和我们芯片相关的patch包打进Android源码中,编译完成之后就能够得到我们需要的Android操作系统。开发完Linux外部接口驱动后,需要在Android的HAL(硬件设备抽象)层和JNI(java本地接口层)添加和Linux驱动相关的信息。

3.2单片机软件设计

由于Android是不稳定系统容易死机,而且在主板出现故障的时候需要禁止主板,因此系统内部用一个单片机来监测Android系统保证系统可靠性。运行原理如图4所示,系统上电后MCU主板和单片机一起运行,单片机会通过AD转换将MCU主板的温度、关键电压电流的信息采集过来,如果发现电压过大或者温度过高的现象会立刻通过gpio产生低电平让MCU主板停止运行。正常启动后,单片机会将采集的数据通过串口传递给MCU主板,MCU主板收到数据后进入正常工作模式,并且会发心跳包给单片机。一旦单片机收不到心跳包的时候,说明MCU主板发生故障,这个时候单片机会设置gpio口信号,使其产生一个复位信号来使得MCU主板重新启动。

4结语

本设计Android平板内部增加了一个监控单片机提高了系统的可靠性,Android主板采用工业级的芯片而且硬件配置较高,给用户非常好的用户体验,目前系统运行稳定,能够与国外机载娱乐形成一定的竞争力。

摘要:在飞机上提供给客户娱乐的Android平板电脑需要稳定可靠,该文设计的平板电脑主要由一个飞思卡尔的ARM处理器为控制核心的Android主板和监控单片机组成。该文主要对Android主板的软件设计尤其触摸屏驱动以及可靠性保证作了详细的描述。

关键词:ARM触摸屏,Android主板

参考文献

[1]倪旭翔,计春雷.ARM Cortex-A8嵌入式系统开发与实践—Win CE与Android平台[M].北京:中国水利水电出版社,2011.

[2]范书瑞,高铁成.ARM处理器与C语言开发应用[M].北京:北京航空航天大学出版社,2008.

[3]ARM公司.Cortex-A8 technical reference manual[Z].2010.

Android软件

Android软件(精选12篇)Android软件 第1篇Android系统主要 由Activity、Service、ContentProvider和Broadcast Receiver四大基本组件构...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部