Android测试

2024-05-18

Android测试(精选七篇)

Android测试 篇1

渗透测试是通过模拟黑客的攻击技术及漏洞发现技术, 实现对目标系统的安全进行深入探测, 发现系统脆弱环节, 是对安全漏洞最有效、直接的检测方法。当前渗透测试技术大多用于对传统操作系统及网络的测试及评估[1,2,3], 并未涉及移动互联网环境下安全问题, 随着移动互联网的快速发展, 安全领域也逐步走向移动化, 移动智能终端成为重要的攻击目标。Michael Becher等对移动智能终端安全性进行了研究, 首次提到了拒绝服务攻击对智能终端可能产生的影响, 但没有完成仿真实验, 得出具体量化的数据[4];Luca Caviglione等在2011年提出了绿色安全的概念, 强调电量是移动安全领域中必须考虑的重要因素之一, 总结了能耗对安全机制的影响, 将能耗攻击引入到安全领域[5]。并对第三方安全软件对智能手机电量的影响进行了测试研究, 提出一些防范策略建议[6]。

针对上述问题, 本文利用实际的移动互联网络环境搭建测试平台, 实现了多种网络攻击对Android智能手机的渗透测试, 通过对智能手机的吞吐量、网页响应时间、CPU使用率以及能耗等指标进行测试实验, 得出实测结果。最后对结果进行了对比分析。

1 概述

1.1 Android系统

Android系统作为第一个开放、免费的手机操作系统平台, 近几年在市场中的份额增长最快, 成为目前最流行的开源手机操作系统, 根据国际数据公司 (IDC) 数据统计, 截止到2013年第一季度, Android系统在全球移动操作系统中的市场占有率超过75%, 稳居全球第一。同时, Android系统的流行也使其已成为众多恶意行为的攻击目标[7,8,9]。

1.2 渗透测试

渗透测试以渗入系统内部为目的, 通过测试充分暴露系统存在的安全问题和缺陷, 根据渗透方法可分为黑盒测试、白盒测试和隐秘测试。渗透测试主要测试节点包括:端口扫描、网络嗅探、操作系统探测、体系结构探测、服务识别、协议检测、漏洞扫描、漏洞确认、防火墙测试、应用软件漏洞测试、拨号和VPN攻击测试、访问控制测试、入侵检测系统测试、服务漏洞测试、社会工程学测试、口令密码破解、拒绝服务攻击测试、溢出攻击测试、Web脚本及应用测试、会话窃听与劫持测试及ARP欺骗测试等[10]。通过对移动智能终端操作系统安全机制的研究, 并将渗透测试应用到移动安全领域, 发现手机操作系统漏洞, 对于防范恶意攻击, 维护操作系统安全有着非常重要的意义。

1.3 能耗攻击

随着移动互联网的快速发展, 移动终端的功能也在不断丰富, 但这样一系列的丰富功能必须通过充足的电量才可以实现。同时, 为了满足安全上的需求, 大量的协议、方法及软件被应用到移动安全领域, 然而随着安全性的提高, 算法及数据的传输对处理器, 内存及带宽的要求也越来越高, 随之而来的是对电量消耗的急剧增加。虽然在最近几年电池技术及硅材料的利用率不断发展和提高, 但在安全设计和使用移动终端时, 电量消耗过快仍然是最主要的问题之一。移动终端有限的电量成为设备本身的一个攻击漏洞, 因此, 通过在各个方面增加能耗缩短移动终端的电量, 最终影响用户使用, 成为一个重要的攻击方式。

2 渗透测试实验设计

2.1 渗透测试实施流程

渗透测试的实施流程设计为制定渗透测试方案、目标信息收集分析、实施测试、完成风险分析及测试报告4个阶段。流程如图1所示。

(1) 制定测试方案

在渗透测试之前制定完善的方案, 确定渗透测试目标、测试范围、测试计划、测试工具及测试环境的搭建。

(2) 目标信息收集分析

信息收集的方法主要有操作系统扫描、Ping扫射、地址扫描、端口扫描及漏洞扫描等。

通过对Android智能终端进行Ping扫射、操作系统探测及端口扫描 (TCP连接扫描、SYN扫描、FIN扫描、XMAS扫描、NULL扫描、ACK扫描、UDP扫描等) 完成对目标系统、网络端口及服务的信息收集, 分析实验数据为下一步攻击测试做准备。

(3) 实施测试

对目标系统进行拒绝服务攻击 (SYN Flooding、ACK Flooding、TCP Null Flooding、RST Attack、UDP Flooding、ICMP Flood、Ping of Death、LAND Attack、Teardrop Attack) , APR欺骗 (Gratuitous ARP Request、Fake ARP Reply using Broadcast) 等测试实验, 记录数据, 进一步分析, 并反复进行测试。

(4) 测试报告

完成测试实验后, 对测试过程中的数据进行分析对比, 对Android系统存在系统漏洞及风险进行综合评估, 完成详细的测试报告。

2.2 实验环境

实验在智能手机上运行了Web服务及FTP服务两项服务, 通过安装Kies air及Swi FTP软件分别设置8080及2121端口作为测试端口。采用Powertutor 1.4, System Panel 1.2等软件对各项指标进行检测。

被测目标主机采用三星SCH-i929, Android2.3.6, 内核版本2.6.35.11, CPU频率为1.2GHz, 双核, 1G内存。

在无线网络环境下, 测试平台为两台Ubuntu 10.04系统的主机, CPU频率为2.0GHz, 四核, 4G内存。流量分析采用Wireshark 1.2.7, 分别用Nmap6.0, Hping3, Dsniff2.4及packit1.0等进行扫描探测及网络攻击测试。实验环境如图2所示。

3 渗透测试结果及分析

3.1 扫描探测

(1) Ping扫射

Ping扫射作为网络安全扫描第一步, 用来帮助发现处于活动状态的主机。实验表明:Ping扫射可以发现Android智能手机处于活动状态, 并且探测出其MAC地址, 扫描结果如表1所示。

(2) 操作系统探测

操作系统探测是对目标主机的操作系统进行识别。探测无法准确发现目标操作系统, 仅显示Linux 2.6.9-2.6.31大致的版本范围, 如表2所示。

(3) 端口扫描

端口扫描是通过与目标系统的TCP/IP端口连接, 查看该系统处于监听或运行状态的服务。主要包括全连接扫描、半连接扫描、秘密扫描及其他扫描。

全连接扫描是TCP端口扫描的基础, 主要以TCP连接扫描为主。通过对Android系统进行TCP连接扫描, 可以准确发现开放端口及部分运行的服务。扫描结果如表3所示。

