1.配置好android sdk ,java环境

2.重新签名apk文件

在用户目录下,会有一个.android的目录,把re-sign.jar放在该目录下。执行命令 java -jar re-sign.jar 即可

再把apk文件脱到打开的re-sign上。保存重新签名后的文件。

注意,弹出的如下需要截图,后面会用到。

也可以用脚本直接操作。bat脚本如下

bat脚本和re-sign.jar再同一个目录下。

@echo off
echo "你的.android目录为:"
echo %USERPROFILE%\.android\
copy /y re-sign.jar %USERPROFILE%\.android\ && java -jar re-sign.jar
pause

3.  

创建测试项目 如下图:选择testTarget时选择This project

4.创建项目后,新建junit4测试类

5.导入robotium的jar包

6.编写代码

package m.usewidget.test;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test; import com.robotium.solo.Solo; import android.test.ActivityInstrumentationTestCase2; public class testRobotiumTest extends ActivityInstrumentationTestCase2 { private Solo solo;
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.www.main.StyrtActivity"; private static Class<?> launcherActivityClass;
static{
try{
launcherActivityClass=Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
}catch(ClassNotFoundException e){
throw new RuntimeException(e);
}
} public testRobotiumTest() {
//要执行的activity
super(launcherActivityClass);
// TODO Auto-generated constructor stub
} @Before
public void setUp() throws Exception {
//初始化solo对象
solo=new Solo(getInstrumentation(),getActivity());
} @After
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
//编写测试用例
@Test
public void test() {
solo.waitForDialogToOpen(); } }

  AndroidMainfest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="m.usewidget.test"
android:versionCode="29"
android:versionName="V1.0.29" > <uses-sdk android:targetSdkVersion="22" android:minSdkVersion="19" android:maxSdkVersion="22" /> <instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.www.tompot" /> <application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application> </manifest>

  

7.配置

在eclipse中,新建一个Android Test Project,进行配置,使得自动化脚本与要测试的apk进行关联。

  1) 修改Android Test Project下的AndroidMainfest.xml文件,使得粗体标注的package名与resign生成的名字一致
    <instrumentation
          android:name ="android.test.InstrumentationTestRunner"
        android:targetPackage ="com.example.mobile.testedapp" />
  2) 在自动化脚本测试类中,声明初始类,也要与resign生成的main activity类名一致
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME ="com.example.mobile.testedapp.MainActivity" ;
 
 
 

8.运行

1.android 自带的模拟器安装

  1) 打开Android SDK安装目录

  2) 找到sdk下的platform-tools目录

  3) 把重新签名后的apk文件放在该目录下

  4) 打开命令提示符:cmd

  5) cd  /sdk/platform-tools

  6) 打开要安装apk的模拟机

  7) 运行命令:adb install testedapp.apk。看到Success,说明apk已经安装成功了。

再安装中出现问题:

  在将程序发布到手机上时提示该错误:

  INSTALL_FAILED_INSUFFICIENT_STORAGE

  原因:空间不够用

  解决方法:

  1. adb shell

  2. #df

  发现/data下空间不足,原来是安装了太多应用程序导致。

  3. 删除一些不需要的程序即可。

   第一种办法:在反复安装android apk的时候,有的时候可能会遇到adb install错误,内容是:Failure                 [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
  这很可能是因为你在以前uninstall应用的时候,没有做彻底,只是简单的rm /data/app/下面的apk文件了,一个补救的办法如下:
  启动模拟器,然后进入菜单
  settings->applications->mange
  applications-> select the application->select "unistall".
  这样就能彻底删除了,然后再重新安装这个apk就没问题了

  第二种办法:修改模拟器内存大小

4.新建一个模拟器

2.夜神模拟器运行

启动模拟器

连接模拟器

  adb connect 127.0.0.1:62001
  adb devices

 1) 打开Android SDK安装目录

  2) 找到sdk下的platform-tools目录

  3) 把重新签名后的apk文件放在该目录下

  4) 打开命令提示符:cmd

  5) cd  /sdk/platform-tools

  6) 打开要安装apk的模拟机

  7) 运行命令:adb install testedapp.apk。看到Success,说明apk已经安装成功了。

运行测试:

运行时报错:Test run failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'

原因是:

    在自动化脚本测试类中,声明初始类,也要与resign生成的main activity类名一致
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME ="com.example.mobile.testedapp.MainActivity" ;
 再第7步配置过程中出错了,并没有resign生成的main activity的类名。
解决方法:

  查看debug-apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息
  aapt dump badging <file_path.apk>

使用上面的命令查看:launchable-activity:参数。

并将private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME =launchable-activity获取的参数。

并将AndroidManifest.xml里面的参数按照debug包显示出来的修改添加

<uses-sdk android:targetSdkVersion="22" android:minSdkVersion="19" android:maxSdkVersion="22" />

android adk更新 mirrors.neusoft.edu.cn:80 代理 多试几次

