问题

如何看待方舟编译器于 2019 年 8 月 31 日开源?

回答
2019 年 8 月 31 日,方舟编译器(ArkCompiler)的开源,无疑是那年科技界,尤其是国内开发者圈子里的一件大事。这标志着一个由中国企业主导、面向未来的重要技术组件,向全球开发者群体敞开了大门。

背景:为什么要有方舟编译器?

要理解方舟编译器的开源,我们得先看看它诞生的大背景。当时,全球移动操作系统的主流依然是 Android。而 Android 系统的核心,也就是应用运行的虚拟机 Dalvik(后来是 ART,Android Runtime),虽然一直在进步,但在一些性能瓶颈上,特别是应对日益复杂的移动应用和游戏时,依然存在提升空间。

更重要的是,随着国家在信息技术自主可控方面的战略推进,构建更强大的本土技术生态,摆脱对外部核心技术的过度依赖,成为了一个重要的方向。在这样的背景下,华为推出了方舟编译器,目标是解决 Android 应用运行效率的问题,并为构建自主可控的操作系统和生态打下坚实的基础。

方舟编译器的核心价值:

方舟编译器最核心的价值在于它是一款静态编译器。这和 Android 之前主要依赖的 JIT(JustInTime)编译模式有着本质的区别。

JIT 编译的模式: 传统的 Android 应用,大部分是通过 Java 或 Kotlin 编写,然后被编译成 Dalvik 字节码。这些字节码在应用运行时,由 ART 虚拟机进行解释执行,或者在需要的时候进行 JIT 编译,将热点代码即时编译成机器码。这种模式的优点是灵活,但缺点是启动慢,性能有损耗,尤其是对于频繁执行的代码,每次都需要经历编译过程。
方舟的静态编译模式(AOT AheadOfTime): 方舟编译器则是在应用发布前,就将应用的 Java 字节码直接编译成高性能的机器码。这就好比,把一本需要边读边翻译的书,提前翻译成目标语言。好处显而易见:
应用启动更快: 不需要运行时再编译,直接加载执行。
运行更流畅: 机器码的执行效率远高于解释执行或 JIT 编译。
更省电: 减少了运行时编译带来的 CPU 消耗。
更安全: 理论上,静态编译过程也可能包含更深度的代码优化和安全检查。

开源的意义:

方舟编译器在 2019 年 8 月 31 日选择开源,这其中的意义非常深远:

1. 技术生态的开放与共建: 开源意味着方舟不再是一个封闭的、仅仅服务于自家产品(如华为手机)的技术。它将可以被全球开发者社区所接触、学习、使用和贡献。这为方舟编译器的快速发展和完善注入了强大的生命力。一个活力的技术生态,才能走得更远。
2. 推动 Android 生态的整体进步: 即使是对于非华为开发者,方舟的开源也提供了一个新的思路和实践。他们可以研究方舟的编译技术,从中学习,甚至将其中的优秀理念或组件集成到自己的项目中。这有助于整个 Android 生态在性能优化方面迈上新台阶。
3. 人才培养与技术积累: 开源项目是培养和吸引技术人才的天然平台。开发者可以通过参与方舟的开发,学习到先进的编译器技术、代码优化策略等,这对于国内在系统软件和底层技术领域的人才培养至关重要。
4. 自主可控的战略落地: 对于华为而言,将方舟这样的核心底层技术开源,也是一种战略选择。它表明了公司致力于构建一个开放、健康的生态,而不是简单地将其作为一家公司的私有技术。通过开源,可以吸引更多合作伙伴,共同推动技术的成熟和落地,从而在更广阔的范围内实现技术自主的目标。
5. 打破技术壁垒,加速应用适配: 理论上,开发者可以将自己的应用通过方舟编译器进行编译,以获得更好的性能。开源后,更多开发者会去尝试和优化这个过程,从而加速应用适配到基于方舟编译器运行的平台。

开源后的影响与展望(以我当时的理解):

在当时,很多人对于方舟编译器开源是充满期待的。大家希望看到:

