zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

Android实训案例(二)——Android下的CMD命令之关机重启以及重启recovery

Android案例命令 以及 cmd 重启 Recovery 关机
2023-09-14 08:59:39 时间

我们在cmd下进行的操作什么的,这里就不一一细说了我们只要知道下面这几条命令就可以了


 LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

 xmlns:tools="http://schemas.android.com/tools"

 android:layout_width="match_parent"

 android:layout_height="match_parent"

 android:gravity="clip_vertical"

 android:orientation="vertical"

 android:padding="15dp" 

 Button

 android:id="@+id/btn_reboot"

 android:layout_width="match_parent"

 android:layout_height="wrap_content"

 android:layout_marginTop="15dp"

 android:background="@drawable/btn_bg"

 android:text="重启" / 

 Button

 android:id="@+id/btn_power"

 android:layout_width="match_parent"

 android:layout_height="wrap_content"

 android:layout_marginTop="15dp"

 android:background="@drawable/btn_bg"

 android:text="关机" / 

 Button

 android:id="@+id/btn_recovery"

 android:layout_width="match_parent"

 android:layout_height="wrap_content"

 android:layout_marginTop="15dp"

 android:background="@drawable/btn_bg"

 android:text="recovery" / 

 Button

 android:id="@+id/btn_finish"

 android:layout_width="match_parent"

 android:layout_height="wrap_content"

 android:layout_marginTop="15dp"

 android:background="@drawable/btn_bg"

 android:text="退出" / 

 /LinearLayout 

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); private void initView() { btn_reboot = (Button) findViewById(R.id.btn_reboot); btn_reboot.setOnClickListener(this); btn_power = (Button) findViewById(R.id.btn_power); btn_power.setOnClickListener(this); btn_recovery = (Button) findViewById(R.id.btn_recovery); btn_recovery.setOnClickListener(this); btn_finish = (Button) findViewById(R.id.btn_finish); btn_finish.setOnClickListener(this); @Override public void onClick(View v) { switch (v.getId()) { // 重启 case R.id.btn_reboot: // cmd命令 String cmd = "su -c reboot"; try { // 发送请求 Runtime.getRuntime().exec(cmd); } catch (IOException e) { new AlertDialog.Builder(MainActivity.this).setTitle("很抱歉") .setMessage("你的手机未ROOT,无法实现该功能!") .setPositiveButton("OK", null).show(); break; // 关机 case R.id.btn_power: try { // 获取管理员权限su Process process = Runtime.getRuntime().exec("su"); // 输入命令 DataOutputStream out = new DataOutputStream( process.getOutputStream()); out.writeBytes("reboot -p\n"); // 结束 out.writeBytes("exit\n"); out.flush(); } catch (IOException e) { new AlertDialog.Builder(MainActivity.this).setTitle("很抱歉") .setMessage("你的手机未ROOT,无法实现该功能!") .setPositiveButton("OK", null).show(); break; // recovery case R.id.btn_recovery: try { // 同关机原理 Process process = Runtime.getRuntime().exec("su"); DataOutputStream out = new DataOutputStream( process.getOutputStream()); out.writeBytes("reboot recovery\n"); out.writeBytes("exit\n"); out.flush(); } catch (IOException e) { new AlertDialog.Builder(MainActivity.this).setTitle("很抱歉") .setMessage("你的手机未ROOT,无法实现该功能!") .setPositiveButton("OK", null).show(); break; // 退出 case R.id.btn_finish: finish(); break;

还等什么?赶紧去试试吧吧,因为我们是直接取得su权限发送脚本命令,所以我们并不需要其他的权限


浅谈Android的流畅性优化——案例分享 学习了前文的归因分析,本篇文章就带大家以实际的案例进行浅要的分析和给出具体的优化策略,具体的案例来自于网络,如有错误,还请指出。