半连接扫描在扫描过程中并不完成完整的连接, 具有隐蔽性的优点。主要的半连接扫描有SYN扫描, 通过扫描同样可以发现Android系统开放的端口及部分运行的服务。扫描结果如表4所示。

秘密扫描是一种不被审计工具所检测的扫描技术。现有的秘密扫描有FIN扫描、NULL扫描、XMAS扫描、ACK扫描等。根据ACK扫描的结果可以判定Android系统没有防火墙, 而Nmap在FIN扫描、NULL扫描、XMAS扫描的输出结果中“open|filtered”表示端口处于开放状态。扫描结果如表5所示。

其他扫描主要包括UDP扫描, 这种扫描使用的是UDP协议。通过扫描同样可以发现多个开放端口, 并以此选定为攻击端口。扫描结果如表6所示。

3.2 实施测试

(1) 拒绝服务攻击

在SYN Flooding、ACK Flooding、TCP Null Flooding、UDP Flooding、ICMP Flood等泛洪类拒绝服务攻击下, 针对Android智能手机Web网页响应时间、CPU使用率、智能手机能耗进行测试。

从读取页面的响应时间来看 (如图3所示) :在开始没有攻击的4分钟内读取页面的平均响应时间约为1.96 s;04:00-08:00之间读取页面的响应时间迅速增加, 并一度出现无法打开网页的情况;从08:00开始, 当拒绝服务攻击停止后, 读取页面的响应时间逐渐恢复到平均大约为1.96 s。

从流量的吞吐量可以看出 (如图4所示) :在受到攻击的4分钟内, 正常的http流量有一个明显的下降。通过记录表明:在00:00-04:00之间, 吞吐量约为763.4 KB/s;在04:00-08:00之间, 吞吐量迅速下降, 最低下降到约1.2 KB/s。攻击结束后, 吞吐量又恢复到763 KB/s。

从以上数据可以看出, 发起攻击后读取页面的响应时间及吞吐量都产生了较大的变化。结果证明泛洪类拒绝服务攻击对Android系统网页应用造成的影响非常大。

从攻击对Android智能手机的CPU使用率影响的测试结果 (如表7所示) 看出:在遭受泛洪类拒绝服务攻击后CPU使用率平均增加29.2%, 受到较大影响。

攻击过程中手机能耗变化的测试结果如图5所示, 在受到攻击后, 手机能耗有一个明显的上升, 平均增加了119.4%。实验数据表明, 泛洪类拒绝服务攻击对能耗的影响非常大。

实验还以Android智能手机作为FTP服务器, 测试了泛洪类拒绝服务攻击对其吞吐量的影响。

测试的方法是:采用1个用户通过FTP客户端下载大小为55.4 MB的文件, 反复进行实验, 其中选取20次典型实验数据中的10组如表8所示。

以上实验数据表明:在没有泛洪类拒绝服务攻击时, 客户端正常下载流量平均为2 045.01 KB/s;加入攻击后, 下载流量平均为122.73 KB/s。平均下降流量百分比是93.9%。

此外, 实验还对RST Attack、Ping of Death、LAND Attack、Teardrop Attack等类型的拒绝服务攻击进行了测试, 结果表明:RST Attack对Android系统是有效的。利用Wireshark找到正确的序列号, 通过发送RST包能够成功终断已经建立的连接。而Ping of Death、LAND Attack、Teardrop Attack对Android智能手机的攻击是无效的。

(2) ARP欺骗

通过实施ARP欺骗攻击, 对Android智能手机进行测试。

测试的方法是:测试通过伪造ARP应答帧 (Fake ARP Reply using Broadcast) , 伪造ARP请求帧 (Gratuitous ARP Request) 两种方式对Android智能手机进行攻击, 测试其反应情况。

测试结果表明, 在两种情况下, Android智能手机将接收到的伪造的IP、MAC更改到ARP缓存表中, 攻击成功对其实施了ARP欺骗。

(3) 实验总结

通过上述实验的结果的分析发现, 由于继承Linux 2.6内核的安全机制实现系统安全, Ping of Death、Land Attack、Teardrop Attack类型的拒绝服务攻击对Android系统是无效的。

Android系统在抵御泛洪类拒绝服务攻击时存在明显漏洞, 在受到此类攻击时, Android智能手机在吞吐量、网页响应时间、CPU使用率以及能耗上都受到非常大的影响。实验中还发现, 泛洪类拒绝服务攻击无论是否针对开放的端口, 都对Android智能手机造成严重的影响。

Android系统对于抵御ARP欺骗攻击同样存在漏洞, 无论以伪造ARP应答帧还是伪造ARP请求帧的方式, 都成功实施了攻击。实验过程中没有发现Android系统对抵御此类攻击的任何安全机制。

4 结语

随着移动智能终端的快速发展, 传统的网络攻击出现在移动互联网领域中。本文通过对多种网络攻击的性能的研究, 利用实际的移动互联网络环境搭建测试平台, 利用多种网络攻击对Android智能手机在吞吐量、网页响应时间、CPU使用率以及能耗等多项指标上进行了测试, 测试结果表明:通过不同方式对Android系统进行泛洪攻击, 如SYN, UDP, ICMP泛洪等, 这些攻击通过消耗CPU、带宽等导致系统拒绝服务。此外, 实验发现防洪类攻击对移动智能终端的电量的消耗非常明显;大多数链路层的攻击对Android系统是有效的, 通过伪造MAC地址, 针对链路层的拒绝服务攻击, 会话截取以及中间人攻击都能成功对Android系统实施攻击。对系统的威胁性很大。

本文对移动智能终端进行了渗透测试研究, 建立了移动互联网环境下多种网络攻击的模型, 可以为针对移动智能终端的多种网络攻击的特征提取、检测以及防御提供相关的实验数据, 打下前期研究的基础。今后将不断跟踪Android操作系统在安全性方面的改进, 提出更加行之有效的分析方法, 发现和弥补系统安全缺陷。

摘要:渗透测试技术大多局限于对传统操作系统及网络的测试评估, 并未涉及移动互联网环境下安全问题。为此实现一种移动互联网环境下针对移动智能终端的渗透测试方案。该方案利用实际的移动互联网络环境搭建测试平台, 通过模拟多种网络攻击对Android智能手机在吞吐量、网页响应时间、CPU使用率以及能耗等性能变化进行测试。结果表明, 针对链路层的拒绝服务攻击, 会话截取以及中间人攻击都能成功对Android系统实施攻击, 对Android系统造成威胁。此外, 泛洪类拒绝服务攻击对移动智能终端的电量的消耗非常明显。此研究成果为Android系统安全的检测和防御提供了依据。

