当前位置:首页 » 编程软件 » linuxwebkit编译

linuxwebkit编译

发布时间: 2022-03-09 10:58:57

① WebKit嵌入式移植

苹果公司在设计WebKit之时加入了太多Mac OS X平台的独有事物,这给向其它系统的移植造成了很大障碍。不过,由于WebKit出色的开源特性,这些障碍正在被不断克服。

WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。

传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过,随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome采用V8引擎,却仍然宣称自己是WebKit内核)。

Webkit的优势是速度快,而IE的优势是兼容性好。

② 如何从android源码编译webkit

android本来自带了webkit浏览器,但是要对其进行custom就需要android源代码才行, 但是在没有源码的情况下,那么就需要用到ndk了,比如,我是在xoom上做custom webkit的。
1、虽然ndk提供的库很少,而且没有skia,但是好在有bitmap,这样显示慢了点,没有硬加速,但不是不可能。
2、webkit需要的第三方库,freetype,png,jpeg,sqlite3等虽然android源码中有,但是ndk没有开放,因此所有的第三方库,freetype,png,jpeg,sqlite3,cairo,curl,fontconfig,pixman,iconv等都需要用ndk cross-compile成静态库,然后链接到最终的动态库中。
3、选择iconv是icu太大,而且没有多语言的需求,选择cairo+pixman是skia的移植性不好,而且cairo支持很多种backend。
4、编译第三方库需要用到autoconfig,ndk中有如何生成交叉编译链的文档,然后在configure时使用这个工具链就可以了,但是android用到的是bionic库,因此会有很少的地方需要修改,有些库也不能生成test程序,但是静态库是没问题的。
5、利用ndk生成的交叉工具链,在加上webkit自带的cmake编译系统,生成webkit的动态库是没有问题的,当然是webkit的内核,而且有些平台相关的部分代码需要修改。
6、但是只要是以linux平台为基础,修改还是很容易的,我移植的webkit是先移植到linux平台上,然后移植到android平台上的,所以修改相对少了很多,但是修改大多都在WebCore/platform下,在选择了的平台相关库后,做相应的配置和修改。
7、其次是在WebKit目录,这个主要是支持和使用WebCore,因此在需求不是整个浏览器,而只是正常地显示网页时,还是可以写的比较简单的。

③ 我现在有一个自己定制的linux系统,自己也编译好了webkit,怎么样使系统运行后自动运行webkit浏览器并显示

编译完webkit后有个叫gtklauncher 的程序。你可以加入到启动脚本中。
不知道你定制的linux系统是在PC上跑还是在板子上跑。启动脚本跟个人定制有区别。像我们公司就是在/etc/init.d/rcSBB 这个脚本里添加命令。你可以尝试在/etc/profile、/etc/rcSBB、/etc/rcS、/etc/rc 里面添加 /usr/bin/gtklauncher &
加 & 就是后台运行了,不会占用 前台。
当然,你直接在命令行里输入也可以启动。

④ webkit内核源码是什么写的

浏览器最核心的部分是渲染引擎(Rendering Engine),我们一般习惯称之为“浏览器内核”,其负责解析网页语法(如HTML、JavaScript)并渲染、展示网页。因此,所谓的浏览器内核通常也就是指浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解析也有所不同,因此同一网页在不同的内核浏览器里的渲染、展示效果也可能不同。

主流浏览器内核分类:浏览器内核种类繁多,商用的加上非商业的免费内核,大约有10款以上甚至更多,不过通常比较常见的大约只有以下4种,下面就简单介绍一下。

Trident

Trident(又称为MSHTML),是微软的Windows搭载的网页浏览器——Internet Explorer浏览器使用的内核(俗称IE内核),该内核程序在1997年的IE 4中首次被采用,之后不断地加入新的技术并随着新版本的IE发布。Trident实际上是一款开放的内核,Trident引擎被设计成一个软件组件(模块),使得其他软件开发人员很容易将网页浏览功能加到他们自行开发的应用程序里,其接口内核设计相当成熟,因此才涌现出许多采用IE内核而非IE的浏览器(如Maxthon、软媒的闪游浏览器、腾讯的TT、GreenBrowser等),但是Trident只能用于Windows平台。

由于IE本身的“垄断性”而使得Trident内核在很长时间内都是一家独大,微软也在相当长一段时间内都没有更新Trident内核,这就导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节;二是Trident内核的大量Bug等安全性问题没有得到及时解决。目前,微软对Trident 排版引擎做了重大变动,除了加入新的技术之外,还增加了对网页标准的支持。尽管这些变动已经在相当大的程度上落后了其他的排版引擎,如Gecko、 WebCore、KHTML及Presto。

Gecko

Gecko是开放源代码、以C++编写的网页排版引擎,目前被Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。这款软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。由于Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,采用Gecko内核的浏览器也很多,这也是 Gecko内核虽然年轻但市场占有率能够迅速提高的重要原因。

