音频应用

 找回密码
 快速注册

QQ登录

只需一步,快速开始

阅读: 25454|回复: 1

[转载] macOS换用ARM来势汹汹!Win10 ARM失败在哪里

[复制链接]

271

积分

4

听众

120

音贝

音频应用

Rank: 1

积分
271
发表于 2020-7-20 | |阅读模式
音频应用公众号资讯免费发布推广
6 N' C* X0 L; i# T
macOS换用ARM来势汹汹!Win10 ARM失败在哪里
( }9 I+ i' y6 G  u
8 V; \  k% a# ~( g8 T4 p8 ~1 N3 c 苹果在今年的WWDC上宣布,macOS 11将会迁移到ARM平台,引起了轰动。苹果称,将会在Mac电脑上用自研ARM平台取代Intel的X86平台,并且迁移包括操作系统和软件在内的生态,这意味着ARM在个人PC领域迈出了挑战X86的一步。
: o1 d1 S3 ^+ t6 E" {9 I e1fe9925bc315c60e8ae8bad6374371548547782.jpg ) G$ ~# z' P) p5 F( o2 N, M; f1 e

# T; _& l3 _& qmacOS 11将兼容ARM芯片
! C# u5 W5 h+ Y) l- R9 W
# E7 z3 o5 e/ I8 l5 |3 F9 U人们对苹果的这个举措是寄予厚望的。macOS并不是首次“换马”,在二十一世纪的第一个十年,Mac就从IBM PowerPC平台迁移到了Intel X86平台,并取得了成功,这也是人们对Mac此次换用ARM后,仍能提供良好体验抱有如此信心的一大原因。/ S$ {% `- P. ~. k1 h  D

