android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。
//启用屏幕常亮功能
powerManagerpm=(PowerManager)getSystemservice(POWER_SERVICE);
wakeLock=pm.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP,myPowerManager.TAG);
wakeLock.acquire();
//关闭屏幕常亮功能
if(wakeLock!=null){wakeLock.release();}
需要注意的是,您需要在mainfest权限获取
要进行电源的操作需要在AndroidManifest.xml中声明该应用有设置电源管理的权限。
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name ="android.permission.device_POWER"/>
另外,根据flags不同的值,实现不同级别的电源管理。
关于intflags各种锁的类型对CPU、屏幕、键盘的影响:
PARTIAL_WAKE_LOCK:保持CPU运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK:保持CPU运转,保持屏幕高亮显示,键盘灯也保持亮度.
[DESCRIPTION]
在点击进入某个activity,或者离开退出某个activity画面的过程中,会播放动画,如果想缩短动画播放时间,可以修改代码:
[SOLUTION]
在Frameworks/base/services/Java/com/android/server/wm/WindowManagerService.java中找到如下方法,并做修改
private Animation createScaleUpAnimationLocked(int transit, boolean enter) {
Animation a;
// Pick the desired duration. If this is an inter-activity transition,
// it is the standard duration for that. Otherwise we use the longer
// task transition duration.
int duration;
switch (transit) {
case WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN:
case WindowManagerPolicy.TRANSIT_ACTIVITY_CLOSE:
duration = mContext.getResources().getInteger(
com.android.internal.R.integer.config_shortAnimTime);
break;
default:
duration = 300;
/// M: For Low Bandwidth Application Transition Animation @{
if (Featureoption.MTK_LOW_BAND_TRAN_ANIM) {
duration = 200;
}
/// @}
break;
}
//在此处重新设置duration的值,
//上面的代码是去读取默认的配置,默认值是300,你可以依次逐渐减少该值,如250,200,150,100
//你自己感觉这些值的效果,看哪个满意,你就用哪个;
// TODO(multidisplay): For now assume all app animation is on main display.
final DisplayInfo displayInfo = getDefaultDisplayInfoLocked();
if (enter) {