支离破碎的 Android

Android虽占据75%市场份额,但其生态系统的碎片化问题日益严重,导致1728种操作系统+品牌+设备模型组合,多数无法更新。与iOS的统一性形成鲜明对比,开发者分享实际开发体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

640?wx_fmt=gif

【程序人生 编者按】Android 号称拥有 75% 的市场份额,但是粗略计算下可以发现,Android 生态系统能分为至少 1728 种操作系统+品牌+设备模型的组合,而且这些设备中的大多数都无法更新 Android 系统。那么现在的 Android 生态是否已经呈现出“支离破碎”的窘态了?

640?wx_fmt=jpeg作者 | https://eggonomy.com/

译者 | 弯月,责编 | 郭芮

出品 | 优快云(ID:优快云news)

以下为译文:

Android陷入了非常严重的分裂状态。

 

 

640?wx_fmt=png

Android支离破碎?

 

 

640?wx_fmt=png

 

Android号称拥有75%的市场份额——这话虽然没错,但是深入研究上图你就会发现……

 

  • Android拥有75%的市场份额;

  • Android Pie占Android市场总额的11.26%;

  • 三星占Android Pie市场总额的5.0%;

  • 三星Pie进一步分裂成了12种不同型号的手机设备。

 

看明白了吧?

 

我猜,Android有:

 

  • 12个操作系统版本;

  • 12家主要设备制造商;

  • 平均每家设备制造商拥有12个手机型号。

 

粗略计算,Android生态系统可以分为至少1,728种操作系统-品牌-设备模型的组合,这些设备中的大多数都无法获得Android系统的更新。然而,Google会从这些设备中收集大量数据,用于定位广告的展示位置。

 

Google承认了这个问题,而且还推出了Android One。然而,鉴于每个设备制造商都想要自己的Android风格,所以这种分裂在短期内并不会停止。

 

这个问题只能等待时间来解决——或许还需要再等五年,等用户把旧的设备扔进垃圾桶,并购买一台能提供更新的Android设备。

 

相比之下,iOS 12.X拥有约80.5%的市场份额,绝大多数iPhone用户都可以迅速获得完美的最新版本更新。

 

我认为:在操作系统市场份额方面,苹果大幅领先。

 

 

640?wx_fmt=png

开发者们怎么看?

 

 

对于以上的观点,Hacker News上的开发者们发表了不同的看法。

 

评论1:

 

我从事的领域就是Android应用,主要针对北美市场。

 

我们的Android设备中88%都是Android O、P和Q。到目前为止,我从来没考虑过分裂的问题。Jetpack库作为操作系统和第三方应用之间的抽象层,可以帮助我们处理好这个问题。

 

但是,相机应用是一个例外:硬件的分裂可能会很痛苦。我惊讶地发现Google也在处理camera x库。

 

有些时候,我们确实会遭遇分裂的问题,将来可能也会出现这种情况(然而我的iOS同事有时也需要创建特定的修复程序),但是印象中上一次遭遇特定设备的bug那还是几年前的事儿。

 

因此,我不太赞同上文的观点。

 

评论2:

 

据我所知,Android并没有分裂,只是一堆设备通过差不多数量的Android系统运行大多数应用而已。

 

应用不关心Android版本,它们只关心你拥有的API支持,并且应用可以在运行时检测API的支持并进行调整。

 

另一方面,上文中没有提到苹果公司不允许你支持EOL之后的设备,而即使是现有的一些古老的Android也可以在最新版的Android系统上运行,只要你愿意自行升级ROM。

 

通常,手机硬件在3-5年后就会逐渐被淘汰,而有些旧手机只是因为用户长期持有且坚决不升级ROM,最终这些手机都会成为Android的分裂版本。

 

评论3:

 

一般来讲,应用主要的要求有:

 

  • 原生UI元素(标签,文本字段,图像,列表视图等);

  • 标准格式的图像(png,jpeg等);

  • 网络请求:一次获取不超过100kb的数据;

  • 简单的触摸交互(单击/拖动/滑动);

  • 读/写内部存储;

  • 播放音频。

 

如果是这样的话,那么Android版本的分裂可能并不是问题。而且如果你的应用只想要在视图之间和网络之间来回移动文本块,那么Android的分裂也不是问题。

 

但是,如果你需要:

 

  • openGL或3D图形调用;

  • 读/写可移动存储;

  • 视频流,HLS流,甚至是本地视频文件播放;

  • 下载/通过网络提取大量文件/数据;

  • 多点触控UX;

  • 使用相机:后置、前置或具体的相机使用;

  • 硬件传感器/广播/接收器访问(陀螺仪,加速器,手电筒,蓝牙);

  • 操作系统操作(自定义键盘,替换默认电话/短信,修改共享视图等本机模式,在OS中注册为共享目标等)。

 

