1、直接设置问题

estUnknownSourcesOffByDefault

fail

junit.framework.AssertionFailedError: Deviceshould not ship with 'Unknown Sources' enabled by default.expected:<0> butwas:<1> atandroid.provider.cts.Settings_SecureTest.testUnknownSourcesOffByDefault(Settings_SecureTest.java:183)

这种fail最好解决,直接按照字面理解就OK,设置---安全---默认关闭:未知来源。

 

 

2、permission

-- testSensorFeatures

fail

junit.framework.AssertionFailedError:PackageManager#hasSystemFeature(android.hardware.sensor.accelerometer)returns true but SensorManager#getSensorList(1) shows sensors []expected: butwas: atandroid.app.cts.SystemFeaturesTest.assertFeatureForSensor(SystemFeaturesTest.java:300)

一般情况修改 - > frameworks/base/data/etc/*.xml 文件,例如
android.hardware.camera.xml,platform.xml等文件,这边的文件定义了设备具有的一些权限。

--------------------------------------------------------------------------------------------------------------------

 android.app.cts.SystemFeaturesTest#testSensorFeaturesFAIL
junit.framework.AssertionFailedError:PackageManager#hasSystemFeature(android.hardware.sensor.light) returns true butSensorManager#getSensorList(5) shows sensors [] expected: butwas:

原因:手机无光感
解决方法:去除..\mediatek\config\{PROJECT}\android.hardware.sensor.light.xml
                 android.hardware.sensor.proximity.xml文件中相应选项

 

3、由测试而引起的非测试项出错

-- testRecordingHint

fail

java.lang.RuntimeException: start failed. atandroid.media.MediaRecorder.start(Native Method)

这种情况要根据Logcat去查看RuntimeException的具体错误。通常可以先不改,因为很难查错。

 

 

4、网络问题

-- test_isReachable

fail

java.net.UnknownHostException: Unable to resolvehost "www.google.com": No address associated with hostname atjava.net.InetAddress.lookupHostByName(InetAddress.java:426)

这类问题是由于国内的网络无法访问国外网站导致的,最好的办法就在公司搭建一个VPN,链接出去。

 

 

 

 

5、系统文件权限

-- testAllFilesInSysAreNotWritable

fail

junit.framework.AssertionFailedError: Foundwritable:

[/sys/devices/platform/malata_ts.0/tsclass/tsclass0/ts_power,/sys/devices/platform/malata_ts.0/tsclass/tsclass0/ts_en_file,/sys/devices/platform/malata_ts.0/tsclass/tsclass0/ts_Calibrate] atandroid.permission.cts.FileSystemPermissionTest.

testAllFilesInSysAreNotWritable(FileSystemPermissionTest.java:364)

-- testNoSetuidTcpdump

fail

junit.framework.AssertionFailedError at

android.security.cts.BannedFilesTest.

assertNotSetugid(BannedFilesTest.java:59)

这些问题是系统文件权限的问题,解决方法比较土,就是全局搜索该文件,查看那些对该文件操作的脚本,然后修改即可。

上面两个fail的解决方法是:

a.   修改kernel/drivers/input/touchscreen/malata_ts.c

__ATTR(ts_power, 0777, NULL,ts_set_point),

__ATTR(ts_en_file, 0777, NULL,ts_set_point),

__ATTR(ts_ Calibrate, 0777,NULL, ts_set_point),

b.   修改system/core/include/private/android-filesystem-config.h

{ 06755, ADD_ROOT, ADD_ROOT,“system/xbin/tcpdump”}

-------------------------------------------------------------------------------------------------

android.app.cts.SystemFeaturesTest

-- testLocationFeatures

fail

junit.framework.AssertionFailedError: PackageManager#hasSystemFeature should NOT return true for android.hardware.location.networkat android.app.cts.SystemFeaturesTest.assertNotAvailable(SystemFeaturesTest.java:375)


原因:未配置相对应功能(开启Locationaccess中所有开关(gps和wifi))
解决方法:将..\frameworks\base\data\etc\android.hardware.location.gps.xml拷贝到
                    ..\mediatek\config\{PROJECT}\android.hardware.location.gps.xml目录下并做修改
                  

                         ----打开
                         ----打开
                         ---无GPS则关此项
              

 

 

6、这种情况最多的。

-- testFocusDistances

fail

junit.framework.ComparisonFailure:expected: butwas: at

android.hardware.cts.CameraTest.testFocusDistancesByCamera

(CameraTest.java:1386)

对于这个fail的原因是CTS对摄像头测试时,对摄像头进行参数设置,然后在读取参数后,参数出错。

这 种情况要找到CameraTest源码,通常在source/cts/...下面,我们编译时没有编译到这里,仅查看代码,例如找到 CameraTest.java,打开后找到1386行,行数一般情况下不会有出入,除非source下面的cts版本和下载的cts版本不一致才会找不到,找到testFocusDistancesByCamera,然后根据代码查看具体的测试,然后在找camera的源代码,使用Log跟踪,当然这个测试一定要结合做该模块的人一起改才行,不然很容易引起其他问题。

 

其中camera CTS测试代码在:

source/cts/tests/tests/hardware/src/android/hardware/cts/CameraTest.java

摄 像头设置的相关代码在:Source/device/Samsung/exynos4/libcamera/下面,有SecCameraHWInterface_zoom.cpp、SecCameraHWInterface_zoom.h、 SecCamera_zoom.cpp、SecCamera_zoom.h

找到之后通过修改后测试再修改后再测试直到CTS PASS。

(对于摄像头,应注意是几个摄像头,不然测试可能会对两个一起测试,这样就算一个摄像头调好了,能PASS了,另外一个过不了也是FAIL的。)

---------------------------------------------------------------------------

android.app.cts.SystemFeaturesTest#testCameraFeaturesFAIL
junit.framework.AssertionFailedError: PackageManager#hasSystemFeature shouldNOT return true for android.hardware.camera.autofocus
原因:手机无自动对焦功能  
解决方法:去除..\mediatek\config\{PROJECT}\android.hardware.camera.xml文件中
                 

 

 

7.Android.app.cts.SystemFeaturesTest#testLocationFeatures

該項是測試設備利用無線網絡信號進行粗略定位的功能

Root Cause:缺少google网络定位的服务包NetworkLocation.apk,但是机器用getSystemFeature依然有这项功能。

Solution:要么移植服务包,要么disablesystemFeature。我暂时选择后者。将/framework/base/data/etc/目录下xml文件里面的所有 .”android.hardware.location.network”注释掉即通过

 

8.Android.holo.cts.HoloTest

該項是測試設備显示的widget view是否跟他提供的图片相一致,精确到像素点。

Root Cause:分辨率设置问题

Solution:将修改build.prop

ro.sf.lcd_density=160可以通过测试,但是Blaze Launcher菜单显示不能全屏,考虑修改api

 

9.Android.mediastress

該項是測試設備能否正常播放google提供的视频文件

Root Cause:确定是否将cts-media包copy到sdcard目录、确定是否正常播放视频文件。不能正常扫描播放,可能是视频驱动问题

Solution:将cts-media文件放到sdcard,检文件能正常扫描播放,测试通过。

 

10.Android.permissin.cts.DebugableTest#testNoDebuggable

该項是測試相应的app是否有debugable的标志

Root Cause:AndroidManifest文件里面android:debuggable=“true”

Solution:将android:debuggable=“true”改为false

 

11.Android.security.cts.PackageSignatureTest#testPackageSignatures

該項是測試应用包是否使用google默认的签名文件

Root Cause:使用默认的签名编译code

Solution:build/target/product/security/下面的签名换成自己做的。做法在该目录下README有详细说明

 

12.Libcore cts部分

Libcorects部分主要测试的是设备里面javaapi是否正常工作。当某部分异常的时候,cts对该项测试就会失败。

根据实际的工作成果,得出一般libcore测试失败大部分都跟你cts配置是否正确有关,而不是javaapi存在问题,比如测试之前是否factory reset就会影响其部分测试结果。所以在尝试各种方法无果后,进行一下reset可能它就能过。以下是我做过的一些cts debug项。

1>.Libcore.java.text.dataFormateSymbolsTest

#test_getInstance_invalid_locale

Root Cause:

Solution:执行factory reset后,pass

 

2>.Libcore.java.text.SimpleDateFormateTest#testNonDstZoneNameWithDstTimestamp

Root Cause:该测试失败原因是因为java的SimpleDateFormate类无法解析Daylight time夏令时区造成的

Solution:追api无果下,factory reset。Daylight时区正常解析,pass

 

3>.Libcore.java.util.OldTimeZoneTest

Root Cause:java无法解析daylight夏令时区造成

Solution:factory reset

 

4>.Org.apache.harmony.luny.tests.java.net.URLConnectionTest#test_getAllowUserInteraction

Root Cause:java无法连接onearth.jpl.nasa.gov网站造成,nexus机器同样无法通过该测试

Solution:无解。Google在新版本的cts测试中已经去掉连接该网站的逻辑部分。

13、DisplayRefreshRateTest

android.view.cts.DisplayRefreshRateTest

-- testRefreshRate

fail

junit.framework.AssertionFailedError at android.view.cts.DisplayRefreshRateTest.testRefreshRate(DisplayRefreshRateTest.java:168)

A3.关于这个刷帧率的问题,采用临时修改的方法

./frameworks/base/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp下在硬件初始化阶段

[cpp] view plaincopy

1.  mRefreshRate = fbDev->fps-5;  

[cpp] view plaincopy

1.  mRefreshRate = fbDev->fps-5;  

调整为:

[cpp] view plaincopy

1.  mRefreshRate = fbDev->fps-4;  

[cpp] view plaincopy

1.  mRefreshRate = fbDev->fps-4; 

14、

Compatibility Test Package: android.permission

Test

Result

Details

android.permission.cts.FileSystemPermissionTest

-- testAllFilesInSysAreNotWritable

fail

junit.framework.AssertionFailedError: Found writable: [/sys/devices/virtual/input/input3/enable_ps, /sys/devices/pci0000:00/0000:00:03.4/i2c-5/5-0068/delay, /sys/devices/virtual/input/input3/delay_ps, /sys/devices/virtual/input/input3/enable_als, /sys/devices/virtual/input/input3/delay_als, /sys/devices/pci0000:00/0000:00:03.4/i2c-5/5-0068/enable, /sys/devices/virtual/input/input3/enable_gs] at android.permission.cts.FileSystemPermissionTest.testAllFilesInSysAreNotWritable(FileSystemPermissionTest.java:577)

 

将相应的delay_ps这些文件进行设置权限,rw-r-r

 

15、

Compatibility Test Package: android.view

Test

Result

Details

android.view.cts.DisplayRefreshRateTest

-- testRefreshRate

fail

junit.framework.AssertionFailedError at android.view.cts.DisplayRefreshRateTest.testRefreshRate(DisplayRefreshRateTest.java:198)

可以从Log中看到需要设置的刷新率的大小。需要让驱动修改该值

 

16、

android.media.cts.StreamingMediaPlayerTest

-- testHLS

fail

junit.framework.AssertionFailedError: Stream did not play successfully after all attempts at android.media.cts.MediaPlayerTestBase.playVideoWithRetries(MediaPlayerTestBase.java:196)

-- testHTTP_H264Base_AAC_Video1

fail

Test failed to run to completion. Reason: 'Instrumentation run failed due to 'junit.framework.AssertionFailedError''. Check device logcat for details

-- testHTTP_H264Base_AAC_Video2

fail

Test failed to run to completion. Reason: 'Instrumentation run failed due to 'junit.framework.AssertionFailedError''. Check device logcat for details

HLS测试是这样:带宽分为200000,360000,500000, 800000, 1200000,客户端会根据当前获取的带宽值选择是否播放高清还是普通视频,
公司的带宽比较大,但实际真正的带宽可能会小好多,导致去播放高清视频是会很卡,然后失败
解决方法:
参考8x25平台做法,在system.prop里面对带宽做限制:
media.httplive.max-bw = 360000  
最大带宽限制在360000,这样,测试HLS的时候,就只会去播放200000的普通视频,基本可以通过。


更多相关文章

  1. Android(安卓)mk编译OkHttp3
  2. android 读取指定路径数据库文件
  3. Android(安卓)APP修改全局字体
  4. Android(安卓)使用decodeFile方法加载手机磁盘中的图片文件
  5. android获取指定路径下目录文件
  6. Android自动测试之MonkeyRunner之monkeyrunner
  7. Android中下载文件的使用
  8. Android(安卓)微博布局风格
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android 仿苹果底部弹出Dialog
  2. Android 之欢迎界面Splash
  3. android分享应用工具类
  4. Android 实现Activity后台运行
  5. Android ImageSwitcher
  6. android判断手机有没有安装微博
  7. java android 获取手机操作系统相关信息
  8. android图层划分(PhoneWindowManager.win
  9. Android读取XML文件(SAX)
  10. android 跳转并传递参数