前段时间,二狗子的朋友圈被工信部发布的《关于下架侵害用户权益 App 名单的通报》给刷屏了。公告中指出有 90 款 App 未按照要求完成整改将会下架。而这 90 款 App 涉及全国各地教育、游戏、安全、新闻等诸多领域。同时通报中提到,有 5 家企业在 App 不同版本中反复出现同类问题,包括违规收集个人信息、强制用户使用定向推送功能、频繁过度强制索权、欺骗诱导用户下载等。工信部表示将依法暂停其违规行为,予以直接下架处理。

看到这则公告后,本着吃瓜心理,二狗子顺手去搜了一下这 5 家企业,发现他们已经纷纷发表了回应,表示平台排查后发现问题主要在于第三方 SDK 等方面。

其实这类第三方 SDK 插件违法调用手机信息的行为,早在 2020 年的 315 晚会上就被央视曝光过了,目前网络上也经常会出现这类新闻。

那为何 SDK 这么危险,软件厂商确还要频频使用呢?但是如果要说 SDK,那肯定离不开 API。

API 的出现

如果想较为详细的了解 API 大家可以阅读《白话科普,10s 了解 API》,这里就给大家简单介绍一下。

API 的全称是 Application Programming Interface,中文名为“应用程序接口”,一般是指一些服务厂商预先定义好的一组向外开放的方法。这些方法直接对应服务厂商的自家服务功能,方便应用程序或开发人员快速调用功能,而无需理解服务厂商工作机制的细节。例如用户如果使用了又拍云短信服务来开发短信发送的功能,那只要按照文档选择想要实现的功能,然后调用短信 API 接口来调用想用服务即可,并不需要知道短信如何传递给客户的技术细节。

SDK 的诞生

简单了解了 API,我们再回到本文最初所说的 SDK 上来。

所谓 SDK 其实是"软件开发工具包",即 Software Development Kit 的缩写。它一般是指通过第三方服务商实现产品功能的软件工具包。通常,SDK 是由专业的公司提供的,为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具集合。可以将移动支付技术、语音识别技术,或者存储技术等进行专业集合。它有效减少了开发者在新增功能时对产品每一项功能进行开发的时间。

和 API 一样,SDK 由服务厂商提供了,开发者只需要接入相关 SDK,然后做好相关功能接口的联调即可,至于底层逻辑、数据存储等等都不需要去考虑。

API 与 SDK 的区别

那么从结果上看都是让开发者使用三方服务功能的 API 和 SDK 到底有什么区别?为什么说 SDK 就离不开 API?

其实在更多场合下,API 更像是 SDK 的一个子集,这是因为:

  • API 通常是一个接口方法,有特定的功能;而 SDK 是一个很多功能的集合体,更像是一个工具包;

  • API 通常为单个数据接口的形象,SDK 则相当于一个工具环境,通常除了包含了服务的所有 API 功能;

  • SDK 相较于 API 封装层次更高。

为什么 SDK 经常翻车

目前因为各家服务商的提供功能越来越多,同时用户对于 App 的功能需求也逐渐增大,如果每一个功能都是自己开发,那时间和成本都无限延长。因此公司会更偏向选择第三方 SDK 工具包来实现这些功能。这就导致可能很多公司都在用同一个 SDK,一旦这个 SDK 出现了隐私泄露,那牵扯到的也不再仅是一家公司的 App。

那么,如何避开这样的隐私侵害呢?

对于开发商而言,要尽可能选择有一定市场基础的第三方 SDK,比如尽量使用苹果和谷歌商店里选用的 SDK 进行集成。

从个人层面来讲,在下载 App 时,最好选择恶意密度较低的应用商店,比如苹果的 App Store、安卓手机的官方应用商店,不要随意在网站上下载来历不明、未经审核的软件。同时面对安装 App 时弹出的各种权限申请,在给出自己的位置信息、手机通讯录等隐私权限之前一定要认真确认。

最后,国家也一直在政策层面上对此进行监管。要求网络运营者对接入其平台的第三方应用,应明确数据安全要求和责任,督促监督第三方应用运营者加强数据安全管理。

目前国内手机厂商也越来越重视用户隐私,推出“照明弹”等隐私保护功能。一旦这些 App 后台行为的调用逐渐清晰和明朗化,系统也愿意给出更多限制性手段后,守住自己的私密数据,大概就不会成为一个难题了。

