JAVA代码执行shell命令
2011-06-07 20:48:20
在Android可能有的系统信息没有直接提供API接口来访问,为了获取系统信息时我们就要在用shell指令来获取信息,这时我们可以在代码中来执行命令 ,这里主要用到ProcessBuilder 这个类.
代码部分 :
package com.yin.system_analysis; import java.io.File; import java.io.IOException; import java.io.InputStream; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private final static String[] ARGS = {"ls","-l"}; 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.myButton); myTextView = (TextView) findViewById(R.id.textView); mButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { myTextView.setText(getResult()); } }); } public String getResult(){ ShellExecute cmdexe = new ShellExecute ( ); String result=""; try { result = cmdexe.execute(ARGS, "/"); } 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 ; } } }
布局文件很简单就不列出了
执行结果 如图 :
您还没有登录,请您登录后再发表评论
Android中级篇之用JAVA代码执行shell命令
本教程将深入讲解如何在Android应用中通过Java代码执行shell命令,以提升应用的功能和效率。 一、Android与Shell命令 Android系统基于Linux内核,因此支持使用Linux命令行工具,即shell命令。这些命令提供了对系统...
- **案例实践**:通过实际案例来练习Shell脚本的编写,例如备份文件系统、定期执行任务等。 #### 五、Linux深入篇 ##### 5.1 构建Nginx WEB服务器 - **Nginx介绍**:Nginx是一款轻量级的Web服务器/反向代理服务器...
- **与JAVA的关系**: Android的主要开发语言是JAVA,几乎所有核心应用都使用JAVA编写。 - **物联网应用开发**: - 利用Android SDK进行物联网应用程序开发。 - 结合传感器技术实现对环境参数的采集和处理。 - 通过...
猎豹网校VC++ MFC 经典教程 基础篇[MP4] 猎豹网校Java 零基础入门[MP4] 猎豹网校 游戏编程快速入门[MP4] 猎豹网校 网店赢家淘宝网新手开店[MP4] 猎豹网校 透测测试 系统安全测试[MP4] 猎豹网校 淘宝卖家网店...
相关推荐
Android中级篇之用JAVA代码执行shell命令
本教程将深入讲解如何在Android应用中通过Java代码执行shell命令,以提升应用的功能和效率。 一、Android与Shell命令 Android系统基于Linux内核,因此支持使用Linux命令行工具,即shell命令。这些命令提供了对系统...
- **案例实践**:通过实际案例来练习Shell脚本的编写,例如备份文件系统、定期执行任务等。 #### 五、Linux深入篇 ##### 5.1 构建Nginx WEB服务器 - **Nginx介绍**:Nginx是一款轻量级的Web服务器/反向代理服务器...
- **与JAVA的关系**: Android的主要开发语言是JAVA,几乎所有核心应用都使用JAVA编写。 - **物联网应用开发**: - 利用Android SDK进行物联网应用程序开发。 - 结合传感器技术实现对环境参数的采集和处理。 - 通过...
猎豹网校VC++ MFC 经典教程 基础篇[MP4] 猎豹网校Java 零基础入门[MP4] 猎豹网校 游戏编程快速入门[MP4] 猎豹网校 网店赢家淘宝网新手开店[MP4] 猎豹网校 透测测试 系统安全测试[MP4] 猎豹网校 淘宝卖家网店...