关键词:智能手机,安卓,渗透测试,安全漏洞,网络攻击

参考文献

[1]William G J Halfond, Shauvik Roy Choudhary, Alessandro Orso.Improving penetration testing through static and dynamic analysis[J].Software Testing, Verifieation&Reliability, 2011, 21 (3) :195-214.

[2]Lu Shen, Liang Xiaoyan, Yang Bo.Automatic Generation for Penetration Testing Scheme Analysis Model for Network[C]//Proceeding of Computational and Information Sciences, 2011 International Conference, USA:IEEE Computer Society.2011:821-826.

[3]Nuno Antunes, Mareo Vieira.Benchmarking Vulnerability Detection Tools for Web Services[C]//Proceeding of Web Services, 2010 IEEE International Conference, USA:IEEE Computer Society.2010:203-210.

[4]Becher M, Freiling F C, Hoffmann J, et al.Mobile Security Catching Up?Revealing the Nuts and Bolts of the Security of Mobile Devices[C]//Proceedings of the 2011 IEEE Symposium on Security and Privacy, USA:IEEE Computer Society.2011:96-111.

[5]Caviglione L, Merlo A, Migliardi M.What is Green Security[C]//Proceedings of the 7th International Conference on Information Assurance and Security, USA:IEEE Computer Society.2011:366-371.

[6]Caviglione L, Merlo A.The energy impact of security mechanisms in modern mobile devices[J].Network Security, 2012:12-14.

[7]Portokalidis G, Homburg P, Anagnostakis K.Paranoid Android:Versatile Protection For Smartphones[C]//Proceedings of the 26th Annual Computer Security Applications Conference, USA:ACM.2010:347-356.

[8]La Polla, Martinelli M, F Sgandurra D.A Survey on Security for Mobile Devices[J].Communications Surveys&Tutorials, IEEE, 2013, 15 (1) :446-471.

[9]Schmidt A D, Bye R, Schmidt H G, et al.Static Analysis of Executables for Collaborative Malware Detection on Android[C]//Proceedings of the 2009 IEEE international conference on Communications, USA:IEEE Computer Society.2009:14-18.

Android测试 篇2

制定总体的测试计划,详细阐明本次测试目的、对象、方法、范围、过程、环境要求、接受标准以及测试时间等内容。

3、测试设计

在设计测试方案时,首先分解测试内容,对于一个复杂系统,通常可以分解成几个互相独立的子系统,正确地划分这些子系统及其逻辑组成部分和相互间的关系,可以降低测试的复杂性,减少重复和遗漏,也便于设计和开发测试用例,重要的是描述对系统分解后每个功能点逐一的校验描述,包括何种方法测试、何种数据测试、期望测试结果等。然后以功能点分析文档作为依据进行测试用例的设计,设计测试用例是关系到测试效果以至软件质量的关键性一步,也是一项非常细致的工作,根据对具体的北侧系统的分析和测试要求,逐步细化测试的范围和内容,设计具体的测试过程和数据,同时将结果写成可以按步执行的测试文档。每个测试用例必须包括以下几个部分:

(1) 标题和编号

(2) 测试的目标和目的

(3) 输入和使用的数据和操作过程

(4) 期望的输出结果

(5) 其他特殊的环境要求、次序要求、时间要求等

4、准备测试数据

在软件测试中,为了提高测试工作的效益和质量,只要条件许可,应尽可能采用计算机自动或半自动测试的方法,利用软件工具本身的优势来提高工作效率。

5、测试执行

当所有必需的测试准备工作都已完成,则可以按照预定的测试计划和测试方案逐项进行测试。

为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试和验收测试。代码会审是对程序进行静态分析的过程。单元测试集中在检查软件设计的最小单位-模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。集成测试:集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。在测试过程中发现的任何与预期目标不符的现象和问题都必须详细记录下来,填写测试记录。为了能准确的找出问题产生的原因,及时的解决问题,保证测试工作的顺利进行,一般来说所发现的问题必须是能够重视的。

6、回归测试

在测试中发现的任何问题和错误都必须有一个明确的解决方法。一般来说,经过修改的软件可能仍然包含着错误,甚至引入了新的错误,因此,对于修改以后的程序和文档,按照修改的方法和影响的范围,必须重新进行有关的测试。

7、测试分析报告

测试结束后要及时地进行总结,对测试结果进行分析,写“测试分析报”。

硬件条件:

PC机1台

搭建软件环境:

Android模拟器;

客户端源代码;

自动化测试软件;

4、课题研究实施方案(课题研究各阶段任务在时间和顺序上的安排)

1) 11月28日至月14日(第7学期第8周至第14周):提交开题报告;查阅资料,学习测试方法。

2) 2月13日至203月19日(第8学期第1周至第6周):查阅软件相关文档,了解所要测试的软件的各功能模块,搭建测试环境搭,编写测试用例。

3) 2012年3月19日至2012年3月23日(第8学期第6周):中期检查,初步整理测试数据,分析测试结果。

4) 2012年3月23日至2012年3月30日(第8学期第7周):提交论文初稿。和实验验收报告初稿。

5) 2012年3月30日至2012年4月6日(第8学期第8周):反馈论文修改意见。

6) 2012年4月6日至2012年4月13日(第8学期第9周):对论文进行二次修改意见。

7) 2012年4月13日至2012年4月20日(第8学期第10周):论文定稿及提交

5、主要参考文献(证明选题有理有据的相关资料源,文献不少于5篇(含外文文献),文献书写格式参见《计算机系毕业设计(论文)撰写格式与标准》

[1] 佟伟光 《软件测试》 人民邮电出版社 5月

[2] 美)William E.Perry著 高猛 等译《软件测试的有效方法》清华大学出版社201 月

[3] 古乐,史九林等编著 《软件测试案例与实践教程》清华大学出版社 2 月

[4] Gerald D.Everett, Raymond Mcleod, Jr.著 郭耀等译《软件测试 :跨越整个软件开发生命周期》 清华大学出版社 年9月

Android测试 篇3

对于这项拟议中的收购,我有两个问题。第一,我们为什么要考虑批准这项协议?第二,什么时候以及出于什么样的原因我们停止了对于垄断权力的担忧?

先说第一个问题,宽带互联网和有线电视都已经是高度集中的行业,少数几家公司拥有大多数的客户。

