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作了不少修改。

 

 

 

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 我的世界服务器必备指令手机版_我的世界服务器传送点指令

    我的世界服务器必备指令手机版_我的世界服务器传送点指令6、技能插件:【箭术】-Archery箭非常的酷。大约五分钟,这项技能会不断增加它的伤害随着级别的升高,最后你能射晕对手,对PVP有好处。还有,箭术等级越高,你就越容易从尸体上拿回箭。【制药学】-Herbalism这很受那些喜欢收获的人欢迎,捡起那些药草,比如:花啊,蘑菇啊。或者收割庄稼,都会让你提升技能。他的好处包括农业上两倍的掉率,增加面包和汤的效果。【剑术】Swords这项技能会给…

    2022年9月2日
    2
  • 全文六万字《计算智能》智能优化算法 张军【Python】

    全文六万字《计算智能》智能优化算法 张军【Python】就这?《计算智能》张军超详细讲解前言正文第1章绪论1.1最优化问题1.1.1函数优化问题1.1.2组合优化问题1.2.1计算复杂性1.2.2NP理论1.3计算智能方法1.3.1计算智能的分类与理论1.3.2计算智能的研究与发展1.3.3计算智能的特征与应用前言由于最近新参与了一个与智能优化相关的科研课题,所以需要了解一些计算智能的算法知识。经老师推荐,从网上购买了张军老师的这本《计算智能》,尽管出版年份距今已有一些年日,但因该领域多年来并未有太多新的大改变,且该书对新手相对友好,故

    2022年6月12日
    28
  • 请说下封装 vue 组件的过程?_vue 自己封装过哪些通用组件

    请说下封装 vue 组件的过程?_vue 自己封装过哪些通用组件vue3封装组件发布到npm上

    2022年9月23日
    0
  • Python OSError: [Errno 22] Invalid argument:的出现和解决「建议收藏」

    Python OSError: [Errno 22] Invalid argument:的出现和解决「建议收藏」1、在学习从文件读取数据中,写了个示例代码,读取不在同一个目录的file.txt,运行后报这个PythonOSError:[Errno22]Invalidargument:错误:(1)、首先,在F盘的python_stu中新增了一个file.txt,同时在F盘的python_stu文件目录底下新增一个file文件夹,里面有个file_reader.py来读取python_stu文件目…

    2022年6月24日
    44
  • 详细阐述基于时间的反向传播算法(Back-Propagation Through Time,BPTT)「建议收藏」

    详细阐述基于时间的反向传播算法(Back-Propagation Through Time,BPTT)「建议收藏」上一节我们说了详细展示RNN的网络结构以及前向传播,在了解RNN的结构之后,如何训练RNN就是一个重要问题,训练模型就是更新模型的参数,也就是如何进行反向传播,也就意味着如何对参数进行求导。本篇内容就是详细介绍RNN的反向传播算法,即BPTT。首先让我们来用动图来表示RNN的损失是如何产生的,以及如何进行反向传播,如下图所示。上面两幅图片,已经很详细的展示了损失是如何产生的,以及…

    2022年6月23日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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