为什么安卓的安装不弄成 Windows 那样?

2019-04-07 16:51:05 +08:00
 hahahe

现在国内想用最新原生安卓是比较难的,因为支持的机型少、贵、难买。
为啥不能像 Windows 那样呢?无论什么手机,手机内下载好安卓系统,然后设置安装包启动,开始安装程序。
这种方案的阻力是啥,未来会不会实现?

5077 次点击
所在节点    程序员
26 条回复
easylee
2019-04-07 16:58:55 +08:00
非常大的阻力之一是驱动。
sheeta
2019-04-07 16:59:44 +08:00
因为手机厂商不乐意
awen233333
2019-04-07 17:02:52 +08:00
系统可以安装很多软件,添加一堆广告
Osk
2019-04-07 17:04:03 +08:00
都是 Linux 的错 /滑稽 /

安装一个 ko 就知道了.


不过我很好奇苹果的驱动感觉就没 Linux 那么多幺蛾子啊, 苹果的内核好像也是宏内核吧.
HandSonic
2019-04-07 17:05:18 +08:00
早就已经有了,GSI 了解一下
hjc4869
2019-04-07 17:09:20 +08:00
@Osk 跟宏内核微内核没关系,只要驱动模型维持稳定的 API/ABI,大多数情况下就能实现驱动的向下兼容。
Linux 就是那个天天 break km API 的 kernel,还以此为 feature,后果就是制造了一大堆进不了主线,厂商不想维护就得扔的电子垃圾。
tadtung
2019-04-07 17:23:04 +08:00
利益问题啊。。。
各手机厂商从自家手机集成 app 获取的利润并不比手机硬件少。。。
简单来说小米市场中 app 推广,游戏充值等分成,你自己算一下,这要多少利益,谁舍得放弃?
预装第三方 app,基本上最低 5 元一个,你再算算,手机出货 1000 万台,随便预装几个 app,这又是多少钱?
你再算算如果当年 google play 不被墙,google 框架没被阉割,国内手机厂商要少赚多少钱?
app store 中充值消费苹果会抽取 30%。。。而安卓中很多手机内置市场游戏消费抽成更高。
a22124497
2019-04-07 17:30:38 +08:00
不是说安卓 8 就要这样的嘛,驱动层不改,升级只改用户的,可以升级,打安全补丁,可是也没有看出啥进步
alvin666
2019-04-07 17:32:00 +08:00
pt 系统了解一下,不是没这种技术,厂商完全可以开放驱动,随意刷机,但是利益问题,为什么大大小小安卓厂商都在做自己的 os,就是为了钱啊
adui 了解一下
gam2046
2019-04-07 17:33:50 +08:00
我们目前使用的是电脑叫做“ PC 兼容机”,“兼容机”划出来,考试需要考的。

不管什么厂家,硬盘、显卡的物理接口是一致。系统没有显卡驱动,通过最基本的相关规范,至少系统能让显卡工作并显示内容。

而现阶段,Android 不是兼容机,不同厂家的硬件并不具有公共特性。比如索尼的摄像头与三星的摄像头,只要系统没有驱动,那么连一张全是马赛克的图片也无法从摄像头中获取。所以问题在于同一配件厂商,未能有一个统一的规范,比如所有触屏厂商有一个统一规范,各自在此基础上扩展,那么当你自己下载一个你喜欢的 Android 系统安装时,即使没有相关驱动,至少这个硬件也是可以用的,丧失的是该厂商的扩展功能,而不是完全不可用状态。

在设计上,系统 Windows 与 Android 是比较相似的,都是采用 HAL 尽可能隔离硬件与软件。
TrembleBeforeMe
2019-04-07 17:37:14 +08:00
Project Treble 了解一下
easylee
2019-04-07 17:42:32 +08:00
@gam2046 #10 感谢科普。
jim9606
2019-04-07 18:14:26 +08:00
arm 世界不像 x86 那样有统一的硬件初始化接口( ACPI 和 UEFI ),基本上要靠编译时预先针对 SoC 系统写好 device tree 一起编译,uboot 也是不通用的,不过服务器市场的 ARM 也有用 ACPI 了。
linux 是宏内核,不像 windows 那样只要用 ddk 编译就能跨系统版本运行,升 kernel 是很麻烦的事(当然这也有 windows 愿意花大力气维护 kernel 兼容性的原因)。
treble 也就是解决 userspace 和 kernel 的耦合而已,kernel 和 driver 的耦合还是没办法,想要用上硬件的所有功能也不大可能完全不改 userspace。
而且手机这边也没有统一硬件寄存器模型的情况(x86 这边显卡要实现 VGA 和 GOP,USB 控制器要实现 OHCI/UHCI/EHCI/XHCI),没有微软这样把控能力强的 OS Vendor
honeycomb
2019-04-07 18:21:26 +08:00
快了。
目前的 GSI 就有在任何认证的 Android 设备上运行的能力。

目前 Android 在研发一个叫做 apex 的东西。
17326093554
2019-04-07 19:55:36 +08:00
@a22124497 那是 ProjectTrouble,要专门刷入 gsi,驱动系统分离,这是手机厂商要做的事,谷歌只能推动而不能决定。目前在国内只有少量手机做到了。
akira
2019-04-07 23:41:33 +08:00
带了系统的卖 1500, 不带系统的裸机卖 2000, 你选哪个
AngryMagikarp
2019-04-07 23:46:11 +08:00
windows 能做到是因为和 intel 有深度合作,史称 wintel。
AngryMagikarp
2019-04-07 23:48:02 +08:00
另外 windows 是闭源的,微软一直在努力做兼容。Google 的思路就完全不一样了,理论上 Google 如果投入足够的资金和人力,把 Android 闭源自己搞的话,没准也能做到。
MonoLogueChi
2019-04-08 00:36:06 +08:00
pt 了解一下,但是并没有什么卵用
lizhuoli
2019-04-08 00:38:26 +08:00
@Osk macOS kernel extension 了解一下,IOKit 驱动框架了解一下。Linux 添加一个第三方驱动需要编译内核,提交还需要层层 Review+GPL,小众硬件根本没得玩

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/552716

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX