当前位置:文档之家› 面向android系统的测试工具

面向android系统的测试工具

面向android系统的测试工具
面向android系统的测试工具

毕业论文(设计)

面向android系统的测试工具

学生姓名:于冬敏

指导教师:陈高泉讲师专业名称:电子信息工程所在学院:信息工程学院

2012年06月

目录

摘要............................................................................................................................................ I Abstract......................................................................................... 错误!未定义书签。第1章绪论 . (1)

1.1. 课题背景 (1)

1.2. 课题说明 (1)

第2章Android开发系统综述 (3)

2.1. android系统介绍 (3)

2.2. 开发环境介绍 (5)

2.3. 开发语言介绍 (7)

第3章测试工具介绍 (9)

3.1. 测试工具结构介绍 (9)

3.2. 测试工具中Service介绍 (12)

第4章总体设计 (22)

4.1. 概述 (22)

4.2. 构成 (23)

第5章设计思想 (24)

5.1. 设计思想概述 (24)

5.2. 设计原则 (25)

第6章结论. (35)

致谢 (35)

参考文献 (36)

附录 (38)

摘要

基于Android 的自动化测试的设计与实现以Android 客户端的测试为研究内容,分析了Android 自动化测试框架及其层次关系,尝试在现有测试方法的基础上进行测试手段的优化和创新。研究了基于JUnit 和instrumentaion 的Android 自动化框架的实现技术,并利用Hudson 进行集成,实现Android 的自动化测试。产品的开发实践表明, 这种自动化测试方法效率高、用户体验好, 对于Android 的自动化测试研究具有一定参考价值。Android应用程序使用Java做为开发语言,把编译后的Java代码连同其它应用程序需要的数据和资源文件一起打包到一个Android包文件中,这个文件使用.apk做为扩展名,它是分发应用程序并安装到移动设备的媒介,用户只需下载并安装此文件到他们的设备。单一.apk文件中的所有代码被认为是一个应用程序。

关键词:关键词:测试自动化;Android;设计

Abstract

This paper focuses on testing of Android clients. The authors analyze the Android automated testing framework and its hierarchy. The implementation is based on two automated testing framework of Android platform: JUnit and instrumentation. The purpose of this article is to propose an optimized test method. Making use of the continuous integration features of Hudson, the real sense of automated testing can be achieved. It shows that this automated testing method improves efficiency and enhances user experience in some extent. This research will have values for automated testing of Android.Android applications are written in the Java programming language. The Android SDK tools compile the code—along with any data and resource files—into an Android package, an archive file with an .apk suffix. All the code in a single .apk file is considered to be one application and is the file that Android-powered devices use to install the application.

Key words:automated testing;Android;mobile phone;design

第1章绪论

1.1.课题背景

作为20世纪最伟大的发明之一,计算机也进入了后PC时代。不知不觉中,形形色色的数字产品成为主要的信息处理工具、并且逐步形成一个充满商机的巨大产业。

随着后PC时代的到来,人们开始接触全新的计算机软件,计算及操作系统。Android系统的开源,为计算机产品的生产商们又一次创造了商机,越来越多的人开始知道Android,认识Android,开始使用Android,这样也就使得Android产品走进了一个美好的时代,而Android产品程序的测试也被生产商们开始慢慢的拿到了日程上,这关系到他们生产过程中能否更多的节约时间金钱。

此次设计通过对Android系统测试工具的开发,可以掌握Android系统软件开发的基本技术、例如Android的用户界面设计,Android进程间的通信,以及我们采用的Java语言等。既可以用于国内的软件开发、又可在将来的实际工作中的对日产品开发中有所助益。

1.2.课题说明

1.2.1.设计要求

Android模拟器,Java语言,Eclipse开发环境。能理解、掌握Android软件开发的基本知识。

1.2.2.设计内容

评价逻辑的手动设定,而后会自动执行,Sevice部分解决,实现AP与测试工具的种种通信与联系,自动评价用Adapter层。

1.2.3.实现方法

⑴在PC机上,利用Eclipse的开发软件,编写程序代码,并进行编译代码以及对代码进行调试,编译调试成功后,再利用Android模拟器来初步的模拟运行。测试工具要实现的部分除了测试相关代码外,还有与AP进行调用的部分,主要是需要给AP提供相关的接口。

(2)以下是测试工具的结构图,其中蓝色字体为需要改动或是添加的部分。

第2章Android系统开发综述

2.1.Android系统介绍

Android是一个智能手机及便携设备操作系统,中文名安卓、安致。由Google在2007年推出,并迅速成为智能手机的主流操作系统。

下图为Android创始开发者合影:

Android是一个冉冉升起的新系统,仅用2年时间就从零到市场巨擘。而nokia用了12年,apple用了5年.截止到2010年第四季度,在全球智能手机市场安卓已经完成对于nokia及apple的超越,同时增长速度也是远远超过其他对手。

以下两个表是Android发展的相关数据调查:

2.1.1.系统开放性

在优势方面,Android平台首先就是其开放性,开放的平台允android系统标志。

许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机

2.1.2.挣脱运行商的束缚

在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。

2.1.3丰富的硬件选择

这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。

2.1.4不受任何限制的开发商

Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。为未来的软件行业做出非凡的成就。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。也是留给软件行业的,社会的难题。

2.2.开发环境介绍

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发。

Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。Eclipse的基础是富客户机平台(Rich Client Platform, 即RCP)。RCP包括下列组件:核心平台(启动Eclipse,运行插件)

OSGi(标准集束框架)

SWT(可移植构件工具包)

