当前位置:首页 » 安卓系统 » android执行shell

android执行shell

发布时间: 2024-09-04 07:58:43

A. 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 = Runtime.getRuntime(); Process proc = runtime.exec(command); //这句话就是shell与高级语言间的调用 //如果有参数的话可以用另外一个被重载的exec方法 //实际上这样执行时启动了一个子进程,它没有父进程的控制台 //也就看不到输出,所以需要用输出流来得到shell执行后的输出 InputStream inputstream = proc.getInputStream(); InputStreamReader inputstreamreader = new InputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputstreamreader); // read the ls output String line = ""; StringBuilder sb = new StringBuilder(line); while ((line = bufferedreader.readLine()) != null) { //System.out.println(line); sb.append(line); sb.append('\n'); } //tv.setText(sb.toString()); //使用exec执行不会等执行成功以后才返回,它会立即返回 //所以在某些情况下是很要命的(比如复制文件的时候) //使用wairFor()可以等待命令执行完成以后才返回 try { if (proc.waitFor() != 0) { System.err.println("exit value = " + proc.exitValue()); } } catch (InterruptedException e) { System.err.println(e); } } } 2.直接安装shell模拟器,即已经开发好的android应用,启动后类似windows的dos命令行,可以直接安装使用,可执行常用的linux命令,应用在附件。 shell.apk大小:455.51K所需财富值:5 已经过网络安全检测,放心下载 点击下载下载量:1

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

