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); ......

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. 箭头函数的基础使用
  3. Python技巧匿名函数、回调函数和高阶函数
  4. python list.sort()根据多个关键字排序的方法实现
  5. android之实现ProgressBar进度条组件
  6. android用户界面之TabHost教程实例汇总
  7. Android(安卓)Debug Bridge 技术实现原理
  8. MVPArch - Android(安卓)MVP 快速开发框架
  9. Android(安卓)通过power键关机重启的流程(Android层)

随机推荐

  1. Android(安卓)保存浏览记录 SharedPreToo
  2. Android获取MAC地址
  3. Android_开发 Android传感器(加速度传感器
  4. 【Android】ImageMap,图片地图
  5. android 评分组件 RatingBar
  6. Android(安卓)代码获取手机屏幕分辨率的
  7. 全局窗口二
  8. 坚向的ViewPager,上下滑动的组件,android上
  9. Using cygwin with the Android(安卓)NDK
  10. andorid webview