重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
.NET Framework的核心技术为:通用语言运行库(CLR:Common Language Runtime)、类库、ASP.NET及ADO.NET
成都创新互联公司是一家专注于成都网站设计、网站建设与策划设计,玛纳斯网站建设哪家好?成都创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:玛纳斯等地区。玛纳斯做网站价格咨询:13518219792
通用语言运行库
(Common Language Runtime)
CLR引入了一些能提高应用程序运行可靠性的技术(比如消除了内存泄漏),同时也提供了多语言执行环境,使得组件和XML
Web服务的综合使用不再受编程语言的限制。目前,可以用来编写.NET应用程序的编程语言不下20种,如C++、 Visual Basic
.NET、JScript,以及微软最新推出的开发语言——C#,此外还包括不少第三方的语言,比如COBOL、Eiffel、Perl、Python、
Smalltalk等等。
类库
统一的类库提供了调用平台函数的通用方法,使得我们不必再去学习并研究不同语言的API体系结构
ASP.NET
ASP.NET建立在.NET
Framework类的基础之上,并提供了由控件和基础部分组成的“Web程序模板”,大大简化了Web程序和XML
Web服务的开发。程序员直接面对的是一组ASP.NET控件,而这些控件由一些诸如文本框、下拉选单等通用的HTML用户界面构件封装而成。实际上这些
控件运行于Web服务器上,并简单地以HTML的形式将用户界面发送到浏览器。
ADO.NET
与现有的ADO数据访问模型相比,ADO.NET引入了一些新的特性——基于XML,并且是松散耦合的(loosely-coupled)。
ADO.NET使用了脱机(disconnected)数据缓存,使用户能快速地创建出高性能、可靠的XML
Web服务和现在流行的多层应用程序(N-tier applications)。
希望帮到你
可以在windows上进行测试,我们一直都用Windows测的
java -Xmx512M -cp D:\android-sdk_eng.apuser_linux-x86\android-cts\tools\cts.jar;D:\android-sdk_eng.apuser_linux-x86\android-cts\tools\hosttestlib.jar;D:\android-sdk_eng.apuser_linux-x86\android-cts\tools\junit.jar;D:\android-sdk_eng.apuser_linux-x86\tools\lib\ddmlib.jar com.android.cts.TestHost D:\android-sdk_eng.apuser_linux-x86\android-cts\repository\host_config.xml
用这个进入CTS host之后的测试就跟linux上是一样的
2.1.2 .NET的3C:CTS、CLS和CLR
.NET结合Java和COM解决方案两者优点来解决互操作性问题。类似于COM定义的标准二进制格式,.NET定义了一个称为通用类型系统Common Type System(CTS)的类型标准。这个类型系统不但实现了COM的变量兼容类型,而且还定义了通过用户自定义类型的方式来进行类型扩展。任何以.NET平台作为目标的语言必须建立它的数据类型与CTS的类型间的映射。所有.NET语言共享这一类型系统,实现它们之间无缝的互操作。该方案还提供了语言之间的继承性。例如,用户能够在VB.NET中派生一个由C#编写的类。
很显然,编程语言的区别不仅仅在于类型。例如,一些语言支持多继承性,一些语言支持无符号数据类型,一些语言支持运算符重载。用户应认识到这一点,因此.NET通过定义公共语言规范(CLS:Common Language Specification),限制了由这些不同引发的互操作性问题。CLS制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其他.NET语言之间实现互操作性所需要的完备特征。认识到这点很重要,这里讨论的特征问题已不仅仅是语言间的简单语法区别。例如,CLS并不去关心一种语言用什么关键字实现继承,只是关心该语言如何支持继承。
CLS是CTS的一个子集。这就意味着一种语言特征可能符合CTS标准,但又超出CLS的范畴。例如:C#支持无符号数字类型,该特征能通过CTS的测试,但CLS却仅仅识别符号数字类型。因此,如果用户在一个组件中使用C#的无符号类型,就可能不能与不使用无符号类型的语言(如VB.NET)设计的.NET组件实现互操作。这里用的是“可能不”,而不是“不可能”,因为这一问题实际依赖于对non-CLS-compliant项的可见性。事实上,CLS规则只适用于或部分适用于那些与其他组件存在联系的组件中的类型。实际上,用户能够安全实现含私有组件的项目,而该组件使用了用户所选择使用的.NET语言的全部功能,且无需遵守CLS的规范。另一方面,如果用户需要.NET语言的互操作性,那么用户的组件中的公共项必须完全符合CLS规范。让我们来看下面的C#代码:
public class Foo
{
// The uint(unsigned integer)type is non-CLS compliant.
//But since this item is private,the CLS rules do not apply.
private uint A = 4;
// Since shis uint member is public,we have a CLS
// compliance issue.
public uint B = 5;
// The long type is CLS compliant.
public long GetA()
{
return A;
}
}
最后一个C是公共语言运行库Common Language Runtime(CLR)。简单地说,CLR是CTS的实现,也就是说,CLR是应用程序的执行引擎和功能齐全的类库,该类库严格按照CTS规范实现。作为程序执行引擎,CLR负责安全地载入和运行用户程序代码,包括对不用对象的垃圾回收和安全检查。在CLR监控之下运行的代码,称为托管代码(managed code)。作为类库,CLR提供上百个可用的有用类型,而这些类型可通过继承进行扩展。对于文件I/O、创建对话框、启动线程等类型—— 基本上能使用Windows API来完成的操作,都可由其完成。
让我们正确看待“3C”。开发人员在构建自己的分布式应用程序时,因为用户在编程时将直接面对CLR,应将主要精力放在学习了解CLR上,而不是CTS和CLS。而对于希望以.NET平台为目标的语言和工具开发商来说,就需要深入理解CTS和CLS。互操作性组件是分布式应用的关键,因此理解.NET如何通过定义公共类型实现这一目标,也就显得十分重要。
这个是显示的测试,主要测试显卡的性能是否稳定,fail的原因要具体看打印的log信息。硬件的可能性不大,硬件有问题,你手机运行像Neocore这类apk就会出错。
Android 4.0 CTS 测试方法
这段时间公司做CTS测试,下面是一些总结,以android4.0.3为例,希望对大家有所帮助!
一 CTS测试简介
The Android compatibility program makes it easy for mobile device manufacturers to develop compatible Android devices
CTS具体的介绍,大家可以参考google的官方网站,大家可以详细的了解CTS测试的目的和环境,我们一般的疑惑都能在该网站上找到答案。
1.1为什么需要兼容性测试(以下称CTS)?
1.1.1、让APP提供更好的用户体验。用户可以选择更多的适合自己设备的APP。让APP更稳定。
1.1.2、让开发者设计更高质量的APP。
1.1.3、通过CTS的设备可以运行Android market。
1.2怎么样才能让我的设备变成兼容的。
1.2.1、与Android Compatibility Definition文档(以下简称ACD)匹配
先看一下与你的系统版本相匹配的ACD,文档中描述了你需要具备的软件和硬件参数。
1.2.2、通过CTS测试
CTS是开源的测试框架,使用它来测试你的设备是否具备兼容性。
1.2.3、提交报告
你可以把测试结果发送给cts@android.com。当你提交了一个CTS报告时,你还可以要求访问Android Market。
如果是google的合作伙伴,需要将CTS测试报告、机器、以及软件一共寄给google进行测试,取得google的approval以后,手机才能上市,这是后话,相信好多人都是用不到的。
1.3 CTS测试原理
CTS主要包含两个组件:
运行在PC上的测试框架组件。主要用来管理测试用例(test case)的执行。
运行在设备或模拟器上的测试用例。这些用例用JAVA写成的APK文件。
1.4工作流程
1)可以从源码编译CTS,也可以从网站下载编译好的CTS
2)安装配置CTS。
3)把设备连接到PC上。
4)运行CTS。CTS会把相应的测试用例(也就是一个APK文件)传送到设备上并通过instrumentation运行,然后记录运行结果,最后删除测试用例。
所有的测试用例执行完毕后,可以参照测试结果重新调整或优化系统。然后继续运行CTS测试。
1.5、测试通过以后,你可以把CTS生成的结果(就是result下面那个以测一、取得Compatibility Test Suite的两种方法:
(1)可以从 下载最新版本的Compatibility Test Suit;
(2)也可以通过编译Android源代码的方式获得。在android源代码目录下输入make cts命令来编译CTS,之后会在out/host/linux-x86/cts/下生成android-cts文件夹。这个文件夹就是Compatibility Test Suit。
注意:但是源码中的代码可能不是最新的,所以建议冲网站上下载最新的,需要用git在google的网站上下载,网上有好多例子,这里就不再重复了。
二 测试用例的范围
1、Signature
对每个Android产品,都有一些XML文件来描述所有的公开API。CTS包含了一个工具来检测这些API签名中包含的API是否都在系统中被支持。
2、Platform
测试SDK文档中描述的平台API,比如core libraries,Android Application Framework等。要求这些API可以提供:
正确的类、属性、方法签名、方法行为、错误参数处理方式
3、Dalvik VM
专门针对Dalvik Vm的测试。
4、Platform Data Model
平台通过ContentProvider提供给开发者使用的数据,比如:Contacts,Browser,Settings等。
5、Platform Intents
平台提供的用于核心功能的Intent。
6、Platform permission
平台提供的一些重要APP权限
7、Platform Resources
simple values,drawables,nine-patch,animations,layouts,styles and themes,loading alternate resources等
三 如何搭配环境
目前cts没有提供windows版本,只能在Linux下测试。
1 PC机配置环境
PC端网上有好多资料可以供参考,这里就省略了。
2 手机设置
1) 进入settings-Privacy-Factorydata reset,对平台进行reset一次
2) 平台插入一张空的TF卡
3) 平台安装两个APK:CtsDelegatingAccessibilityService.apk,CtsDeviceAdmin.apk
4) 进入settings打开Wi-Fi并连接AP (AP需要连外网)
5) 进入settings-Security-Screenlock设为None
6) 进入settings-Security-EnableUnknown sources
7) 进入settings-Security-Deviceadministrators-Enable两个选项
8) 进入Languageinput-language设为English(UnitedStates)
9) 进入settings-Display-Sleep设为30minutes或None
10) 进入settings-Accessibility-EnableDelegating Accessibility Service
11) 进入settings-Developeroptions-Enable USB debugging、Stay awake、Allowmock locations
12) PC上copy“android-cts-media-1.0”,在android-cts-media-1.0文件下输入./copy_copy_media.sh运行脚本,将media文件copy进平台。成功后会在平台的内存中看到test文件夹。(此条适用于CTS4.0 R2和R3,R1上无需使用)
四 测试方法
1.平台用USB线连接LinuxPC (连通后平台左上方会显示usb和debug icon)
2.打开终端
3.输入sudosu -
输入root密码
4.输入cd ../..
输入 cd /home/linux/cts/android-cts-4.0.3_r1-linux_x86-arm/android-cts/tools (这个是cts-tradefed文件所在路径,各位需要输入实际路径)
输入 ./cts-tradefed
终端显示 01-16 15:44:05 I/DeviceManager: Detected newdevice 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)
Android CTS 4.0.3_r1
cts-tf
5.输入run cts --plan CTS
终端显示 cts-tf run cts --plan CTS
cts-tf 01-16 15:45:34 I/TestInvocation: Starting invocation for 'cts' on build'4.0.3_r1' on device 0123456789ABCDEF
01-16 15:45:35I/0123456789ABCDEF: Created result dir 2012.01.16_15.45.34
开始测试CTS
五 关于CTS4.0测试报告
1.CTS测试报告是自动生成一个xml报表,并自动填写的,不需要测试人员干预
2.当一个CTS测试任务开始时,会在android-cts-4.0.3_r1-linux_x86-arm/android-cts/repository/results中,为这个任务建立一个存放测试报告的文件夹,文件名以任务开始的日期和时间命名。
例如:2012.01.12_13.00.03
3.CTS4.0生成测试报告的速度比CTS2.3/2.2要慢不少,特别是在测试过程中中断测试,CTS4.0需要70秒才会开始生成报告。如果你在此过程中按ctrl+c终止CTS进程,测试报告就无法生成,以后也无法继续测试未完成的计划。
下方是中途断开后生成报告的例子:
01-1813:50:19I/0123456789ABCDEF: android.accounts.cts.AccountManagerTest#testHasFeature FAIL
Testfailed to run to completion. Reason: 'Test run failed to complete. Expected 1tests, received 0'. Check device logcat for details
01-1813:51:29I/0123456789ABCDEF: android.accounts package complete: Passed 20, Failed 2, NotExecuted 6
01-1813:51:29 I/0123456789ABCDEF: -----------------------------------------
01-1813:51:29 I/0123456789ABCDEF: Test package android.admin started
01-1813:51:29 I/0123456789ABCDEF: -----------------------------------------
……
01-1813:51:30 I/0123456789ABCDEF: -----------------------------------------
01-1813:51:30 I/0123456789ABCDEF: Test package android.widget started
01-1813:51:30 I/0123456789ABCDEF: -----------------------------------------
01-1813:51:30 I/0123456789ABCDEF: Saved log device_logcat_8558243668624894128.zip
01-1813:51:30 I/0123456789ABCDEF: Saved log host_log_6087775957743010530.zip
set sdk=C:\CTS\android-sdk-windows
set cts=C:\CTS\android-cts-2.2_r5-x86
java -Xmx512M -cp %sdk%\tools\lib\ddmlib.jar;%cts%\tools\cts.jar;%cts%\tools\junit.jar;%cts%\tools\hosttestlib.jar com.android.cts.TestHost %cts%\repository\host_config.xml ,
This answer is best for you.