Gecko排版引擎提供了一个丰富的程序界面以供与互联网相关的应用程序使用,例如网页浏览器、HTML编辑器、客户端/服务器等。虽然最初的主要对象是Mozilla的衍生产品,如 Netscape和Mozilla Firefox,但是现在已有很多其他软件利用这个排版引擎。此外Gecko也是一个跨平台内核,可以在Windows、BSD、Linux和Mac OS X中使用。

Gecko是最流行的排版引擎之一,其流行程度仅次于Trident。使用Gecko引擎的浏览器有Firefox、网景6~9、SeaMonkey、Camino、Mozilla、Flock、Galeon、K-Meleon、Minimo、Sleipni、 Songbird、XeroBank。Google Gadget引擎采用的就是Gecko浏览器引擎。

Presto

Presto是一个由Opera Software开发的浏览器排版引擎,目前Opera 7.0~10.00版本使用该款引擎。Presto的特点就是渲染速度的优化达到了极致,它是目前公认的网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。

Presto实际上是一个动态内核,与Trident、Gecko等内核的最大区别就在于脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行JavaScript时有着最快的速度,根据同等条件下的测试,Presto内核执行同等JavaScript所需的时间仅有Trident和Gecko内核的约1/3。不过,不足之处在于Presto是商业引擎,使用Presto的除了Opera以外,只剩下NDS Browser、Nokia 770网络浏览器等,这在很大程度上限制了Presto的发展。 Opera Widget引擎采用的就是Presto引擎。

WebKit

WebKit 是一个开放源代码的浏览器引擎(Web Browser Engine),WebKit最初的代码来自KDE的KHTML和KJS(它们均为开放源代码,都是自由软件,在GPL协议下授权)。所以WebKit也是自由软件,同时开放源代码。

除了Safari浏览器,Mac下还有OmniWeb、Shiira等人气很高的浏览器。Google的 chrome也使用WebKit作为内核。 WebKit内核在手机上的应用也十分广泛,例如Google的Android平台浏览器、 Apple的iPhone浏览器、Nokia S60浏览器等所使用的浏览器内核引擎,都是基于WebKit引擎的。 WebKit内核也广泛应用于Widget引擎产品,包括中国移动的BAE、Apple的Dashboard以及Nokia WRT在内采用的均为WebKit引擎。

⑤ 在linux下怎么打包直接运行的node-webkit桌面应用

打包一个双击就可以直接运行的node-webkit应用,需要有:自己做的项目文件、package.json的配置文件,还有下载下来的node-webkit。

一、打包一个可以运行 .nw文件
1、在要打包的项目的主页面同一级目录里建一个package.json的文件,它是用来配置运行窗口和应用信息的。
如下图是我的项目,其中demo.html就是我运行这个应用时打开的页面:

我的很简单package.json文件内容如下,这2个是必备的。name可任意起,main就是你要运行的主页文件名:
查看文本打印
{
"name": "music",
"main": "demo.html"
}

2、将整个文件夹zip打包成 xxx.nw文件,一定要是zip打包,其他是不行的,我就在这里搞错了。
我的这个用命令压缩是:zip -r MusicPlay.nw css demo.html images package.json script
生成的包:

打开是这样的:

这样可运行的 .nw文件就好了,这时可以测试一下是否成功。
两种方法检测:
1)可以直接拖拉这个压缩包拖到下载的node-webkit文件夹里的nw上面运行;
2)可以用命令行运行:
先cd到node-webkit文件目录下,我的是:cd /opt/node-webkit-v0.9.1-linux-ia32
然后输入:./nw /home/shara/workplace/php/MusicPlayerHTML5/MusicPlay.nw
这样它就会运行了,成功时长这样,我的东西还没做好,所以长好丑,忽略吧:

二、将这个MusicPlay.nw和node-webkit文件下的 nw 一起创建一个文件:cat MusicPlay.nw nw > app && chmod +x app
在node-webkit文件夹里得到这个东西:

最后将node-webkit文件夹里的libffmpegsumo.so 和 nw.pak 跟这个app放到一个文件夹里,把这个文件夹放别人的机子上,它也可以直接双击运行这个app文件了。

热点内容
樱花动漫盾之勇者成名录缓存 发布:2025-01-22 09:14:11 浏览:564
图色模拟脚本是什么 发布:2025-01-22 09:09:04 浏览:164
怎么重置银行卡密码 发布:2025-01-22 09:07:18 浏览:334
哪个平台云服务器好用 发布:2025-01-22 09:07:16 浏览:476
编程猫审判 发布:2025-01-22 08:54:17 浏览:142
明日之后怎么加不同服务器好友 发布:2025-01-22 08:51:08 浏览:206
php代码格式化 发布:2025-01-22 08:50:22 浏览:180
db2plsql 发布:2025-01-22 08:19:10 浏览:779
猪猪侠脚本没反应 发布:2025-01-22 08:08:37 浏览:812
赛博朋克跟永劫无间哪个配置高 发布:2025-01-22 08:07:07 浏览:535