当本地方法运行时,Android是否可能进入深度睡眠(CPU休眠)?
如果可以,
本地方法是否可以使用C调用获取唤醒锁?
当本地方法阻塞在socket读取上时,手机是否会自动唤醒以接收数据?
当本地方法阻塞在select或epoll上时,手机是否会自动唤醒以接收数据?
如果Android在本地方法调用期间不考虑睡眠,那么我该如何确保手机可以进入睡眠状态,直到本地代码中创建的某个套接字准备好接收数据?
一些背景信息:
Android网站的JNI提示建议“Android不挂起执行本地代码的线程。如果垃圾回收正在进行,或者调试器发出了挂起请求,Android将在下一次进行JNI调用时暂停线程。” - 这似乎是对挂起单个线程而不是将手机置于挂起/睡眠模式的引用。除此之外,我找不到关于挂起/睡眠行为的具体评论。