android usb adb流程,Android系统关机或重启的几种实现方式

来源:互联网 发布:家庭矛盾 知乎 编辑:程序博客网 时间:2024/05/22 02:30

 

1 Android KitKat 4.4平台开发-添加USB ADB和MTP功能支持


点击打开链接


2 让mini2440成为U盘之linux gadget driver

点击打开链接

3 android usb adb流程

点击打开链接


4 Android系统关机或重启的几种实现方式

点击打开链接

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

在控制台上执行命令setprop sys.usb.config adb 将使能adb功能

在控制台上执行命令setprop sys.usb.config none关闭adb功能 


三. Runtime调用Linux-shell

我们知道,Runtime这个Java类是可以用来调用并执行shell命令的,而Android虚拟机是支持Linux-shell语言的,基于这一点,可以利用Runtime来执行 关机或重启的shell命令,这一点和上面介绍的方式二原理上大致相同。功能代码如下:

//Runtime执行linux-shell

case R.id.shutdown_btn3:try{Log.v(TAG, "root Runtime->shutdown");//Process proc =Runtime.getRuntime().exec(new String[]{"su","-c","shutdown"});  //关机Process proc =Runtime.getRuntime().exec(new String[]{"su","-c","reboot -p"});  //关机    proc.waitFor();}catch(Exception e){    e.printStackTrace();}break;case R.id.reboot_btn3:try { Log.v(TAG, "root Runtime->reboot");Process proc =Runtime.getRuntime().exec(new String[]{"su","-c","reboot "});  //关机    proc.waitFor();}catch (Exception ex){ex.printStackTrace();}break; 
使用该方法需要注意的是,普通用户是没有权限执行reboot和shutdown的,自然而然也无法实现关机或重启。使用的Android设备必须已经root过,上面的代码加上su命令其实也就是为了获取管理员权限。另外一点,需要注意的是,该方法能够奏效的前提是,你的android系统system/bin 目录下存在reboot和shutdown文件(其实跟上面的原理一样,也是调用bin目录下的文件),听说大部分设备存在reboot和shutdown这两个文件,可使用的Android系统偏偏没有shutdown文件,所以,无法直接使用
Runtime.getRuntime().exec(new String[]{"su","-c","shutdown"})

只能执行下面命令来进行关机(好神奇的p参数)
Runtime.getRuntime().exec(new String[]{"su","-c","reboot -p"});

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


enable_adb() disable_adb()的实现

enable or disable adb

0 0