Android后台的linux一直保持唤醒状态,不进入睡眠

  由于要做Android手机的电池续航测试,是不能插usb的,所以把case放到sh文件中,之后push到手机里,执行的。

但是出现个问题,假如case中有很长时间的sleep操作,关闭手机屏幕,这样linux就会进入睡眠状态,暂停代码的执行。

直到手动按power键点亮屏幕,这时继续从暂停状态执行。这严重影响自动化测试,所以以下是让手机即使黑屏也不进入睡眠模式的两种办法:

第一种是通过java代码实现的:

 1 //先定义一个mWakeLock
 2 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
 3
 4 mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this
 5
 6                 .getClass().getName());
 7
 8
 9
10 //一直保持唤醒的话,就调用
11
12 mWakeLock.acquire();
13
14
15
16  //恢复正常睡眠
17
18 mWakeLock.release();

第二种比较简单,是通过adb命令实现的:

在adb shell端,往/sys/power/wake_lock写进一个变量,就能让linux一直唤醒,黑屏也不会睡眠。

echo aaa > /sys/power/wake_lock

关闭一直唤醒,把刚才的值写进/sys/power/wake_unlock即可
echo aaa > /sys/power/wake_unlock

时间: 2024-11-09 03:13:07

Android后台的linux一直保持唤醒状态,不进入睡眠的相关文章

管理Android设备的唤醒状态

当一个Android设备闲置时,首先它的屏幕将会变暗,然后关闭屏幕,最后关闭CPU. 这样可以防止设备的电量被迅速消耗殆尽.但是,有时候也会存在一些特例: Apps such as games or movie apps may need to keep the screen turned on. 例如:用户在玩游戏时,需要保持屏幕常亮 Other applications may not need the screen to remain on, but they may require th

Android屏幕保持唤醒状态

我们程序偶尔会有需要屏幕一直或较长时间的保持唤醒状态,而用户的睡眠时间又设置的比较短.这时可能会对程序以及用户的使用造成一定的影响.在Android中有两种方法,可以让我们在我们需要保持唤醒的页面长时间保持唤醒状态 1.Android的电源管理里面提供了“唤醒锁”,它允许我们的设备屏幕能在一定的时间内或一直保持唤醒状态!如下为其简单使用步骤: 申请唤醒锁使用权限 1 <uses-permission android:name="android.permission.WAKE_LOCK&qu

Android保持屏幕常亮唤醒状态

第一步:  首先添加权限: <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> 第二步:代码实现如下: public class ScreenActivity extends Activity { PowerManager powerManager = null; WakeLock wakeLock = null; @Override protected

Android后台杀死系列之一:FragmentActivity及PhoneWindow后台杀死处理机制

App在后台久置后,再次从桌面或最近的任务列表唤醒时经常会发生崩溃,这往往是App在后台被系统杀死,再次恢复的时候遇到了问题,而在使用FragmentActivity+Fragment的时候会更加频繁.比如,如果Fragment没有提供默认构造方法,就会在重建的时候因为反射创建Fragment失败而崩溃,再比如,在onCreate里面new 一个FragmentDialog,并且show,被后台杀死后,再次唤醒的时候,就会show两个对话框,这是为什么?其实这就涉及了后台杀死及恢复的机制,其中涉

android后台信息推送调研

android后台信息推送调研 前言 我们已经开发了一个应用,这里称为A应用,类似于天气weather那种.现在的任务就是如果这些A应用有新版本了,或者天气出现比较恶劣的状况,要及时在手机上进行消息的推送,提示有新的应用可以更新了,和天气将要变遭了,提醒用户需要注意的情况.及需要实现消息推送机制. 推送方式基础知识 要获取服务器上不定时更新的信息,一般来说有两种方法:第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现.第二种就是 服务器使用Pu

Android后台保活实践总结:即时通讯应用无法根治的“顽疾”

前言 Android进程和Service的保活,是困扰Android开发人员的一大顽疾.因涉及到省电和内存管理策略,各厂商基于自家的理解,在自已ROOM发布于都对标准Android发行版作为或多或少的改动,使得应用层程序在处理进程和Service保活问题上变的异常复杂,且很难兼容,因为说不定哪款手机或者哪个版本的省电策略发生改变,那么随之而来的就是进程和Service保活的差异. 在应用场景上,由于即时通讯应用(包括IM聊天应用.消息推送服务等)为了保证消息的全时.实时送达能力,必须要实现进程或

linux驱动程序之电源管理之标准linux休眠和唤醒机制分析(二)

三.pm_test属性文件读写 int pm_test_level = TEST_NONE; static const char * const  pm_tests[__TEST_AFTER_LAST] = { [TEST_NONE] = "none", [TEST_CORE] = "core", [TEST_CPUS] = "processors", [TEST_PLATFORM] = "platform", [TEST_D

Android后台执行的定时器实现

Android后台运行定时器,方便我们运行定位跟踪等任务需求. 以下简要说明实现Android后台定时器的要点, 文章末尾能够下载到project代码,可直接编译运行. AndroidManifest.xml 文件内容例如以下: <? xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/androi

Android后台运行的定时器实现

Android后台运行定时器,方便我们执行定位跟踪等任务需求. 下面简要说明实现Android后台定时器的要点, 文章末尾可以下载到工程代码,可直接编译执行. AndroidManifest.xml 文件内容如下: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"