JFace(文件缓冲,文本处理,文本编辑器)

Eclipse工作台(即Workbench ,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards))

Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。

Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API (SWT/Jface),Java开发环境插件(JDT ),插件开发环境(PDE)等。

Eclipse由各种不同的计划组成。以下列出了部分计划。

Eclipse计划:本身包括Eclipse平台,Eclipse富客户端平台(RCP)和Java开发工具(JDT)。

Eclipse测试和性能工具平台(TPTP):提供一个允许软件开发者构建诸如测试调试、概况分析、基准评测等测试和性能工具的平台。

Eclipse Web工具平台计划(WTP):用Java企业版Web应用程序开发工具来扩展Eclipse平台。它由以下部分组成:HTML、JavaScript、CSS、JSP、SQL、XML、DTD、XSD和WSDL的源代码编辑器;XSD和WSDL的图形界面编辑器;Java企业版的“项目性质”(project nature)、建构器(builder)和模型(model),与一个Java 企业版的导航(navigator);一个Web服务(Web service)向导和浏览器,还有一个WS-I测试工具;最后是数据库访问查询的工具与模型。

Eclipse商业智能和报表工具计划(BIRT):提供Web应用程序(特别是基于Java企业版的)的报表开发工具。

Eclipse可视化界面编辑器计划(VEP):一个Eclipse下创建图形用户界面代码生成器的框架。

Eclipse建模框架(EMF):依据使用XMI描述的建模规格,生成结构化数据模型的工具和其他应用程序的代码。

图形化编辑器框架(GEF):能让开发者采用一个现成的应用程序模型来轻松地创建。UML2:Eclipse平台下的一个UML 2.0元模型的实现,用以支持建模工具的开发。AspectJ:一种针对Java的面向侧面语言扩展。

Eclipse通讯框架(ECF):专注于在Eclipse平台上创建通讯应用程序的工作。

Eclipse数据工具平台计划(DTP)

Eclipse设备驱动软件开发计划(DSDP)

C/C++开发工具计划(CDT):努力为Eclipse平台提供一个全功能集成开发器。Eclipse平台COBOL集成开发环境子计划(COBOL):将构建一个Eclipse平台上的全功能COBOL集成开发环境。

并行工具平台(PTP):将开发一个对并行计算机架构下的一组工具进行集成工具。

嵌入式富客户端平台(eRCP):计划将Eclipse富客户端平台扩展到嵌入式设备上。这个平台主要是一个富客户端平台(RCP)组件子集的集合。它能让桌面环境下的应用程序模型能够大致同样地能运用在嵌入式设备上

2.3.开发语言介绍

Java最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。

Java 编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继承了C++ 语言面向对象技术的核心,Java舍弃了 C ++语言中容易引起错误的

指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java 程序的运行效率。但在J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。与传统程序不同,Sun 公司在推出Java 之际就将其作为一种开放的技术。全球数以万计的Java 开发公司被要求所设计的Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java 平台是基于Java 语言的平台。这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿Java 的C#语言。

第3章测试工具介绍

3.1.测试工具结构介绍

Android自动化测试目前可借鉴的经验不多,现在采取的方式就是通过java代码对Activity和View进行操作,目前已知的入口是Instrumentation类。

Instrumentation与Activity均位于android.app包下,这个包内还有诸如ActivityManagerNative这种不对App层开放的类,通过查看Android源码发现Activity类中诸如startActivity(Intent intent)这样重要的方法都是通过Instrumentation实现,Instrumentation中也提供了一系列对Activity生命周期控制的方法。以Instrumentation为基础,Android SDK在Junit基础上进行了扩展,提供了AndroidTestCase类及系列子类,其中最重要的一个类是ActivityInstrumentationTestCase2

基于Instrumentation的测试框架的工作原理SDK中的这张图说明的很清楚了:

研究Android源码发现框架层中有很多对测试有帮助的类、方法都被加上了注解或是声明为private的,无法从app层访问。自然而然我们想到了java的反射机制,java反射允许我们访问这样的类和方法。

在上面的基础上,国外有人开发出了robot/" target="_blank" >Robotium工具,可以在有app源码或apk的情况下进行自动化黑盒测试。

但是Robotium目前的缺点也很明显,无法对WebView进行操作,这对大量使用WebView的淘宝Android客户端来说无疑是很大的限制。

而且Robotium提供的API是面向过程的,测试代码的可扩展性差。

我们需要一个面向对象的,可对WebView进行操作的自动化测试框架,这就催生了TMTS(Taobao Mobile Test Studio)框架。

TMTS立项时还试图着重解决另一个问题,就是Instrumentation框架下testapp和app 运行在一个进程中,app crash会导致testapp一并crash。当时和士敦一起研究了Instrumentation、Activity的启动流程,甚至想去研究一下dalvik是如何解析Manifest文件的,最后也没有想到好的方法,收获就是了解了android更底层一些的细节,这个问题现在先搁置了起来。

从测试代码方面来看,Robotium中采用的是actionMethod(View,arg)的方式,TMTS中采用getView(id).actionMethod(arg)的方式,更加符合java的编程习惯。TMTS测试代码的编写也就是分三步,找到View,调用View的相应的action方法,断言。

TMTS框架主要思想就是通过反射机制调用Android框架层API拿到当前Activity的所有View,在此基础上返回需要获得的View对象,对获得的View通过Instrumentation 封装一些此View常用的操作,最后返回,这就是TmtsView及其子类。

这种方式缺点也很明显,对每个从android.View继承来的子类,如果其中有特殊的操作,就需要封装出一个对应的TmtsView子类。

