首先,闲话少叙,双手献上Fuchsia OS API
传送门https://fuchsia.dev/
我们都知道,Android 和 Chrome OS 是谷歌最为人熟知的两款操作系统,而现在该公司正在进行第三款操作系统的开发,这款新系统名字叫做 Fuchsia。该系统在去年第一次被人们发现时,仅仅能跳出一个简单的命令行。但当我看到繁琐的Fuchsia API 的时候,我知道,Fuchsia已经不是那个写在纸上的计划了,Google坐不住了,Fuchsia真的要来了,不,是已经来了……
Fuchsia 看起来和包括 Android 在内的其他移动操作系统完全不同。
Fuchsia 与 Android 和 Chrome OS 这两款系统有点不同,它并不基于 Linux 内核,而是基于谷歌全新开发的一款名叫 Magenta 的内核(译者注:该内核现已更名为Zircon)。根据谷歌提供的消息, Magenta 开发目标是成为同时适用于现代手机和现代个人电脑的一款系统内核,所以将来我们在智能手机中看到该系统也就不足为奇。然而最奇怪的是,谷歌甚至已经将来自苹果公司的编程语言 Swift 添加成为 Fuchsia 的开发语言。
因为 Fuchsia 是使用能在 Android 上运行的 Flutter SDK 编写的,所以 Fuchsia 的大部分模块都可以在Android设备上运行。当前最新版本的 Fuchsia 似乎被称作为 Armadillo,它完全重新实现了一个主屏幕。根据Ars Technica的测试,该主屏幕基本上呈现为一个大的滚动列表,配置信息图片、日期、城市和电池余量图标等被放置在其中央。在该主屏幕的上边,你会看到一些“故事”卡片或者一个最近应用程序列表。而在在该主屏幕下边,你会看到一个类似于 Google Now 的建议列表。您还可以拖动最近的应用程序,并个性化地将它们组织起来放到主屏幕你想要的位置。如果将一个应用程序放在另一个应用程序的顶部,你将进入最多可支持三个应用程序的分屏模式。
多年的Android, ChromeOS开发经验⼀⽅⾯让Google在操作系统⽅⾯积累了⾜够多的⼈才和组件,另⼀⽅⾯也充分认识到了Linux kernel很多的局限性
Fuchsia是⼀个全新的操作系统的统称。Google挑选了⼀系列它认为合适的技术和组件进⼊这个操作系统,⽐如:微内核,基于能⼒的访问控制,Vulkan图形接⼝,3D桌⾯渲染Scenic,Flutter应⽤开发框架。⽬前⽀持的编程语⾔是:C/C++, Go, Rust, Dart
⽀持的架构是X86-64和ARM 64,⽀持的设备从IoT到服务器
事实上我们知道,Android 最初是为数码相机而构建的,后来才被应用到带触摸屏的手机中。Android 大部分内容并不符合谷歌对智能设备的未来期望,比如语音交互方面。Fuchsia 将会为谷歌解决许多这样问题,进而为谷歌带去更多的机会。Fuchsia有一套相较于 Android 更为健壮的安全特性,软件内置了加密的用户密钥以加强安全性。与Android相比,Fuchsia 在适应各种不同尺寸的屏幕方面也更胜一筹。通过向 Fuchsia 的转移,谷歌可以摆脱 Java 和围绕 Java 的的一些法规问题。同时这意味着谷歌可以抛弃在 Android 占据核心位置的 Linux 内核。
尽管我们了解Fuchsia与Flutter的关系,但Flutter SDK与Fuchsia SDK不同。正如Flutter今天使用Android SDK制作Android应用程序一样,我们也可以通过Flutter使用Fuchsia SDK。目前,我们需要直接使用Fuchsia SDK制作Fuchsia应用程序。实际上可以使用Fuchsia SDK直接构建Flutter应用程序,因为Fuchsia 可以深度支持Flutter。
原⽣进程沙箱,解决应⽤安全和分发问题(⿊客)
Linux: namespace, control group, unionfs => docker
稳定的驱动接⼝,硬件⼚商可独⽴维护硬件驱动(硬件)
系统模块化,分层,设备⼚商可以灵活定制专有系统(友商)
基于Vulkan和物理渲染的纯3D UI,全局光照(⽤户)
Flutter应⽤开发框架(开发者)
在服务器平台上,原⽣的进程沙箱机制将带来新的安全特性和容器机制
在桌⾯平台上,类似于游戏3D引擎pipeline的图形栈以及毫⽆遗产负担的实现将使电⼦娱乐应⽤变得更为⾼效;⽆缝兼容庞⼤的Android⽣态
在移动平台上,系统的模块化⽅便第三⽅设备⼚商的全⾯
定制,驱动框架⽅便硬件⼚商编写和维护私有驱动
那么,Fuchsia启动流程是什么样的?
Fuchsia 官方代码托管在 GoogleSource.com; 由于不可描述的原因,国内开发者没有办法直接下载到 Fuchsia 的源代码,对于学习和开发带来一定程度的不便。但博主要给大家送福利啦!
Git 服务
说明:仅包含主 repo 核心代码,不包括第三方代码
网址:https://hexang.org/mirrors/fuchsia
使用:git clone [email protected]:mirrors/fuchsia.git
镜像服务
说明:包含完整代码,同时提供单独的 tar 包及每日 Archive
网址:https://mirrors.hexang.com/fuchsia
Archive网址:https://mirrors.hexang.com/fuchsia/archive
错误报告
说明:使用过程中如果遇到错误,或者无法正常使用 Git服务、镜像服务,请在下列地址创建 issue ,镜像管理团队会在第一时间处理。
网址:https://hexang.org/mirrors/fuchsia/issues
https://github.com/feilongfl/tree-for-fuchsia
在Android的Gerrit源代码管理中找到一个新的进行中的提交记录,标记为“[fuchsia]”,所有者是“Lingfeng Yang”,表明可以让Android模拟器启动 Fuchsia 的Zircon内核!
SlashGear与HotFix Computer Repair合作推出了一个可下载的Android软件包套件(APK),你可以将它安装在自己手机上以体验 Fuchsia。这个安装包有点像是一个上文提到的被称为 Armadillo 的 alpha 版本系统的预览版启动器。Armadillo 是 Fuchsia 这一操作系统的一个版本名,类似于 Nougat 是 Android 操作系统的一个版本名。自己去HotFixIt下载吧,不过在此之前你需要确保明白一些事情。Fuchsia 目前还处于早期阶段,不要期望能够将其作为日常使用的操作系统。虽然在大多数 Android 手机上使用这一高度实验性的软件是相对安全的,但你也应该在清楚自己在干什么的前提下才去这么做。
https://youtu.be/83SDXL65W9k 拿去爽吧,不谢!
1,Flutter 可以帮助您构建界面 精美 的应用。我们希望设计师们都能充分发挥自己的想象,尽情施展精美绝伦的创意,而不受框架局限性的干扰。通过 Flutter,您可以在屏幕上有像素级的掌控。Flutter 强大的图像组合能力让您近乎可以不受限制的堆叠任何图形、视频、文本和控件。Flutter 内置了一系列的 widgets (在 Flutter 里,几乎所有内容都是 widget),这些 widgets 可以帮助您在 iOS 和 Android 上实现极致的视觉体验。Flutter 集成并有最大程度的实现了 Material Design —— 这是 Google 为数字体验所创作的开放的设计系统。
2,Flutter 的另一个特点的 速度快 。它基于 Skia 2D 硬件加速图形引擎,该引擎也同样用在了 Chrome 和 Android 平台。媲美原生应用的速度,这是我们在构建 Flutter 时的初心。Flutter 的代码基于 Dart 平台,它可以被编译成 iOS 和 Android 平台上 32 位和 64 位的 ARM 代码。
3,Flutter 非常 高效 。Flutter 引入了 Stateful Hot Reload(保持应用状态的热重载),这个革命性的新特性可以让移动开发者和设计师们实时迭代应用程序。通过 Stateful Hot Reload,无需重新启动应用,你就可以在程序运行的时候直接看到代码修改之后的效果,Stateful Hot Reload 改变了开发者们编写应用的方式。在我们的用户反馈中,开发者们表示该特性使得开发效率提升了三倍。
4,最后,Flutter 是 开放 的。Flutter 是一个基于 BSD-style 许可的开源项目,全球数百位开发者在为其贡献代码。Flutter 的插件生态系统平台也充满活力。有数千款插件已经发布,避免了重复造轮子。由于 Flutter 应用程序使用标准的 Android 和 iOS 的编译打包工具 (build tools),因此它的开放还体现在您可以使用原生开发资源。比如,您同样可以在 Android 上使用 Kotlin 或者 Java,在 iOS 上使用 Swift 或者 Objective-C 来写逻辑或者界面。
结合以上这些,再加上您顺手的开发工具,比如 Visual Studio Code、Android Studio、IntelliJ 或其他您青睐开发者编辑器,您就可以开始使用 Flutter 体验一套代码同时在 iOS 和 Android上实现原生应用效果的乐趣了。
2Dimensions 宣布了一款全新的工具 Flare,该工具可以将矢量动画直接嵌入到 Flutter 应用中,并且用代码来控制。Flare 打破了传统的模式,无需再单独开发应用和动画,然后再转换成设备资源和代码。使用 Flare 实现的动画可以作为 widget 嵌入到已有的 Flutter 应用中。使其能够融入整体的界面中,和文本、图形渲染层以及其它 UI widget 叠加在一起。通过这种集成方式,可以将动画从其他平台的 “黑盒” 局限性解放出来,持续促进开发者与设计师协作完成应用。Flutter 和 Flare 的紧密整合激发了设计师和动画师的热情来构建设计精美的移动应用。
为您介绍另外一位 Flutter 的合作伙伴 Nevercode,这是一家快速成长的,为移动应用提供持续集成和推送工具的提供商。今天,他们正式发布了 Codemagic。该工具针对 Flutter 设计,简化了 Android 和 iOS 平台上的应用编译和打包的处理过程。现在已经发布 beta 版本。使用 Codemagic,开发者只需要在 GitHub 里选择一个含有 Flutter 项目的仓库,仅需简单的几个点击即可生成一整套处理流程,包括执行测试,生成应用软件包并上传至 Apple Store 和 Google Play。
就目前而言,Flutter 的首要目标平台是 iOS 和 Android,但我们也在不断探索将 Flutter 拓展到手机端以外的更多平台上。事实上,Flutter 的设计理念就是希望它可以作为一个灵活且便携的 UI 工具包,以适应各种需要绘制屏幕内容的平台。一些进展已经公布,Flutter Desktop Embedding 就是其中的一个,这是一个使 Flutter 运行于 macOS、Linux 和 Windows 等桌面操作系统的项目。前不久,我们尝试在树莓派平台运行了 Flutter 应用,以非正式和探索的形式向用户展示 Flutter 是有可能运行在一些没有完整桌面环境的小型设备中的。
这里整理了一个短视频,为大家展示开发者们基于 Flutter 的 Beta 版本所实现的应用:https://www.bilibili.com/video/av37443895
最后想说一句题外话,无论是Fuchsia OS 还是鸿蒙OS ,技术本无国界,我们都应给与支持,只是一群政客在扮演小丑,所以我认为开发者眼界不应该被限制,用更好的科技手段服务人类才是每个技术从业者的永不能忘的初心,愿诸君好运。
《Android架构师必备学习资源免费领取(架构视频+面试专题文档+学习笔记)》