Android浏览器的插件渲染模式简介

Android浏览器的插件渲染模式简介简单介绍了Android浏览器的插件渲染模式(bitmap模式和surface模式)

大家好,又见面了,我是你们的朋友全栈君。

 

Android2.1的浏览器插件有两种渲染模式,在android_npapi.h里的定义分别是:

        kBitmap_ANPDrawingModel = 0;

        kSurface_ANPDrawingModel = 1;

        (后面简称bitmap模式和surface模式)。

在实例初始化的时候(Plugin函数列表的newp被调用时),Plug-in需要告知浏览器采用何种渲染方式。

 

下面就对这两种渲染方式作简要介绍:

 

1.bitmap模式

Android浏览器的插件渲染模式简介

 

kBitmap_ANPDrawingMode是传统的渲染方式,这种方式下,浏览器的底层会通过调用Plug-in提供的NPP_HandleEvent函数触发绘制事件,并把要渲染的bitmap的地址作为参数的一部分传给plug-inplug-in只需要使用在初始化时获取到的相关的ANPInterface进行绘制即可。这种模式下,plug-in不需要考虑缩放问题,画面的缩放会由webkit自行处理。

 

//===================================

 

2.surface模式

 

Android浏览器的插件渲染模式简介

 

kSurface_ANPDrawingMode带有Android平台的特殊性,因为这种模式是需要Java侧配合的。这种模式下,Plug-in会在初始化时把自己的PluginStub的类名告知webkitwebkit会根据这个类名,并结合npp参数,在Java侧获取到对应的view,并加到自己的布局里面。要使用这种模式,plug-in必须实现一个继承于PluginStub的类,这个类和SurfaceView有点类似,而且需要自己实现缩放。

 

根据android_npapi.h里的描述,Surface模式的性能要比bitmap模式好,但是我在模拟器上测试时发现surface模式在缩放时会出现闪烁。不过现在android2.2的nexus one上的flash10.1貌似就是surface模式的,但是没有闪烁,看来google为了支持Flash,在最近几版Android上对webkit作了不少修改。

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146753.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 五大常用算法之分支定界法

    五大常用算法之分支定界法看了五大常用算法之一这篇博文,感觉理解了很多,可是纯粹都是理论,缺少一些示例,所以准备综合一篇博文,以帮助自己记忆,原文:一、基本描述   类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中

    2022年10月31日
  • pycharm快速删除一行快捷键:ctrl+x(剪切掉)「建议收藏」

    pycharm快速删除一行快捷键:ctrl+x(剪切掉)「建议收藏」pycharm快速删除一行快捷键:ctrl+x(剪切掉)

  • C语言读写文件

    C语言读写文件一:打开文件句柄//参数1:文件路径//参数2:文件打开模式函数执行成功返回文件流指针,错误返回NULL。FILE*fopen(constchar*path,constchar*mode);模式操作区别文件要求r读…

  • RS-422接口定义

    RS-422接口定义RS-422接口定义什么是RS-422接口? RS-422的电气性能与RS-485完全一样。主要的区别在于: RS-422有4根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422的收与发 是分开的所以可以同时收和发(全双工)。RS-485有2根信号线:发送和接收都是A和B。由于RS-485的收与发是共用两根线所以不能够同时收和发(半双

  • 简单易学的机器学习算法——Mean Shift聚类算法

    简单易学的机器学习算法——Mean Shift聚类算法参考文献MeanShiftClusteringMeanshift,聚类算法

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号