还有一个缺点就是目前是通过View在布局文件中声明的id去寻找,这样测试人员在编写代码时需要对app的源码非常熟悉,了解当前操作的view的id是多少,在传递id参数时还有可能写错。之后我们对这个方式进行了一些改进,使用SDK自带的hierarchyviewer工具获得view的id;对每个布局文件进行解析生成java类,这个类中会提供方法返回布局文件中的所有带id的view,经过讨论,最后按view子类型来对一个布局中的view进行归类。

Bug的定位离不开日志,因而日志系统也是一个测试框架重要的组成部分,Android 的Log类中提供了一系列的静态方法可以在IDE中打印日志。在TMTS中,提供TmtsLog类,除日志打印外可将日志内容实时保存至SD卡指定目录,在框架代码中的关键部位都加上了这样的日志用来保存异常时的调用栈信息,用户的测试代码中也可以加上对TmtsLog的调用跟踪测试代码执行进度,TmtsLog将为每个测试类保存一份这样的日志文件,同时包含用户的过程日志和框架异常日志,文件名以精确到毫秒的日期加以区分。

项目做到这里远远没有结束,套用屈原的一句话就是路漫漫其修远兮。

后面计划解决的问题有:

1.跨进程测试,让testapp和app运行在两个不同的进程中,这是一个大坑。

2.稳定性问题,目前框架中有很多地方硬编码Thread.sleep()去等待一个View加载完成,避免对空的View进行操作,或者是对一个view进行set操作后,也需要等待一段时

间让操作生效。希望能找到一种回调机制优雅的解决。

而且Robotium提供的API是面向过程的,测试代码的可扩展性差。

我们需要一个面向对象的,可对WebView进行操作的自动化测试框架,这就催生了TMTS(Taobao Mobile Test Studio)框架。

TMTS立项时还试图着重解决另一个问题,就是Instrumentation框架下testapp和app 运行在一个进程中,app crash会导致testapp一并crash。当时和士敦一起研究了Instrumentation、Activity的启动流程,甚至想去研究一下dalvik是如何解析Manifest文件的,最后也没有想到好的方法,收获就是了解了android更底层一些的细节,这个问题现在先搁置了起来。

从测试代码方面来看,Robotium中采用的是actionMethod(View,arg)的方式,TMTS中采用getView(id).actionMethod(arg)的方式,更加符合java的编程习惯。TMTS测试代码的编写也就是分三步,找到View,调用View的相应的action方法,断言。

TMTS框架主要思想就是通过反射机制调用Android框架层API拿到当前Activity的所有View,在此基础上返回需要获得的View对象,对获得的View通过Instrumentation 封装一些此View常用的操作,最后返回,这就是TmtsView及其子类。

这种方式缺点也很明显,对每个从android.View继承来的子类,如果其中有特殊的操作,就需要封装出一个对应的TmtsView子类。

项目做到这里远远没有结束,套用屈原的一句话就是路漫漫其修远兮。后面计划解决的问题有:

1.跨进程测试

让testapp和app运行在两个不同的进程中,这是一个大坑。

2.稳定性问题

目前框架中有很多地方硬编码Thread.sleep()去等待一个View加载完成,避免对空的View进行操作,或者是对一个view进行set操作后,也需要等待一段时间让操作生效。希望能找到一种回调机制优雅的解决。

3.设法捕获Toast消息

后面可能会研究的方向,是通过非java的方式来实现android自动化测试。Android 目前已经通过ASE(Android Scripting Environment)支持了多种脚本语言,如phyton,lua,perl等,限于目前的人力还没有时间来研究这一块,相信ASE会给Android自动化开辟一片新天地。

最后谈一点点感悟,老子曾经曰过:“持而盈之,不如其已;揣而锐之,不可长保。金

玉满堂,莫之能守;富贵而骄,自遗其咎。”和“重为轻根,静为躁君。”第一句话说有缺陷才是真正的完美,没有一个方案是真正完美的。第二句话说有时候看起来完美的方案,过段时间之后又不适用了,而且不适用的地方很可能就是当初觉得完美的地方,对于软件项目解决方案也是如此。

Android是一种基于Linux的自由及开放源代码的操作系统

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。 中文名:安卓 外文名:Android 开发商:Google、开放手持设备联盟 发行商:Google 发行时间:2008年9月23日 编程语 言: C/C++(底层)Java等(应用 层) 系统家 族: 类Unix,Linux 源码模 式: 自由及开放源代码软件 内核类 型: 宏内核(Linux内核) 软件许 可: Apache License, GPL等 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。 Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发 表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。 Android的Logo是由Ascender公司设计的。其中的文字使用了Ascender公司专门制作的 称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜 色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌 象徵。有时候,它们还会使用纯文字的Logo。 2012年7月美国科技博客网站BusinessInsider评选出二十一世纪十款最重要电子产品,Android操作系统和iPhone等榜上有名。

android自动化测试之道