参考:http://www.cnblogs.com/enjoytesting/p/3622657.html

http://blog.csdn.net/annkie/article/details/8714716

http://www.cnblogs.com/easypass/p/3867211.html

http://blog.sina.com.cn/s/blog_68f262210102vac3.html

eclipse 搭建Robotium环境--apk 环境搭建的更多相关文章

  1. Ubuntu杂记——Ubuntu下Eclipse搭建Maven、SVN环境

    正在实习的公司项目是使用Maven+SVN管理的,所以转到Ubuntu下也要靠自己搭环境,自己动手,丰衣足食.步骤有点简略,但还是能理解的. 一.安装JDK7 打开终端(Ctrl+Alt+T),输入  ...

  2. eclipse中SSH三大框架环境搭建<三>

    相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的 ...

  3. eclipse中SSH三大框架环境搭建<二>

    通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...

  4. eclipse中SSH三大框架环境搭建<一>

    这里先简单介绍一下我用的三大框架版本以及下载地址 相关链接:eclipse中SSH三大框架环境搭建<二> eclipse中SSH三大框架环境搭建<三> struts-2.3.3 ...

  5. 基于Eclipse搭建Hadoop源码环境

    Hadoop使用ant+ivy组织工程,无法直接导入Eclipse中.本文将介绍如何基于Eclipse搭建Hadoop源码环境. 准备工作 本文使用的操作系统为CentOS.需要的软件版本:hadoo ...

  6. 【转】Eclipse和PyDev搭建完美Python开发环境(Ubuntu篇)

    原文网址:http://www.cnblogs.com/Realh/archive/2010/10/10/1847251.html 前两天在Windows下成功地搭好了一个Python开发环境,这次转 ...

  7. 搭建Eclipse、Resin Web开发环境

    搭建Eclipse.Resin Web开发环境 一.当然是安装java开发环境 参看: Java环境的搭建 http://www.cnblogs.com/ghj1976/archive/2010/04 ...

  8. Android SDK +Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建

    Android SDK+Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建 这几天一直在研究 Android SDK  C/C++平台的搭建,尽管以前有成功在Windows ...

  9. 使用Eclipse搭建C/C++开发环境(转)

    使用Eclipse搭建C/C++开发环境  文章出自:http://www.cnblogs.com/liuxianan/archive/2013/01/15/2861196.html 说明:网上有很多 ...

随机推荐

  1. utf8+bom格式保存php curl乱码问题

    今天开发遇到一个php curl取数据乱码问题 不是gzip也不是编码设置问题 最后有一同事判断为utf8+bom保存数据原因,懒得深入了解utf8+bom,仅做记录 [root@centos5 ~] ...

  2. windows如何获取Win10 Win8 Win8.1版本

    GetVersionEx 在win8 win8.1 win10 之后已经无法使用,如果非要使用的话需要让exe嵌入manifest,mainfest如下.这个文件需要已utf-8存储. <?xm ...

  3. 用正则表达式替换内容 php

    以前做一个项目,就是有一个问答的页面,比如说在回答或者提问的内容中插入表情.写到内容里的是表情图片的名字(而且是不带后缀的,比如:f_002.png)表情包放在项目里,我需要在取除内容的时候将里面的表 ...

  4. C语言版推箱子

    推箱子源代码初步: #include<stdio.h> #include<conio.h> #include<stdlib.h> #define boolean i ...

  5. 加密传输SSL协议2_传统加密

    原本到了睡觉的时间,但是做完了SSL的笔记还有GCC和Oracle等的好多的笔记,所以刻苦一点. The Priciple of Encryption/Decryption --conventiona ...

  6. JPA 2.1实例(hibernate 实现)

    1.环境准备 1)java se 7 2)maven 3 3)mysql database 2.创建数据库和表结构 首先创建数据库.创建数据库脚本如下: create database jpa; 创建 ...

  7. substr(dirname(__FILE__))

    这是discuz中定义论坛安装根目录的一个常量.现在我们就来分析一下这个很简单但是非常实用的常量.     define('DISCUZ_ROOT', substr(dirname(__FILE__) ...

  8. sqlserver 常用函数(转)

    1.字符串函数 : len(expression) 返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格. datalength(Char_expr) 返回字符串包含字符数,但不包含后面的 ...

  9. Oracle EBS-SQL (INV-2):库存会计期间.sql

    SELECT STATUS, PERIOD_NAME, PERIOD_NUMBER, PERIOD_YEAR, START_DATE, END_DATE, CLOSE_DATE, REC_TYPE,  ...

  10. 武汉新芯:已建成IP体系,欲以存储器为特色

    武汉新芯集成电路制造公司(XMC)是地方政府投资的半导体企业,2006年由湖北省.武汉市.武汉市东湖高新区投资,并由东湖高新区管理的全资国有企业,前几年委托SMIC(中芯国际)经营管理,从2012年底 ...