Android 喷气背包是如何在引擎盖下工作的

Android 喷气背包是如何在引擎盖下工作的,android,android-jetpack-compose,Android,Android Jetpack Compose,添加到Arch组件中的新Jetpack compose组件类似于颤振Ui制作 但是它是如何制作Ui的呢 它是否使用了像Skia这样的本机代码引擎,或者它仍然像以前一样遵循ViewGroup方式?不,它没有使用旧UI工具包中的任何东西,实际上他们正在构建它以克服旧UIToolkit的问题 Compose不是视图,它是一组新的Jetpack UI小部件,基本上,它是一个Kotlin编译器插件,用于呈现Android画布(我想目前还没有相关文档),与现有Android的视图系统完全兼容,上一次开发峰会

添加到Arch组件中的新Jetpack compose组件类似于颤振Ui制作

但是它是如何制作Ui的呢


它是否使用了像Skia这样的本机代码引擎,或者它仍然像以前一样遵循ViewGroup方式?

不,它没有使用旧UI工具包中的任何东西,实际上他们正在构建它以克服旧UIToolkit的问题


Compose不是视图,它是一组新的Jetpack UI小部件,基本上,它是一个Kotlin编译器插件,用于呈现Android画布(我想目前还没有相关文档),与现有Android的视图系统完全兼容,上一次开发峰会讨论了它的内部工作原理,I/O也有另一个视图

Compose创建一个当前名为
AndroidComposeView
的视图,该视图继承ViewGroup,并在画布上绘制小部件树。它还处理此视图的运动/键盘事件

由于实现细节的原因,可能会有更多的助手视图添加到此视图中,但基本上对于Compose的“小部件”,您不会在视图层次结构中看到经典视图。Layout inspector目前对Compose没有帮助-您可以尝试它,但不会看到您的小部件

开发人员承诺能够创建自己的定制小部件,这些小部件可以直接在画布上绘制,为自身或子对象设置布局,或者处理输入事件

但是,
Canvas
和这里使用的许多其他类都不是标准的框架类。例如,在Kotlin中重新定义了Compose的画布。类似的方法还有新的
绘制
形状
,以及其他新类。他们在内部使用框架类进行工作,但这只是实现细节。在绘制时,您将使用这些新类

由于Compose是一个库,在Android设备上不存在,所以每个使用Compose的应用程序中都包含该库。
此外,这里没有涉及本机代码,所有操作都在Kotlin中完成,并成为应用程序的dexed代码的一部分。通过使用Compose,你的应用程序将不包含任何额外的本机库(如果创建者不改变主意的话,可能是这样)。

它将呈现到Android
画布上
,上一次我检查过。检查这个插件,如果插件不呈现,它将@Composable函数转换为不同的形式(注入一些样板代码)。这是一个图书馆。谢谢你的回复。它比布局层次更快吗?我的意思是,如果你定义了一组视图,在向用户展示的最终设计中,哪一个会更快?还没有人知道,他们仍在开发这个新系统。