在地震中嵌入出生地部件的正确姿势是

频道:闲鱼技术 日期: 浏览:848
作者:闲鱼科技-陈晓

微信号:ccjun91
添加微信群,试用软件
复制微信号

介绍

在混合动力工程从诞生地到颤振的漫长过程中,为了实现平稳过渡,在颤振的诞生地使用更完善的控制是一个很好的选择。本文将介绍一种新型的r o i d v i e w的使用方法,以及基于该方法的双端嵌入式诞生地组件的解决方案。

1.1.德莫伦

嵌入地图的场景可能存在于许多应用程序中,但当前的地图sdk没有提供颤振库,而且自己开发一组地图显然是不现实的。在这种情况下,使用混合堆栈的形式是更好的选择。我们可以直接在出生地的绘图树中嵌入地图,但该方案的嵌入视图不在飘动的绘图树中。这是一种更加暴力和优雅的方式,而且使用起来也非常困难。

此时,使用颤振官方提供的控制是一个更优雅的解决方案。下面是一个嵌入高德地图的简单演示。让我们按照这个应用场景来了解n d r o i d v i w的使用模式和实现原理。

1.2.一种新的用法

n d r o i d v i w的使用模式和方法与信道的使用模式和方法类似,后者相对简单。主要分为三个步骤:

第一步:当在飞驰代码的相应位置使用n d r o i d v i e w时,需要输入一个字符串。该字符串将用于唯一识别小型设备,并与出生地视图建立关联。

第2步:在出生地的一侧添加一个代码,并编写一个PLATOFORM VIEWOFATORY。pla t f o r m v i e w a c t o r y的主要任务是在方法中创建一个视图,并将其传递给浮点(该语句不准确,但我们暂时可以用这种方式理解它,稍后将对其进行解释)

步骤3:使用该方法注册刚刚写入的PLATOFORM VIEW OFACTORY。该方法需要传入两个参数。第一个参数需要与之前在颤振端写入的参数相对应,第二个参数是刚刚写入的p l a t f o r m v i e w f a c t o r y

这里省略了配置高德地图的部分。这位官员有更详细的文件,可以在高德开发平台上查阅。

以上是使用n d r o i d v e w的所有操作。总的来说,它似乎相对简单,但在真正使用它时,有两个问题不容忽视:

谁决定最终的展示尺寸?触摸事件是如何处理的?

现在让我们给你一条免费的小鱼来逐一回答。

要解决上述两个问题,首先要理解所谓"传播"和"观"的本质?

2.1.什么是所谓的“川v i e w”的本质?

要解决这个问题,自然避免不了 需要去阅读资料,从庸医民族学去看这个lhci-680的整个过程,可以纤维素酶组织一个suny这样的图表:

我们可以看到,Flatter最终得到的是从出生地层返回的纹理元素。根据出生地的知识,k y h,这个纹理元素是与出生地一侧渲染的视图的绘图数据相对应的id卡。通过这张id卡,可以找到相应的图纸数据,并直接在GPU中使用,那么Flatter如何使用这张id卡呢?

在之前对颤振界面开发的深入理解中,我们还介绍了颤振绘图过程。我也会给你一个简单的分类

最后,颤振框架层将提交给引擎层。Lay e将遍历管道中层树的每个叶节点。每个叶节点最终将调用skia引擎来完成接口元素的绘制。遍历完成后,在调用gl p r e n t r e n d r b u f e r(IO s)或gl s w a p b u f e r(android)时,按完成屏幕上的操作。

有许多种类的层,一个n d r o i d v i e w使用织物层。织物层在前面的“颤振”外部纹理中有更详细的介绍“,此处不再重复。当遍历织物层时,将调用引擎层方法以传入纹理元素作为参数。最后,在绘图时,skia将根据g、p和u中的纹理元素直接找到相应的绘图数据,并在屏幕上绘制。

那么,任何获得身份证的人都可以执行这个操作吗?当然,答案是否定的。纹理数据存储在与创建它的e g l c o n t e x t对应的线程中。因此,如果在其他线程中操作,则无法获得相应的数据。这里需要介绍几个概念:

显示对象(display):提供合理像素密度和显示大小的信息演示:它为android提供了绘制相应上下文(context)和显示对象(display)的能力,通常用于双屏显示。

我们不需要在这里解释演示,只需要理解颤振通过演示实现了外部纹理。在创建演示时,会引入相应的fratview上下文和虚拟显示对象,这样就可以通过id卡直接找到颤振,并使用出生地创建的纹理数据。

2.2.谁决定最终的展示尺寸?

通过以上过程,我们都可以认为,显示器的大小似乎由两部分决定:一部分是n d r o i d v i e w的大小,另一部分是安卓端视图的大小。那么谁来决定呢?我们做个实验吧?

直接构建一个颤振项目,并将中间部分更改为一个n d r o i d v i w

相应的代码也应该添加到android端。为了更好地看到切割效果,这里使用了i m g e v i e w

