2014年7月19日笔记 执行ADB命令行的源代码

本文展示了一个Android应用程序示例,该程序通过ADB命令实现设备连接及应用安装等功能。介绍了如何使用Java调用ADB命令,并获取命令执行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class adbActivity extends Activity {
    private final static String[] ARGS1 = {"adb","connect","10.10.10.103"}; 
    
    private final static String[] ARGS2 = {"adb","install","/storage/sdcard0/PreLancherActivity.apk"}; 
    
    private final static String[] ARGS3 = {"adb","shell"}; 
    private final static String TAG = "com.yin.system";
    Button mButton;  
    TextView myTextView;  
    public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
        setContentView(R.layout.main);  
        mButton = (Button) findViewById(R.id.bu1);  
        myTextView = (TextView) findViewById(R.id.txt1);  
          
        mButton.setOnClickListener(new OnClickListener() {  
              
           
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
getResult1();
myTextView.setText(getResult2());
}  
       });  
    }  
    public String getResult1(){ 
        ShellExecute cmdexe = new ShellExecute ( ); 
         String result=""; 
         try { 
            result = cmdexe.execute(ARGS1, null);
       } catch (IOException e) {  
           Log.e(TAG, "IOException"); 
           e.printStackTrace();  
        }  
        return result; 
    }  
    public String getResult2(){ 
        ShellExecute cmdexe = new ShellExecute ( ); 
         String result=""; 
         try { 
            result = cmdexe.execute(ARGS2, null);
       } catch (IOException e) {  
           Log.e(TAG, "IOException"); 
           e.printStackTrace();  
        }  
        return result; 
    }  
    private class ShellExecute { 
        /* 
         * args[0] : shell 命令  如"ls" 或"ls -1"; 
        * args[1] : 命令执行路径  如"/" ; 
         */  
       public String execute ( String [] cmmand,String directory)  
        throws IOException {  
        String result = "" ;  
       try {  
       ProcessBuilder builder = new ProcessBuilder(cmmand);  
          
       if ( directory != null )  
        builder.directory ( new File ( directory ) ) ;  
        builder.redirectErrorStream (true) ;  
        Process process = builder.start ( ) ;  
          
       //得到命令执行后的结果   
        InputStream is = process.getInputStream ( ) ;  
        byte[] buffer = new byte[1024] ;  
        while ( is.read(buffer) != -1 ) {  
        result = result + new String (buffer) ;  
        }  
        is.close ( ) ;  
        } catch ( Exception e ) {  
            e.printStackTrace ( ) ;  
        }  
        return result ;  
        }  
    }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值