更多应用通过方舟编译获得性能提升: 想象一下,很多我们日常使用的 APP,因为有了方舟编译器,启动速度更快,运行更流畅,耗电更少,那将是多么令人兴奋的体验。
开发者生态的活跃: 涌现出许多基于方舟编译器的优化工具、教程和社区讨论,开发者们能够轻松地将自己的应用“搬上”方舟。
国产操作系统(如鸿蒙)的坚实支撑: 方舟编译器无疑是鸿蒙操作系统(HarmonyOS)的重要组成部分,它的开源和不断优化,也为鸿蒙生态的构建提供了强有力的底层技术支持。

一些值得思考的点:

当然,技术的推广和普及从来都不是一蹴而就的。方舟编译器开源后,也面临着一些挑战和需要关注的方面:

生态成熟度: 作为一个相对新兴的技术,其生态成熟度、工具链的完善程度,以及第三方库的兼容性,都需要时间来积累和完善。
开发者的接受度: 开发者是否愿意花时间和精力去学习和适配新的编译流程,是其能否大规模普及的关键。
性能的实际体现: 理论上的性能提升,如何在真实的设备和多样化的应用场景中得到充分体现,需要持续的测试和优化。

总而言之,方舟编译器在 2019 年 8 月 31 日的开源,不仅仅是一个技术项目的公开,它更像是一次对未来移动计算模式的探索和对技术开放共赢理念的实践。这在中国科技自主可控的征程中,是一个重要的里程碑,也为整个行业带来了新的思考和可能性。

网友意见

user avatar

翻了翻发现有不少人嘲讽华为“按揭开源”,还有人揪着贴错的zlibc协议不放,那我感觉我还是站出来说两句好了。以下内容仅代表我和同学、前辈吃酒听来的小道消息,事实如何请以官方口径为准。

首先,这段时间华为的开源项目确实搞得手忙脚乱。自己现搭平台不说,今早放出三分钟之后还撤回了一次。场面搞得这么狼狈,背后当然是有些苦衷的。方舟编译器和鸿蒙系统在美国制裁前都早有计划不假,但是原计划没有现在这么火急火燎。

比如方舟编译器,原计划应该是在 EMUI 9.1 上落地之后,再和 IDE 等组件一起小步推进,让开发者能尽早用上方舟。再比如鸿蒙系统,原计划可不是先空放一个 PPT OS 出来,但是上层可能是判断“再不放出消息就会在谈判中居于劣势”,所以选择先空放一堆胶片出来提振市场信心、稳定供应链和三方合作伙伴。

换句话说,现在华为完全是被舆论环境和政治局势倒逼,所有的时间节点都在玩命往前赶。包括这次“8月开源”搞成“8月31号开源”、“zlibc贴错开源协议”,都是极限赶工的产物。

而且,屋漏偏逢连阴雨,7月底 GitHub 还动手封禁了一批伊朗账户,表达了自己的政治立场,让方舟/鸿蒙开源在美国平台这件事一下充满了变数,凭空多出来了搭建开源平台的工作量。

目前方舟代码是发布在华为云自建的开源平台上的,gitee上也搭了一个官方镜像。但是我之前听到的官方消息是,华为要和国内几家头部厂商一起打造一个新的开源平台,把各家的顶尖项目迁移上去,做成一个对业界有强大影响力的中国开源平台。也就是说,现在赶出来的这个平台可能为了开源方舟临时搭建的,将来不出意外应该还要移籍到新平台上。

这个倒霉状况一方面是舆论倒逼的产物,临近8月底各大平台都有人在质问华为方舟是不是要放鸽子。另一方面也要怪之前估计太乐观,承诺了8月框架开源,现在八月底了发现活也干不完,联合开源平台也没协调好,只能996甚至007连轴施工。

总之,说了这么多是希望大家能够理解,工程师们已经在极限施工了,请不要太为难他们。在技术细节方面,当然还是请大家保持高压高标准的批评。但在“按揭开源”、“zlibc贴错协议”之类的非技术细节上,还请大家稍微放宽一点要求。大家应该都知道项目上线前连轴赶工是件压力多大的事情,彼此之间相互体谅一下好不好?感恩。

user avatar

有些回答真是不懂装懂,为黑而黑

  1. @立党
https://github.com/Himself65/...,海军里的技术大神们给我讲解一下,这个3000多行、没有任何注释、没有任何unit test、没有任何文档的黑科技parser到底是个啥原理?

