在某些极端情况下,我们需要重启android系统,这里提供java代码中重启系统的方法和c代码中重启系统的方法,原理都是一样的。
方法一,在c代码中重启android系统:
syserr ++;
if(syserr>10){
printf("syserr count :%d, we will reboot...",syserr);
sync();
system("su -c reboot");
}
方法二,在java代码中重启android系统:
String cmd = "su -c reboot";
try {
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
new AlertDialog.Builder(this).setTitle("Error").setMessage(e.getMessage()).setPositiveButton("OK", null).show();
}
可见原理都是使用系统调用,相当于adb shell 后输入命令。以此类推其他系统调用也可以如此使用。