那么你就不得不忍痛割爱,丧失一大批用户群了(你可能需要手动指定,尽管Google会帮忙),或者顽强地通过自定义的逻辑编写大量操作系统检测语句来处理这些情况。凡是包含上述4条以上内容的Android应用都会遭遇Android分裂的问题。

为什么90%的程序员都爱Python?

https://edu.youkuaiyun.com/topic/ai30?utm_source=cxrs_bw

参考链接:

 

https://eggonomy.com/blogs/news/how-fragmented-is-android

https://news.ycombinator.com/item?id=20015968

640?wx_fmt=png

640?wx_fmt=png

为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍优快云新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

640?wx_fmt=jpeg

 热 文 推 荐 

不得了!这个 AI 让企业家、技术人员、投资人同台“互怼”

重来一次高考,你还选择当程序员吗?

我在瑞典当码农 | 程序员有话说

超严格!大项目中程序员的时间分配…… | 每日趣闻

☞直接拿来用!灵跃模组机器人硬核评测(编程篇)

容器云常见安全威胁与防范 | 技术干货

敲诈团伙将黑手伸向宅男, 你在家看不可描述的视频, 竟被骗走100万美元!

各方最新回应!如何看待IEEE官方声明“学术禁令”?

代码整洁之道-编写 Pythonic 代码

☞敲代码时,程序员戴耳机究竟在听什么?

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 优快云 文章。

 

640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