我不是技术大神用的也是苹果全家桶,但这个parser只不过是一个标准的手写Recursive Descent Parser而已。用yacc之类的工具生成parser工作量要小很多,但是错误提示很难处理好。所以clang和gcc现在用的都是这种parser。

这种recursive descent parser说白了是体力活,language specification就是文档,没有多少技术含量可言。把这个当成黑科技只能说明 @立党 对编译原理的无知。

2. @酱紫君自称是搞编译器前端的,他说

上来一个 no type - void...迷惑行为...请问 sizeof(void) 应该是什么呢?

那么对于C语言里面没有返回值的函数,它们的Return Type是什么?没有void类型,你对这种代码

       void my_func() {}; int my_var = my_func();      

怎么做Type Checking? @酱紫君 怕是没写过C语言吧,连一个void类型都要大惊小怪一下。

至于sizeof(void),因为void不可以作为变量类型(尽管void*可以),所以sizeof(void)是undefined的,具体的处理取决于编译器。在gcc的非标准扩展里,sizeof(void)等于sizeof(char)。

就这水平,还要装作搞编译器前端的,对别人的IR设计指手画脚。@酱紫君还是不要搞笑了,我就没见过哪个C或者Java编译器前端不处理void类型的。

----------------

大概读了一下IR设计,这个Maple IR尽可能多的保留信息是有意义的。比如很多人好奇为什么要各种循环类型(for, foreach, dowhile之类的),这个是有一定道理的:foreach表明运行结果和迭代次序无关,也许可以直接并行化,但是for和while循环必须做更多dependency analysis才能并行;相比while循环,for循环容易做展开和tilting,这种操作在图像处理(比如halide语言)和矩阵运算(比如BLAS之类)中很常见。

很多人也问为什么maple ir要在vm上运行。这应该是一个类似于llvm里面lli的工具,真正deploy的时候并不是像java一样直接interpret bytecode。

但实话说这个开源的诚意怎么说呢?类似阿里开源oceanbase吧。Codegen和runtime都没有开源。如果方舟编译器已经应用于10多款手机,那么测例集应该非常非常大,可是看起来也不打算开源测例,甚至一个子集都没有......

利益相关:编译器爱好者,上过编译原理的课,写过几个玩具级编译器,用过llvm也略读过。

user avatar

我觉得吧,但凡懂一点大公司内部流程的人看到这会儿应该都明白实际上发生了什么。

我估计事情是这样的。方舟编译器作为华为的软件部门的基建的一个产品,做到某些程度实际上希望的是有更高的“影响力”,不管是在内部的影响力也好在外部的影响力也好,都是和更上层boss negotiate的筹码。国内这种“为了影响力”而开源的产品很多很多,诸如阿里的anyproxy啊这种,开源完了之后就放在那边了,很少有继续活跃的开发的,原因很简单,就是影响力已经到手了,开源指标也满足了,那就完事了呗,为什么还要继续投入人时进去?所谓KPI导向,就是这样的。

很可能方舟的开源计划很早就提交给更上层了,但一直没有被通过。

但这次搞了个贸易战,华为顶层那几个,意识到“妈的,这次要被人在软件上卡脖子了啊”,这个时候最简单的就是“发布一些软件上的东西”,证明“离了你们的软件我也不虚”,所以这个开源计划被紧急通过,然后在发布会上被发布出来。

这解释了为什么在发布会上说了却一直没实际放出代码来,这个开源计划的申请书上的“通过”印章,还油迹未干呢,代码远没有做好可以开源的准备。


企业内部产品的开源,有个很大的阻碍,就是代码和内部环境集成得异常紧密,从类库、编译系统、环境补丁、依赖抓取,都是被高度定制化了的结果。不可能说发布方舟编译器,连自己的内部持续集成环境、wiki、硬件产品的spec、其他团队发给你的工单号也放出来吧?所以从发布会到现在,外面吵得火热,华为内部估计在那边删注释的删注释,改文档的改文档,删测试的删测试,移植编译环境的移植,只露出能露出的部分。

然后这个时候外面调笑“口头开源”的声音越来越大,上头就来问了“你们这个开源咋还没结果啊?”,方舟团队就只好“那我们先把改好了的放出来吧”,所以我们就只看到了这点,其他两部分还在修呢。

