如您所知,YouTube上的一些作者对这个平台提供的条件非常不满意。 Google Play平台上的Android应用程序的开发人员正在展开类似的战斗。 我将在20分钟内尝试解释Android的问题。Android曾经被认为是最佳的移动平台:控制,可定制性,高级功能,真正的多任务处理,即使在极少数情况下也支持使用和开发人员自由。 它是科学和教育的最佳平台:首先,开发工具是免费的且跨平台的;其次,Android是非常灵活的OS,不会干扰尝试创新概念和修改设备。 现在所有这些都很快消失了。
以前,主要的Android版本带来了使开发人员和用户都满意的新功能。 但是到某个时候,我已经担心新版本的发布,我仍然在寻找自己的实力(heh),以查看针对最新版本的更改和对开发人员的建议。 而且,新版本并不是麻烦的唯一原因:Google Play商店政策的变化也总是很有趣。
首先,有一个上下文:在Android之前,我尝试Windows Mobile 6.x,并在4.2版本发布后切换到Android:我记得他们在那之后不久宣布了4.4,并且她一生都站在我的第一部Android手机上。 Android是我认真投资于应用程序开发的第一个也是迄今为止唯一的移动操作系统。
我在6.0(Marshmallow)发行前不久就开始修补应用程序开发,因此我不是老手,我不能说我从一开始就关注Android的发展,当然,也没有从开发人员的角度观察整个过程。 尽管如此,十年的变化仍在我眼前-即使在Windows Mobile的实验过程中,我也注意到了Android阵营中发生的一切,尽管我仍然没有足够的钱购买这些手机(一切都花在了Windows Mobile下的“手持式计算机”上) 。 我完全理解以前对于Android 4.x用户和开发人员来说很不方便:我自己可以尝试这些版本,而我的应用程序必须支持它们。
弃用API并失去向后兼容性
Google的每个版本都会更改Android API。 这些接口在很大程度上决定了应用程序可以做什么和不能做什么。 此外,某些API要求您在安装过程中同意的权限,并且其中一些权限可以在启动时设置(其想法是,应用程序应通过提供单独的功能而
优雅地降级 ,而无需获得某些权限)。 这适用于联系人列表或位置API。
较新的Android版本包括较新的API。 以前,几乎没有对以前版本的旧API进行任何更改。 也就是说,旧的应用程序继续正常运行。
在过去的两到三年中,新版的Android已开始删除和修改旧的API。 例如,如果一个应用程序想要在后台保持活动状态,那么它现在应该显示一个恒定的通知。 从理论上讲,这个想法听起来不错,但最终您会不断收到几条通知,每个后台应用程序都会收到一条通知。 例如,我的电话经常挂着两个通知:一个通知给录音机,另一个通知给均衡器。 我自己的一个应用程序还应该在Android 8 / Oreo和更新版本中不断显示通知,以进行可靠的Wi-Fi后台扫描,以便在某些地方建立用户的外观。
在未来的Android 10 / Q版本中,应用程序功能将进一步受到限制。 Google
删除了对剪贴板的访问权限,从而杀死了一整套用于管理剪贴板的应用程序(复制的片段的历史记录,与其他手机,计算机等的同步)。 当前,所有应用程序都可以在没有特殊权限的情况下访问缓冲区。 您可以通过添加权限请求而不是完全删除API来解决问题。
应用程序无法再打开和关闭Wi-Fi ,这阻止了例如在开车旅行时自动关闭Wi-Fi的功能。 Google认为
完全禁止应用程序访问“外部存储”中的任意文件 (SD卡和手机的内部存储区域,其中包括屏幕快照和照片,MP3,用于仿真的图像等)。
请注意,出于“安全性”的考虑,它们删除了所有这些内容,但是可以简单地通过权限请求(例如,联系人列表或位置)对其进行保护。 相反,他们决定完全删除这些功能。 即使用户愿意,应用程序也将无法实现它们。 用户可能无法使用现有的应用程序,因为人们无法理解为什么该程序在更新为出色的Android新版本后突然停止工作。
这些都是重大变化。 正常的应用程序可能会停止工作。 开发人员将必须对其进行更新,以实施较不方便的解决方法,实施说明性消息等。 这需要时间,精力,金钱等,这些时间可能花费在解决其他问题或开发新功能上。 对于小型团队或独立开发人员,尤其是那些在空闲时间进行开发的人员来说,要赶上Google的最新趋势可能非常困难。 例如,由于后台服务操作的变化,在夏季,我花费了大部分空闲时间来重新设计其中一个应用程序的体系结构,这又导致了新的错误,必须进行诊断,更正等,才能生成所提到的应用程序显示通知,并在最新版本的Android中正常工作。
即使没有发布新版本的Android,Google仍可以将旧的API发送给其他用户:例如,通过禁止具有特定权限的应用程序为Play商店设置新规则。 最近,Google禁止访问SMS和呼叫日志的权限:因此,所有此类应用程序都将从目录中删除。
此类应用程序仍可以直接从APK或替代目录中安装,但不能从Play商店中安装。 实际上,事实证明,在Play商店中的许多应用程序中,关键功能都是被淘汰的。 例如,记录器无法再在音频记录中指示电话号码,并且自动化应用程序不能再将SMS消息用作触发操作。 由于99%的用户从Google Play下载应用程序,因此现在禁止使用此功能,并且只有极少数知道如何规避这些限制的用户才能使用此功能。
Google Play商店是YouTube,面向应用开发者。
Play商店的开发人员越来越感到自己像YouTube内容的创建者,在这种情况下,政策变化突然发生而没有警告。 在YouTube上,制作人始终担心内容会因某些原因而被取消货币化:这是由完全自动化的,不透明的系统以及对版权所有者的投诉做出的决定。 现在,Play商店还必须不断监视其突然删除您的应用程序或阻止开发者帐户以及Google认为涉及的所有其他帐户的新原因是什么:
而且这些仅仅是在r / androiddev中每隔一天发布的甚至不是最“可怕”故事的孤立示例。 在相应的“类别”中,每个主题都有数十个故事。 有时类似的案例也会在Hacker News上发布。 Google似乎与在线游戏的主持人一样轻描淡写地对待禁止帐户和卸载Play Store应用程序,后者至少出于某种原因禁止玩家怀疑欺诈行为。 对于大多数玩家而言,在线游戏只是娱乐,与Android应用程序开发不同。 一个明显的问题出现了:对被禁止的人该怎么办?
现在,我了解到与YouTube的类比是可怕的。 您会看到,YouTube通常会收到警告。 您不会醒来,突然发现您的帐户被禁止。 视频作者通常有机会通过与用户接触来利用戏剧。 观众通常会同情他们,而应用程序开发人员则对那些不知道或不想知道为什么我们不得不大量删除功能或降低应用程序性能的用户感到愤慨。 例如,流行的ACR录音机的开发人员在删除访问呼叫日志的权限后
,遭到成千上万生气用户的不良评价,滥用和亵渎 -这是在广泛的活动警告即将发生变化之后(作为ACR用户,我卸载了Play Store版本并安装了通过XDA Labs(保留旧功能的不受限制的版本)。
对于独立开发人员和小型公司而言,Android开发比以往任何时候都更具风险。 今天,我将开始该项目的工作,六个月后,当我准备第一个版本时,对目录政策的更改将不允许其发布或严重影响其功能……除了以上关于API的段落(该段落过时并改变了语义,需要对代码的持续支持)之外,跟上最新版本。
如果您按照上面的链接进行操作,您会了解其他内容:Google实际上缺乏对真实用户的用户支持,并且如果他们的机器人与Google Assistant一样灵敏……如果他们不是机器人,而是人,那么不会有什么区别:他们吐出模板答案。 众所周知,解决在Google Play上发布信息的最佳方法是在社交网络上吸引Google员工的注意力。
看起来Google的支持水平取决于您在社交网络上发出的噪音。 这是指数相关的,因为大量的噪声不足以得到中等水平的支持。 需要发出巨大的声音。 这是大多数Google服务的问题,尤其是在您不使用G Suite的情况下(显然,在支持方面,应用程序开发人员不被视为“付费客户”)。 当然,我想在州一级进行监管的事情之一就是这些大型公司有义务提供实际的用户支持。
尽管YouTube的类比可能是错误的,但这里还有另外一个相似之处:许多人认为,近年来,YouTube一直在对业务模型和算法进行更改,从而偏爱大型知名作者,并且使小型作者更难。 我相信我们会在Google Play商店中看到类似的趋势-请记住,该应用程序或其“级别”的受欢迎程度不应通过下载或活跃用户的数量来估算,而应该通过广告和游戏内购买给Google带来的佣金金额来估算。
“ Android是开源的”
五年前,“ Android是开源的”成为一个笑话。 尽管Android开源项目(AOSP)仍然存在,但对于最终用户和开发人员而言真正重要的许多组件却越来越封闭。
Google应用程序可以执行第三方应用程序几乎无法访问的操作,这是因为它们与专用河马(即Google Play服务)密切互动。 这在Google应用程序本身以及Google Assistant和Google启动器(Google Start)中尤其明显。
AOSP组件中缺少很多东西,包括我的许多应用程序在正常运行时都会出现问题。 Android的“陷入困境”项目已为许多Google Play功能开发了免费替代产品。 但是,社区必须开发这些替代方案,并且它们对于启动大多数流行的应用程序必不可少,这一事实表明,除了Linux发行版之外,目前可以将Android视为免费的。
AOSP本身由Google有效控制。 这个项目很重要,因为它为Android的各种“ OEM版本”定义了通用的API,因此我们可以为Android开发,而不是为“ Samsung Android”或“ Nokia Android”开发。 但是要实现和排除哪些API,完全取决于Google。 通用系统体系结构,安全模型等也是如此。这意味着Google可以任意倾斜AOSP,删除功能并将其转移到任何所需的专有组件。
显然,通过Google Play实现重要功能以及将操作系统绑定到Google组件对于保持对“ OEM组装商”的控制非常重要。 对用户和开发人员的积极影响是,即使在不从OEM接收更新或仅针对其Android版本而不是针对新版本的Android接收更新的设备上,功能和安全修复程序也可用。 负面影响是,这些更改会在一夜之间影响甚至旧版Android。 这完全取决于Google的决定以及Play商店中的应用程序限制。
看来Google只打开了必要的最低限度的Android,即该操作系统在OEM设备上运行所需的数量。 我们没有达到极限,主要是因为最大的OEM拥有足够的杠杆作用来防止这种情况。 我觉得,如果Google可以使Android成为一个完全封闭的系统,那我一定会做。 有趣的是,未来的操作系统紫红色将会改变什么。
安全损害功能
Google有两个更改Android和Google Play政策的借口:“安全”和“用户体验”,后者包括“电池寿命”。 我不确定最近几年Google为谁开发了“用户体验”,但肯定不是像我这样的“有经验的用户”。 但是,让我们先谈谈安全性。
安全措施必须与其保护措施相称。 在每个版本的Android上,我们都越来越重视安全性:例如,如果没有自定义固件(最初包含超级用户功能)的话,破坏手机变得更加困难。 我们可以得出结论,谷歌正在行善。 但是很容易看出,以安全性为借口,拒绝了某些权限(例如呼叫日志和消息访问权限),或者删除了包括对外部存储的访问权限在内的API。
加强安全措施是有道理的,因为我们在手机中存储了越来越多的有价值的信息:从“老式”私人信息到生物识别数据,例如指纹,面部扫描和视网膜。 当然,Google和其他公司可能最关注保护对支付系统,DRM密钥等的访问。
在结束对安全性的讨论之前,让我们先谈谈用户体验-这是限制或完全删除某些功能的另一个流行借口。 如果1%的人使用的某些功能过于复杂(甚至“不安全”),则通常会对其进行简化...而上述1%的人仍然使用的系统不再支持其用例。 听起来不是很糟糕吗? 但是,要求Google在发布新版本时经常重复此过程(以便员工可以收到奖金),每次绑住另外1%的用户,这将产生什么结果? 可能只是查看广告的功能(显然是Google广告)。 您不需要打电话吧? 最后,对话者可能会成为骗子,使您陷入社会工程计划之类。
很难将强大的安全性与良好的用户体验结合在一起。 似乎权限通知也不提供。 完全删除权限比让用户选择更容易。
实际上,所有这些都取决于用户的选择。 过去,Android牺牲了一些安全性,以换取比iOS更强大和创新的应用程序。 以前,我可以在后台运行10个应用程序,并将电池用时半天,但是现在,如果要执行此操作,则必须查看10个当前通知。
我曾经能够像在台式机上那样在应用程序之间交换文件,但是,显然,这也是对良好安全性的侮辱。我曾经能够每分钟扫描一次Wi-Fi网络,但在Android 9中,甚至每小时扫描次数都受到限制,这杀死了一些正常的用例,包括我的毕业设计。幸运的是,在大学里,我们可以简单地假装Android的最新版本为第八。发明了包括SIM卡在内的智能卡,用于将系统的受保护部分容器化。身份验证,认证-必须在此处完成所有安全功能,以便大型系统保持较低的安全性和灵活性。但是在最近几十年的某个时刻,几家公司决定将重要的安全操作转移到应用处理器(包括整个非接触式支付系统)会更好(也许是为了“用户体验”?)。已经开发了SafetyNet之类的系统。让我们禁止在有根电话上启动银行应用程序吗?想象一下,台式机上的Internet银行拒绝工作,因为涉及到我知道管理员帐户密码的信息...最后,通过限制目录中的常规应用,Google最终鼓励直接下载和安装APK。从安全角度来看,这是不可取的,无需解释原因。我们的电话绝对变得更加安全,但是过度的“安全性”破坏了人们想要从电话中获得更多收益的生活,而不是不停地观看YouTube并在社交网络上查看其提要。您还需要记住,对于许多人来说,智能手机是唯一的计算机,他们不能说:“只需在台式机上完成这项艰巨的任务即可。” 如何不在手机上存储如此多的敏感信息,以便我们能够以同样的风险恢复到以前的灵活性呢?Android,请允许我像以前一样在脚上射击。缺乏真正的选择
如果有可行的移动OS替代方案,我就不会担心Android走向大众的趋势(或Google对允许公众做的事情的理解)。但是我们没有。苹果只有iOS,从一开始就吸引人的座右铭是“它行之有效”:一个功能有限的安全平台,同时限制了出错的可能性。我毫不怀疑这是大多数用户的发现。但是就我个人而言,这样的平台并不适合我。就像我说的,如果我愿意的话,给我机会用脚射击:如果愿意,给我2个小时的电池寿命,如果允许的话,让我自己的应用程序监视我的位置。iOS的局限性很好,因为多年来我们一直使用Android来进行此类操作。碰巧的是,由于AOSP和缺乏竞争,Android成为了所有非Apple智能手机的事实上的标准。在低成本智能手机中,Android实际上是唯一的选择。当然,正因为如此,Android的市场份额有所增长。从现在开始,“所有人”都在使用它,因此人们倾向于复制iOS模型“它可以正常使用”,并对“容易自残”的人们施加安全保护-现在,即使您愿意,也无法伤害自己。Android竞争对手的努力充其量是荒谬的。 Windows Phone / Windows Mobile之所以失败,部分原因是市场进入市场疲软,可能为时已晚,再加上可疑的“视觉”和微软的差劲的管理决策。尽管Microsoft系统真的很不错,否则会有很多WP / WM爱好者,但是它进入市场太晚了(并且前景不确定),以致无法吸引开发人员,而且如果没有高端应用程序,那么人们就不需要该平台了,非常好她不是从技术角度来看。显然,问题在于许多顶级应用程序是由Google发布的。她之所以发布这些iOS应用程序,主要是因为iOS平台问世了。如果像微软这样的财大气粗的大公司也无法想象第三个移动平台,那么对于Firefox OS之类的雄心勃勃的尝试我们能说些什么。这里的结果是可以预料的。他们还有寻找铁运行的另一个问题。不幸的是,您无法像在计算机上那样在手机上安装和更改操作系统。早在2015年,我就已经抱怨智能手机的硬件缺乏标准化。读这篇文章时,实际上是很有趣的,当时Android 4.4是最新版本,并了解我对Android的看法已发生了变化。还应注意,Android的成功替代品肯定应该通过兼容性层运行Android应用程序。在某种程度上,Android为应用设置了标准,就像IE6在15年前以最糟糕的方式规定了Web标准一样。有人说过反托拉斯吗?最后的想法
因此,除非苹果公司引入了一项必须在Android中快速实现的重大创新,否则Google将通过Android设置现代智能手机功能的标准和实现。现在看来,苹果公司的创新步伐有所放缓,因此Google抓住了这一主动权,使Android更像iOS,将其转变为一种柔软,有限,对儿童友好的操作系统,将其与开发人员和经验丰富的用户联系在一起。Google消除了一些垃圾内容,甚至消除了一些恶意的Play Store应用程序,从而提高了自动化程度,同时却使用户更加笨拙和充耳不闻。很难将正常应用程序与计算机上的恶意应用程序区分开,并且不允许用户解决这一重要问题。因此,Google只是通过弃用API并禁止程序目录中的这些功能来“禁止”某些功能的使用,从而实际上阻止了要打开用户存储库中任意文件的所有应用程序,以及录音机,自动化程序等。我们非常需要Android替代方案。但是尚不清楚谁会开发和使用这种替代方法。我只知道,无论是作为Android开发人员还是作为Android用户,我都不再感到高兴,并且总的来说,我几乎不会向亲朋好友推荐Android。