Archive

Archive for the ‘零敲碎打’ Category

[Android]使用android-junit-report.jar导出单元测试报告

July 18th, 2014 3 comments

Android在使用脚本编译和测试时,使用默认的testrunner不会输出文件类型的单元测试报告,每次只能分析logcat的无法直观的看到单元测试结果和报告,这给编写自动化脚本带来了不少麻烦,虽然可以自己动手编写支持junit测试报告输出的TestRunner,但是比较麻烦。除此之外,有一个android-junit-report.jar的开源包可以拿来使用,使用方法也很简单,输出的单元测试报告也可以为多种报告分析工具分析。具体使用方法如下:

这里假设Android APP的包名为com.xxx.xxx
方法1:使用Eclipse IDE方式
1.下载android-junit-report.jar并将其导入到Android测试项目的libs中
2.打开Android测试项目的AndroidManifest.xml文件,找到

<instrumentation 
      android:name="android.test.InstrumentationTestRunner"
      android:targetPackage="com.xxx.xxx"></instrumentation>

修改为

<instrumentation 
      android:name="com.zutubi.android.junitreport.JUnitReportTestRunner" 
      android:targetPackage="com.xxx.xxx"></instrumentation>

3.运行Junit测试
4.使用ADB方式获取单元测试报告

adb pull /data/data/com.xxx.xxx/files/junit-report.xml

Read more…

Categories: 零敲碎打 Tags: ,

[Android]升级SDK tools后ant自动编译脚本错误

July 18th, 2014 No comments

Android SDK Tools在升级到Version22之后,原来的ant自动编译脚本运行出现错误,导致为Jenkins配置的批处理脚本无法执行,一直发送错误邮件,经过调查后发现,Android SDK Tools升级后文件和目录结构发生了变化,主要包括以下
1.Android SDK Tools 22之后的版本中tools目录中将不包含

  • tools\zipalign.exe
  • tools\sqlite3.exe

以上两个文件,但是文件对应移动到了各自的platform-tool和build-tools下面,对应路径如下

  • build-tools\android-xx\zipalign.exe
  • platform-tools\sqlite3.exe

如果需要使用时,需要手动复制到tools下,或者放到PATH变量中去。
Read more…

Categories: 零敲碎打 Tags: , ,

[iOS]使用Dropbox的https外链OTA部署APP

May 6th, 2014 3 comments

iOS7.1之后使用OTA方式部署时,强制使用SSL加密方式传送ipa文件和plist文件,但是服务器使用https的话需要支付一定的费用购买SSL证书,国内使用OTA方式发布ipa文件的开发者大部分使用的时http方式,http方式在iOS7.1就失效了。如果对发布的环境要求不高,使用Dropbox作为存储空间方式发布是不错的选择,并且Dropbox是支持https的,而且是浏览器地址栏显示为绿色,最安全的EVSSL。
Read more…

Categories: 零敲碎打 Tags: ,

[iOS]7.1使用OTA部署APP出现Cannot install applications错误

April 28th, 2014 1 comment

iOS升级到7.1之后,之前一直使用正常的OTA部署的网站在安装APP时报出了以下错误

Cannot install applications because the certificate for www.example.com is not valid

而在7.0和之前的版本上没有这类问题,经过调查得知iOS7.1以后强制使用https安全连接方式才能正常部署,OTA部署用plist文件和ipa文件的URI必须以https方式开头,而7.1之前使用http即可,影响范围包括企业内部署使用的Ad-HOC和InHouse方式。
Read more…

Categories: 零敲碎打 Tags:

[iOS]CoreGraph在64位模式下与NSString drawInRect冲突

April 15th, 2014 No comments

iOS SDK支持64bit后,大部分代码可以直接无缝转换并通过编译,但是这些代码在运行时可能会有所差异,所以开发时需要特别注意,Cocoa-Charts在开发过程中就发现了这类问题。
问题现象:
CoreGraph绘图方法与NSString的drawInRect方法在64Bit下存在着冲突,64Bit下调用drawInRect之后会导致CGContext中的path被清空从而使CGContextStrokePath不进行任何绘图操作,而32Bit下没有任何问题。

Read more…

[iOS]Makefile交叉编译静态库TA-lib

December 2nd, 2013 No comments

为了使Cocoa-Charts支持客户端数据计算,需要为Cocoa-Charts增加技术分析数据计算功能,目前比较通用的是TA-lib,但是TA-lib没有提供iOS版本的静态库文件,因此需要在X86平台上交叉编译适用于iPhone模拟器和iPhone真机的TA-lib静态库,用于调试和开发iOS应用程序,使TA-lib支持ARMv7 ARMv7s i386等系统架构的多种iPhone机型或模拟器。
Read more…

[iOS]Xcode5下使用Makefile编译找不到GCC

December 2nd, 2013 No comments

Xcode5已经完全抛弃了GCC并切换到LLVM,但并不是完全去除GCC,只是对GCC等编译相关执行文件的位置进行了调整,
如果之前使用的是使用Makefile方式命令行编译iOS APP的话,Xcode4.6下编写的脚本可能会无效,需要对GCC的执行文件路径进行调整。
调整内容如下
Xcode4.6之前:
/Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer/usr/bin
Xcode5.0:
/Applications/Xcode.app/Contents/Developer/usr/bin
Read more…