设为首页|收藏本站|
发表于 2016-6-3 18:18:18 | 显示全部楼层 |阅读模式 |收藏本帖
应用需要自启动,通常都是采用在AndroidManifest.xml里面注册静态广播receiver的方式实现。Android系统开机会发送开机完成,媒介挂载等广播,应用接收到后,就可以启动自己的service进行后台运行。

Android 2.3之后,开始出现应用自启动管理功能。当时的自启动管理就是针对app注册的静态广播的receiver,禁止进行禁止。可以通过命令pm disable或者API setComponentEnabledSetting来禁止掉该receiver。
这样,开机后,应用app就不会出现接收到被禁止掉的receiver的广播,进而就不能自启动了。

随着时间的发展,应用开发者发现,应用启动后,可以通过shell启动一个native层可执行程序,可执行程序父进程在fork子进程作为守护进程后退出。
这样Android系统在通过force-stop等方式杀应用后,守护进程可以通过am命令再次启动应用。
这一缺陷,在Android5.0后通过uid查杀进程,才结束掉该类自启动。

期间也出现过通过定时force-stop应用达到省电目的的工具。

单个应用自启动的可利用环境越来越少,应用自启动按理说应该越来越好。但是现实总是那么残酷。

三方平台在早期提供长连接push服务时候已经为后续的发展做好了铺垫。

小米push,极光,到后来的百度pushservice等等,各种各样。

最初的push服务,自身为了保证消息接收及时。到后来,开始推送广告,再后来,出现了应用相互启动的现如今的局面。

目前市场上发现做法最有损Android系统体验的,要数百度云推送 服务。实现原理大概如下:
手机安装了多个集成了百度云推送服务sdk的应用,百度PushService在开始会通过receiver相互发送广播唤醒其它应用。由于自启动管理对receiver的管控,出现了通过sevice来相互唤醒各个应用。
sdk首先会收集各个集成了sdk的应用,内部会按照优先级进行排序,找出优先级高的应用作为PushService的主服务,负责启动其它应用,同时及时更新主服务。
应用启动后,部分service的进程会死亡退出,部分会唤醒应用的主要功能,保证进程运行。

这里就有3个问题:
1.进程在频繁的创建,死亡。对系统开销是相当大的。
2.起来的应用,很多耗电相当严重。
3.系统启动了很多应用,对内存消耗是相当大的。

各类不符预期的应用大量启动运行,直接造成了Android系统的使用体验极差:系统卡顿,耗电量大。

为了保证良好的用户体验,Android系统厂商也开始针对此类问题进行专项处理,提出了链式启动,或相互启动 控制。
1.控制自启广播启动
2.控制跨应用服务启动
3.针对各类push服务,直接加入黑名单处理。

以此提升Android系统的使用体验。

测试数据:
专项测试发现,在安装4大全家桶APP的情况下,打开切断相互启动的手机,DOU测试3小时,耗电48%,而没开切断相互启动功能的手机,耗电100%。

By:氢OS开发工程师


展开

评分

参与人数 14加油 +18 理由
A1498016400130 + 2 很给力!
游弋HH + 1 很给力!
netwalking + 1 很给力!
豢龙烛天灬刄 + 1 很给力!
losesw + 1 很给力!
双城天子的天下 + 1 很给力!
三川兔子@昆鹏 + 2
阿beng + 1 很给力!
棉花糖我爱吃 + 1 赞一个!
M1457170985812 + 1 很给力!
X1465223255970 + 1 很给力!
F1446741140475 + 1 很给力!
CharMe + 5 很给力!
小小落叶 -1 感谢分享

查看全部评分

世界每天都在变,而唯一不变的是变化。
发表于 2016-6-3 18:20:18 来自手机 | 显示全部楼层
涨姿势了
发表于 2016-6-3 18:20:25 | 显示全部楼层
沙发~~支持蓝帅哥~
Never Stop Moving.  Never Settle.-----by OnePlus 3   
有问题请私聊。有bug去反馈区。想吐槽找@蓝帅

一一二十

95#汽油

Rank: 9Rank: 9Rank: 9

"万圣节"纪念勋章 "国庆节"纪念勋章 奥运会纪念勋章 情人节勋章 元宵节汤圆勋章 氢OS内测荣誉勋章 猴年勋章 一加手机2 一加手机1 一加手机X 植树节 一加手机3 在线小达人 鸡祥如意 一加手机3T 一加手机5

一一二十 | 95#汽油 Rank: 9Rank: 9Rank: 9 |16
发表于 2016-6-3 18:22:20 来自手机 | 显示全部楼层
同涨姿势了。受教了,支持[e]1f601[/e]
---来自一加社区手机客户端
发表于 2016-6-3 18:22:22 | 显示全部楼层
写得好牛逼啊,虽然我看不懂
发表于 2016-6-3 18:24:06 来自手机 | 显示全部楼层
牛逼,看不懂
---来自一加社区手机客户端

JoyBoy439

润滑油

Rank: 5Rank: 5

氢OS内测荣誉勋章 一加手机2 一加手机3 一加手机X 一加手机1

JoyBoy439 | 润滑油 Rank: 5Rank: 5 |5
发表于 2016-6-3 18:24:09 来自手机 | 显示全部楼层
虽然看不懂。但是说666肯定盘对的
---来自一加社区手机客户端

TANKbufo

95#汽油

Rank: 9Rank: 9Rank: 9

奥运会纪念勋章 元宵节汤圆勋章 氢OS内测荣誉勋章 我是加油GG 一加手机1 圣诞节勋章 元旦快乐 马年勋章 在线小达人 一周年纪念勋章 羊年勋章 一加手机2 二周年纪念勋章 猴年勋章 金猴勋章 植树节 一加手机3 三周年纪念勋章 鸡祥如意

TANKbufo | 95#汽油 Rank: 9Rank: 9Rank: 9 |19
发表于 2016-6-3 18:36:32 | 显示全部楼层
来学习!!!
发表于 2016-6-3 18:41:17 | 显示全部楼层
这个功能确实赞!!
Waiting for Her

NS1Plus

93#汽油

Rank: 8Rank: 8

"国庆节"纪念勋章 奥运会纪念勋章 植树节 我是加油GG 在线小达人 鸡祥如意

NS1Plus | 93#汽油 Rank: 8Rank: 8 |6
发表于 2016-6-3 19:17:55 来自手机 | 显示全部楼层
x什么时候才能用上啊
---来自一加社区手机客户端
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|

© 2013-2017 深圳市万普拉斯科技有限公司 版权所有( 粤ICP备13080605号-3 )

粤公网安备 44030402000179号

  

快速回复 分享 返回顶部