替Android系统定制重启功能
为Android系统定制重启功能按计划每周更新一篇技术博文,第二篇:《为Android系统定制重启功能》一、Android系
为Android系统定制重启功能
按计划每周更新一篇技术博文,第二篇:《为Android系统定制重启功能》
一、Android系统重启的实现方式1、广播方式之前的博文介绍过这种方式《使用广播实现的Android关机及重启》,注意应用要在源码中编译,并且应用需要系统权限。
2、通过init.rc启动系统服务来运行sh文件a.重启shell文件(system_reboot.sh),放在system/etc/目录下
<string name="global_action_reboot">重启</string> <string name="reboot_progress">"正在重启..."</string>
c.最后编译因为修改涉及到系统资源文件又涉及到policy.jar包,经过多次尝试,正确的编译顺序如下:步骤1.编译frameworks/base/res,在out/target/product/X设备名X/system/framework/目录下生成framework-res.apk步骤2.编译frameworks/base/,在o同样目录下生成framework.jar包(不能忽略,不然步骤3编译报错)步骤3.编译frameworks/base/policy,在同样目录下生成policy.jar包
附录:本例源码以Android 4.0.4为准(2.3一样),关机相关的源码路径:ics/frameworks/base/policy/src/com/android/internal/policy/impl/目录下:
PhoneWindowManager.javaGlobalActions.javaics/frameworks/base/core/java/com/android/internal/app/目录下:
ShutdownThread.java参考引用:1、Android应用程序获得root权限