天天弹你脸上的外卖登录窗,跟SDK有啥关系?
说起来我至今都记得上个月半夜抢卤味的火气——当时蹲在外卖APP里凑了十分钟满减,刚选好无骨鸭掌、藕片和冰红茶,算下来刚好满30减5,手指都放在“提交订单”按钮上了,“啪”的一声弹出来个微信授权登录窗。
我手一抖直接点了取消,重新选的时候满减门槛过了,硬生生多花了三块钱,心疼了一整晚。后来跟做客户端开发的朋友出去撸串提这事,他叼着烤串笑我傻:那弹窗根本不是外卖APP自己写的,是塞在它安装包里的SDK干的。
别把SDK当什么高深技术,就是APP凑单拼来的功能搭子
很多人一听见“SDK”三个字母就觉得是程序员的黑话,其实真没那么玄乎。你就想象自己开个十几平米的奶茶店,你自己根本不会做Q弹的珍珠,不会调芋泥的甜度,甚至连收银台的扫码枪都不想自己造,更别说对接外卖平台、做会员积分系统了——直接从批发市场把现成的配件、成熟的服务打包买回来,拧在自己店里就能用,省下来的时间精力全用来研究怎么把奶茶做好喝就行。
SDK本质上就是别人打包好的现成功能模块。现在的互联网公司,哪怕是做个只有几兆的小APP,也不可能从零开始写每一行代码:要做微信登录?直接拿微信开放平台的SDK就行;要做地图导航?拿高德或者百度的SDK就行;要给APP加个美颜滤镜?拿专门的音视频团队写好的SDK就行。把这些模块整段整段塞进自己的APP安装包里,打开就能用,连售后都有原厂商负责,比自己招个团队写半年划算多了。
说出来你可能不信,现在你手机里装的那些轻量工具类APP,拆开来算体积的话,真正用来实现核心功能的代码可能只占20%,剩下80%全是各个厂商塞进来的SDK模块。你以为是APP本身在给你提供服务,搞不好你点一下某个按钮的动作,背后跑的全是第三方SDK的逻辑。
你以为是来帮忙的,搞不好是蹲墙角记你日常的“外人”
我之前对SDK的印象一直停留在“靠谱的工具人”,直到去年装了个免费的修图APP,刚点开软件,还没选要修的照片呢,系统就弹出来权限申请:“是否允许此应用获取你的通讯录信息?”
我当时直接就给拒了——你个修图的APP,要我通讯录里的手机号干嘛?后来跟那个开发朋友打听才知道,这个权限申请根本不是修图APP本身要的,是它里面塞的那个第三方广告SDK要的。它要拿到通讯录里的手机号,去匹配全网的用户标签,给你推更“精准”的广告。
真的。
你根本不会知道,你装的那个只有几兆的免费天气APP里,除了查实时天气的核心功能,还藏了多少个做用户追踪、做广告投放、甚至偷偷在后台弹悬浮窗赚分成的SDK,这些模块跑起来的时候,连APP的开发者都未必能完全管住它的权限。别总说手机在偷听你说话,有一半的场景根本不是偷听——是各个藏在APP里的SDK,在后台互相交换收集到的用户数据,你刚在购物APP里搜了猫粮,转头打开短视频APP就给你推猫砂,这里面就有SDK在中间做数据同步的功劳。

APP莫名卡、乱弹广告,锅真不全是APP开发商的
之前有个朋友跟我吐槽,说自己刚换的旗舰手机,256G的内存,开个纯文本的备忘录都卡,后台清了三四次,没两分钟就弹出来个传奇网游的广告,气得他差点把备忘录卸了。最后找懂行的人拆了那个备忘录的安装包才发现,那个不到30M的小软件里,塞了17个不同厂商的SDK:有做消息推送的,有做广告投放的,还有专门做APP导流的——你只要不小心点到那个SDK的悬浮窗,直接就跳转到应用商店让你下别的软件,赚的导流费,比这个做备忘录的APP本身靠会员赚的钱还多。
很多第三方SDK的权限申请和行为,根本不是APP本身需要的。有些小APP的开发商为了多赚点分成,根本不审核塞进来的SDK有没有越权,只要能赚钱就往安装包里塞,最后倒霉的是我们这些普通用户:手机越用越卡,广告越弹越多,权限被申请了一堆,还不知道是被哪个SDK偷偷拿走的。
不过话说回来,SDK也不全是来添乱的。你用的打车APP里的地图导航功能,就是百度或者高德的SDK,你总不能让一个几十人的小团队,花几年时间从零画完全国的每一条街道吧?还有你刷短视频的时候,那个能让你在弱网下也不卡成PPT的视频解码SDK,是专门的音视频团队写了好几年的成熟方案,要是没有这些SDK,现在你用的很多APP,可能光打开加载就得花半分钟。
SDK不是天生的“坏人”,只是没被严格约束的时候特别容易添乱。
我现在每次装新APP之前,都会多留个心眼,看看它申请的权限是不是跟本身的功能对得上——一个手电筒APP要你的位置权限,一个修图APP要你的通讯录权限,这不是明摆着有问题吗?至于上次那盒被弹窗打断的卤味,我后来特意回去看了下外卖APP的安装包,那个弹出来的微信登录窗,就是微信开放平台的SDK干的。倒不是它故意烦我,就是我当时真的饿到眼睛发绿,手一抖点错按钮多花了三块钱,到现在想起来还肉疼。