3

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

如果是这样,

  • 本机方法可以使用 C 调用获取唤醒锁吗?

  • 当有数据可用于阻塞套接字读取的本机方法时,手机会自动唤醒吗?

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

如果Android在本机方法调用期间不考虑休眠,如何确保手机可以进入休眠状态,直到本机代码中创建的套接字之一准备好接收数据?

一些背景:

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

4

1 回答 1

0

要查找有关 Android PowerManagement Native 的更多信息,您需要查看源文档

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

至于从本机使用唤醒锁,文档警告您这样做会破坏系统的稳定性。

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.

于 2013-09-24T19:57:49.593 回答