Android自动化测试之道 文/杨丰盛 随着越来越多的手机厂商、运营商、开发商加入android阵营,带来了各种美化和定制的android系统,同时android market应用数量增长迅速。这都离不开测试,android 自动化测试的需求愈加迫切。 测试主要分为白盒测试和黑盒测试两大类。Android虽然在测试方面还不够完善,但也提供了各种途径来完成相应的测试模块。白盒测试通常需要配合软件的源码来进行,测试人员须根据产品的功能和性能等需求编写测试用例,并根据测试用例逐一进行测试。这里我们主要探讨在没有源码的情况下如何进行黑盒测试。既然没有源码,那么我们就需要使用android所提供的工具包来获取应用程序上的各种UI元素,并向其发送各种操作事项。此外,我们还可以借助各种开源项目,比如ASE等。下面分别介绍几种目前最可行的自动化测试解决方案。 Android兼容性测试 Android的各个版本之间都有不同程度的差异,因此google专门针对各个版本(android2.1以上)提供了兼容性测试工具CTS(compatibility test suite),其中共有两万多个测试用例,包括功能测试和性能测试等。CTS最初只对OHA联盟开放,后来便和android开源项目一起发布了,并且所有手持设备都必须通过android兼容性测试,才能确保在android上开发的应用程序能够在android设备上运行,才能使用android market。 要使用CTS进行兼容性测试,就必须先下载和编译CTS,下载方式可以选择下载完整的android源码(位于$ANDROID/cts目录中)和只下载CTS源码(注:CTS源码下载地址为git://https://www.doczj.com/doc/7b12799296.html,/platform/cts.git);然后可以使用如下命令来编译CTS: //配置选项 $ build/envsetup.sh //编译cts $ make cts 编译完成之后会将结果输出到“$ANDROID/out/host/linux-x86/”目录中,然后可以启动模拟器或手持设备(需使用root权限来操作),并进入其bin目录。使用“./cts” 命令来启动CTS测试,显示CTS测试版本和设备连接状态,这时可以输入“help”命令来查看CTS的操作帮助信息。 如果输入“ls--plan”命令可以查看所有的plan(注:plan文件夹为cts/android-cts/repository/plans),在其中可以看到8个测试基类,比如android.xml、appsecurity.xml、CTS.xml等。其中所有基类里包含的package都给出了相应的uri,cts 将根据这些uri去测试每个基类里的package,可以输入如下一些命令来测试某些

Android期末测试题(附带答案)

一、选择题 1、下列哪项不是Android四大组件( C ) A.Seivice B. Activity C. Handler D. Content Provider 2、Android是如何组织Activity的( B ) A.以堆的方式组织Activity B. 以栈的方式组织Activity C. 以树形方式组织Activity D. 以链式方式组织Activity 3、关于线程说法不正确的是( B ) A. 在 android 中,我们可以在主线程中,创建一个新的线程 B. 在创建的新线程中,它可以操作 UI 组件 C. 新线程可以和 Handler 共同使用 D. 创建的 Handler 对象,它隶属于创建它的线程 4、下列关于内存回收的说明,哪个是正确的(B ) A.程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 5、设置xml布局文件中的字体大小一般用什么单位( c ) A.dp B. px C. sp D. pt 6、关于service生命周期的onCreate()和onStart()说法正确的是( D ) A.当第一次启动的时候先后调用onCreate()和onStart()方法 B.当第一次启动的时候只会调用onCreate()方法 C.如果service已经启动,将先后调用onCreate()和onStart()方法 D.如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法 7、Android项目工程下面的assets目录,以下说法正确的是( A ) A.这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B.主要放置多媒体等数据文件 C.主要放置图片文件 D.放置字符串,颜色,数组等常量数据 8、在android中使用SQLiteOpenHelper这个辅助类,生成一个可操作的数据库,调用的方法是( A )A.getReadableDatabase() B.getDatabase() C.getEnbleDatabase() D.createDateBase() 9、Activity从可见状态变为半透明遮盖状态时,生命周期中哪个方法被调用( B )

Android测试环境搭建

基本安装 一、Java JDK 1、Java JDK下载: 网页: https://www.doczj.com/doc/7b12799296.html,/javase/downloads/index.jsp 选择 Download JDK 只下载JDK,无需下载jre.(因为按照JDK会自动按照jre) 2、JDK 运行 可以不安装在C盘(系统盘) 安装完成后 3、环境变量 如果只是运行eclipse不需要修改环境变量 如果要用到monkeyrunner需要设置环境变量(改系统环境变量),如下 新建系统环境变量JAVA_HOME ,设置为java安装地址"D:\Program Files\java\jdk1.6.0_33" PATH 增加 ";%JAVA_HOME%\bin" CLASSPATH = ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar",没有CLASSPATH需要新增

4、验证环境变量 java-version 如果装在C盘直接运行java-version 二、Eclipse 进入该网页: https://www.doczj.com/doc/7b12799296.html,/downloads/下载解压缩后放在根目录,不要放在中文文件夹里面三、Android SDK

地址:https://www.doczj.com/doc/7b12799296.html,/sdk/index.html 说明: Android SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本,后一种大概20多M,前一种70多M。 解压android sdk 这个也无需安装,解压后供后面使用 Eclipse配置 一、安装android 开发插件 (1)打开Eclipse, 在菜单栏上选择 E:\eclipse-java-juno-win32-x86_64\eclipse下,可以创建桌面快捷方式help->Install New SoftWare 出现如下界面:

Android考试题库

一、单选题(共33题,共62 分) 1、(2 分) WebView 中可以用来处理js 中警示,确认等对话框的是(C) A. WebSettings B.WebViewClient C.WebChromeClient D.WebViewChrome 2、(2 分) Android 解析xml 的方法中,将整个文件加载到内存中进行解析的是?(C) A 、SAX B 、PULL C 、DOM D 、JSON 3、(2 分)以下属于调用摄像头硬件的权限的是:(A ) A. B. C. D. 4、(1 分)使用Android 系统进行拍照用到的类有:(D) A. SurfaceView B. SurfaceHolder C.Callback D. Camera 5、(2 分)LocationManager 获取位置信息的途径下列说法不正确的是(B ) A, GPS 定位更精确,缺点是只能在户外使用 B, NETWORK通过基站和Wi- Fi信号来获取位置信息,速度较慢,耗电较少。 C, 获取用户位置信息,我们可以使用其中一个,也可以同时使用两个。 D, GPS 定位耗电严重,并且返回用户位置信息的速度远不能满足用户需求。 6、(2 分)在开发AppWidget 窗口小部件时, 需要继承(D)类 A,AppWidgetReceiverB,AppWidgetConfigure C,AppWidgetManagerD,AppWidgetProvider 7、(4 分)在AsyncTask 中下列哪个方法是负责执行那些很耗时的后台计算工作的(C) A,runB,executeC,doInBackgroundD,onPostExecute 8、(2 分)如果希望自定义TabHost 标题部分的显示内容需要使用下列哪个方法(B)finalTabHosttabHost = getTabHost(); A, tabHost.addTab(tabHost.newTabSpec("tab1") B, setIndicator C, setContent(); D, setView 9、(2 分)使用HttpUrlConnection 实现移动互联时, 设置读取超时属性的方法是(B) A、setTimeout() B 、setReadTimeout() C、setConnectTimeout() D 、setRequestMethod() 10、(1 分)使用HttpURLConnection 的Get 方式请求数据时, 下列哪个属性是必须设置的(B) A, connection.setDoOutput(true) B, connection.connect()

Android操作系统发展史

Android操作系统发展史 今天我们来聊一聊Android系统的历史,首先我们就要先来说说Android系统这个名字的来历。Android这一词最先出现在法国作家利尔亚当在1886年发表的科幻小说《未来夏娃》中,作者将外表像人类的机器起名为Android,这也就是Android小人名字的由来。 知道了Android名字的来历我们再来看一下Android系统的来历。Android系统一开始并不是由谷歌研发出来的,Android系统原来的公司名字就叫做Android,谷歌公司在2005收购了这个仅成立22月的高科技企业。Android系统也开始由谷歌接手研发,Android 系统的负责人以及Android公司的CEO安迪·鲁宾成为谷歌公司的工程部副总裁,继续负责Android项目的研发工作。 在2007年11月5日这天,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成。这一联盟将支持谷歌发布的手机操作系统以及应用软件,将共同开发Android系统的开放源代码。 看完Android系统的发展简介,下面就让我们一起看看具体的Android系统版本的升级更新以及代表机型有哪些。 Android 1.0 代表机型T-Mobile G1 在2008年,在GoogleI/O大会上,谷歌提出了Android HAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。 在2008年,在智能手机领域还是诺基亚的天下,Symbian系统在智能手机市场中占有绝对优势,在这种前提下,谷歌发布的Android 1.0系统并没有被外界看好,甚至言论称最多一年谷歌就会放弃Android系统。

Android APP测试流程

Android APP测试流程 一、 Monkey测试(冒烟测试) 使用monkey测试工具进行如下操作: 1. APP的安装 2. APP随机操作测试(APP压力测试) 3. APP的卸载 二、安装卸载测试 1. 使用测试真机进行APP的安装与卸载 2. 使用第三方软件辅助安装与卸载

三、升级测试 1. APP的在线升级安装及使用测试 目的: 1. 验证签名是否一致 2. 跨版本升级是否正常 四、功能测试 1. 功能逻辑测试 2. 功能点测试(单元测试) 3. 关联性测试(集成测试) 五、自动化测试 1. monkeyrunner编写python脚本测试(现阶段使用小萝贝与按键精灵代替) 六、联机调试测试 1. 使用Eclipse进行Android Debug真机调试 2. 通过Logcat记录每一步操作,定位错误代码 七、稳定性测试 1. 交互性测试 2. 异常性测试(手机断电、断网情况) 八、手机流量、电量、内存测试

1. 测试机使用监控软件观察APP使用所耗的流量 2. 测试机使用监控软件观察APP耗电量 3. 测试机使用监控软件观察APP占用内存情况(不能泄露内存) 九、性能测试(Loadrunner) 1. 接口测试 2. 服务器压力测试 十、适配性测试(兼容性测试,目前使用testin云测) 1. 分辨率 2. 系统版本 3. 厂商定制系统 4. 屏幕尺寸 十一、界面易用性测试 1. 界面与交互测试(交互规范、用户体验、易用性等) 2. 可用性测试(可用性强、操作简单、出错率低、完成任务时间短等)十二、外网测试 1.使用WIFI和手机网络2G/3G/4G网络测试APP

现在手机的操作系统主要有Android

现在手机的操作系统主要有Android (安卓)Symbian(塞班)和windows这三种,其中以安卓最火。 我说的很详细,你看看下面的文字差不多都会明白。。。 小米手机MIUI系统:(图片) 小米手机采用Android OS v2.3+MIUI双系统,双系统之间自选(MIUI系统之间数据可以同步,原生系统与MIUI系统数据不能同步)功能上苹果的IOS比Android OS还是要好一点的,特别在优化流畅性和用户体验上面。而Android开源是最大的优势,自由度大,但是优化不足,配置低的手机用起来有点卡

联想乐Phone的系统版本是采用基于Android操作系统的乐Phone OS 平台。Android操作系统是谷歌开发的操作系统,OS即Operation System,号称第一款开源手机系统 联想手机系统:乐OS系统 独有的手写输入法基本功能方面,联想乐OS采用了独有的手写输入法,可以快速输入中英文、数字和标点符号等内容,特别适合国人使用。另外,乐OS支持自动推送功能,新闻、邮件、股票、音乐和视频等热点资讯都会在第一时间推送到手机之上,不会让你错过任何重要的信息。 Lephone 3Gw101(图片)

我的手机图片: 刷机后图片系统(小米MIUI)系统Android 2.3.9 时间过得很快,剩下一年就毕业了,平时有空闲时间多关注人为地理历史方面的知识,这样有助于提升你的阅历,跨专业跨行业了解一些东西,比如地理方面,虽然这个地方你没有去过,但是你通过网络或书籍知道这个地方的人为地理历史背景等。别人问你的时候,你也能回答上来,读万卷书不如行万里路,行万里路不如阅人无数。就是这个道理。尤其是我学工科的,更应该弥补人为方面的不足。

安卓操作系统简介

安卓操作系统简介 简言: Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 Gingerbread和Android 3.0 Honeycomb。 系统介绍: Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。 2010年末数据显示,仅正式推出两年的操作系统Android已经超越称霸十年的诺基亚(Nokia)Symbian OS系统,采用Android系统主要手机厂商包括宏达电子(HTC)、三星(SAMSUNG)、摩托罗拉(MOTOROLA)、LG、Sony Ericsson、魅族M9等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。 系统架构: 应用程序: Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity 等同于J2ME的MIDlet,一个Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的Activity 全部画面被其他Activity 取代时,该Activity 便被停止(stopped),甚至被系统清除(kill)。 View等同于J2ME的Displayable,程序人员可以通过View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用View 打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC 的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。 中介软件 操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。Bionic是Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自

Android性能分析工具常用汇总

Android性能分析工具常用汇总 Android性能分析工具整理汇总 把做Android开发以来碰到的一些不错的性能分析工具做个整理汇总... Debug GPU Overdraw 类型:系统自带功能UI渲染检测功能(打开Settings,然后到Developer Op tions -> Debug GPU Overdraw 选择Show overdraw areas,手机系统设置中文的孩纸,自行对照翻译进去哈) 作用:用来检测UI的重绘次数,开发者可以用来优化UI的性能。 使用心得:检测UI性能的利器,对于开发者做UI优化的帮助挺大的。因为大量的重绘容易让app造成卡顿或者直接导致丢帧的现象。开发者熟悉View的绘制原理可以结合对一些布局或者自定义控件做相应的优化。诸如:在ListView或GridView里面的item使用layout_weight设置就会造成多余重绘。其他情况还有很多,不一一例举。至于怎么用,可以自行Google Profile GPU Rendering 类型:系统自带功能UI渲染检测功能(打开Settings,然后到Developer Op tions -> Profile GPU Rendering. 选择On screen as bars ) 作用:用来检测UI绘制帧的速率和耗时,同样开发者可以用来优化UI的性能。使用心得:跟Debug GPU Overdraw功能类似,但它反应的是UI绘制帧的速率,同样可以用来检测自己的app是否丢帧或者绘制过度,具体操作可以自行G oogle Hierarchy Viewer 类型:SDK自带工具(打开Settings,然后到Developer Options -> Profil e GPU Rendering. 选择On screen as bars ) 作用:检测UI渲染用的 使用心得:老牌工具了,Google一下

android系统详细介绍

android Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linu x平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前最好的是Android2.0的摩托罗拉Droid 目录[显示] [编辑本段] 简介 Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software st ack,又名为软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Goog le开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Googl e开始发表自家品牌手机电话的NexusOne。目前最新版本为Android2.1。 对手机行业的影响 已经与HTC、NTT DoCoMo、KDDI、Motorola等世界移动领域34家公司于免费提供达成一致。今后对于移动通讯的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作以及持久,让我们拭目以待。 Android手机 2008年9月22日,美国运营商T-MobileUSA在纽约正式发布第一款Goog le手机——T-Mobile G1。该款手机为台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。 (左图为Androidlogo) [编辑本段]

android笔试题及答案

单选题 中可以用来处理js中警示,确认等对话框的是(C) 2.假设assets目录下有文件结构html/,用loadUrl()方法将该网页加载至 webView 时,需传入的参数是(B) A. B. C. D. 3.下列不属于补间动画相关类的是(B) 中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状 态码表示请求完成的是(D) 5.关于ImageSwitcher 说法错误的是:( B ) 里可以通过Alpha设定转换时候的透明位 B.在使用一个ImageSwitcher之前,不一定要调用setFactory方法 是设置资源被读入到这个ImageSwitcher的时候动画效果 是资源文件从这个ImageSwitcher里消失的时候要实现的动画效果 6.建立蓝牙连接时通过_D_方法来获取BluetoothAdapter对象 D. () 7.关于Handler的说法不正确的是( A ) A.它实现不同进程间通信的一种机制 B.它避免了在新线程中刷新UI的操作 C.它采用队列的方式来存储Message D.它实现不同线程间通信的一种机制 8.Vector和ArrayList的主要区别是(B): A. ArrayList内部基于链表,而Vector是基于数组的

B. Vector的大部分方法做了同步,而ArrayList没有同步 C. Vector是可串行化的,而ArrayList不是 D. Vector实现了RandomAccess,而ArrayList没有 9.下列属于SAX解析xml文件的优点的是(B ) A.将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能 B.不用事先调入整个文档,占用资源少 C.整个文档调入内存,浪费时间和空间 D.不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失 a1="abc"; String a2="abc"; String a3="abcd"; 总共创建( A )个String对象。 多选题 1.在添加第一个appwidget窗口小部件时,会执行的方法是(ABD) 2.下列属于SOAP优点的是(ABCD) A,SOAP 与编程语言无关。SOAP 可以使用任何语言来完成 B,SOAP 是完全和厂商无关。 C,SOAP 与平台无关D,SOAP 是简单的,可扩展的 3.下列属于SAX解析XML需要用到的类和接口是(BCD) A.DocumentBuilder 4.在使用蓝牙必须获取的权限是(AD) 5.Chronometer类的重要方法(ABC) 简答题 1.oom是什么如何避免 当程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到,即使做了GC操作以后这就会抛出OutOfMemoryException 也就是OOM 避免:

Android本质上就是一个基于Linux内核的操作系统

Android本质上就是一个基于Linux内核的操作系统。与Ubuntu Linux、Fedora Linux 类似。只是Android在应用层专门为移动设备添加了一些特有的支持。既然Android是Linux内核的系统,那么基本的启动过程也应符合Linux的规则。如果研究过其他Linux 系统应该了解,一个完整的Linux系统首先会将一个Linux内核装载到内存,也就是编译Linux内核源代码生成的bzImage文件,对于为Android优化的Linux内核源代码会生成zImage文件。该文件就是Linux内核的二进制版本。由于zImage在内核空间运行,而我们平常使用的软件都是在应用空间运行(关于内核空间和应用空间的详细描述,可以参考《Android深度探索(卷1):HAL与驱动开发》一书的内容,在后续的各卷中将会对Android的整体体系进行全方位的剖析)。内核空间和应用空间是不能直接通过内存地址级别访问的,所以就需要建立某种通讯机制。 目前Linux有很多通讯机制可以在用户空间和内核空间之间交互,例如设备驱动文件(位于/dev目录中)、内存文件(/proc、/sys目录等)。了解Linux的同学都应该知道Linux的重要特征之一就是一切都是以文件的形式存在的,例如,一个设备通常与一个或多个设备文件对应。这些与内核空间交互的文件都在用户空间,所以在Linux内核装载完,需要首先建立这些文件所在的目录。而完成这些工作的程序就是本文要介绍的init。Init是一个命令行程序。其主要工作之一就是建立这些与内核空间交互的文件所在的目录。当Linux内核加载完后,要做的第一件事就是调用init程序,也就是说,init是用户空间执行的第一个程序。 在分析init的核心代码之前,还需要初步了解init除了建立一些目录外,还做了如下的工作 1. 初始化属性 2. 处理配置文件的命令(主要是init.rc文件),包括处理各种Action。 3. 性能分析(使用bootchart工具)。 4. 无限循环执行command(启动其他的进程)。 尽管init完成的工作不算很多,不过代码还是非常复杂的。Init程序并不是由一个源代码文件组成的,而是由一组源代码文件的目标文件链接而成的。这些文件位于如下的目录。 /system/core/init 其中init.c是init的主文件,现在打开该文件,看看其中的内容。由于init是命令行程序,所以分析init.c首先应从main函数开始,现在好到main函数,代码如下: int main(int argc, char **argv) { int fd_count = 0; struct pollfd ufds[4]; char *tmpdev; char* debuggable; char tmp[32]; int property_set_fd_init = 0; int signal_fd_init = 0;

Android面试题带标准答案

Android面试题 下列哪些语句关于内存回收的说明是正确的? (b ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 下面异常是属于Runtime Exception的是(abcd)(多选) A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(c). c A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12 下列程序段的输出结果是:(b)?void complicatedexpression_r(){int x=20, y=30; boolean b; b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b);? } A、true B、false C、1 D、011.activity 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d) A、onPause() B、onCreate() C、 onResume() D、onStart() Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、Bundle android 中下列属于Intent的作用的是(c) A、实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 下列属于SAX解析xml文件的优点的是(b) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会 消失 下面的对自定style的方式正确的是(a) A、 <resources> ?<stylename="myStyle"> ? ?</style> B、<style name="myStyle"> ?<item name="android:layout_width">fill_parent</item>

Android测试教程(全)

Android测试教程 目录 Android测试教程 (1) Android测试教程(1):概述 (1) Android测试教程(2):测试基础 (2) Android测试教程(3):测试项目 (3) Android测试教程(4):测试相关API (6) Android测试教程(5):第一个测试项目HelloWorldTest (8) Android测试教程(6):测试Activity (11) Android测试教程(7):测试Content Provider (12) Android测试教程(8):测试Service (13) Android测试教程(9):ApplicationTestCase示例 (13) Android测试教程(10):ActivityInstrumentationTestCase2示例 (17) Android测试教程(11):ActivityUnitTestCase示例 (18) Android测试教程(12):ServiceTestCase示例 (20) Android测试教程(13):TestCase示例 (22) Android测试教程(14):ActivityInstrumentationTestCase2示例 (23) Android测试教程(15):AndroidTestCase示例 (25) Android测试教程(16):monkeyrunner简介 (27) Android测试教程(17):Monkey 命令行工具 (28) Android测试教程(18):总结 (32) 来源: csdn 作者:mapdigit Android测试教程(1):概述 测试也是开发过程中一个重要组成部分,Android开发环境集成一个测试框架可以用来测试Android应用的各个方面,单元测试,UI测试等。 本教程基于Android 开发教程英文版。 基本概念包括 ?Android测试的基础知识 ?Activity Testing 侧重于Activity的测试,介绍了如果使用Instrumentation 在正常Activity生命周期之外来控制Activity,然后测试Activity的特定的功能和测试UI 的一些技巧。

Android移动应用试题(带答案)

<>试题 一.选择题(2’X12) 1.下面哪一个不属于Android体系结构中的应用程序层 A.电话簿 B.日历 C.SQLite D.SMS程序 2.下面哪种说法不正确 A.Android应用的gen目录下的被删除后还能自动生成; B.res目录是一个特殊目录,包含了应用程序的全部资源,命名规则可以支持数字(0-9) 下横线(_),大小写字母(a-z , A-Z); C.文件是每个Android项目必须有的,是项目应用的全局描述。其中指定程序的包名 (package=”…”)+指定android应用的某个组件的名字(android:name=”…”)组成了该组件类的完整路径 D.assets和res目录都能存放资源文件,但是与res不同的是assets支持任意深度的子 目录,在它里面的文件不会在里生成任何资源ID 3.在一个相对布局中怎样使一个控件居中 A.android:gravity="center" B.android:layout_gravity="center" C.android:layout_centerInParent="true" D.android:scaleType="center" 4.下面是一段生成对话框的代码,哪一行有错误 Builder builder = new Builder(getApplicationContext()); 1 ("提示").setMessage("请选择"); 2 ("重置", new OnClickListener() 3 { 4 public void onClick(DialogInterface dialog, int which) 5 { 6 ("log", "重置被按了!"); 7 } 8 }); 9 ("取消", null); 10 ("确定", new OnClickListener() 11 { 12 public void onClick(DialogInterface dialog, int which) 13 { 14 (getApplicationContext(), "确定被按了!", 15 .show(); 16 } 17

计算机与手机操作系统现状分析 —— 基于Android与iOS系统的比较

---------------------------------------------装--------------------------------- --------- 订 -----------------------------------------线---------------------------------------- 班级 10 金融工程1班 姓名 黄景豪 学号 10250502104 -

计算机与手机操作系统现状分析 ——基于Android与iOS系统的比较------------------------------------------------------------------------------------------------------------------------------------摘要:近年来,移动设备操作系统的竞争越演越热,本文通过研究目前市场中最为热门的Android系统和iOS系统的设计理念,用户界面,系统功能等来透析现有移动互联网操作系统的优缺点,来探索到未来移动互联网操作系统的影子和发展方向。同时以预测这两个系统在未来的市场表现并为国内相关企业提供一些创新的基本思路。 关键词:手机操作系统Android iOS 现状分析创新模式 1引言 2007年6月,苹果公司发布的使用iOS系统的iPhone智能手机,被证实真正的挖掘了智能手机所被人们忽略的潜能。由于iPhone的过于出色,将移动手机巨头摩托罗拉公司挤到破产边缘。而拥有Symbian系统,如日中天的诺基亚,在仅仅4年内,市值从2007年的1100亿欧元缩水到148亿欧元,也濒临破产危机。诺基亚新CEO斯蒂芬埃洛普表示:“现在的诺基亚真正成为了一个着火的平台。”iPhone的成功只是拉开了移动互联网时代的面纱,它带来的不仅仅是苹果公司10亿美元的销售额,还直接点燃了所有IT巨头对于被誉为是移动互联网未来的这块新蛋糕的争夺战。 同年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统,一款基于Linux的自由及开放源代码的操作系统。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。摩托罗拉通过分离旗下的移动手机部门,投靠Google着手生产Android系统智能手机挽回败局,重新在市场上占有一席之地。 在当下,硬件已经不是核心竞争力,软件,也就是我们所谓的操作系统成为了战争的主角。在接下来的章节中,本文将对这两款操作系统进行剖析。 2操作系统简介 操作系统(Operating System)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作

Android开发技术期末考试复习题

试题 一、选择题 1 android虚拟设备的缩写是(A VD) 2 Android SDK目前支持的操作系统(Linux) 3 Android开发工具插件(ADT)没有提供的开发功能(自动更新) 4 Android SDK提供一些开发工具可以把应用软件打包成Android格式文件(APK) 5 Android当中基本的所有的UI都是由(view)或者其子类实现的 7下列不是Activity的生命周期方法之一的是() onCreate onStart onRestart onResume onPause onStop onDestroy 8 以下可以做EditText编辑框的提示信息是(adroid:hint) 以下不是手机操作系统的是(windows vista) 下列哪个属性是专用于相对布局的(D) A.android.orientation 线性vertical 垂直horizontal B.android:stretchColumns C.android:layout_alignParentRight D.android:layout_toRightOf 定义LinearLayout垂直方向布局时设置的属性( D ) A.android:layout_height B.android:gravity C.android:layout D. android:orientation vertical 垂直 为了使android适应不同分辨率的机型,布局时字体单位应用( D ) A.dp B.dip 像素 C.px D.sp 下面属于android的动画分类的有( AB) A.Tween B.Frame C.Draw D.Animation Property Animation属性动画android 关于service生命周期的onCreate()和onStart()说法正确的是( AD ) A.当第一次启动的时候先后调用onCreate()和onStart()方法 B.当第一次启动的时候只会调用onCreate()方法 C.如果service已经启动,将先后调用onCreate()和onStart()方法 D.如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法 在android中使用Menu时可能需要重写的方法有(AC) A、onCreateOptionsMenu() 三种菜单:选项菜单、上下文菜单、子菜单 B、onCreateMenu() C、onOptionsItemSelected() D、onItemSelected() Intent传递数据时,下列的数据类型哪些可以被传递(ABCD) A、Serializable B、charsequence C、Parcelable D、Bundle java.io包中的( A )和( B )类主要用于对对象Object的读写。 A. objectInputStream B. objectOutPutStream C.Reader D.writer 继承ContentProvider需要实现(ABCD)等方法。 A. insert B. delete C. update D. query

相关主题
文本预览
相关文档 最新文档