首先,让我们看一个n d r o i d w。与nD rO i d v i w相对应的渲染对象是rE nD eR o i d v i w。有两种方法可以确定渲染对象的最终大小,一种是由父节点指定的,另一种是在父节点指定的范围内根据其自身情况确定大小。打开相应的源代码,您可以看到有一个非常重要的属性,即nDROIDVIEW的大小由其父节点决定。我们可以使用容器和大小框等控件来控制n d r o i d v i w的大小。

n d r o i d v i e w的绘图数据由出生地的图层提供。当出生地渲染视图的实际像素大小大于n d r o i d v i w时会发生什么?通常,处理这种情况只有两种选择,一种是切割,另一种是缩放。颤振保持其一贯的做法。所有越界的小型设备都以统一的方式显示。上述情况被视为禁止入境

时的实际像素尺寸的这搁放的陇县比的ndr大澳我d葡萄我ew,它将的发现的的搁放将不的modis大卡(的other颜色的的容器的不暴露),的的地方没有含量将的装满的汉白玉.的原因的这的的other我ng枸杞e葡萄我ewpreotheren引线的引线我大澳n:的大澳ncre的引线e,的铁艺布局将的用于的的根系搁放

2.3.触摸事件是如何通过的

android事件流应该大家都熟悉。它从上到下传输,从下到上处理或回流。Flatter也使用这个规则,但n d r o i d v i w通过两个类处理手势:

m o t i o n e v n t s d s p a t c h r:负责将事件封装到出生地的事件中,并将其传输到出生地;

n d r o i d v e g e u r e c o g n i t o r:负责识别相应的手势,该手势有两个属性:

而且,只有当指针事件的指针属性位于转发指针中时,它才会被分发,否则它将存储在缓存事件中。这里的实现主要是解决一些事件的冲突,例如滑动事件,这些事件可以由手势识别器处理。请参考这里的官方注释。

因此,综上所述,这一部分的过程也很简单:从出生地到颤振的阶段不在本文的范围之内。Flatter根据自己的规则处理事件。如果n d r o i d v e w赢得比赛,比赛将被封装到相应出生地末尾的比赛中,并通过方法渠道发送回当地人,当地人将根据自己的比赛规则处理比赛。

3.1.程序限制

达利:这个解决方案是谷歌为了解决开发者不断增长的业务需求和落后的生态环境之间的矛盾而推出的。这一矛盾是新生态必须面对的主要矛盾。为了解决这个问题,最简单的方法当然是允许开发人员在旧的生态系统中使用非常成熟的控件。当然,这可以暂时解决颤振生态开发不完全的问题,但使用该方案不可避免地需要编写两个终端代码(即使现在互联网操作系统没有相应的控件,当然以后会更新),无法实现真正的跨终端。

在一个小方面:这个方案有性能缺陷。在a级和r级的第三句话中,官员提到这是一个相对昂贵的方案,可以通过颤振控制来实现。如果你以前读过《颤振中的外部纹理》一文,你应该知道,在颤振中实现外部纹理的方案中,Gp u->Cp u->Gp u的数据处理成本相对较高,这会在大量使用的场景中造成明显的性能缺陷。我们通过某种方式绕过了中间cpu,并在应用程序中实现了这项技术来处理图像资源。

3.2.实际应用

目前,闲置鱼类从出生地迁移到弗利特的过程中,遇到了无法在弗利特一侧访问出生地的本地图像资源的问题。在Flatter和出生地将长期共存的情况下,当然可以根据Flatter规则重新复制并存储资源,但这不可避免地会增加包装体积,并且难以管理。

面对这个问题,我们的解决方案是学习在n d r o i d v i w中使用纹理的想法,并对其进行优化。对出生地和颤振的图像资源进行了归一化处理。

 

除了在出生地的资源目录中加载本地图片外,还可以使用出生地的图像库加载网络图片。

我们这样做的原因是,我们出生地一侧的图片库相对完善,并且经过了大量在线测试。在这个阶段,我们不想在重复建设轮子上投入太多精力,但处理在线图片资源的想法实际上与处理本地图片资源的想法相同,因此我们选择以统一的方式整合图片资源,并在沟通后与官方团队进行沟通。我们将与你保持一致。请注意我们的官方帐户。

短视频宝宝=慢?阿里巴巴工程师在这样一秒钟内打开了短视频颤振路由管理代码。阿里巴巴工程师如何高效地解决这个问题?(实用)1一个很好的方案,可以帮助您实现复杂数据源中单元格信息的精确规范化。关于颤振初始化过程,我必须告诉你们的是,没有补给的闲置鱼的做法是什么,以及如何做到这一点?游手好闲的鱼没有货源。闲置市场规模超过万亿。二手电子商务迎来了循环经济的红利。“校园圈”真的能成为游鱼生长的第二个引擎吗?

关键词:闲鱼科闲鱼
复制成功

微信号: ccjun91
添加微信群,试用软件

我知道了
添加微信

微信号: ccjun91
添加微信群,试用软件

一键复制加过了
18749471747
微信号:ccjun91添加微信
ccjun91