webkit加载flash 10.3插件跟踪过程
来源:互联网 发布:c语言登录系统代码 编辑:程序博客网 时间:2024/05/02 11:18
step1. 在htc手机(2.3系统)上跑10.3,加载网页flash没有问题,换成10.1,出错,可见10.1确实只能在2.2上跑
step2. 在我们自己的开发板上跟踪,10.3和10.1apk中的内容大致一样,在加载的时候报错,库内部函数无法分配,看来是依赖的函数无法找到实现,10.1和10.3都有这个问题
step3. 10.1出错的是找不到udat_close_4_2的实现,先没管他,去弄10.3了。10.3出错是找不到surfacetexture XXXX的实现,因为我们的芯片没gpu,只能跑纯软件的gles,推断这个是gles2.0里面的扩展
step4. 于是我们傻乎乎的去想办法把gles2.0跑起来
gles的代码在framework/base/opengl下,其中libagl是一个软件实现,逻辑代码集中在libs中,有egl,gles2,gles_cm三种实现,三个文件夹会编译成三个so文件,由framework/base/opengl/libs/egl/loader.cpp进行加载
吐槽一下里面的加载流程
void* Loader::open(EGLNativeDisplayType display, int impl, egl_connection_t* cnx)
{
/*
* TODO: if we don't find display/0, then use 0/0
* (0/0 should always work)
*/
void* dso;
int index = int(display);
driver_t* hnd = 0;
char const* tag = getTag(index, impl);
if (tag) {
dso = load_driver("GLES", tag, cnx, EGL | GLESv1_CM | GLESv2);
if (dso) {
hnd = new driver_t(dso);
} else {
// Always load EGL first
dso = load_driver("EGL", tag, cnx, EGL);
if (dso) {
hnd = new driver_t(dso);
// TODO: make this more automated
hnd->set( load_driver("GLESv1_CM", tag, cnx, GLESv1_CM), GLESv1_CM );
hnd->set( load_driver("GLESv2", tag, cnx, GLESv2), GLESv2 );
}
}
}
LOG_FATAL_IF(!index && !impl && !hnd,
"couldn't find the default OpenGL ES implementation "
"for default display");
return (void*)hnd;
}
是不是应该优先加载牛逼的2.0,然后才是1.0更好一些啊~
通过改代码(其实这样很蠢),我们把2.0强行加载进去了,当然一进去就黑了
之后了解到可以通过修改/system/lib/egl/egl.cfg来确定启动的时候加载哪个库
再吐槽一下,为毛没有默认的配置文件,这是省事还是挖坑
具体传送门http://wenku.baidu.com/view/d31518f7f61fb7360b4c65d1.html
至此,基本上10.3已经在我们的开发板上宣判死刑
- webkit加载flash 10.3插件跟踪过程
- webkit加载flash 10.3插件跟踪过程
- 关于Android Webkit的Flash插件加载的一点理解
- webkit的加载过程
- QT webkit 中加载flash文件
- CEF 加载flash 插件
- CEF 加载flash 插件
- WebKit内核加载渲染网页的过程
- Android WebKit HTML主资源加载过程
- WebKit之chromimu页面加载过程
- cef3 加载flash ppapi插件
- webkit加载adobe flash player 10.1[转自邓大侠]
- webkit插件
- webkit加载
- Webkit页面加载过程分析(1)-发送请求篇
- Android webkit image的加载过程解析 (一)
- webkit 加载plugin的过程分析(原)
- Android webkit image的加载过程解析(二)
- PHP变量
- Android环境怎么搭建
- Core.js中的工具函数1
- abap 间接寻址 给动态变量赋值
- Hadoop0.21.0源码流程分析(2)-主节点接收作业
- webkit加载flash 10.3插件跟踪过程
- 第二道羊皮卷:我要用全身心的爱来迎接今天
- 转换
- C++中虚析构函数的作用
- iOS概述
- UVa Problem 10090 Marbles (弹珠)
- 恋爱纪念物
- Keil_startup.a51文件详解
- c# 获取电脑系统的IP地址