android程序执行adbshell命令(实例源码)packagenet.gimite.nativeexe;importjava.io.BufferedReader;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.net.HttpURLConnection;importjava.net.MalformedURLException;importjava.net.URL;importnet.gimite.nativeexe.R;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.*;{privateTextViewoutputView;privateButtonlocalRunButton;privateEditTextlocalPathEdit;privateHandlerhandler=newHandler();privateEditTexturlEdit;privateButtonremoteRunButton;/**.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){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);}=newOnClickListener(){publicvoidonClick(Viewv){Stringoutput=exec(localPathEdit.getText().toString());output(output);//try{//////Processprocess=Runtime.getRuntime().exec(localPathEdit.getText().toString());////}catch(IOExceptione){////TODOAuto-generatedcatchblock//e.printStackTrace();//}}};//ExecutesUNIXcommand.privateStringexec(Stringcommand){try{Processprocess=Runtime.getRuntime().exec(command);BufferedReaderreader=newBufferedReader(newInputStreamReader(process.getInputStream()));intread;char[]buffer=newchar[4096];StringBufferoutput=newStringBuffer();while((read=reader.read(buffer))>0){output.append(buffer,0,read);}reader.close();process.waitFor();returnoutput.toString();}catch(IOExceptione){thrownewRuntimeException(e);}catch(InterruptedExceptione){thrownewRuntimeException(e);}}privatevoiddownload(StringurlStr,StringlocalPath){try{URLurl=newURL(urlStr);HttpURLConnectionurlconn=(HttpURLConnection)url.openConnection();urlconn.setRequestMethod("GET");urlconn.setInstanceFollowRedirects(true);urlconn.connect();InputStreamin=urlconn.getInputStream();FileOutputStreamout=newFileOutputStream(localPath);intread;byte[]buffer=newbyte[4096];while((read=in.read(buffer))>0){out.write(buffer,0,read);}out.close();in.close();urlconn.disconnect();}catch(MalformedURLExceptione){thrownewRuntimeException(e);}catch(IOExceptione){thrownewRuntimeException(e);}}privatevoidoutput(finalStringstr){Runnableproc=newRunnable(){publicvoidrun(){outputView.setText(str);}};handler.post(proc);}}

C. android执行shell脚本打开蓝牙

网络的问题。shell脚本打开蓝牙多数是网络连接异常导致。
1、首先打开电脑检查网络。
2、其次打开android程序进行测试网络连接是否异常。
3、最后重新连接网络后重新登录该程序即可。

D. android的shell有啥用

android 底层驱动实际linux, linux中大量使用了shell。那 shell到底是什么东西呢?个人理解相当于windows中的

cmd,但是shell很强大,如果你能熟练使用shell,在android开发中如虎添翼。

下面就android常用的shell进行一下说明:

1. cd (change directory)

如: cd / 跳转到根目录 cd ~ 跳转到用户所在的目录

2. ls (list)

显示目录结构

3. chmod 777 path

在开发过程中,如果发现文件不能读写,首先应该想到是否给user权限,可以通过该命令试试看

改变目录属性,如果目录下面还有子目录,加上-R

4. chown 该变目录所有者

如果目录还有子目录,加上-R

5. rm 目录

如果是文件加上-f

如果是目录加上-r

6. find

找文件,如果找到R.java文件,然后删除它

find . -name R.java|args rm -rf

find . -name *.svn|xargs rm -rf
find . -name *.class|xargs rm -rf

7. 替换,如某个文件中根据某个模式替换某行

如下命令就是找到FPTitlebar.java这个java文件,找不到// pm.shutDown();,用pm.shutDown();替换之。

find . -name FPTitlebar.java -exec sed -i 's\// pm.shutDown();\ pm.shutDown();\' {} \;

比较难的如下所示:

find . -name *.java -exec sed -i 's\KeyEvent.KEYCODE_2\KeyEvent.KEYCODE_CAMERA \g ' {} \;
find . -name *.java -exec sed -i 's\KeyEvent.KEYCODE_1\KeyEvent.KEYCODE_CALL \g ' {} \;

找到所有的java文件,用KeyEvent.KEYCODE_CAMERA替换KeyEvent.KEYCODE_2

8. 编译android源码时实际也是执行shell命令:

//执行build 目录下envsetup.sh命令

. build/envsetup.sh

//弹出选择框,分别选择第一个,第一个,第五个,第三个

choosecombo 1 1 5 3

//设置环境变量

export ANDROID_JAVA_HOME=$JAVA_HOME

//执行update命令

make update-api

//起4 个线程同时编译

make -j 4

9. 如果你使用了第三so包,需要在android编译,直接在mk文件中添加如下设置即可:

如下所示:

1. 声明library名称

###############################
LOCAL_STATIC_JAVA_LIBRARIES := xstream
###############################

2. 加入引入的库文件

###############################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := xstream:xstream-1.3.1.jar
include $(BUILD_MULTI_PREBUILT)
###############################

E. 如何让Android系统或Android应用执行shell脚本

android系统执行shell脚本,需要首先确认用户具有修改shell的权限,使用 process来执行指令,如下代码:

publicvoidexecShell(Stringcmd){
try{
//权限设置
Processp=Runtime.getRuntime().exec("su");//开始执行shell脚本
//获取输出流
OutputStreamoutputStream=p.getOutputStream();
=newDataOutputStream(outputStream);
//将命令写入
dataOutputStream.writeBytes(cmd);
//提交命令
dataOutputStream.flush();
//关闭流操作
dataOutputStream.close();
outputStream.close();
}
catch(Throwablet)
{
t.printStackTrace();
}
}
热点内容
ts服务器地址 发布:2024-11-25 03:19:26 浏览:295
苹果设置新的id账号和密码忘了怎么办啊 发布:2024-11-25 03:12:28 浏览:11
安卓电脑键盘图标怎么删除 发布:2024-11-25 03:07:52 浏览:143
洞庭游戏源码 发布:2024-11-25 03:07:05 浏览:74
相关检测算法 发布:2024-11-25 03:02:44 浏览:919
压缩机抽气器 发布:2024-11-25 03:02:43 浏览:325
天天酷跑的文件是哪个文件夹 发布:2024-11-25 03:01:00 浏览:24
刘奕君访问 发布:2024-11-25 02:52:04 浏览:73
ftp邮件报警 发布:2024-11-25 02:46:22 浏览:217
钟算算法 发布:2024-11-25 02:41:45 浏览:533