如何在android程序中执行adb shell命令

如题所述

package net.gimite.nativeexe;  
      
import java.io.BufferedReader;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.InputStreamReader;  
import java.net.HttpURLConnection;  
import java.net.MalformedURLException;  
import java.net.URL;  
      
import net.gimite.nativeexe.R;  
import android.app.Activity;  
import android.os.Bundle;  
import android.os.Handler;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.*;  
      
public class MainActivity extends Activity {  
      
    private TextView outputView;  
    private Button localRunButton;  
    private EditText localPathEdit;  
    private Handler handler = new Handler();  
    private EditText urlEdit;  
    private Button remoteRunButton;  
      
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
      
        outputView = (TextView)findViewById(R.id.outputView);  
        localPathEdit = (EditText)findViewById(R.id.localPathEdit);  
        localRunButton = (Button)findViewById(R.id.localRunButton);  
        localRunButton.setOnClickListener(onLocalRunButtonClick);  

}  
      
    private OnClickListener onLocalRunButtonClick = new OnClickListener() {  
        public void onClick(View v) {  
            String output = exec(localPathEdit.getText().toString());  
            output(output);  
//            try {  
//  
//               // Process process = Runtime.getRuntime().exec(localPathEdit.getText().toString());  
//  
//            } catch (IOException e) {  
//                // TODO Auto-generated catch block  
//                e.printStackTrace();  
//            }  
        }  
    };  

// Executes UNIX command.  
    private String exec(String command) {  
        try {  
            Process process = Runtime.getRuntime().exec(command);  
            BufferedReader reader = new BufferedReader(  
                    new InputStreamReader(process.getInputStream()));  
            int read;  
            char[] buffer = new char[4096];  
            StringBuffer output = new StringBuffer();  
            while ((read = reader.read(buffer)) > 0) {  
                output.append(buffer, 0, read);  
            }  
            reader.close();  
            process.waitFor();  
            return output.toString();  
        } catch (IOException e) {  
            throw new RuntimeException(e);  
        } catch (InterruptedException e) {  
            throw new RuntimeException(e);  
        }  
    }  
      
    private void download(String urlStr, String localPath) {  
        try {  
            URL url = new URL(urlStr);  
            HttpURLConnection urlconn = (HttpURLConnection)url.openConnection();  
            urlconn.setRequestMethod("GET");  
            urlconn.setInstanceFollowRedirects(true);  
            urlconn.connect();  
            InputStream in = urlconn.getInputStream();  
            FileOutputStream out = new FileOutputStream(localPath);  
            int read;  
            byte[] buffer = new byte[4096];  
            while ((read = in.read(buffer)) > 0) {  
                out.write(buffer, 0, read);  
            }  
            out.close();  
            in.close();  
            urlconn.disconnect();  
        } catch (MalformedURLException e) {  
            throw new RuntimeException(e);  
        } catch (IOException e) {  
            throw new RuntimeException(e);  
        }  
    }  
      
    private void output(final String str) {  
        Runnable proc = new Runnable() {  
            public void run() {  
                outputView.setText(str);  
            }  
        };  
        handler.post(proc);  
    }  
      
}

温馨提示:内容为网友见解,仅供参考
无其他回答

如何在android程序中执行adb shell命令
首先确认已经配置好adb环境,检测方法为输入adb devices,如果提示不识别adb命令时需要安装好adb配置环境后,1. adb配置好以后,执行adb root 2. (如果要对内部文件执行操作,需要在这里加一个步骤: adb amount )3. 然后即可执行adb shell

android apk 怎么执行adb shell命令
android中执行shell命令有两种方式:1.直接在代码中用java提供的Runtime 这个类来执行命令,以下为完整示例代码。public void execCommand(String command) throws IOException { \/\/ start the ls command running \/\/String[] args = new String[]{"sh", "-c", command}; Runtime runtime...

安卓设备中在执行bat脚本时abd shell自动输入密码并执行命令怎么写...
可以使用 echo 命令和管道符 | 将密码输入到 adb shell 的命令中。假设你的密码为 mypassword,需要执行的命令为 mycommand,那么可以这样写:echo mypassword | adb shell mycomman 在上面的命令中,echo mypassword 将密码输出到标准输出流,然后通过管道符 | 将标准输出流连接到 adb shell mycomma...

adb shell 是什么,如何进入
1、首先,用数据线将手机和电脑连接:2、然后,在电脑桌面上找到“Minimal ADB and Fastboot”并点击:3、接着,输入命令:【adb devices】,此时会看到device之前有个设备名,说明已经成功连接到了手机:4、之后,接着输入命令【adb shell】,点击回车:5、最后,程序回复指令【gemini:\/$】,那么此时...

如何进入Android adb shell 命令行模式
如果你配置了adb的环境变量 那么你连接手机以后,直接执行 adb shell 则进入命令模式了 如果你没有配置环境变量,那么,你需要进入sdk\\platform-tools目录下 再执行 adb shell

如何启动adb shell命令
1. 放在E:\\adb目录下;2. 开始->运行(或者Win + R),CMD回车,进入命令行环境;3. 输入e:回车,然后输入cd adb 回车;4. 运行adb shell即可 或:进入命令行环境后输入 e:\\adb\\adb shell也可。放在System32下面的目的只是为了让Windows系统可以自动识别为全局命令,但这一招在64位系统和一些...

[Android] adb shell开启root权限(Mi 8)
利用TWRP,你可以通过ADB Sideload功能安装Magisk。从GitHub下载最新Magisk-v??.apk,更改后缀为zip。在TWRP中点击“高级”>“ADB Sideload”,然后在电脑上执行刷入命令。刷入过程中,手机会显示Magisk操作日志。重启手机后,Magisk会出现在桌面上,但不能直接打开。再次下载最新Magisk-apk并安装。至此,...

如何使用adb命令查看android中的数据库
1,进入到控制台中,输入adb shell,进入到命令模式的环境中 2,输入:cd \/data\/data\/ 3, 选择你所在的数据库文件,比如我的com.android.homework, 输入命令:cd com.android.homework 4, 可以使用ls -l 命令查看当前目录中的文件 5,输入: cd databases 进入到数据库文件中 6, ls -l 显示你...

nexus 5 怎样设置 adb shell
这时通过USB线将android手机与电脑连起来,在电脑上dos命令行中敲adb shell命令,可以远程登录到android手机的linux系统中。成功登陆到android手机的系统中后,就可以运行一些简单的linux命令,比如'ls'查看目录中的文件,‘cd xxx’进入到xxx目录, 'exit'退出登录等等。

怎么在命令模式下使用adb \/ 进入adb shell
输入一图命令:【adb devices】,此时会看到device之前有个设备名,说明连接到了手机。输入【adb shell】,那么看到【gemini:\/$】,那么此时进入到shell。方法\/步骤2点击田上开始,输入一个cmd并且打开了它。而后输入图一进入命令:adb shell 回车键即可进入了的。如果要退出adb shell,那么输入exit,回车...

相似回答