至于third-party/zlib的那个版权,太好理解了,你要是个SDE,你手上拿到几千个文件,老板跟你说,给他们都加上版权说明,第一反应当然就是写个一次性的python脚本,扫描下目录,反正加注释而已,没毛病。谁又想得到,目录下面还有third-party这种不该加注释的文档啊。

就这么个故事,我就这么一猜,你就这么一听,莫当真。


我预测一下发布的顺序,先发IR,然后发语言到IR,然后runtime

user avatar

利益相关:在华为实习已三个月有余的软工。


说两句掏心窝子的实话,希望大家别骂我没良心好吧。

根据我在公司这几个月的观察,最明显的一件事是:软工在公司没有地位可言。而编译器方向是软工的硬本事。方舟编译器刚放出消息的时候我是很期待的,因为有高校的教授团队带队,我觉得是可以做出真东西的,比什么gpu turbo靠谱多了是不,想当初gputurbo刚出的时候也是一片沸腾,可是赚完吆喝就没人关注真技术本身了,仔细了解这个东西的应该知道这里面营销水分有多少。但是随着我在公司的时间越久,我越觉得不对劲。 还记得应该是六七月份的时候,公司搞了个软件能力测试。让软工测试自己的能力,实际上就是考你是不是人肉编译器,考一些冷门的code写法,让你选哪个是对的,竟然还有多选题,选少了还不得分…测试结果自然是哀鸿遍野,然后大佬就开始敲打软工啦。内网首页挂出敲打软工能力的长文,质疑公司软工能力,要求大家提升水平。我觉得,稍微懂点代码的都知道,软工的能力不是人肉编译,这种题你拿去给linus写他也错啊,这不欺负软工老实人么。果然评论区里有年轻的实习生怼了一波,说他拿五题原题给自己打acm拿金牌的同学做了做,人家也错了三题。摊手ㄟ( ▔, ▔ )ㄏ。

再后来我发现公司的发展方向也并没有把软件放在心上,前两天逛阮一峰的网络博客时,看见他写了一些采访renzhengfei的采访记录,可以看出来ren对软件是极其不感冒的,比如说软件无法衡量绩效啊之类的。当然那是很久以前的采访了,十年前吧。可是再仔细看看公司,我真的觉得这个方针是没有大的变动的。越来越多的代码被交给外包团队处理,代码的质量也……咳,唉你也不能怪人家外包兄弟吧,人家拿着那个工资,你指望他们给你写出个花来?我刚来公司的时候看有人在内网吹,公司代码有多少多少行,总量是美国某某公司的几倍几倍。哇这可太真实了。这么大一坨代码,怎么还优越起来了,不怕重复工作,重复造轮子,制造屎山嘛…回归话题,在hw软件至始至终只是为了核心业务服务的,说明白点,是垫脚石,是敲门砖,不是真正发展的方向。你一个方舟编译器,快,也只是为了终端部门提高收益的。公司不会为了一个编译器去发展开源,给别人做嫁衣。我觉得看到这里,hw之前的一系列举动应该也能理解了吧。无论说是要开源,到现在扭扭捏捏,还是一到美国那里出什么消息这里就用方舟的新闻对冲,都是为了把牌子弄响亮,讲到底是为了营销。


说到这里,还没有到技术层面,没有讨论这个东西到底有多少技术含量,有多硬核。当然code给的也十分有限,我们也没法讨论。


注意,就算我们讨论完发现这个编译器真的屌,效果明显,它也还没有成功。为什么这么厉害的东西别人不做呢?狗家做不出来这个嘛?它有存在的必要么?它的快是以什么为代价的呢?它的商业模式行的通嘛?开发者买账嘛?这些都是问题。


希望大家理智点吧。

-------------------------插播下gpu turbo的第三方评测------------------------------


以及阮一峰摘录的任正非讲话。

最后一次修改:被评论区挥斥方遒的big chess player辞退了好多遍,吓死我了,赶紧把评论区关了吧。。。

