android 系统关机,重启
1.android系统的关机,重启代码位于frameworks/base/core/jni/android_os_Power.cpp,里面有

static void android_os_Power_shutdown(JNIEnv *env, jobject clazz)
{/*关机*/
sync();
#ifdef HAVE_ANDROID_OS
reboot(RB_POWER_OFF);
#endif
}

static void android_os_Power_reboot(JNIEnv *env, jobject clazz, jstring reason)
{/*重启*/
sync();
#ifdef HAVE_ANDROID_OS
if (reason == NULL) {
reboot(RB_AUTOBOOT);
} else {
const char *chars = env->GetStringUTFChars(reason, NULL);
__reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,
LINUX_REBOOT_CMD_RESTART2, (char*) chars);
env->ReleaseStringUTFChars(reason, chars); // In case it fails.
}
jniThrowIOException(env, errno);
#endif
}

2.最终会调用到linux中的sys_reboot,所以我们还是可以做到在android中加入重启功能的;


关机和重启在Linux Kernel中的哪些函数里实现。
reboot的最终实现在arch_reset()函数,它通常定义在arch/arm/mach-xxx/include/mach/system.h里。system.h被ARM kernel的public code应用,因此你需要定义这个头文件,并实现它。
arch_reset的函数原型为
void arch_reset(char mode)
void arch_reset(char mode)
关机需要将pm_power_off这个函数指针指向你自己的实现函数。函数指针是这样定义的
void (*pm_power_off)(void); ......

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/a3015440/archive/2010/05/29/5633381.aspx

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. 箭头函数的基础使用
  3. Python技巧匿名函数、回调函数和高阶函数
  4. python list.sort()根据多个关键字排序的方法实现
  5. Android实现多层级Spinner列表选项实时更新树形层级
  6. 实现 Android(安卓)通知提示功能
  7. Android仿iPhone 滚轮控件 实现
  8. KMM 入门(三)平台差异化实现
  9. 局域网内通过无线实现android设备的socket通信

随机推荐

  1. android如何开发流量监控软件
  2. android 基于百度地图api开发定位以及获
  3. android openGL ES2 一切从绘制纹理开始
  4. Android(安卓)MVP应用
  5. Android入门(1) 不一样的HelloWorld
  6. 如果没有 Android(安卓)世界会是什么样子
  7. Android之Handler非主线程更新UI
  8. 【腾讯Bugly干货分享】Android动态布局入
  9. (android)如何破解多盟广告sdk (一)
  10. Android(安卓)多媒体综述