Android浏览器的插件渲染模式简介
大家好,又见面了,我是你们的朋友全栈君。
Android2.1的浏览器插件有两种渲染模式,在android_npapi.h里的定义分别是:
kBitmap_ANPDrawingModel = 0;
kSurface_ANPDrawingModel = 1;
(后面简称bitmap模式和surface模式)。
在实例初始化的时候(Plugin函数列表的newp被调用时),Plug-in需要告知浏览器采用何种渲染方式。
下面就对这两种渲染方式作简要介绍:
1.bitmap模式
kBitmap_ANPDrawingMode是传统的渲染方式,这种方式下,浏览器的底层会通过调用Plug-in提供的NPP_HandleEvent函数触发绘制事件,并把要渲染的bitmap的地址作为参数的一部分传给plug-in,plug-in只需要使用在初始化时获取到的相关的ANPInterface进行绘制即可。这种模式下,plug-in不需要考虑缩放问题,画面的缩放会由webkit自行处理。
//===================================
2.surface模式
kSurface_ANPDrawingMode带有Android平台的特殊性,因为这种模式是需要Java侧配合的。这种模式下,Plug-in会在初始化时把自己的PluginStub的类名告知webkit,webkit会根据这个类名,并结合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.cn/146753.html原文链接:https://javaforall.cn
相关文章
- 聚焦 Android 11: 大功告成
- android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序
- android 浏览器 开发,Android 浏览器的开发实例分享
- android签名命令行,Android系统签名位置及命令
- strictmode android,Android 应用性能优化-StrictMode(严格模式)
- android中适配器的作用,适配器模式 在Android中的简单理解「建议收藏」
- android declare-styleable 和style,Android 关于declare-styleable属性的写法….
- android 验证码短信验证码,Android短信验证码倒计时验证的2种常用方式
- android短信验证码方案,Android之短信验证码
- android toast显示时间,Android Toast自定义显示时间「建议收藏」
- Android Toast的立即取消与显示「建议收藏」
- android登录注册跳转的代码_Android开发代码
- Android时间_时间戳是什么格式
- android activitymanager 系统api_Android view
- Android studio更新后出现警告:Warning:The `android.dexOptions.incremental` property is deprecated and it has
- Android JetPack~ LiveData (一) 介绍与使用
- 【Android Gradle 插件】AndroidSourceSets 配置 ③ ( aidl 配置 | assets 配置 | compileConfigurationName 配置 )
- Android自动打包工具aapt详解手机开发
- Android 安全调查,OEM 厂商只有华为最积极打安全补丁
- Connecting Android to Oracle: The Ultimate Guide for Seamless Integration.(android连接oracle)
- android自定义toast(widget开发)示例
- Android中实现开机自动启动服务(service)实例