曾几何时,反垄断机构看到这种情况,极有可能会采取行动,削减康卡斯特的规模,不可能任其扩张。

康卡斯特的首席执行官表示不必担心,“因为我们的公司之间没有业务重叠,也不存在相互竞争,所以不会降低任何相关市场的竞争。”然而,这种说法明显是虚伪的。对于康卡斯特扩张的担忧并非是它减少了当地市场的客户竞争。

首先,当地市场几乎没有任何有效竞争。真正的问题在于,康卡斯特对内容提供商在使用其数字管道的条款方面,具有比现在更大的规定权力—这种迫使其业务上游达成苛刻协议的能力,将使业务下游的潜在竞争对手挑战其当地的垄断公司变得更加艰难。

关键的问题在于康卡斯特完全符合对旧时强盗式垄断者的描述。就像中世纪的军阀,镇守城堡,俯瞰莱茵河,向所有过路者征费。事实上,收购时代华纳会让康卡斯特增强其防御能力,这当然是一个坏主意。

有趣的是,在人们为支持这项收购而引用的陈词滥调中,似乎缺少了一个经常挂在嘴上的说法:我还没看到有人说,这笔交易能促进创新。也许是因为这样说会遭到嘲笑。

实际上,许多专家—本杰明·N·卡多佐法学院的苏珊·克劳福德在其新书《被俘获的观众》中直击这一案例,就提出巨型电信公司已经扼杀了创新,让美国越来越落后于其他发达国家。

而且,我们有充分的理由相信,不仅电信行业如此,垄断权力已经严重拖累了整个美国经济。

过去两党在支持强硬的反垄断执法上有着共识。然而,在里根时代,反垄断政策走向没落,并且从那时起,衡量垄断权力的各种指数,比如任意指定行业的销售集中在少数大公司的程度,一直在快速攀升。

起初,反对控制垄断权力的观点认为,兼并会带来经济效益上的所谓好处。后来,它成为了一种普遍的论调,世界已经发生了改变,那些关于垄断的旧式的担忧已经无足轻重。

难道我们不是生活在全球化竞争的时代吗?新技术的创造性破坏不是在不断推倒旧的工业巨头,创造新的巨头吗?但事实却是,许多商品和服务并不存在国际竞争:新泽西州的家庭不会成为韩国的宽带用户。同时,创造性的破坏已经被过分推销:微软可能是个走下坡路的帝国,但是它仍在依靠几十年前建立起来的垄断地位获得巨大的利润。

此外,垄断本身就是一个创新障碍。克劳福德很有说服力地论证了,电信巨头不受制约的权力已经消除了对于进步的激励:当你的客户无处可去的时候,为何还要升级你的网络或者提供更好的服?务?

同样的现象在阻碍整个经济的发展。人们对美国经济最近的表现感到不解,其中一个便是利润和投资的脱节。利润在GDP中的占比达到创纪录的高度,而公司没有利用这些利润进行再投资。相反,它们要么在回购股票,要么在积累大量资金。如果这些创纪录的利润中的很大部分代表垄断租金,人们就会看到这种情况。

换句话说,是到了要重新担心垄断权力的时候了,其实我们本该一直如此。而回归正轨的第一步就是,对康卡斯特的收购说“不”。

马克提要求了。

2月24日,西班牙巴塞罗那。身穿深灰色T恤的马克·扎克伯格(Mark Zuckerberg),出现在全球最大的通信展MWC的开幕演讲台上。“运营商该自己选择一部分基础服务免费提供给用户。我们正试着打造一个对互联网以及运营商更好的商业模式。”他对着台下数百位媒体记者和参展商说,试图说服运营商让全球2/3未联网人口用上互联网—特别是Facebook。

这是扎克伯格和他创建的社交网络王国,第一次出现在一个被通信运营商和手机硬件厂商所主导的展会上。三星租下了这里最大的场馆,操着一口浓重英国口音的主持人站在40台平板电视组成的巨幕前做着介绍。说着各种语言的媒体和参展商人员挂着印有华为字样的胸牌,在闷热的会场里穿梭。比起CES,硬件商更加重视MWC。在扎克伯格之前,另一些互联网及软件巨头也在这里出现过,比如Google、微软和Twitter。

这位即将过30岁生日的CEO有资格提出自己的要求,马克·扎克伯格现在已经成为移动产业的领袖级人物。Facebook1月发布的财报显示,截至2013年第四季度,全球共有9.45亿用户每月通过手机使用Facebook,占这个社交网络所有用户的3/4。移动广告也随之成为Facebook最大的收入来源,占其全部广告收入的53%。

但21个月前,这个全球最大的社交网络公司刚上市时,它并不被认为是一个重要的移动服务,它当时的移动广告收入也基本可以忽略不计。

移动互联网,本来是Google的天下。

Google从2003年起就开始部署移动市场,它不仅拥有一个让手机硬件世界变平的Android系统,还在不断尝试将自己的社交网络Google+塞进每一部Android手机。在Google一手建立起的移动世界,它占据了48%的移动广告市场份额。这个操作系统所向披靡,就在这次巴塞罗那通信展上微软和诺基亚推出了Android操作系统手机—这本来应该是这次会展中最大的新闻,但因为Facebook的出现而黯然失色。

就在扎克伯格抵达西班牙前的一周,这家公司宣布以190亿美元的惊人价格收购WhatsApp,一个轻量级手机通信应用。Facebook为此支付的现金和股票约合公司市值的1/10。为了在手机上获得一个重要入口,Facebook表现得不顾一切。

nlc202309021122

Facebook通过收购WhatsApp得到的东西也很可观:它拥有4.5亿活跃用户,其中七成以上每天都用它收发消息。除信息以外,这些用户平均每天还通过WhatsApp收发超过5亿张照片、2亿条语音信息和1亿段视频。创办五年的WhatsApp正随智能手机的普及而高速增长,其用户的半数是在过去一年里加入的,并且每天新增超过100万注册用户。收购后WhatsApp将会独立存在,而不是整合进Facebook现有的通信服务。

与Google通过Android平台最大化移动广告的收益不同,Facebook的移动战略是在主应用以外推出不同的独立应用—用一些看似分散的应用及服务来构建一个生态系统。在1月底的营收电话会议上,扎克伯格提到,将成立创意实验室,并支持小团队实践自己的想法。扎克伯格说,他这么做是因为“要想连接所有人”,就意味着让他们能在不同群体里分享不同内容。

