从java程序以编程方式安装Android应用程序(Runtime.getRunTime()。exec(adb.exe install app_package_name)

时间:2016-05-02 13:26:55

标签: java android

我正在编写一个自动化程序,从Java代码开始,必须安装Android应用程序,然后再卸载。

示例代码段为:

Process p = Runtime.getRunTime().exec(adb.exe install -s device_id apks\app_package_name);

我在app_package_name上面使用了正确的值,没有.apk文件扩展名和device_id

这不会在设备上安装该应用。该应用是用户应用。

如果我必须在应用程序(在清单文件中)或其他地方(或在Java程序中)进行任何设置,请告诉我。

1 个答案:

答案 0 :(得分:0)

以编程方式执行时,您不需要使用adb,

在您的计算机中指定apk路径,默认情况下会将应用程序推送到设备,并在应用程序的启动器活动/主屏幕中登陆,尝试使用以下代码,

import io.appium.java_client.android.AndroidDriver;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;

public class installApp{
     static AndroidDriver<WebElement>  driver;

    private static DesiredCapabilities capa = null;

    public static void main(String[] args) throws MalformedURLException, InterruptedException  {
    capa = new DesiredCapabilities();    
    capa.setCapability("automationName","Appium"); 
    capa.setCapability("platformName","Android");
    capa.setCapability("deviceName","device name");
    capa.setCapability("udid", "ur device udid");  
    capa.setCapability("platformVersion","5.1");
    capa.setCapability("newCommandTimeout","30");
    capa.setCapability("appPackage", "com.your app's package name"); 
    capa.setCapability("appActivity", "com.your app's launcher activity");

    driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capa);


}
}