- E: y) Z8 ]) i& S) u; H( W苹果宣布这一消息的同时,不少人同时也联想到了微软——微软已经在ARM领域摸索多年,推出过Windows RT这样的特制系统,最近更是让Windows 10运行在了ARM上,并且兼容之前的大量软件。然而,Win10 ARM战略似乎未能取得太大反响,Windows RT甚至直接暴死。
- d* R9 ^4 N' I2 [* P3 E9 l+ f$ M5 m4 t6 a- O
0823dd54564e92589e5adf9171472d5ecdbf4eab.jpg * A+ j7 f' h6 k- Y" u) B* N" f% f
微软早已经涉足ARM领域,推出了基于ARM的Windows平板8 r- N" w! C2 i, T2 ^6 @' k
0 A8 k/ [6 c# r$ h/ |; T
Mac迁移平台来势汹汹,人们普遍的预期是顺风顺水,而Win10却屡屡碰壁。Win10在ARM的道路上,到底行差踏错了些什么?今天一起来谈谈这个问题吧。
+ F7 ]6 Y- N4 l  |, A; D; k' K3 p/ W1 o# p% k% V' t; |3 K1 z! U9 T" C" I+ Y$ F
X86转移ARM:到底会有什么坑?: N  s, B0 d( z" N9 T, D3 {2 v
; a' p$ F; M3 [. Y% a! u
众所周知,ARM和X86平台最大的区别是微架构的不同。ARM属于RISC简单指令集,而X86则是CISC复杂指令集,程序要这两个不同的平台运行,需要编译不同的版本。当然,借助中间层,也可以实现两个不同平台之间的兼容。
! D$ S5 w- ]% M# W" u- g/ F9 R1 Y, y% ]
然而,无论是那种方案,将之前兼容X86的操作系统要将生态迁移到ARM,都需要付出代价。
( u. z4 f/ Q7 C% P; d1 i8 Q0 C9 L' P) ?8 t/ F+ r3 w  a% e1 @
如果放弃X86平台上老软件的兼容,只让新软件兼容ARM平台,那么就意味着生态系统需要从头做起,新系统起步会变得非常艰难。在过渡期间,新开发的软件需要同时兼容X86和ARM平台,意味着要么开发者投入更多的精力自行编译不同的版本,要么操作系统的开发套件提供同时编译的功能。无论如何,都需要投入更多的工作。
, s. A& d9 M4 l
1 d6 I* F& H' S' U% L+ K5 Q: ^3 i而如果想要生态无缝衔接、让新的ARM平台起步更顺利,最好可以让X86平台的老软件直接可以运行在新的ARM平台上,那么就需要对中间层做工作了。例如Android就是一个很好的例子,通过HAL来模糊硬件接口,利用善于跨平台的JAVA作为应用上层,无论是运行在X86的Android还是ARM的Android,都可以同时兼容绝大部分的App。
+ ]/ a3 {1 _8 X: E5 t
( E( R2 y2 F# z$ a+ H2 h6 d但这个方法的缺点在于,中间层可能会成为效率的瓶颈。Android的中间层就很厚,效率感人诟病已久。' N6 @  C6 K7 O, w* `

3 j, ]) m! y6 [) k% q7 s/ d0 M  O f7246b600c338744d8bb3f61a7ca25ffd62aa0f9.jpg & a( W; S# }# ^  e* J% i
X86指令转制为ARM实现兼容,性能下滑不可避免2 W" _# L8 ~9 U1 [9 w; E3 s

" E0 m* `2 j% [5 J4 X1 `8 s另外,由于ARM多用于移动平台,因此如果桌面操作系统想要迁移到ARM,往往也会打起通过移动平台已有生态造血的注意,也就是让迁移到ARM的桌面操作系统,兼容移动平台的App。当然,这里面也有大坑,例如UI的适配就是个麻烦——手机平板的屏幕和桌面PC显示器不同,要有体验好的视觉效果,UI需要灵活变形,这对UI元素的自动排列提出了极高要求,是也是个需要投入大量精力研究的课题。
7 m) {# Q2 a) R; n* A
' Y% Y% m: j/ n5 {8 v苹果迁移ARM到底做了什么?3 W% R. @! K0 T

, d+ X7 a. \- u1 y: ~& x上面提到了X86迁移ARM可能会碰到的问题,大家却对苹果的迁移之举抱有信心。要理解这一点,我们首先来看看苹果为ARM平台的迁移工作都准备了什么吧。
) L7 D- u9 O2 p- Q. J0 ^/ Q+ R. O4 `2 V
提前量十足的全新开发生态$ s( t( L: l/ i

% G; H) E( _  n% ?( f# X2 D苹果打算将Mac迁移到ARM平台,其实很早就能看出端倪了。为了平滑过渡到ARM平台,苹果早有准备,对开发套件作了大量工作,以统合的思路,开始改造其应用生态。/ B0 {% v$ [# n5 T3 e" A9 k

6 Q2 G# W% w7 X苹果这两年做的很多事,就是为了解决ARM迁移到X86平台上的问题。苹果在2019年的WWDC大会上,推出了SwiftUI和Mac Catalyst。这两个套件的作用,在于架起了ARM和X86间、以及移动平台和桌面平台间跨平台开发的桥梁——苹果本身就有着成熟的ARM移动生态,这无疑能成为桌面平台迁移到ARM的强劲助力。
4 C0 s4 U8 D3 ?3 S, d; N) G0 B) \1 |) u
先来说说Mac Catalyst,这是一个跨ARM和X86平台的开发套件。通过Mac Catalyst,开发者在构建一个iPad App的同时,这个App也能成为macOS的原生应用。从某个角度来说,Mac Catalyst将会是iPadOS和macOS新的开发基准,iPadOS将会和macOS的应用生态深度融合。此后,即使macOS迁移到了ARM平台,基于Mac Catalyst开发的软件应用,也可以无缝兼容。) w7 Z  @: T* D/ T3 Q; y3 q
9 s, F- D$ F/ f8 c5 r2 X- }
38dbb6fd5266d0167dc929247cee280134fa3532.jpg * a. O7 J8 E0 A9 ^( D5 S

7 w& ?% _! _, R9 Q& X: w* x/ c0 u: z- H! Y; ]  w
Mac Catalyst可以让一个软件应用同时兼容iPadOS和macOS2 \5 c8 ~3 \9 \3 Y7 W, c
5 W, }7 [- ~; f9 Q0 }
而SwiftUI,其作用则在于为移动平台和桌面平台提供了跨平台的UI适配方案。通过SwiftUI,开发者能用较为简单的代码,一次开发出适配多个平台的软件UI。例如开发者想要为macOS和iOS、iPadOS做软件应用,那么通过SwiftUI就可以轻松做出能适配这几个平台应用的UI。可以说,SwiftUI大大降低了为不同苹果平台开发软件应用的门槛,意义重大。
8 [$ `2 N9 |9 m7 P; J  l5 h; }: t  I- t8 q8 Z
e7cd7b899e510fb391b518f82bf63493d0430c79.png & K# B" U; b6 q2 h  ~7 T9 f
SwiftUI可以让同一个应用的UI同时适配多个苹果平台4 o: D$ d9 S" X" s

% ^2 ~+ O8 I) ^3 z) K: L! v  J无论是Mac Catalyst还是SwiftUI,目前都已经投入了实战当中,通过新版的Xcode以及高质量的开发文档,每个苹果开发者都可以制作出基于新技术的高质量软件应用。
% {( e  O) {9 g% Q6 g3 R7 O
3 z: L+ r2 X0 d$ r0 J) R, Y很大程度上,苹果已经解决了新软件同时兼容X86/ARM、移动/桌面平台的开发问题。请注意,这是在ARM版macOS发布之前做的工作,可谓是兵马未动粮草先行。目前,苹果尚未发布ARM版Mac电脑,但为其配套的开发组件,却已相当完备了。待到macOS真正迁移到ARM平台时,基于Mac Catalyst以及SwiftUI开发的软件应用早已经花繁叶茂,macOS迁移ARM其软件生态不至于会“休克”。& }" M" h1 n- ?# D0 h# D
6 b# ^) Q5 }5 v. m! b& b  g
步步为营的生态迁移/ R% t4 t0 [- {# z

( z  \$ L, b( {; ^Mac Catalyst解决了代码在X86和ARM平台的编译问题,而SwiftUI则解决了移动平台和桌面平台的UI适配问题,但这是针对于新开发的软件应用的。对于macOS旧有的软件,苹果也祭出了招数。
0 E. T7 z0 f' D6 j% x5 q2 C- C: h6 j/ q! Z
在今年的WWDC大会,苹果宣布,将会为macOS平滑过渡到ARM平台,推出Rosetta 2中间转换层。如果你是老果粉,对于Rosetta这个词一定很熟悉——苹果Mac电脑当年从IBM PowerPC架构,迁移到Intel X86平台,所使用的转换层正是Rosetta。0 e) a4 I/ ?3 Z7 e( c

0 P6 E2 V+ [+ Z4 w 2934349b033b5bb5812e333ada16293fb400bc41.jpg
- S. L: _: Y; t( |% {. QMac迁移平台这事,苹果已经干过一次了,当年Mac从PPC迁移到X86的兼容层被称为“Rosetta”, Q+ j% ]. z2 N! T& r. s" O
- \% B5 s' R0 i$ u% a' l/ c! l  `
Rosetta 2的作用在于,它通过指令翻译,可以让ARM平台的macOS,直接运行绝大部分的X86软件。而且Rosetta 2的性能还相当不错,它并不是在软件运行的时候,才翻译指令的,而是在软件安装时就做好了转换。当然,这也并非说Rosetta 2可以实现性能完全无损,它对AVX指令兼容并不好,如果X86软件依赖AVX乃至AVX2,那么在ARM平台上由于没有对应的高性能指令,运行效率会有明显下滑。并不是所有的软件都会用到AVX指令集,总体来说,Rosetta 2的性能还是可以接受的。
" }8 F8 r8 w, f; B4 F2 }, r# `) X/ U
4 X. w; ~9 Z% I0 V, k* Q c9fcc3cec3fdfc0307e2992138fa7b92a6c226d9.jpg
* G% m% q) V0 I' s- z这次Mac从X86迁移到ARM,Rosetta 2对旧有X86软件的兼容也起着至关重要的作用
" {8 U: a# V' ?8 _2 ~. O. K- n( C- K' A3 s
和当年的Rosetta一样,Rosetta 2只是一个临时举措,它的意义在于为迁移到ARM平台提供平滑的过渡期。我们可以参考一下Rosetta的进度:2005年苹果在WWDC宣布换用X86,接着苹果在2006年推出基于X86平台的Mac电脑并部署了Rosetta,到2009年苹果Mac OS X 10.6不再支持PowerPC的Mac,2011年Mac OS X 11.7不再支持Rosetta,放弃了对PowerPC时代Mac软件的支持。从此以后,苹果Mac生态彻底转移到了X86平台,整个过程并未有太大的阵痛。
6 x9 N7 ^! j. b8 G: O: S. r: Y6 F; B6 t3 M1 T" b$ J
从Rosetta的历程来看,macOS转移到ARM,旧有的X86软件也会经由数年的过渡兼容期。在未来几年,我们或许也会看到新的macOS 11不再支持旧有X86 Mac电脑、在未来某个版本彻底不支持Rosetta 2这样的节点。到最后,macOS 11上只剩下专为ARM开发的新软件,而届时ARM的软件应用也早已经琳琅满目。
3 i, ^* j/ j- V, M6 o% ?
2 o. R2 ~+ u& z苹果相当清楚,新旧平台的更迭,绝非一蹴而几的事情。苹果一方面通过SwiftUI和Mac Catalyst慢慢为ARM平台的Mac营造新生态,一方面通过Rosetta 2保持原有生态不流失,而且两方面的完成度都非常高,可谓两手都要抓、两手都要硬的典型。加上此前从PowerPC到X86换平台的成功经历,人们对Mac换用ARM架构抱有极大期待,也就理所当然了。
5 v& R: Z4 C- [3 ^  O6 L' F
. L' w, r- S' n; TWin10 ARM失败在哪里?
' B$ ^" N4 l, [! w
2 [: r6 _1 @  \0 o0 E0 `在很多人的认知中,微软Windows系统向ARM进军的步伐,要比苹果macOS来得更早。的确,微软在2012年就已经发布了用于ARM平台的Windows RT系统,并将其装载于第一代Surface平板电脑上。而最近,微软更是将Windows 10桌面系统整个迁移到ARM上,目前市面上已经出现了基于骁龙处理器的Windows 10平板,而微软自身也推出了基于骁龙ARM平台的Surface Pro X。
" d0 n8 J+ |% t$ Z6 R9 { b21c8701a18b87d6357184a5eacdd43e1e30fda1.png
: |  m6 G! A1 i- K  e
: v4 _# T# v6 w8 t' K8 Z运行在ARM平台上的Windows RT系统
( D7 G  {- y$ m( B2 n; h. n- t& x5 M/ X5 I; E  K0 L" k
从推向市场的进度来看,微软无疑远远领先于苹果——macOS的ARM产品尚未见诸市面,而微软的ARM Windows产品已经开卖多时。然而,这些产品并没有在市场上掀起太大波澜,Window RT已经宣告终结,而Surface Pro X等Windows 10 ARM产品,则落下了性能低下的坏口碑,并没有取得什么好的市场表现。
6 b" [! t- V7 ]/ C
. e& C8 M, H  T. x/ I( i为什么会这样子呢?我们来回看微软Windows在ARM平台上的征程。1 u4 B+ ^; i4 v' C3 i8 T& y2 C
$ P# D2 G' E( Q9 O" P9 R
2012年,为了和iPad竞争,微软推出了Surface平板产品线。然而,用于ARM平台Surface平板的Windows RT系统,却拥有着诸多限制。  \) S/ B: P1 b& \* V( _" B2 I6 Q
. O- ?8 ^; J+ j" F* W1 ?
从外表来看,Windows RT和正儿八经的Windows 8桌面操作系统无异。然而,Windows RT却不能兼容一切传统基于X86开发的Windows程序。Windows RT只能从应用商店中获取应用,这让Windows RT一度几乎无第三方软件可用。实际上,这是由于微软通过数字签名限制了第三方应用,破除了微软的限制后,传统的X86软件通过重新编译为ARM应用,是可以运行在Windows RT上的。
+ O, M- W( y( i. X! H 42a98226cffc1e17b8b55c51a4550a05728de991.jpg ! w+ ^' x: D) e$ A  n  |

2 Q9 e6 f9 h! N3 t% \Windows RT不兼容传统的桌面软件,必须从Windows商店下载
  w+ F; O; |7 ^0 {, d8 ?4 a3 @: S* g* j0 {% o: W
为何微软要这么做?在微软的构思中,Windows RT和Windows Phone共用应用商店,双方生态打通,开发者为Windows Phone开发App的同时,也可以顾及Windows RT。然而,这只不过是一个美好的幻想,Windows RT的这些缺陷,将它送进了坟墓。
, y1 g+ ^0 D! ~- v& W5 o/ T. {: I) Q  S- |
 ·手机和平板的交互基础差异过大。Windows Phone和Windows RT都力推Metro(Modern)设计,然而小屏和大屏之间终究有难以逾越的鸿沟。加之Windows RT仍残留着大量桌面UI,借助Windows Phone上的App给Windows RT生态输血,显得不合时宜。
( @* o" ^8 g- t( j* C+ o5 @% d% k$ M0 v: L2 [
 ·Windows Phone并未建立起强有力的生态。微软多次变更Windows Phone的开发路线,开发工具也一改再改。Windows Phone的开发环境非常不稳定,系统自身从开始的CE内核变为NT内核,而应用则从一开始的XAP到APPX,到了Win10M又要求开发者开发UWP应用……开发者连Windows Phone剧变的开发环境都无法跟上,最后冷眼旁观WP/Win10M的垂死,更何况边缘产品Windows RT?此情此景下,通过WP给Windows RT输血是不切实际的。
& b5 ?$ E  O# |/ v4 K4 m1 \ 1c950a7b02087bf4335862b61c16ab2a10dfcf01.png $ x& l4 h( \& K3 A2 L
: L. y8 |$ c! a2 |% G
Windows应用商店不稳定,还时不时爆出无法安装应用的大问题6 @8 A2 p& S7 i9 k- j% h: s2 L
& w& @. U- d6 i6 M2 ~" ^7 u# o8 n
 ·ARM平台性能太弱。Surface使用的是Tegra3芯片,该芯片的性能甚至不如同时代的Atom,系统自带的Office运行起来卡顿无比。指望当时的ARM芯片支撑起桌面级的体验?根本无法胜任。
( `0 S& G$ L7 `* v0 r) d2 p0 X1 X2 T
9 R8 z5 T1 b( R# j& r ·其他因素。开发者们发现,通过破解Windows RT系统数字签名限制,可以将X86平台上的Win32程序重新编译后,安装到Windows RT上,并且顺利运行。然而微软封堵相关漏洞,进一步削弱了Windows RT的扩展性。: i% ?9 x8 U4 l1 G. O' k' E% [

6 O8 ^9 t( L$ ?5 L简单来说,尽管微软让Windows RT运行在了ARM平台上,但没有为其配备一个理想的开发环境,也没有让其能直接兼容传统的X86软件应用,与此同时Windows RT还有着UI分裂、平台性能羸弱等问题,失败也就在情理之中。- F) l$ q1 @# O7 b5 D6 s( P

# {2 B/ u- B# A9 ~  [到了最近的Windows 10 ARM版,许多问题似乎已经得到解决。ARM芯片的性能大幅提升,甚至逼近了桌面低压X86处理器;而可以跨平台支持ARM和X86的UWP应用开发环境,相对以前来说也较为稳定;同时,微软还让Windows 10 ARM可以直接运行X86软件。然而,Windows 10 ARM却依然有着如下缺陷。# ^$ f/ v3 g4 P" I, M

( ?* ?' m* Q( k' d/ J% t ·兼容不佳。微软为Windows 10 ARM做的中间兼容层,当前并不能完美兼容所有的X86软件,只有32位的软件能够实现兼容。事实上,Windows 10 ARM使用的Thumb2指令集是和Windows RT一脉相承的,不过这次面向Win32程序开放了兼容,但这套指令集并不兼容X86-64(Windows RT时代ARM处理器仍未迈入64位),日后需要大改才能兼容64位软件。
) B$ x; {  s5 A) y0 X  j2 z( z( [. g5 G8 E! v1 g$ V" h
9f2f070828381f3010d88f6b47c4b00e6c06f078.png
4 r9 [4 ]5 G# kWindows 10 ARM运行Win32软件效果一般
% A, g4 A$ }# [" K5 y3 y
. ?% Q3 b2 w- u& g7 B* ~ ·性能低下。在Windows 10 ARM上运行的X86软件,是边转码边运行的,并不像苹果Rosetta 2那样在安装时作好转码工作,运行时无需再次转码。这就造成了Windows 10 ARM运行X86软件性能不尽如人意。
$ ^4 O0 w& n" }( X. T/ K8 ^" E! T, [' B  h- H/ {2 Z; T
 ·UWP前景成疑。UWP应用目前仍存在诸多限制,能实现的功能有限,稳定性更差,开发环境也不如传统的WPF成熟。要知道,用Mac Catalyst开发应用,是起码有成熟的iPad生态兜底的,兼容macOS是一个加分项;用UWP开发应用能得到什么?只会面对传统Win 32软件的强烈竞争,开发者在UWP和Win32软件开发之间,会作何选择不言而喻。
" M5 E/ P: S! n5 a! Z" P4 d' G( D3 m# C. a' X) H
43a7d933c895d1435797d5ec82357e0458af076c.jpg
) A9 S  V6 P" k; M2 a4 f! ^UWP的大饼真香,但喂不饱开发者
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

271

积分

4

听众

120

音贝

音频应用

Rank: 1

积分
271
 楼主| 发表于 2020-7-20 |

5 t; ]  y* Z/ P ·微软没有对ARM硬件的掌控力。Windows 10 ARM运行于骁龙平台,微软并没有像苹果那样,自行设计ARM芯片,软硬件结合度自然有所欠缺。苹果可以确保未来macOS跑在怎样性能水准的ARM芯片上,而微软只能仰仗高通。在ARM性能对X86仍处于追赶态势的现状下,这是一个藏有暗雷的要素。
3 n3 V) k6 t7 G. @" ^6 e  r3 A. ^* B. [5 s; H
c8177f3e6709c93d254240406df804dad0005425.jpg
8 r9 t( E2 r1 ?- M% ^: `苹果可以祭出自己的芯片,微软只能和高通合作
# v1 t) s* p3 w, M$ @4 a+ ?1 X4 ~6 m& o  F
 ·Windows有着更沉重的历史遗留兼容问题。macOS换用ARM,苹果仍只需专心打造新的Mac电脑;而Windows换用ARM,微软必须顾及众多的硬件厂商,以及诸多的老软件,转型速度注定不如苹果。
1 R3 k. f5 v2 F1 H! V% C2 x# y: k  u6 j
总结- T- [0 f4 @: l5 O3 j

% x6 n0 D9 i. k到了这里,我们可以总结一下,为何苹果macOS换用ARM能万众瞩目,而微软Windows转移ARM却不尽如人意了。
, ]' ?8 e; ~& c( j3 k" w" [+ B6 u+ F6 `
·苹果提供了能编译同时兼容X86、ARM平台的应用的高质量开发方案(SwiftUI+Mac Catalyst),微软在这方面举棋不定;, I1 Q4 ^( X# z. I
c2fdfc039245d688307f86f649078118d31b24ab.jpg - l* ^5 K5 K. I1 v" r7 O+ B, l3 L
% u; L. |' j& j" e. `" l
现在还没有macOS的ARM产品面市,但开发机却是已经有了,苹果的准备力度可见一斑8 _0 O: Y& F8 ~7 J1 i" ^, Y3 M: N1 R* @
, L  Z7 R2 K8 s+ X6 f
·苹果提供了X86软件在ARM平台的兼容方案(Rosetta 2),效率良好。而Windows RT不兼容X86软件,Windows 10 ARM则运行X86软件效率较差,且不支持64位;  [/ Q/ E  H5 x

* C- M" ?4 i& _2 R3 P, s·苹果能够自行设计高性能的ARM芯片,微软没有这样的能力,ARM芯片性能尚不足以支撑桌面环境时就上马Windows RT,现在Windows 10 ARM平板的性能也无法和同价位的其他X86平板相提并论;( L$ o( X. ^0 u4 L/ x7 R* `

! f; e. q1 L, }) h" I·苹果提前布局好ARM生态的转移工作,并设置了足够的过渡期,相应产品由始至终保持了较高完成度,而微软未准备好配套就匆匆将不成熟的产品推向市场;
' B4 V: @2 O( P3 h& a: T
3 g* o( s, @2 P' z( j·苹果对生态掌控力度更大,能促使开发者更新迭代适配新平台,而微软背负着沉重的兼容性包袱。
& X+ w* ~' j+ O# A4 e( n/ k
, w( G, V  p7 }1 m" r* X在当前,X86仍是桌面平台的绝对主流。但ARM平台已经在能效上彰显优势,如果微软铁了心要兼顾ARM平台,就必须解决当下的种种问题,才能带来良好的体验,期待微软日后能做得更好吧。
欢迎厂家入驻,推文!免费!微信:yinpinyingyong
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

音频应用搜索

小黑屋|手机版|音频应用官网微博|音频招标|音频应用 (鄂ICP备16002437号)

Powered by Audio app

快速回复 返回顶部 返回列表