Facebook工程总监乔斯林·戈德法因(Jocelyn Goldfein)今年年初接受采访时说,她根据应用反馈的数据发现“用户打开Facebook更多会去看别人更新的照片和状态。而打开独立的消息应用则会相互用短信联系”。多应用的移动社交应用策略同样被应用于Facebook之前的收购。分享社区Instagram以10亿美元加入Facebook以后依然保持独立运作。用户每天上传大量加了滤镜的照片,唯一区别是他们可以通过Facebook帐号来登录了,并且现在可以拍视频。Facebook现在可以通过帐号关联每个用户在不同服务上的数据,更准确地判断用户的喜好,从而为广告客户提供更精确的投放。照片和视频的加入也为Facebook提供了更丰富的广告载体。在刚刚过去的一年,Facebook拿下了全球移动广告市场15.8%的市场份额,这个数字超过了市场研究公司此前12.9%的预测,位居全球第二。虽然和排在第一的Google(48.76%)仍有较大差距,但Facebook显示出惊人的增长速度。Facebook在2012年正式进入这个市场,当时份额仅为5.34%,Google为52.25%。在Android官方应用商店Play Store全球下载前5名的应用里,有3个属于Facebook,还有1个是利用Facebook网络的社交游戏。

微软也打算这么干。

就在马克·扎克伯格准备发布开场演讲的那个早上,另一群媒体记者和参观者则涌向诺基亚展厅。诺基亚还能得到如此追捧的原因是它们将发布诺基亚Android手机。新推出的三款Android手机被称为诺基亚X。该系列手机配置不高,海外售价在89至109欧元之间。它们延续了诺基亚的聚碳酸酯外壳和重视色彩的视觉设计,不论硬件配置还是产品定位都和最低端的诺基亚Windows Phone手机Lumia 520相当。

已经没有多少人感慨诺基亚的命运了,只有一位Google Android软件工程师在Twitter上嘲讽说:“记得我们刚拿出Android的时候,鲍尔默还嘲笑说Android是个永远不可能成真的笑话。”

这句话也可以用来嘲笑微软。一家打出“Windows无处不在”这句广告标语的公司去支持另一个操作系统确实有点讽刺,不过转型也不失为一种可行的策略。不管是微软还是诺基亚,都曾试图以自有的操作系统平台打败Android,经过两家公司三年的全力投入,Windows Phone平台在智能手机市场的占有率缺依然不足4%。

诺基亚前CEO、未来的微软设备业务负责人斯蒂芬·埃洛普(Stephen Elop)直白地在发布会上说诺基亚拿掉了全部的Google服务,以微软服务取而代之。X手机预装的微软服务包括Skype通信服务、OneDrive网盘、Bing搜索、Outlook. com邮件等。埃洛普承诺会继续增加更多微软服务。除了微软服务,Facebook、Twitter这两个社交网络以及BBM通信服务也被预装在X手机上。诺基亚在发布现场演示了植物大战僵尸2游戏。讽刺的是如果用户购买定位更高的Windows Phone手机,根本没法玩这个游戏。

兼容丰富的Android应用毫无疑问是X手机得以诞生的重要原因,埃洛普许诺说,诺基亚自己的应用商店会提供数以万计的应用,如果用户找不到自己想要的应用,诺基亚会自动指向第三方应用商店,比如国内的豌豆荚和东欧流行的Yandex。这款手机也将开启微软Office办公软件、Xbox Live联网游戏平台、Bing搜索等服务的潜在市场。

它们最终拥抱了Android,但同时,它们也甩掉了Google。

没人在意操作系统了,Google的打法好像突然间遇到了大问题。

Google的打法本来极其清晰,用开放的Android统一手机硬件,使得苹果iOS系统的市场份额逐渐缩小—在2013年推向市场的10亿部智能手机中,Android系统7.8亿部、iPhone1.5亿部,两个平台占据了九成以上的市场。Google希望庞大的市场占有率所产生的用户都使用Google系的应用,最终占领移动互联网。

在中国以外地区销售的Android手机都会预装十余个Google应用,包括Google地图、Play应用商店、Gmail邮件、YouTube视频、Google搜索等。这些应用延续了Google一贯的互联网产品逻辑,产品做到八成熟就发售,再根据用户反馈快速升级。当iPhone和Windows Phone的用户期待着一年一次的大变样的时候,Android用户每隔数周甚至数日就会看到Google应用越变越好。Google甚至将键盘作为一个应用独立出来快速升级,并且在中国、韩国等非拉丁语系地区推出独立的版本。

nlc202309021122

所有这些应用都没有开源,是Google的私有应用,只能在装有Google移动服务(Google Mobile Services)的设备上才能正常工作。而手机预装Google移动服务的一个基本前提是厂商不能用其他应用取代Google自己的应用。换句话说,如果手机厂商想要自己的产品使用备受用户欢迎的Google地图、或者Play商店里上百万应用的支持,就必须安装Google+、Google Newsstand新闻、Play Books电子书等不那么受欢迎的服务。第三方移动应用也需要仰赖Google的云服务,比如餐厅应用需要访问Google地图、聊天应用如果想省电就需要用到Google在2013年推出的云通信服务(GCM)。拿掉GMS就意味着开发者需要耗费更多时间。

在相当长的一段时间内,Google的控制策略被证明是行之有效的,特别是对小公司而言。一位曾参与北美业务拓展的前海豚浏览器工作人员早先在接受《第一财经周刊》采访时说:“我们没法说服运营商用我们的浏览器换掉Google的产品,它们不可能为了浏览器放弃Play商店。”

但开源的Android,最终也让硬件设备变得同质化,随着移动互联网的发展,利润中心开始向表层应用转移。

而Google一直通过预装Google应用来控制Android OEM制造商的做法,也最终让这个问题显现出来。

因为任何一个使用Android系统的厂商都可以拒绝预装Google应用。

最初是亚马逊。

2011年发布的7英寸平板Kindle Fire是Android设备中的异类。199美元的定价甚至比华为等中国厂商同期的产品定价更低。比价格更重要的是,不管亚马逊创始人杰夫·贝索斯在发布会上的演讲还是官方产品介绍,都不说平板用了Android操作系统,只说自己的平板可以运行Android应用。

Kindle Fire的操作系统被亚马逊称为Fire OS。官方介绍是:“源自Android,增加了亚马逊独有的服务。”点亮Kindle Fire的屏幕,你首先看到的是自己之前看过的书和电影、听的音乐、用过的应用。所有的Google服务都被取代。Kindle阅读器取代了Play Books和Play Newsstand、亚马逊Instant Video取代了Play视频。在自身不足的服务上,亚马逊选择与其他公司合作,因此你可以在Kindle Fire上看到来自诺基亚的地图数据、来自微软的Bing搜索。

