加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

webkit移植到symbian详解

发布时间:2020-12-15 20:51:17 所属栏目:大数据 来源:网络整理
导读:话说这几周要把webkit在symbian的手机上跑起来,本以为不太难的任务,结果做了大概有3周之久,走了很多路,不过最终还是胜利地在真机运行了,很欣慰,说说过程吧。 最先又是一番google,(最近google又经常被墙,用得很郁闷),要在symbian上跑还是先从s60we

话说这几周要把webkit在symbian的手机上跑起来,本以为不太难的任务,结果做了大概有3周之久,走了很多路,不过最终还是胜利地在真机运行了,很欣慰,说说过程吧。

最先又是一番google,(最近google又经常被墙,用得很郁闷),要在symbian上跑还是先从s60webkit入手肯定是比较快,要不从webkit主干上移植,凭我一人之力估计得要一年吧。选定方向后,就开始拉代码了,大家都说21772这个版本比较稳定,那咱也从这个版开始吧。

编译的过程参照了以下几篇BLOG

中文版

http://blog.csdn.net/mikefather/archive/2010/05/10/5574183.aspx

英文版

http://wiki.forum.nokia.com/index.php/Building_S60Webkit

如果按照这几个文章里所提到的修改点,一一修改后,用build.bat是可以把模拟器和真机版都成功编译出来的,但是模拟器可以运行,在真机却运行不起来。 从最开始的"无法安装组件已固化在手机系统" 错误 到 "未授予所需的程序接入权限" ,就折腾了好多天。

"无法安装组件已固化在手机系统" 这个是因为reindeer.pkg 里的PageScaler_sdk.dll toolbar.dll recenturlstore.dll xmlengine.dll这几个组件已经固化在手机里了,无法更新要注释掉

"未授予所需的程序接入权限" 这个错误,应该是安装包里的各个exe,dll应该都要设置相应的能力,没设置对,将会影响安装。

修改完这些问题,总算把程序安装上后,按reindeer图标,却闪了一下,毫无反应,纠结

可以参考这个文章,以便让程序出错时,symbian可以给点错误代码提示,而不是直接消失,就是文章里有个errrd.zip文件

http://dev.firnow.com/course/3_program/jdkf/20071129/89115.html

错误码是看到了, KERN EXEC 3,这个错误太常见了,以至于没什么信息量,用TRK真机调试,一样的只是提示起不来,绝望中

又搜来搜去,发现一个强帖,当然是后来验证成功后,才发现他是强贴

http://discussion.forum.nokia.com/forum/showthread.php?109899-S60WebKit-missed-WidgetEngineBridge.h/page3

参见 mgroeber9110 此人在39楼的回复,他不是从21772这个版本开始做的,而是从s60webkit trunk的最后一个revision 25205开始的,我想代码新点总归能多解决一些bug,好一点吧,就按照他饿方式开始尝试了。他提供了一个patch文件,一运行,就把要修改的修复了。然后就build -g ,很顺利的生成了各个库,当中只涉及到一些小修改。打包,上机,结果能跑起来了,景仰中。

build -g成功后,我还追求用IDE直接编译生成,在前面纠结的两周我已经通过学习perl语法把 build.bat看了个大概明白,主要功能就是把S60Internals里的zip文件解压缩到epoc目录下,然后挨个的mmp进行编译。 咱就手工地把zip都先解压缩了,然后用 carbide导入bld.inf 开始build 碰到若干问题,总结如下:

checkout最新s60webkit代碼后(r25205 from 23-Aug-2007)
用patch文件s60webkit_20100520.zip更新全套工程http://discussion.forum.nokia.com/forum/attachment.php?

attachmentid=1060&d=1274997811
build 工程步驟
1、import bld.inf后
2、修改各个mmp文件 添加#include "../../s60Internals/S60.hrh"?
?????????????? 添加macro __BROWSER_SDK
?????????????? #define __BROWSER_SDK
?????????????? #define __SCALABLE_ICONS? add these 2 macro to some cpp in 3rdMR
3、修改include/gcce/gcce.h?? #include <symbian_os_v9.1.hrh>
4、build pcre.lib 這個是很多庫的基礎
5、修改icons.mk browsercore.mmp主要解決icon和bmp文件的編譯問題
6、add #include <featureinfo.h> to some cpp

另外编译lib库时还一直提示

process_begin: CreateProcess((null),cr .....,...) failed.
make (e=2): The system cannot find the file specified.

后来发现是打包的这个命令没有找到,要通过在epoc32/tools/compilation_config/gcce.mk中
的AR=arm-none-symbianelf-ar下面加上ARCHIVER=$(AR)? ,因为脚本中是用ARCHIVER 这个变量。

磕磕碰碰,终于可以在carbide中编译 ,调试s60webkit了,不错不错,比运行build.bat直观多了。感觉通过这几周摸索,倒是学了perl,trk真机调试,symbian的工程组织等一系列知识。

目前在3rd,3rd_MR,V5版本都编译顺利通过,并在E66,E71,N97运行成功。不过又面临一些问题,如浏览wml页面就直接崩溃。在N97上还无法捕捉到单击事件。路漫漫,我要继续了。。。

?

?

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/NULLCN/archive/2010/09/02/5859145.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读