青岛仓储货架,青岛超市货架,青岛超市设备,青岛开发区仓储超市货架
青岛精品展架,青岛钛合金展架,青岛超市货架,青岛开发区仓储超市货架
青岛仓储货架,青岛超市货架,青岛超市设备,青岛开发区仓储超市货架
精品展架
超市货架
仓储货架
其它设备
青岛仓储货架,青岛超市货架,青岛超市设备,青岛开发区仓储超市货架

 

 

电话:0532-86769911
传真:0532-86768282
手机:13730911188
E-mail:cxx@ysd77.com
展厅:青岛保税区上海路2号5F

 

 

当前位置:主页 > 产品中心 >

如何看待谷歌发布的AndroidO
如何看待谷歌发布的AndroidO
发表时间-2019-11-09 20:50:41
之前我在微博上简略评价过,AndroidO的后台控制策略显然还是防君子不防小人的西式思维。对后台服务和自启动广播的限制仅针对面向O(targetSdkVersion>=26)开发的应用。这是什么概念呢?打一个不严谨的比方,这就好比国家出台房产限购政策,但只对主动申请被限的购房者实施。你可以想象,一众PushSDK团队看到这个消息时的心情,那简直是如释重负啊,然后通知客户『为了确保推送的可靠性,请开发者不要升级targetsdk版本到26』。对交叉唤醒基本没有施加有效的约束(原因参见上一条)。即便是targetO的app,startService()这个接口在后台被废了,但是bindService()没有被限制,它将很快取而代之,成为毒瘤的主流唤醒方式。连环唤醒将继续施虐……总而言之,『交叉连环唤醒』是没有进入中国市场的Google完全无法能理解的东西……Foregroundservice(典型特征是通知栏有一条划不掉的通知)完全免于所有后台限制。可以想象,以后你的通知栏可能真的没法直视了……-----题外话-----Google在处理targetSDKversion(一个用户基本不可见的App开发内部设定)的方式是典型的技术型思维,而缺乏经济学手段的运用。每一次的target升级带来的都是更多的束缚,却没有与之匹配的『诱惑』。怎么指望开发者会升级到更高的targetSDKversion呢……-----2017.4.3更新:还是说点积极的吧-----即便是应用没有targetO,其实在AndroidO上也还是会受到一些限制。其中最显著的一个限制就是后台wake-lock。AndroidM和N上,息屏并保持静止一个小时后,doze启动,wake-lock才会释放;从AndroidO开始,应用的进程一旦空闲(通常也就是后台服务结束)或终止,wake-lock就会立即释放。但只要还有后台服务还在运行,wake-lock就仍然要等到doze启动后才会释放。次要一些的限制还有对后台请求定位的响应频次限制,AndroidO下所有应用都只能得到大约每小时数次的位置更新。以上对全部应用的限制,也算是聊胜于无吧。-----2017.5.18更新:DP2带来的希望----从AndroidODP2开始,即便应用没有targetO,用户现在也可以在系统设置中主动激活针对任何应用的后台限制(仅就原生AndroidO而言)。这也算是Google的一个曲线策略了,就如同当年Android4.3时的AppOps隐藏设置。但是否会导致应用功能异常,以及限制程度与targetO有否差别,就需要进一步观察了。补充:验证发现DP2的后台限制对MiPushSDK的后台进程无效,依然可以长期存活。-----2017.7.26更新:DP4的大逆转----在DP2和DP3中验证后台限制对大部分国内应用无效后,我向Google提交了一个issue反馈这个缺陷。在跟进过程中,发现了另一个去年他人提交的issue,其中指出了一个从AndroidN开始就存在的低级代码bug,正是这个bug导致AndroidN的OPS限制RUN_IN_BACKGROUND和AndroidO的后台服务限制都只能停掉应用的第一个后台服务。如果应用有超过一个后台服务,则仍会继续在后台运行。(PS,向Google提交issue务必要严格按照模板附上所有必要的信息,否则很可能就会被对方直接忽略,造成像那一位同学去年就提交的issue,还遗留到AndroidO差点酿成悲剧)好消息是,DP4终于修复了这个bug,现在后台控制已经全面按照其设计预期生效。只要应用面向AndroidO开发或是用户主动开启了应用的后台限制,那么这个应用进入后台的1分钟后,其全部服务就会直接停止。之后只要它还处于后台状态,就无法再启动任何服务了,无论是通过自身的定时任务还是由其他应用主动启动。不过事情也不是就此圆满了,这里还是得泼点冷水:服务的启动(startService)在后台被屏蔽,但服务的调用(bindService)不受限制。也就是说大家所熟知的交叉唤醒还会继续肆虐,那些过去使用启动服务方式的交叉唤醒估计很快会转向调用服务方式。服务的启动虽然在后台期间被屏蔽了,但应用中被设计为定期保活服务的周期任务还是会继续的周期运行,尽管它们并不明白自己已经无法启动服务了。也就是说CPU依然会被它们频繁唤醒,待机耗电并不能得到有效改善。

上一篇:如何看待TheBeatles成员单飞后的音乐生涯
下一篇:如果地球是立方体的且稳定存在我们的生活会发生怎样的变化
卓越品质-源自专业与创新
版权所有 青岛英仕达商用设备有限公司
网站地图