不过亚马逊付出最大的还是它的应用商店Amazon App Store。为了让第三方应用开发者更愿意支持自己的平台,亚马逊一方面在云端搭建了自己的推送服务、游戏后台,另一方面还启用了近乎疯狂地促销活动—每天将一款付费应用免费提供给Kindle Fire用户。

根据IDC公布的数字,亚马逊去年第四季度共售出580万部Kindle Fire平板,占市场份额的7.6%,成为仅次于苹果和三星的平板供应商。伴随硬件产品的成长,Amazon App Store也已经成为开发者,特别是付费应用开发者认真考虑的渠道。去年4月,移动应用信息追踪平台Distimo在对美国市场数百个移动应用的下载数据进行追踪后发现,Google Play Store的规模在美国大约为Amazon App Store的9倍。但付费应用的情况大不相同。两个商店排名前1000名的付费应用下载数量,Google Play Store只有亚马逊的两倍。如果按营收金额来计算,Google只有1.7倍。

“亚马逊有超过2亿绑定了信用卡支付的账户,这使得它的用户平均付费高于Google的用户。”VisionMobile创始人康斯坦丁努告诉《第一财经周刊》。

Kindle Fire为亚马逊提供了丰厚的回报,根据Consumer Intelligence Research Partners去年年底公布的一份研究,Kindle Fire用户一年平均在Amazon网站上的消费1223美元,比非Kindle Fire用户高出50%。

“既然亚马逊可以订制Android来驱动生态圈,微软/诺基亚就没有任何理由做不到。”移动产业分析公司IHS Suppli分析师伊恩·福格(Ian Fogg)认为,X手机的成败更多取决于微软的支持力度。

“我们内部打赌猜,最后到底是新Android卖得好,还是Lumia 520卖得好。”一位诺基亚市场部的工作人员告诉《第一财经周刊》。被微软收购前的最后一季财报里,诺基亚称最便宜的Windows Phone Lumia 520是其智能手机业务的主要增长来源。

他未来的同事,负责Windows Phone系统的微软员工无疑也会考虑同一个问题。就在X系列手机发布前一天,微软召开了一场小型发布会。负责Windows Phone业务的副总裁乔·贝尔菲奥利(Joe Belfiore)宣布说微软将降低Windows Phone操作系统对手机硬件的要求、支持中国和东南亚市场热衷的双SIM卡设计,并宣布与金立、富士康、中兴、华为、联想等公司建立合作关系,不过这些公司并没有公布具体的产品计划。他们在移动世界大会的展馆所展出的也都是Android手机。

“诺基亚的一些举动让我们兴奋不已,但另外一些就不那么让人兴奋了。”贝尔菲奥利在发布会上回应诺基亚即将推出Android手机的消息。微软不同团队间针锋相对的形式作风显露无疑。

埃洛普仍强调说Windows Phone依然是诺基亚和微软最主要的智能手机,X手机只是定位低端。但现实是Windows Phone最成功的产品就是低端的Lumia 520系列,定价与X手机差距不大。换句话说,X手机与Windows Phone唯一有起色的产品直接冲突。但早已知情的微软最高管理层并未试图砍掉X手机。消息宣布当月,时任微软CEO史蒂夫·鲍尔默(Steve Ballmer)来到北京,和诺基亚低端产品线的研发人员开了一系列会议,X手机正是其最主要的未来项目。

有权决定是否砍掉X手机的埃洛普将在收购完成后主管微软的硬件业务,是微软四个最重要的研发团队负责人之一,未来将直接向微软CEO汇报。熟悉发布会准备工作的一位诺基亚工作人员告诉《第一财经周刊》,由于不能确定收购完成时间,他们为发布会准备了两套标识,一套微软、一套诺基亚。如果不是因为收购在中国和印度受阻,这三款手机本将以微软的名义发布。

所有人都在用Android系统,但Google面临的麻烦还远不止于此。

Facebook在移动广告业务上的突飞猛进证明绕过操作系统的层级—各种跟系统结合紧密的服务及应用成为未来竞争制高点—这还只是一个开始。

把强大的云服务落在移动生态圈上,这可能是更严峻的竞争。

技术新闻网站Re/Code报道称亚马逊计划在今年3月推出基于Android开发的电视盒子,将亚马逊的在线电影和电视剧投放到用户的电视上。同时亚马逊也在积极扩张自己的研发力量。过去两年里,负责Kindle Fire平板研发的亚马逊子公司Lab126多次派招聘团队前往芬兰招聘工程师。

至少数十位曾在诺基亚参与智能手机软件或硬件研发的工程师加入Lab126。整个Lab126有上千人在硅谷,大部分在进行Android相关的软件和硬件研发,一位熟悉情况的工程师告诉《第一财经周刊》。大部分Android手机厂商都没有如此规模的研发力量。

去年4月,亚马逊以2600万美元收购智能语音助手应用Evi,它的功能与苹果的Siri语音助手相近,更适合随身携带的手机而非平板电脑。早先亚马逊还曾收购过一家名为Ivona的语音识别公司。这一切都让《华尔街日报》去年关于亚马逊正在开发两款智能手机的消息变得更为可信。

上月刚刚取代鲍尔默的新CEO萨提亚·纳德拉(Satya Nadella)是一位愿意为在线服务牺牲眼前利益的管理者。他在管理微软云计算业务时曾放开技术限制,支持与微软自生业务直接冲突的开源操作系统、开发工具和数据库。

在一个碎片化的Android战场上,Facebook、微软和亚马逊对Google的挑战已经开始了。

Android测试 篇4

星云测试使软件测试从过度依赖人工记录、 验证, 转换为机器智能的全过程精准、 可视、 数字化的全新检 测模式云平台在用户手动点击被测试应用的同时, 快速判断执行逻辑、 实施同步运算和分析, 给出被测试应用的质量诊断报告例如测试过程中的关键模块漏测分析、 测试充分度度量、 代码静态质量分析以及崩溃的白盒级的捕获和分析等。 如果对测试结果有所质疑, 可以使用客户端的代码覆盖率可视化功能, 直接验证相关结果。 另外, 星云测试的所有数据都可以在版本中穿越, 所有的数据分析结果都特别考虑了迭代中版本对于数据的聚合需求, 如同专为互联网应用快速迭代的特性而设计的。

