单个设备上的多个APK

时间:2015-08-26 18:23:58

标签: android testing

我的QA团队要求我们为他们提供指向不同服务器的不同APK,他们可以将所有这些安装在同一设备上,以便他们可以并排比较。

我知道如果不更改包名,就不可能在设备上安装多个APK。但是,由于应用程序使用像GCM这样的服务,它们依赖于包名称,然后我们必须开始在服务器上进行更改以支持调试版本。

我只是很想知道人们通常如何测试应用程序,特别是在上面的情况下你可以拥有多个服务器,你可能想要测试。你们使用的是否有专门的工具?什么是最佳做法?

3 个答案:

答案 0 :(得分:2)

有一个只调试的屏幕,他们可以选择要连接的服务器......

答案 1 :(得分:1)

根据@Buddy的建议,你可以做到。

但我建议您带两台设备并排查询。因为没有工具可以做到这一点。

答案 2 :(得分:1)

我的团队有3台服务器:

  1. 直播服务器
  2. 烟雾服务器
  3. 登台服务器
  4. 这三个代码都相同,但数据库和API不同。所以,当我发布APK进行测试时,我只需更改android { compileSdkVersion 'Google Inc.:Glass Development Kit Preview:19' buildToolsVersion "22.0.1" defaultConfig { applicationId "com.company.glass.doc" //CHANGE APP-ID FROM HERE minSdkVersion 19 targetSdkVersion 19 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } }}

    中的 applicationId

    示例:

    对于实时服务器:

    android {
    compileSdkVersion 'Google Inc.:Glass Development Kit Preview:19'
    buildToolsVersion "22.0.1"
    
    defaultConfig {
        applicationId "com.company.glass.docinternal" //CHANGE APP-ID FROM HERE
        minSdkVersion 19
        targetSdkVersion 19
    }
    
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }}
    

    对于冒烟和登台服务器:

    /* #include <iostream>
    #include<cstdio>
    #include<cstring>
    
    using namespace std;
    void substring(char *a,char *b);
    
    int main()
    {
    char a[80],b[80];
    gets(a);
    gets(b);
    substring(a,b);
    
    return 0;
    }
    void substring(char *a,char *b)
    {
    int c,d;
    c=strlen(a);
    d=strlen(b);
    for(int t=0;t<c;t++)
    {
        if(a[t] && a[t]==*b)
        {
            int t1,t2,t3,t4;
            t2=1;
            t1=d-1;
            t3=t+1;
            while(t1 && a[t3]==b[t2] )
            {
            t1--;
            t3++;
            t2++;
            t4=t2;
            }
    
            if(!t1 && a[t4]==' ') //to avoid showing "am" in kamlesh. 
                cout<<t+1<<endl;
          }
       }
     } */
    
    #include <iostream>
    #include<cstdio>
    #include<cstring>
    
    using namespace std;
    void substring(char *a,char *b);
    
     int main()
      {
    char a[80],b[80];
    int s;
    gets(a);
    gets(b);
    substring(a,b);
    
    return 0;
    }
    void substring(char *a,char *b)
    {
    char *s1,*s2;
    
    for(int t=0;a[t];t++)
    {
       s1=&a[t];
       s2=b;
        while(*s2 && *s2==*s1)
        {
            s1++;
            s2++;
        }
        if(*s2 && *s1==' ')
           cout<<t;
       }
    
      }
    

    相应的服务器使用applicationId检测相应的APK。