code:
package android.af.adbshell; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.util.Log; import android.view.ContextThemeWrapper; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.webkit.WebView; import android.widget.AdapterView; import android.widget.Button; import android.widget.ImageButton; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; public class MainActivity extends Activity { TextView editText1,editText2; private WebView webView1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sh(); } private void sh() { editText1 = (TextView) findViewById(R.id.editText1); editText2 = (TextView) findViewById(R.id.editText2); webView1 =(WebView)findViewById(R.id.webView1); Button btn_ls = (Button) findViewById(R.id.button1); btn_ls.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { do_exec(editText1.getText().toString()); } }); Button btn_ls1 = (Button) findViewById(R.id.button2); btn_ls1.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { readme(); } }); editText1.setText(listString[0].toString()); } String do_exec(String cmd) { Log.d("[adbshell] cmd=",cmd); String s = "<PRE>"; try { Process p = Runtime.getRuntime().exec(cmd); BufferedReader in = new BufferedReader(new InputStreamReader( p.getInputStream())); String line = null; while ((line = in.readLine()) != null) { s += line + "</br>"; // + "\n"; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.d("[adbshell]", "error:" + e.getMessage()); } s+=s+"</PRE>"; //editText2.setText(s); webView1.loadData(s, "text/html", "utf-8"); return cmd; } String [] listString={"ls /mnt/sdcard -l","cat /proc/version","rm /mnt/sdcard/1.jpg","/system/bin/sh /mnt/sdcard/test.sh 123"}; public Dialog show_list_ex() { int layoutlist =R.layout.layout_dialog_list1; int layoutSubId=R.layout.layout_dialog_list_item; final Dialog dialog = new Dialog(this, R.style.NoTitleDialog); View layout = LayoutInflater.from(this).inflate(layoutlist, null); TextView textviewTitle = (TextView) layout.findViewById(R.id.textviewTitle); textviewTitle.setText("select"); ImageButton buttonCancel = (ImageButton) layout.findViewById(R.id.buttonCancel); buttonCancel.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); final ListView listView1=(ListView) layout.findViewById(R.id.listView1); List<Map<String, Object>> listData = new ArrayList<Map<String, Object>>(); String key = "afei"; if (listString.length == 0) { } else { for (int i = 0; i < listString.length; i++) { Map<String, Object> map = null; map = new HashMap<String, Object>(); map.put(key, listString[i].toString()); listData.add(map); } } SimpleAdapter adapter = new SimpleAdapter(this, listData, layoutSubId, new String[] {"afei"}, new int[] { R.id.textView1 }); listView1.setCacheColorHint(0); listView1.setFadingEdgeLength(0); listView1.setDividerHeight(1); listView1.setAdapter(adapter); listView1.setOnItemClickListener(new ListView.OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View v, int position, long item_line_id) { editText1.setText(listString[position].toString()); dialog.dismiss(); } }); dialog.setContentView(layout); dialog.show(); return dialog; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) { show_list_ex(); return true; } return super.onKeyDown(keyCode, event); } private void readme(){ String s=" String s = \" < PRE > \" try { Process p = Runtime.getRuntime().exec(cmd); BufferedReader in =new BufferedReader(new InputStreamReader(p.getInputStream())); String line = null; while ((line = in.readLine()) != null) { s += line + \"</br>\"; // + \"\n\"; } } catch(IOException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.d(\"[adbshell]\", \"error:\" + e.getMessage()); } s += s + \"</PRE>\"; new xDialog().show_message_error(this, \"错误\", \"设置失败!\", null);"; //new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.NoTitleDialog)).setTitle("code").setMessage(s) .setPositiveButton("确认", null).show(); webView1.loadData(s, "text/html", "utf-8"); } }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" tools:context=".MainActivity" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textMultiLine" android:maxLines="10" android:minLines="3" > <requestFocus /> </EditText> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/button1" android:layout_width="161dp" android:layout_height="wrap_content" android:text="Run" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="50dp" android:text=" code " /> </LinearLayout> </LinearLayout> <WebView android:id="@+id/webView1" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <EditText android:id="@+id/editText2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:editable="false" android:ems="10" android:inputType="textMultiLine" android:scrollbars="horizontal|vertical" > </EditText> </LinearLayout> </RelativeLayout>
layout_dialog_list1.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#FF5566AA" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" > <ImageView android:id="@+id/imageView1" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" /> <TextView android:id="@+id/textviewTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/imageView1" android:text="title" android:textAppearance="?android:attr/textAppearanceMedium" /> <ImageButton android:id="@+id/buttonCancel" android:layout_width="50dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:src="@android:drawable/ic_delete" /> </RelativeLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" > </ListView> </LinearLayout> </LinearLayout> </LinearLayout>
layout_dialog_list_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/dialog_list_item" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="4dp" android:layout_marginBottom="4dp" android:text="TextView" /> </LinearLayout>