星云测试平台独特的云+客户端的 模式 , 杜绝了代 码外泄的 可能 。 星云测试 客户端中 具有国家 发明专利 的示波器 是一个很 有创意的 组件 , 就像用户 数据防护 堤一样 , 用户在星 云测试的 客户端完 成测试后 , 示波器负 责向平台 传递结构 数据和质 量相关分 析性数据 , 平台负责 出具相关 数据分析 报告 。 示波器内 部的设计 可以保证 程序分析 数据和代 码未来可以在用户的开发环境下进行链接, 去除了测试过程中源码等敏感信息的必要性, 因此云平台中无须存储任何用户的源 码信息 , 而代码等 均被示波 器完美保 护在用户 本地客户 端中 。 因此 , 从根本上 解决了用 户使用云 测试的最 大担忧。

星云测试随时随地响应用户的测试需求。 无论用户在哪里进行测试, 是否更换了测试用的PC和测试设备, 最新的数据都会从云上同步到本地, 保持测试数据连贯性和一致性。

星云测试 平台的使 用流程非 常简单 。 用户只要 在星云测 试上注册 、 开通后 , 星云测试 会基于云 计算平台 , 自动部署 云测试系 统 、 分配独立 的服务器 设备提供 服务 , 保证用户 数据的安 全 。 用户收到 云访问地 址和用户 名 , 密码等关 键信息后 , 即可使用 客户端和 浏览器进 行测试和 相关数据分析。

星云测试 支持多种 模式和移 动设备进 行通信 , 如USB Wifi以及蓝牙。 另外, 客户端中的示波器组件支持支持后链接模式, 在接收测试数据的过程中无须应用程序的代码, 因此它非常适合一些必须在户外进行的移动测试。 如车联网系统运动手环, 移动医疗等设备中的应用程序。

星云测试能够提供高度受信的软件质量评估报告, 因此成为第三方公正的软件验收平台、 为软件从业人员减轻负担是它与生俱来的使命。

Android测试 篇5

< manifest xmlns:android =“schemas.android.com/apk/res/android”

package =“cn.ycmoon.test.activity” android:versionCode =“1”

android:versionName =“1.0” >

< uses-sdk android:minSdkVersion =“8” />

< application android:icon =“@drawable/icon” android:label=“@string/app_name” >

< uses-library android:name =“android.test.runner” />

< activity android:name =“.MainActivity” android:label=“@string/app_name” >

< intent-filter >

< action android:name =“android.intent.action.MAIN” />

< category android:name =“android.intent.category.LAUNCHER” />

< instrumentation android:name =“android.test.InstrumentationTestRunner”

android:targetPackage =“cn.ycmoon.test.activity” android:label=“Testing” />

说明:1、在Application节点中Activity前添加

2、在Application节点的添加

二、在相应包中编写要完方法,

三、在src同级级目录中添加一个test文件夹[可自定义],并在下建立和项目一致的包名: cn.ycmoon.test.activity

四、在要进行单元测试的方法上右键->NEW->JUNIT Test Case,

Android 单元测试方法与步骤

弹出下界面:

选择 SuperClass为: 点击下一步,选择要测试的方法: 点击完成。

将新产生的单元测试的类放入test/项目包名下。

在单元测试方法中添加实现: 展开test/cn.ycmoon.test.activity下单元测试类,选择要测试的方法,点右键,选择Run As->Android JUnit Test,就会打开单元测试结果界面。

Android测试 篇6

智能移动设备的普及和Android、iOS等系统的快速发展,促进了移动应用市场的发展。高质量的软件离不开测试,目前移动平台下的测试仍以手工测试为主,而移动应用技术的发展和用户体验提升对软件质量的要求越来越高,对相关测试技术提出了新的要求。 目前,Android已占据全球智能手机操作系统市场份额的首位,但相比iOS有规律的软件版本和硬件升级,Android存在碎片化问题。Android应用需要经过多设备反复测试,提高测试效率是移动应用测试亟需解决的问题。

软件测试可分为单元测试、集成测试、系统测试(包括确认测试、功能测试、性能测试、回归测试等)以及验收测试。目前,针对Android应用的测试技术主要有:

(1)单元测试。xUnit系列的开源框架是目前主流的单元测试框架。Android平台整合了JUnit测试框架和Instrumentation机制,可针对某个应用进行单元测试[1,2,3]。

(2)集成测试。 使用开源的Robotium[3,4]可以完成Android下的自动化集成测试,提供了各种模拟手势操作(点击、长按、滑动等),以及一些查找和断言机制的API,对各种控件进行操作,可结合Android官方提供的测试框架实现应用程序自动化测试。Robotium支持Android中的Activity、Dialog、Toast、Menu。但Robotium有签名限制,无法对跨APP或使用了签名加密的应用进行测试。

(3)系统测试。MonkeyRunner和Monkey[2,5]是An-droid自带的用于黑盒测试的工具。MonkeyRunner工具可用于系统功能测试和回归测试,通过MonkeyRunner可以解释指定的Python程序,对Android应用程序执行一系列操作,例如运行、发送模拟击键,截取、保存用户界面图片等。Monkey则是Android自带负载的测试工具,多用于性能测试,可在Android下完成一定的随机压力测试。

(4)UI测试。UI测试[6]也是Android的一项重要测试,现有工具有UiAutomator、Appium等。在应用上线前还需要组织兼容性测试[2]。目前,一些企业提供了多种机型的移动应用云测试服务[6],国内较著名的有Testin、中国移动MM社区终端池、百度移动云测试中心等。

此外,Android还提供了一些辅助工具,用于控制测试设备及监控测试系统的状态,例如adb、DDMS、logcat等。上述工具与框架已在移动应用领域有一定范围的应用,但Instrumentation、Robotium、UiAutomator等工具对连接的设备有限制,每次只能连接一台设备,如在多设备上测试,需要多次连接,给测试带来一定不便,影响测试效率。

2 多设备自动化测试实现

本文提出一种实现多设备自动化测试的方案,使测试依次在多个已连接的设备上运行,从而提高测试效率,该方案从Android自带的MonkeyRunner着手,容易实现。测试前需搭建环境,将Android应用程序要运行的设备连接到服务器,被测设备可以是真机设备,也可以是通过Android SDK启动并连接的虚拟机。

2.1 MonkeyRunner框架

