简体   繁体   English

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

[英]Programmatically install Android app from java program (Runtime.getRunTime().exec(adb.exe install app_package_name)

I am writing a automation program where from Java code, Android app has to be installed and later uninstalled. 我正在编写一个自动化程序,必须从Java代码中安装Android应用程序,然后再将其卸载。

The sample snippet is: 示例代码段是:

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

I used right values for above app_package_name, does not have .apk file extension and device_id respectively. 我为上面的app_package_name使用了正确的值,分别没有.apk文件扩展名和device_id

This does not install the app on device. 这不会在设备上安装该应用程序。 The app is user app. 该应用是用户应用。

Can you please let me know if I have to make any settings in app (in manifest file) or elsewhere (or in Java program) to make this work. 您能否让我知道是否需要在应用程序(清单文件中)或其他地方(或Java程序中)进行任何设置才能使其正常工作。

You dont need to use adb when you perform it programatically, 以编程方式执行它时,无需使用adb,

Specifying the apk path in your machine and the package name will by default push the app to the device and will land in the launcher activity/home screen ogf your app, try using the below code, 在您的计算机中指定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);


}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM