V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
AlwaysBehave
V2EX  ›  全球工单系统

扇贝单词在 安卓 7.0 的“特性”,不知道有没有人遇到过

  •  1
     
  •   AlwaysBehave · 2017-06-15 21:36:32 +08:00 · 5376 次点击
    这是一个创建于 2505 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我瞬间懵逼了,这么高大上的安卓“特性”我第一次知道,也不知道该后面怎么回复,求解

    第 1 条附言  ·  2017-06-19 18:09:26 +08:00
    扇贝官方回复说问题已经交给 Android 组处理,到时候再看看如何
    29 条回复    2017-06-18 14:04:46 +08:00
    honeycomb
        1
    honeycomb  
       2017-06-15 21:54:48 +08:00   ❤️ 19
    1,这不是莫名其妙的特性,而是这个应用滥用前台服务(作为推送的保活措施),并且恶意地试图隐藏前台服务必须要显示的持久通知导致的问题。从 Android7.1(AOSP)开始这个漏洞被修复。Android O DP3 则另增加了一个通知流,会另行显示所有使用前台服务的应用(和应用自身强制需要显示的通知共存)。

    2,修复了这个 bug 的改动出现在 Android 7.1
    具体的出处:
    https://android.googlesource.com/platform/frameworks/base/+/0ba4c71%5E!/

    3,请到这个地方去吐槽,Google 官方认为 O 新增的后台限制(这部分的代码,以及 AppOps 也是这个 Dianne Hackborn 写的)应当可以通过前台服务绕过。
    kamen
        2
    kamen  
       2017-06-15 21:56:58 +08:00
    一楼完美解答
    honeycomb
        3
    honeycomb  
       2017-06-15 22:02:11 +08:00   ❤️ 1
    @AlwaysBehave

    #1 的 issuetracker 链接忘记填上了,是这个:

    issuetracker.google.com/issues/62480012
    AlwaysBehave
        4
    AlwaysBehave  
    OP
       2017-06-15 22:17:08 +08:00
    @honeycomb 😯 所以这样还是算滥用?
    我的”特性“加了引号是认为扇贝这样子做是有问题,但是官方现在这个回复大概意思算是“ won't fix"吧。
    bug fix 倒是第一次被科普,多谢
    他的通知倒是没有什么垃圾内容(目前只是提醒打卡,确实有用)。只是一直占在那里倒是很烦 Orz
    AirSc
        5
    AirSc  
       2017-06-15 22:22:45 +08:00
    不是可以隐藏通知吗?
    AlwaysBehave
        6
    AlwaysBehave  
    OP
       2017-06-15 22:24:31 +08:00
    @AirSc 我想保留他的每日打卡提醒……有的时候会忘记打卡
    Cavolo
        7
    Cavolo  
       2017-06-15 23:10:14 +08:00 via iPhone
    @AlwaysBehave 可以设置微信提醒,然后把 app kill 掉就行
    honeycomb
        8
    honeycomb  
       2017-06-15 23:46:23 +08:00   ❤️ 4
    @AlwaysBehave
    滥用的理由是这样:

    最初前台服务就是被设计成,使用时必须展示一个持久通知,以确保用户知晓这个应用正在持续运行。
    前台服务被视作类似于可见的 Activity 这样有高优先级的对象,不会被杀,不会受到后台网络限制 /电池优化 /doze 等影响

    但是它的实现有 bug,应用可以用这个方法绕过:
    1,建立两个通知编号相同的前台 service
    2,关掉其中一个 service,另一个 service 就能保持前台,但不会显示通知

    使用这个方法,应用就可以绕开 Android 上花了大力气建立的各种优化电池消耗的的努力,所以说是恶意的。

    我对 Android 开发组不满的地方,在于它们的态度消极,给出的方案(包括 O 新增的后台服务限制)不能解决问题。
    但是不能指望它们会像 iOS 那样想尽办法保护用户隐私(这次 2 比特持久识别码和 Safari 和别人实现方法都不一样的跟踪妨碍简直是神来之笔)。
    AlwaysBehave
        9
    AlwaysBehave  
    OP
       2017-06-16 00:17:08 +08:00 via Android
    @Cavolo 诶也是,多谢提醒
    AlwaysBehave
        10
    AlwaysBehave  
    OP
       2017-06-16 00:27:19 +08:00 via Android
    @honeycomb 官方对于前台服务滥用其实并没有更多举动反而是花大力气限制后台,使得实际上下大力气做的改善并没有什么用。那也就是说如果应用仍然恶意利用前台现在唯一的办法就是扔冰箱或者上守护之类的玩意咯。(当然现在有个通知告诉你应用在跑着
    KNOX
        11
    KNOX  
       2017-06-16 00:38:14 +08:00 via Android
    今年的 IO 上有人问到这个问题,Android 开发组的回答给予用户更多知情权,虽然目前的解决办法很暴力,不过仍在优化中。
    ssynhtn
        12
    ssynhtn  
       2017-06-16 01:55:55 +08:00 via Android
    有道词典也是这样
    之前京东有个版本也这样,后来更新了就好了,不知道是用了什么更强的黑科技,还是说妥协了
    ghost444
        13
    ghost444  
       2017-06-16 06:40:55 +08:00 via Android
    来用墨墨背单词吧,虽然词库比较小专业词汇找不到但是一般还是够用的,Android 版简直良心
    kn007
        14
    kn007  
       2017-06-16 08:26:16 +08:00
    我是不需要它提醒,然后直接绿色守护。。。
    honeycomb
        15
    honeycomb  
       2017-06-16 08:57:02 +08:00 via Android
    @AlwaysBehave
    目前为止只能这样了
    missdeer
        16
    missdeer  
       2017-06-16 09:03:49 +08:00
    @ghost444 墨墨背单词免费版单词上限才 600 个。。。谁特么目标单词量才 600 啊。。。虽然每日签到分享可以加上限,但也是杯水车薪。。。
    RoundCat
        17
    RoundCat  
       2017-06-16 09:08:13 +08:00 via Android
    很久之前就有,反馈后只是回复已收到,然而。。等了一个月还是老样子,然后就卸载了
    xingda920813
        18
    xingda920813  
       2017-06-16 09:12:52 +08:00
    @honeycomb 好消息,现在已经标为 Fixed 了。
    580a388da131
        19
    580a388da131  
       2017-06-16 09:16:28 +08:00
    国内好多应用都有这玩意
    singlepig
        20
    singlepig  
       2017-06-16 09:29:57 +08:00
    手机 QQ 的某个版本也是用了 @honeycomb 8#说的方法,隐藏了通知,结果我在 7.1.1 上遇到了 QQ 显示一个黑色通知栏的问题,里面啥东西也没有,漆黑一片。
    manihome
        21
    manihome  
       2017-06-16 09:53:41 +08:00
    我只想说我在扇贝写的反馈就没有回复过。。。买本书一个礼拜还没影、、、
    ghost444
        22
    ghost444  
       2017-06-16 10:06:19 +08:00 via Android
    @missdeer 我现在免费额度有 1k4,背的单词才刚刚 1k 出头(捂脸
    而且难得碰到从应用到 ToS 都在内同行领先的 app,完全值得付费啊
    honeycomb
        23
    honeycomb  
       2017-06-16 10:08:35 +08:00 via Android
    @singlepig
    确实是这样的,所以会吐槽 Google 不像 iOS 那样保护用户
    honeycomb
        24
    honeycomb  
       2017-06-16 10:14:52 +08:00
    @xingda920813
    你提到的 fixed 解决的不是这个滥用前台服务问题。
    而应该是 RUN_IN_BACCKGROUND ignore 时,只终止了一个后台 service 的问题
    https://issuetracker.google.com/issues/37126419
    iluhcm
        25
    iluhcm  
       2017-06-16 10:21:17 +08:00   ❤️ 1
    http://iluhcm.com/2017/03/12/experience-of-adapting-to-android-notifications/

    写过一篇文章里边有相关的体验,前台通知在 7.1.X 的机子上的确是会暴露出来。应该是用了某个推送 sdk 导致的。
    xingda920813
        26
    xingda920813  
       2017-06-16 16:36:42 +08:00
    @honeycomb

    看来 Google 的决定就是如此, 绑定和前台服务不受影响. 滥用前台服务的 App, Google 似乎无法理解它们在中国是存在的.

    https://issuetracker.google.com/issues/37126421

    RUN_IN_BACKGROUND OP does not stop services when there are both foreground and background services.

    Status: Won't Fix (Intended Behavior)
    It is very much intentional that foreground services keep the app in the foreground so it is not prevented from running.
    zhouquanbest
        27
    zhouquanbest  
       2017-06-16 17:09:34 +08:00
    这是个保活手段
    然而 因为目前 7.1 还比较少 很多无良厂商并没有在 7.0 上去掉该方式

    解决方法就是用 MyAndroidTool 手动 block 这个前台服务

    珍爱生命 远离国产无良 app
    Bryan0Z
        28
    Bryan0Z  
       2017-06-18 14:00:38 +08:00 via Android
    说真的,扇贝模式很恶心人
    AlwaysBehave
        29
    AlwaysBehave  
    OP
       2017-06-18 14:04:46 +08:00
    @Bryan0Z 你是指什么?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1050 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:21 · PVG 06:21 · LAX 15:21 · JFK 18:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.