按计划每周更新一篇技术博文,第二篇:《为Android系统定制重启功能》
一、Android系统重启的实现方式
1、广播方式
之前的博文介绍过这种方式《使用广播实现的Android关机及重启》,注意应用要在源码中编译,并且应用需要系统权限。
2、通过init.rc启动系统服务来运行sh文件
a.重启shell文件(system_reboot.sh),放在system/etc/目录下
#!/system/bin/sh
reboot
b.init.rc中加入一个Service的定义
service system_reboot /system/etc/system_reboot.sh oneshot disabled
c.启动系统服务
SystemProperties.set("ctl.start", "system_reboot");
3、直接代码中执行命令行
需要取得root权限
Process proc = Runtime.getRuntime().exec(cmd);
以上三种方法可以实现重启,但现在需要实现长按关机键提示对话框中有重启选项,这就设计修改系统源码,感觉修改源码,是个很难的工作,其实找到关机提示框的代码位置,一切都变得很简单。