Monkeyrunner[7]是一个Python语言解释器,Mon-keyrunner逐行解释使用Python编写的测试脚本,执行对应操作。MonkeyRunner基于Jython,Jython是运行在Ja-va平台上的Python解释器,可以直接将Python代码编译成Java字节码执行。Jython实际上是Python语言在Java中的一种完全实现。Jython有很多优点,可以和Java实现无缝集成,可以直接访问所有有效的Java类,用户界面可以使用Swing、AWT或SWT等。使用MonkeyRunner测试时,可根据需要灵活调用所有的Java库及Python库。MonkeyRunnerAPI在com.android.monkeyrunner包中,包含MonkeyRunner、MonkeyDevice和MonkeyImage等模块。常用模块及说明如下:

(1)MonkeyRunner。提供工具方法的类,提供用于连接设备或模拟器的方法waitForConnection,常用的有sleep等。

(2)MonkeyDevice。表示一个设备或模拟器,提供安装和卸载程序包的方法、启动活动的方法,发送键盘或触摸事件等。

(3)MonkeyImage。表示一个截图对象,提供截图,将位图转换成其它格式,比较两个MonkeyImage对象以及写图像到文件的方法。使用MonkeyRunner框架实现测试的步骤如图1所示。

MonkeyRunner提供录制与回放功能。 MonkeyRe-corder是MonkeyRunner提供的用于录制的模块。from…import语句用于导入所需要的模块。录制所用的脚本monkey_recorder.py关键代码如下:

打开录制界面后,在右侧会自动生成录制脚本。其中,Tap表示脚本记录在屏幕上的点击操作,Type表示输入操作,Wait表示等待。录完一个脚本后,将其保存为.mr文件,通过Export Actions进行保存。

录制成功后,可使用回放脚本monkey_playback.py重现之前录制的测试。monkey_playback.py的关键代码如下:

将录制和回放使用的脚本monkey_playback.py放在某个文件夹中,例如E盘根目录下。重置测试环境后,使用回放脚本monkey_playback.py即可进行脚本回放。

2.2 连接多设备的自动化测试

通过如下脚本代码可实现多设备连接(#后的内容为注释):

通过MonkeyRunner的waitForConnection方法,并指定设备名,可以同时连接并控制多个设备(包括虚拟设备和真机),通过MonkeyDevice提供的方法,进行程序安装、卸载、启动等操作。如要控制更多设备,可以模仿前述方法增加waitForConnection语句,并修改脚本。

3 实例分析

采用数组形式加入更多设备,使测试更高效。以测试Android自带的计算器为例,编写测试脚本,关键代码及注释如下:

如有更多需控制的设备,只需在前面相应添加Mon-keyRunner.waitForConnection即可,而不需要改动程序。运行脚本,即可观察到脚本依次在所有已连接的虚拟机上执行。运行结束后,在文件夹E:takeSnapshot下可以查看所有设备上运行结果的截图。

4 结语

本文根据Android应用测试需求,提出了一种在An-droid测试中实现多设备控制及自动测试的方案。从An-droid的测试框架MonkeyRunner入手,通过脚本实现同时连接多设备并自动在这些设备上运行测试,具有很强的可操作性和实用性,可大大提高测试效率,缩短项目周期,减少人工干预,还能在测试过程中通过脚本自动保存、分析截图。本文方法广泛适用于Android应用程序的自动化功能测试及回归测试,大大增强了测试用例的可重用性。

摘要:在测试Android应用时,通过MonkeyRunner框架及开发相关脚本,可实现脚本录制、多设备连接、自动执行测试、自动保存截图及对比等功能,提高测试用例的复用性,并有效减少Android碎片化带来的重复、繁琐的手工测试,使Android应用测试更高效。

关键词:安卓,自动化测试,多设备,MonkeyRunner,Python

参考文献

[1] 谢红霞,吴红梅.基于Android的自动化测试的设计与实现[J].计算机时代,2012(2):20-22.

[2] 杨丰盛.Android自动化测试之道[J].程序员,2011(4):112-114.

[3] 宋春雨.Android平台自动化测试的研究与实践[D].北京:北京邮电大学,2012.

[4] Robotium-google project hosting[EB/OL].http://code.google.com/p/robotium/,2013-04-07.

[5] 陈昊.Android手机自动化测试系统的设计与实现[D].西安:西安电子科技大学,2014.

[6] 张立芬,周悦,郭振.Android移动应用测试[J].中国新通信,2013(3):84-86.

Android测试 篇7

一个应用程序可以包含若干个Activity。可以让某个Activity对象使用Intent对象来启动其它的Activity对象。

2 Intent类的一个构造方法

Intent(Context packge Context,Class<?cls):该构造方法的参数packge Context是当前应用程序所在的上下文,参数cls是打算启动的Activity对象的类的名字。

例如:

假设,已经有如下类的声明:

class Calculator extends Activity

class Main Calculator extends Activity

那么,下面这条语句

Intent intent=new Intent(this,Main Calculator.class);

作用是:当前类的对象(Calculator类的当前对象this),打算启动的Activity对象的类的名字是Main Calculator。

接下来的语句

start Activity(intent);

作用是:实现两个Activity之间的切换。从当前的Activity,启动另外一个Activity,即Main Calculator。

3一个Activity对象使用Intent对象来启动另一个Activity对象的实例

【例1】在Android中实现简单的计算能力测试系统。计算随机给出的两位数的加减法算术题,要求用户回答,答对的提示“正确”,答错的提示“错误”。随时给出答题的正确率。

(1)第一个Activity的相关程序,文件Calculator.java:

(2)第二个Activity的相关程序,文件Main Calculator.java:

(3)配置文件Android Manifest.xml,在</application>之前,新增加Activity语句如下:

单击图1的“欢迎测试”按钮,出现的第二个Activity的初始界面如图2所示。

第二个Activity,单击“出题”按钮,输入运算结果,然后单击“判断”按钮,运行结果如图3所示。

4结束语

通过学习Android中Intent类的构造方法,我们可以使用Intent类的构造方法来创建Intent类的对象,实现同一个应用程序中多个Activity对象的切换,从而实现更多的功能。

这个简单的计算能力测试系统的界面welcome.xml和test.xml比较简单,在这里就不介绍了。另外,这个系统还可以扩展,实现乘、除等计算功能。限于篇幅,不再详细讲解了。

摘要:介绍了Android中Intent类的一个构造方法,使用这个构造方法来创建Intent类的对象,实现同一个应用程序中多个Activity对象的切换,从而实现更多的功能。

关键词:计算,测试,Android,Activity,Intent

参考文献

[1]耿祥义,张跃平.Android手机程序设计实用教程[M].北京:清华大学出版社,2013.

[2]李刚.疯狂Android讲义[M].北京:电子工业出版社,2013.

上一篇:膨胀材料下一篇:专科护理教学