Robotium是基于Instrumentation框架的,其编写的测试脚本与被测程序运行在同一个进程里面,所以这需要测试程序与被测程序拥有相同的签名,否则无法进行通讯。
在只有apk的情况下可以采用“去签名再签名”的方法对被测程序进行签名。且没有签过名的apk是装不到手机里去的。

 那你是否要问,我的测试程序打包成的apk为什么可以直接装,而不用签名呢?

 那是因为当你再用eclipse生成apk时,eclipse用本地的sdk中的签名工具,自动为你签过名了,所以eclipse打包成的apk可以直接装到手机里去。

所以说假如你想与被测程序通讯,即做测试,两种途径:

1、查看被测程序是用的哪种签名,你也同样用被测程序的签名把你自己的测试脚本也签成这个,但是这个是不容易做到的。

 被测程序如果没有源码的话,签名估计也是搞不到的,那可是机密文件,很少外传的,

 比如说你想测美团外卖的app,但是你是不可能拿到这个app签名的,所以只能采用第二种方法。

2、把被测程序也签成跟你测试脚本一样的签名,即也用本地sdk中的签名工具重新签一下。

   这里(http://jingyan.baidu.com/album/bad08e1ee438e109c851213d.html?picindex=2)介绍了两种方法,

 第一种是利用debug.keystore,第二种是利用re-sign.jar。无论哪一种方法,都是要先配置环境变量,ANDROID_HOME, JAVA_HOME等变量,

 这里你把平时需要android环境需要配置的都配置完,运行签名命令之后,如果提示,找不到路径之类的,你再接着配别的,因为我也记不清具体是哪几个了。

   方法一、利用debug.keystore,我就不多做介绍了,可以参考http://www.51testing.com/html/92/115892-223023.html,反正我是没成功,不知道是什么问题,祝你好运!

   方法二、利用re-sign.jar,这个特别方便,一次成功,只是re-sign.jar不好下载,在网上找了很多,都没有找到,最终在一个测试的群文件里找到啦,皇天不负有心人,终于搞定啦!

       现把re-sign.jar下载链接http://files.cnblogs.com/files/zh-ya-jing/re-sign.zip分享给大家!

  如果上边还没解决你的问题,你可能是像我一样,测试的是手机系统,整个手机系统预装了多个app,采用上述方法二把被测程序签名成与测试脚本相同的签名,这显然不现实,

所以只能采用方法一,把测试脚本签名成手机系统app的签名,这你只能找手机系统版本的开发项目组,索要手机app的签名。签过之后,你把测试脚本装到手机里,就可以控制手机app啦!

Robotium测试没有源码的apk--需重签名apk的更多相关文章

  1. 为没有源码的DLL文件添加强名称

    为没有源码的DLL文件添加强名称 如果项目中引用了其他没有源码的dll文件,并且此dll文件是没有强名称的程序集,则编译时会出现类似 "Assembly generation failed ...

  2. Eclipse中查看没有源码的Class文件的方法

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/18798473 本文作者:sushengmiyan 我们在使用Eclipse的时候,经常 ...

  3. mac下自己实现re-sign.jar对apk进行重签名

    利用Robotinum对给的apk文件进行自动化测试,在不知道源码的情况下,只有apk文件如何进行自动化测试呢? 首先需要对apk文件进行重签名,并获得该apk文件的包名和程序入口的类名. 最开始网上 ...

  4. 使用re-sign.jar对apk进行重签名

    准备: ① re-sign.jar重签名工具:(下载地址为:http://troido.de/downloads/category/1): ② 待重签名的apk:      重签名步骤: ① 右键re ...

  5. 5.eclipse 自带的jdk没有源码,改了它

    其实JDK源码在安装的时候已经放在了jdk所在的目录下,只是eclipse使用 了不带有源码的jre,导致没找到对应的源码,点击 Window->Perference->Java-> ...

  6. 用re-sign.jar重签名apk后安装失败的解决办法

    问题 打开re-sign.jar,将下载好的apk拖入re-sign.jar的界面进行重签名.重签名成功后,通过adb intall命令安装重签名后的apk文件失败.提示:Failure [INSTA ...

  7. 转 对APK进行重签名

    1.      生成Android APK包签名证书1).     在doc中切换到jdk的bin目录cd C:\Program Files\Java\jdk1.6.0_18\bin2).     运 ...

  8. apk的重签名

    1.      生成Android APK包签名证书 1).     在doc中切换到jdk的bin目录 cd C:\Program Files\Java\jdk1.6.0_18\bin 2).    ...

  9. 程序集生成失败 -- 引用的程序集“ThoughtWorks.QRCode”没有强名称,为没有源码的程序集强签名

    如果你写的程序程序集是带签名的,应用了没有签名的程序集,编译就会报下面的错误 引用的程序集“**”没有强名称 进入sdk提示符界面,依次输入如下指令 sn -k ThoughtWorks.QRCode ...

随机推荐

  1. [WOJ3010] 骰子

    题目描述: 骰子是一个六面分别刻有一到六点的立方体,每次投掷骰子,理论上得到\(1\)到\(6\)的概率都是\(1/6\). 有骰子一颗,连续投掷\(n\)次,问点数总和大于等于\(X\)的概率是多少 ...

  2. Guard Duty (hard) Codeforces - 958E3 || uva 1411

    https://codeforces.com/contest/958/problem/E3 当没有三点共线时,任意一个这样的点集都是保证可以找到答案的,(考虑任意一种有相交的连线方案,一定可以将其中两 ...

  3. AJPFX简述i=i+1与i+=1及x++的区别和效率

    i=i+1与i+=1及x++的区别和效率 1.x=x+1,x+=1及x++的效率哪个最高?为什么? x=x+1最低,因为它的执行如下. (1)读取右x的地址: (2)x+1: (3)读取左x的地址: ...

  4. zuul filter

    前言 过滤器是Zuul的核心组件,这篇文章我们来详细讨论Zuul的过滤器.下面话不多说,来看看详细的介绍吧. 过滤器类型与请求生命周期 Zuul大部分功能都是通过过滤器来实现的.Zuul中定义了四种标 ...

  5. 2017 五一 清北学堂 Day1模拟考试结题报告

    预计分数:100+50+50 实际分数:5+50+100 =.= 多重背包 (backpack.cpp/c/pas) (1s/256M) 题目描述 提供一个背包,它最多能负载重量为W的物品. 现在给出 ...

  6. CSS选择器手册

    CSS选择器手册 选择器       选择器名称         例子 例子描述 CSS E.class 类选择器 E.intro 选择 class="intro" 的所有E元素. ...

  7. php 正则符号说明

    preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array); preg_match_all (&qu ...

  8. Servlet The Request

    The Request HTTP Protocol Parameters 所有的HTTP Protocol Parameters都会放在一个Map中, 可以通过getParameterMap得到. 对 ...

  9. ERROR 14856 --- [reate-882003853] com.alibaba.druid.pool.DruidDataSource : create connection error, url: jdbc:mysql://localhost:3306/xhb?useUnicode=true&characterEncoding=UTF-8, errorCode 1045, sta

    ERROR 14856 --- [reate-882003853] com.alibaba.druid.pool.DruidDataSource : create connection error, ...

  10. Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

    为什么使用Python-OpenCV? 虽然python 很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV 来讲,它还是弱小很多.跟很多开源软件一样OpenCV 也提供了完善的pytho ...