ANR超时时间在ActivityManagerService.java文件中进行了定义 Broadcast超时时间为10秒 // How long we allow a receiver to run before giving up on it. static final int BROADCA
FrameAnimDrawable和AnimationDrawable的关系 AnimationDrawable:系统实现帧动画的Drawable,使用简单,但内存消耗大,动画帧一多就容易出现卡顿甚至OOM FrameAnimDrawable:实现动态加载,一次只加载当前动画帧,用完即释放,内存消
现象描述 Android中使用Timer开启TimerTask定时任务,若TimerTask任务过于繁重,容易造成卡顿、重复及跳变现象 解决方案 开辟新线程,减轻TimerTask工作量。如定时数据采集存储,将数据采集放在定时任务中,并将数据存储放在新开辟的线程中,线程间采用Handle/Mess
后台常驻服务,使用了1像素Activity保活手段: 在息屏时,启动1像素Activity 在亮屏时,关闭1像素Activity 需要判断屏幕是否亮屏,是否解锁,特地写成一个帮助类。首先AndroidMainFest中配置权限 <!--息屏亮屏1 --> <uses-perm
前言 相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页。那么这个黑屏或者白屏到底是怎么一回事呢?它的最好的解决方案应该是怎样的呢? 历史原因 当系统启动一个APP时,zygote进程会首先创建一个新的进程去运行这个
在开发中,有时我们需要在后台循环执行一些操作(比如:定时任务、即时通讯心跳包的发送等) 结果发现手机发生锁屏的操作后,CPU进入休眠,导致TimerTask不工作,直到解锁屏幕CPU被唤醒后,Timer才继续执行 解决方案: (1)获取电源锁,让CPU不休眠(耗电严重) (2)使用AlarmMan
权限配置 <uses-permission android:name="android.permission.WAKE_LOCK"/> // 申请电源锁,禁止休眠 private WakeLock mWakeLock = null; private void ac