有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android上的本机方法如何与电源管理生命周期交互?

当本机方法运行时,Android是否可能进入深度睡眠(CPU睡眠)

如果是,

  • 本机方法能否使用C调用获取唤醒锁

  • 当本机方法阻止socket读取数据时,手机会自动唤醒吗

  • 当select或epoll上有本机方法阻止的可用数据时,手机会自动唤醒吗

如果Android在本地方法调用期间不考虑睡眠,我如何确保手机能够进入睡眠,直到在本机代码中创建的一个socket准备好接收数据?p>

一些背景:

Android站点的JNI tips建议“Android不会挂起执行本机代码的线程。如果正在进行垃圾收集,或者调试器发出了挂起请求,Android将在下次进行JNI调用时暂停线程。”这似乎是指挂起单个线程,而不是将手机置于挂起/睡眠模式。除此之外,我找不到任何关于暂停/睡眠行为的具体评论


共 (1) 个答案

  1. # 1 楼答案

    要查找有关Android PowerManagement本机的更多信息,请查看源文档

    http://www.kandroid.org/online-pdk/guide/power_management.html

    至于使用本机的wakelock,文档警告说,这样做可能会破坏系统的稳定性

    User space native libraries (any hardware function in //device/lib/hardware/ meant to serve as supporting libraries for Android runtime) should never call into Android Power Management directly (see the image above). Bypassing the power management policy in the Android runtime will destabilize the system.