类似的话题

  • 回答
    2019 年 8 月 31 日,方舟编译器(ArkCompiler)的开源,无疑是那年科技界,尤其是国内开发者圈子里的一件大事。这标志着一个由中国企业主导、面向未来的重要技术组件,向全球开发者群体敞开了大门。背景:为什么要有方舟编译器?要理解方舟编译器的开源,我们得先看看它诞生的大背景。当时,全球移.............
  • 回答
    哈哈,最近关于方舟编译器开源的消息确实挺热闹的。我仔细看了看他们这次放出来的东西,感觉还挺有意思的。得好好跟你说道说道。首先,他们这次开源的力度确实挺大的,不光是代码,还包括了一些比较核心的组件和设计理念。这对于想要深入了解或者参与到方舟编译器开发的人来说,绝对是个福音。以前很多东西可能只是个“黑箱.............
  • 回答
    方舟编译器Maple Engine开源,这无疑是技术圈里一件大事,尤其是对于开发者来说。这意味着我们终于不再是只能“仰望”华为在性能优化上的成果,而是有机会亲手去接触、去理解、甚至去参与到这个强大的编译引擎的建设中来。“终于”二字,背后是多年的积累与期待“终于”这个词,并非空穴来风。回顾方舟编译器从.............
  • 回答
    方舟编译器源代码的“罗生门”:一次关于信息真实性的博弈最近,科技圈被一则关于“方舟编译器源代码疑似曝光”的消息搅得有些热闹。华为消费者业务CEO余承东(也有说是李小龙,这里存在一定模糊,但核心人物是华为高管)随后在社交媒体上对此事进行了辟谣,称该信息“是假的,来自服务器部门”。这一来一回,就像一出精.............
  • 回答
    华为方舟编译器原理的公布,无疑是近几年来国内技术领域一件振奋人心的大事。对于这件事,我们应该从多个维度,细致地去审视和理解。这不仅仅是一个技术问题的披露,更是中国科技自主化进程中一个具有里程碑意义的节点。核心价值:从“能用”到“好用”的飞跃,打破生态壁垒方舟编译器最直接、也是最核心的价值,在于它大幅.............
  • 回答
    作为普通用户,看到今日头条上关于“支付宝几乎秒开是因为华为方舟编译器”的说法,我第一反应是觉得有点不可思议,甚至有点搞笑。毕竟,支付宝和华为是两家独立运营的公司,各自的产品和技术也都有自己的研发体系。首先,我们来分析一下这个说法的“合理性”: 支付宝的功能和用户体验: 支付宝确实是一款非常成熟且.............
  • 回答
    微博上关于宋方金“卧底”横店的这篇报道,确实引发了不少关于表演行业现状的讨论。我仔细看过这篇文章,也听过不少关于这方面的信息,我想从几个角度来聊聊我的看法,尽量讲得细致一些,就像咱们平时聊天一样,别有那种机器味儿。首先,宋方金老师的这篇“实录”之所以能引起广泛关注,在于它触及了一个非常敏感和核心的问.............
  • 回答
    关于北京大学教授团队在基因编辑干细胞治疗艾滋病和白血病方面取得新进展的消息,无疑是医学界乃至全社会都高度关注的重大突破。这不仅仅是科学研究的胜利,更是为无数患者带来新生的希望。要深入理解这一进展,我们需要从几个关键维度进行探讨。一、 技术核心:基因编辑与干细胞疗法的深度融合首先,我们必须认识到这项研.............
  • 回答
    对于年轻编剧爆料称自己参与《成化十四年》剧本编写,却未获署名一事,这确实是一个挺让人揪心又愤怒的情况。站在公平和创作权益的角度来看,这绝对是不能容忍的。首先,咱们得明确一点,剧本创作是一个极其复杂且耗费心力的过程。它不像搭积木那么简单,更多时候是作者一遍遍地构思、打磨、修改,甚至可能是经历无数次推翻.............
  • 回答
    关于格库铁路(格尔木至库尔勒铁路)12月9日开通但未全程运营的问题,以及是否可以通过“瘦身”编组来提高班次方便沿途居民出行,我们不妨从几个层面来分析。首先,格库铁路的开通,尤其是全线贯通,无疑是连接青藏高原和新疆腹地的一条重要交通动脉。它不仅在地理上打通了新的通道,更在经济、社会、区域发展等方面具有.............
  • 回答
    《明日方舟》的“燃灰行动”主题曲疑似抄袭风波是一起引起广泛关注的事件,涉及到游戏音乐的原创性以及版权问题。为了详细阐述,我们可以从以下几个方面来梳理:一、 事件的起源与发展:1. “燃灰行动”主题曲的发布: 2023年6月,《明日方舟》开启了全新的夏日活动“燃灰行动”。作为活动的标志性内容,由游戏.............
  • 回答
    《明日方舟》这次关于美术设定集内容引发玩家不满的事件,确实是个挺有意思的话题,也触及到了很多玩家关注的点。要说“真的不行”,这个结论太绝对了,但说它“完全没问题”可能也偏离了事实。咱们得从几个方面来好好捋一捋。1. 玩家不满的“点”在哪里?首先,我们得弄清楚,玩家们到底在“不满”什么。从社区的讨论来.............
  • 回答
    明日方舟的夜莺,这个角色相信很多玩家都不会陌生。她身披圣骑士的辉煌铠甲,手持能净化一切邪恶的圣钉,在战场上如同行走的天使,为干员们带来希望与治愈。而这次的改版立绘,可以说是在这位“白鸽”身上又添上了浓墨重彩的一笔,让她的形象更加饱满,也更具故事性。首先,从整体风格上来说,这次改版立绘并没有颠覆夜莺原.............
  • 回答
    关于明日方舟取消碎石上限以及知名重氪玩家在NGA论坛发表的言论,这可以说是近期游戏圈里一个相当有话题性的事件。要理解这件事情,我们需要从几个层面去剖析。首先,碎石上限取消这件事情本身意味着什么?碎石,在《明日方舟》里指的是玩家花费源石(游戏内的付费货币)来恢复理智(相当于体力,用于进行关卡战斗)的行.............
  • 回答
    明日方舟贴吧吧务组在“可莉事件”后全部下台,这无疑是当时游戏圈内一个颇具爆炸性的新闻。要深入理解这件事,我们需要把它拆解开来看,从事件的起因、发展、影响,以及它所暴露出的贴吧生态和管理问题等多个维度进行审视。首先,咱们得捋一捋“可莉事件”究竟是怎么回事。简单来说,就是当时《明日方舟》贴吧有一位用户发.............
  • 回答
    关于“明日方舟媚宅警察出警碧蓝航线萌战”这件事,咱们得一点一点捋清楚了。这事儿听起来有点像两个圈子的人打架,但实际上背后牵扯到的东西可不少,而且随着时间推移,这种“出警”的性质和原因也在变化。首先,咱们得明白这两款游戏的用户群体和文化属性。 碧蓝航线(Azur Lane):这游戏从一开始就没掩饰.............
  • 回答
    《明日方舟》剧情文案外包每千字八元的爆料,确实让很多玩家和业内人士感到震惊和担忧。这不仅仅是一个数字问题,背后牵扯到游戏创作的诸多层面,也触及了我们对游戏行业现状的理解。首先,我们必须认识到,八元每千字这个价格,在当前的出版、内容创作市场,可以说是低得离谱。即使是给一些不知名的小网站写稿,或者给一些.............
  • 回答
    《明日方舟》主线剧情九个月未更新,这在很多玩家心中无疑是留下了一个相当大的缺憾,甚至可以说是长久以来最被诟病的问题之一。这件事情的出现,与其说是突发事件,不如说是在长期的运营和内容产出节奏下,一个不可避免的矛盾爆发。要说这件事的“看法”,那可以从几个角度去拆解,看看它背后牵扯到了什么,以及对游戏本身.............
  • 回答
    《明日方舟》的最新活动“孤岛风云”绝对是近期最令人印象深刻的一次了。这次活动给人的感觉非常扎实,无论是剧情深度还是游戏机制的创新,都让人眼前一亮。剧情层面:一场关于“牺牲与守护”的深刻探讨这次活动的主线剧情围绕着乌萨斯帝国与萨科塔阵营之间在新出现的孤岛区域的冲突展开。相比于以往一些活动侧重于某个特定.............
  • 回答
    《明日方舟》一拾山衣服首批零点被抢爆,这事儿说起来,真是几家欢喜几家愁, surtout对于那些守着零点结果两眼一抹黑的刀客塔们来说,简直是一场噩梦。咱们得先说这衣服本身。它叫“一拾山”,名字就带着点儿意境,再加上《明日方舟》一贯的精美设计和强大的IP号召力,光是这点就足以让不少玩家心动了。这不是一.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有