<think>我们正在处理用户关于Windows SDK addon的问题。根据用户的问题,我们需要回答三个部分: 1. Windows SDK addon的作用是什么? 2. 在Windows 11下卸载是否有风险? 3. 如何重新安装Windows SDK addon? 首先,我们需要理解什么是Windows SDK addon。根据引用[1],Windows开发有多种方法,包括Win32、Windows SDK、WPF、WinUI、.Net应用程序以及WinRT API。Windows SDK是用于开发Windows应用程序的软件开发工具包,它提供了头文件、库、工具和示例代码,帮助开发者创建Windows应用程序。 addon(附加组件)通常是指对SDK的扩展,比如提供特定功能的额外组件。例如,引用[5]提到了Android SDK的离线安装包中包含了一些addon,如Google APIs。类似地,Windows SDK addon可能是指为Windows SDK提供的额外功能包,比如特定版本的API支持、工具或库。 然而,在提供的引用中,并没有直接提到“Windows SDK addon”的具体定义。我们需要根据上下文推断。引用[2]和[3]提到了Windows SDK的安装问题,引用[4]提到了Foxit PDF SDK for Windows,但这与Windows SDK addon无关。 因此,我们可以推测,Windows SDK addon可能是为了支持特定功能(如测试、模拟器、特定硬件支持等)而提供的附加组件。例如,在Android开发中,addon可能包括Google Maps API等。在Windows开发中,addon可能包括针对不同Windows版本(如Windows 10、11)的额外API或工具。 接下来,回答第二个问题:在Windows 11下卸载是否有风险? 卸载Windows SDK addon可能会影响依赖于该addon的应用程序的开发或运行。例如,如果某个应用程序使用了addon中的特定API,那么卸载后,开发环境将无法编译该应用程序,或者运行时可能缺少必要的组件。但是,如果当前没有使用该addon,卸载可能不会立即产生影响。不过,由于我们无法确定用户是否在使用该addon,一般建议在卸载前确认其必要性。引用[2]中提到,卸载Windows SDK可能会导致开发环境出现问题(如无法找到头文件),因此卸载SDK或addon需要谨慎。 最后,如何重新安装Windows SDK addon? 根据引用[2]和引用[3],我们可以通过以下步骤重新安装: 1. 访问微软官方网站下载Windows SDK:https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ (注意:引用[2]中提供了Windows 10 SDK的下载链接,但Windows 11的SDK可能在同一页面或单独的页面) 2. 下载后运行安装程序,选择需要安装的组件(包括addon,如果安装程序提供了选项)。 3. 在安装过程中,注意选择正确的安装路径(避免之前盘符问题,如引用[2]所述)。 4. 安装完成后,可能需要配置环境变量(如引用[3]中配置Android SDK的环境变量类似,但Windows SDK通常不需要手动配置环境变量,因为Visual Studio会自动识别)。 另外,如果用户是通过Visual Studio安装的Windows SDK,可以尝试通过Visual Studio安装程序来修改安装选项,添加或删除组件。 总结回答: 1. 作用:Windows SDK addon是Windows SDK的附加组件,提供额外的API、工具或功能,以支持特定开发需求(如针对特定Windows版本或硬件的开发)。 2. 风险:卸载可能导致依赖该addon的应用程序无法开发或运行,建议在卸载前确认是否被使用。如果没有使用,卸载风险较低,但需谨慎。 3. 重新安装:从微软官网下载对应版本的Windows SDK安装程序,运行并选择需要安装的addon组件。 注意:由于引用中没有直接说明Windows SDK addon的具体内容,我们基于一般SDK addon的概念进行解释。如果用户有更具体的addon名称,可以进一步查询。 生成相关问题: 1. Windows SDK addon通常包含哪些具体组件? 2. 如何确定某个应用程序是否依赖于特定的Windows SDK addon? 3. Windows 11 SDK与之前版本的主要区别是什么? 4. 除了官方下载,还有哪些方式可以安装Windows SDK addon?</think>### Windows SDK Addon 的作用、卸载风险及重装方法 #### 一、Windows SDK Addon 的作用 Windows SDK Addon(附加组件)是 Windows SDK 的扩展模块,主要提供以下功能: 1. **平台特定支持**:为特定 Windows 版本(如 Windows 11 API)或硬件架构(ARM64)提供额外开发接口[^1][^4]。 2. **增强工具链**:包含调试器、性能分析器等扩展工具(如 WPT、ADK 工具包)。 3. **API 扩展包**:例如提供地理围栏、生物识别等高级功能的 API 库[^5]。 4. **兼容性组件**:支持旧版应用在新系统运行(如 Windows 11 兼容层)[^1]。 > 典型应用场景:开发 UWP 应用、驱动开发、系统级性能优化时需调用 Addon 中的专用 API[^4]。 #### 二、Windows 11 下卸载的风险评估 卸载风险取决于使用场景: | **风险等级** | **适用场景** | **后果** | |--------------|--------------|----------| | **高风险** | 正在开发 Windows 应用/驱动 | 项目编译失败(头文件丢失如 `corecrt.h`[^2]),调试工具不可用 | | **中风险** | 仅运行已编译应用 | 部分依赖 Addon 的应用无法启动(如特定硬件功能调用) | | **低风险** | 普通用户无开发需求 | 系统功能不受影响,但可能丢失未来开发能力 | > ⚠️ 关键风险点:若卸载后未正确重装,会导致开发环境永久损坏(需彻底重装 VS 和 SDK)[^2]。 #### 三、重新安装方法(Windows 11 适用) **推荐官方安装流程:** 1. **下载安装包** 访问 [Microsoft Windows SDK 下载页](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) → 选择 **Windows 11 SDK (10.0.22000.194)** 或更高版本[^4] 2. **执行安装** ```bash # 管理员身份运行命令提示符 winsdksetup.exe /features + /installpath "C:\Program Files\Windows Kits" ``` - 参数说明: `/features +` → 安装所有默认组件 `/installpath` → 指定路径避免盘符冲突(解决引用[2]的报错) 3. **验证安装** - 检查目录:`C:\Program Files\Windows Kits\10\Lib` 应包含 `.lib` 文件 - VS 测试:新建 C++ 项目,包含 `<windows.h>` 编译通过[^2] 4. **环境修复(如遇失败)** - 卸载旧版:控制面板 → 卸载程序 → 删除所有 `Windows Software Development Kit` - 清理残留:删除 `%ProgramFiles%\Windows Kits` 和 `%LOCALAPPDATA%\Microsoft\SDK` - 重装后重启系统[^2] > 💡 替代方案:通过 Visual Studio Installer → "修改" → 勾选 **Windows 11 SDK** 组件安装。 #### 四、卸载决策建议 - **开发者**:保留必要 Addon,用 `Visual Studio Installer` 移除冗余组件降低冲突风险[^2] - **普通用户**:可卸载,但需备份 `%WindowsSdkDir%` 目录以防紧急恢复 - **企业环境**:通过组策略禁用自动更新,避免 SDK 版本冲突[^1] --- ### 相关问题 1. Windows 11 SDK 与 Windows 10 SDK 的主要兼容性差异是什么? 2. 如何修复因 SDK 路径错误导致的 `无法打开包括文件: “corecrt.h”` 编译报错? 3. 哪些 Windows 11 新特性必须依赖 SDK Addon 才能开发? 4. Visual Studio 2022 中如何管理多版本 Windows SDK? [^1]: Windows 开发方法不一致且支离破碎,涉及 Win32/.NET/WinRT 等多框架。 [^2]: 手动安装 SDK 需严格保持路径一致性,避免盘符修改引发的致命错误。 [^3]: 环境变量配置(如 `%ANDROID_HOME%`)的验证方法同样适用于 Windows SDK。 [^4]: Foxit PDF SDK 等第三方工具链需依赖 Windows SDK 核心库。 [^5]: Android SDK 的离线安装包结构类似 Windows SDK Addon 的分模块设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值