接入 SDK 结果翻车了?了解 SDK 的那些事的更多相关文章

  1. 【Win10 UWP】QQ SDK(二):SDK的回调处理

    上一讲,我们介绍了QQ SDK的使用方法,请看<[Win10 UWP]QQ SDK(一):SDK基本使用方法> 一. 回调的基本形式 从前面的介绍中我们知道,我们的应用和QQ客户端之间需要 ...

  2. 【Win10 UWP】QQ SDK(一):SDK基本使用方法

    每当开发一个应用需要社交分享的应用时,总是心里咯噔一下:到底什么时候分享能加上QQ和微信?除了WP8.0版本的微信SDK,官方似乎从未正面发布过适应时代发展的QQ SDK,就连后台,也没有一个可以创建 ...

  3. iOS开发——iOS10升级极光推送SDK、友盟分享SDK

    前不久升级了Xcode8 ,同时iOS10系统也推送久. 由于公司需要适配iOS 10系统,同时第三方sdk建议升级. 包含替换升级新的SDK和相应的代码修改. 主要分享如何升级极光推送SDK,友盟分 ...

  4. [2015-06-10 20:53:50 - Android SDK] Error when loading the SDK:

    1.错误描述 [2015-06-10 20:53:50 - Android SDK] Error when loading the SDK: Error: Error parsing D:\Andro ...

  5. 关于js SDK的程序,java SDK的程序

    一:JS SDK 1.修改配置workspace 2.导入 3.Demo.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Trans ...

  6. 【微博SDK调用逻辑】微博SDK的调用逻辑,最好自己还是写一个例子,试一下!!!

    逻辑是这样的,谢谢给我讲东西的开发哥哥,嘻嘻~~~  1.点击微博登录,SDK会打开微博客户端,然后点击登陆(如果已经登录了会出现一个当前app跟微博交互的图片界面,然后提示“正在获取授权信息”,如果 ...

  7. iOS——Command-Line 查看当前SDK版本并修改默认SDK版本

    在工作中可能会碰到用命令行编译.打包iOS应用程序的情况(xcodebuild相关命令). 但是由于SDK版本问题,会报错,说某SDK版本不对,可能是因为升级Xcode导致的SDK版本升级,为了避免高 ...

  8. 安装Android SDK时,点击SDK Manager.exe闪退,并且jdk的环境变量是对的。

    前提:我的jdk的环境变量是正确的,同时我的jdk还是1.7应该不是版本太低的原因,同时这个压缩文件是好的,我在其他的电脑上可以运行SDK Manager.exe. 点击SDK Manager.exe ...

  9. Android基础之在Eclipes中关联SDK源码和查看SDK源码

    在进行Android应用开发的时候,我们有时候需要查看某个类或接口的源码从而了解如何去使用一个类或者实现一个接口,查看源码有助于我们的学习某个封装的类的底层是如何实现的,这样可以帮助我们掌握类或者接口 ...

随机推荐

  1. Mobileye 自动驾驶策略(一)

    Mobileye 自动驾驶策略(一) 详解 Mobileye 自动驾驶解决方案 Mobileye的自动驾驶解决方案.总得来说,分为四种: Visual perception and sensor fu ...

  2. HiCar基本功能介绍

    HiCar基本功能介绍 基本概述 一方面,基于操作系统超强的分布式能力,HUAWEI HiCar通过手机和汽车之间的连接,基于三层标准与能力,构建手机和汽车互助资源池,把手机的服务生态延伸到车内,实现 ...

  3. Java设计模式(3:接口隔离原则和迪米特法则详解)

    一.接口隔离原则 使用多个接口,而不使用单一的接口,客户端不应该依赖它不需要的接口.尽量的细化接口的职责,降低类的耦合度. 我们先来看一个例子: 小明家附近新开了一家动物园,里面有老虎.鸟儿.长颈鹿. ...

  4. adb基础命令

    adb运行原理: 启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程.如果没有,它将启动服务器进程.当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb ...

  5. Git操作_从github远程仓库克隆到本地仓库, 本地代码提交

    实现目的: 从github远程仓库克隆到本地仓库:本地代码提交到远程仓库. 一.从github远程仓库克隆到本地仓库: 命令行切换到指定的仓库想存放的目录,执行如下命令:git clone  远程仓库 ...

  6. Dynamic Anchor Learning for Arbitrary-Oriented Object Detection(DAL)

    面向任意目标检测的动态锚点学习 摘要:面向任意的目标广泛地出现在自然场景.航空照片.遥感图像等中,因此面向任意的目标检测得到了广泛的关注.目前许多旋转探测器使用大量不同方向的锚点来实现与地面真实框的空 ...

  7. 用transform和rem哪个好

    个人觉得电脑端的用transform好,毕竟电脑端的项目基本都会固定屏幕比列,16:9.28:9.32:9的 一个固定的设计稿就能很好的适配. 移动端用rem比较好,移动端的屏幕比列太杂,使用rem自 ...

  8. 在微信小程序中使用阿里图标库Iconfont

    首先想要使用图标,只用上图的五个iconfont相关文件就可以了.(下下来的文件iconfont.wxss开始是.css的后缀,手动改成.wxss就可以在小程序中使用) 然后在app.wxss中引入i ...

  9. 20204107 孙嘉临 《PYTHON程序设计》实验四报告

    课程:<Python程序设计>班级: 2041姓名: 孙嘉临学号: 20204107实验教师:王志强实验日期:2020年6月29日必修/选修: 公选课 ##作为一个轻度游戏玩家,当然是要写 ...

  10. excel打印出现多余空白页

    问题: 解决方法一:设置打印区域 步骤:选择需要打印的内容--页面布局--打印区域--设置打印区域即可 解决方法二:删除多余的打印空白页 步骤:视图--分页预览--选中多余的空白页删除即可