Robotium测试没有源码的apk--需重签名apk
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的更多相关文章
- 为没有源码的DLL文件添加强名称
为没有源码的DLL文件添加强名称 如果项目中引用了其他没有源码的dll文件,并且此dll文件是没有强名称的程序集,则编译时会出现类似 "Assembly generation failed ...
- Eclipse中查看没有源码的Class文件的方法
本文地址:http://blog.csdn.net/sushengmiyan/article/details/18798473 本文作者:sushengmiyan 我们在使用Eclipse的时候,经常 ...
- mac下自己实现re-sign.jar对apk进行重签名
利用Robotinum对给的apk文件进行自动化测试,在不知道源码的情况下,只有apk文件如何进行自动化测试呢? 首先需要对apk文件进行重签名,并获得该apk文件的包名和程序入口的类名. 最开始网上 ...
- 使用re-sign.jar对apk进行重签名
准备: ① re-sign.jar重签名工具:(下载地址为:http://troido.de/downloads/category/1): ② 待重签名的apk: 重签名步骤: ① 右键re ...
- 5.eclipse 自带的jdk没有源码,改了它
其实JDK源码在安装的时候已经放在了jdk所在的目录下,只是eclipse使用 了不带有源码的jre,导致没找到对应的源码,点击 Window->Perference->Java-> ...
- 用re-sign.jar重签名apk后安装失败的解决办法
问题 打开re-sign.jar,将下载好的apk拖入re-sign.jar的界面进行重签名.重签名成功后,通过adb intall命令安装重签名后的apk文件失败.提示:Failure [INSTA ...
- 转 对APK进行重签名
1. 生成Android APK包签名证书1). 在doc中切换到jdk的bin目录cd C:\Program Files\Java\jdk1.6.0_18\bin2). 运 ...
- apk的重签名
1. 生成Android APK包签名证书 1). 在doc中切换到jdk的bin目录 cd C:\Program Files\Java\jdk1.6.0_18\bin 2). ...
- 程序集生成失败 -- 引用的程序集“ThoughtWorks.QRCode”没有强名称,为没有源码的程序集强签名
如果你写的程序程序集是带签名的,应用了没有签名的程序集,编译就会报下面的错误 引用的程序集“**”没有强名称 进入sdk提示符界面,依次输入如下指令 sn -k ThoughtWorks.QRCode ...
随机推荐
- 面向对象多继承(C3算法)/网络编程
https://www.cnblogs.com/aylin/p/5572104.html 一.面向对象多继承(c3算法) a.有多个父类先找左,再找右,如下示例: class A(object): p ...
- php __autoload函数 加载类文件
面向对象的开发时,大家肯定都会遇到这样的问题,就是加载文件,一般都是加文件的头部inclue_once,require一大堆,看着很让人烦.当然你可以自己写程序来加载.php5以后引入了__autol ...
- 借助Code Splitting 提升单页面应用性能
近日的工作集中于一个单页面应用(Single-page application),在项目中尝试了闻名已久的Code splitting,收获极大,特此分享. Why we need code spli ...
- div 绝对定位
div绝对居下 .Phone2title{ width:%; height:30px; line-height:30px; /*text-align:left;*/ /*background-colo ...
- 关于nodejs模块安装后找不到包解决办法
主要原因是类似bower.gulp这些包后,没有添加到环境变量,但是有洁癖的我也不希望添加太多的软链接,所以在用phpstorm开始时有需要的情况下 定义临时的环境变量 http://stackove ...
- 【algorithm】二叉树的遍历
二叉树的遍历 二叉树用例 代码解析: public class BinaryTree { static class TreeNode { Integer val; TreeNode left; Tre ...
- Docker快速构建Redis集群(cluster)
Docker快速构建Redis集群(cluster) 以所有redis实例运行在同一台宿主机上为例子 搭建步骤 redis集群目录清单 . ├── Dockerfile ├── make_master ...
- AJAX的JSON方式传回方法
AJAX返回数据的类型有两种,一种是TEXT类型,一种是JSON类型. 使用TEXT类型,访问数据库后将结果拼接成字符串,返回时在拆分成数组使用. JSON直接将结果转成JSON数据,返回时直接使用. ...
- 内存泄露,C++
内存泄露,C++通常是指new出来的内存没有delete掉.在你的代码里边,new了一块内存,然后马上就delete,自然就没有内存泄露了(呃……其实我也不确定啦,因为你用的是delete,而不是de ...
- Android学习总结(十六) ———— MediaPlayer播放音频与视频
一.基本概念 本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.Android的MediaPlayer包含了Audio和video的播放功能,在Andr ...