Qt 5.7使用QWebEngine載入html做UI,但運行庫卻近70M,如何能減少體積?

RT,如何能減少體積?非常想使用web UI,易於維護,跨平台,有沒有什麼可以替換方案啊?nodejs+webkit那個項目好像好久沒有更新了,網易那個好像叫wex的項目也沒什麼更新了,Electron好像也不小。


怎樣解決Qt發布程序體積過大的問題? - 姚冬的回答

我這個回答是針對4.x的,Qt5變化很大我還沒去研究過,不過原理差不多。

Qt5官方發布的運行庫都是完整編譯,並且是最佳性能優化的,所以體積會很大。

如果自己編譯,可以剪裁掉不必要的模塊選項,編譯選項也可以指定為最小大小優化。

另外看運行庫大小不要看原始大小,要看7z極限壓縮後的大小,畢竟你發布的時候肯定是要壓縮的。由於WebEngine是基於WebKit項目的,這個項目里使用了大量C++ template,會導致代碼膨脹,但是這種膨脹是可以被7z壓縮掉的。比如最大的Qt5WebEngineCore 壓縮下就不到20MB了。

如果是做純WebUI,electron是更好的選擇,Qt還是主要為了面向C++開發的。

當然electron也不小,發行包也要40MB+的樣子,不過鑒於它是一個完整而強大的框架,大一點也正常。

如今用戶網速都很快,幾十MB的下載量不是什麼大問題。

如果你一定要追求極端大小,可以考慮用 CEF

https://code.google.com/archive/p/chromiumembedded/

這是一個剪裁過的Chrome瀏覽器內核,但是它只是個內核,要做成App還需要你自己搞定很多事情。


這個正適合我來回答。見

https://zhuanlan.zhihu.com/p/22663686

https://zhuanlan.zhihu.com/p/22611497?group_id=764036386641707008

現在的幾個框架,全都走chromium內核了,無論你怎麼裁剪,都很難裁的動了。

只要帶的是chromium,而且是比較新的版本,壓縮後基本都在3、40M以上。

所以我走了個比較徹底的路線,就是做加法。直接在blink的基礎上加功能,而不是在chromium的基礎上減東西,這才能做到壓縮後4M的大小。

目前miniblink這個庫已經開源,只是還有bug,等我再完善幾輪吧。


下Qt源碼,然後自行發布庫,把裡面用不到的部分刪減掉

這個得 @姚冬 ,他刪減後發布的YY,Qt部分只有20M


GitHub - BlzFans/wke: 3D Web UI. Web and Flash Embedded in 3D games, based on WebKit

http://www.terrainformatica.com/htmlayout/


先看看官方的一片文章 Introducing the Qt Lite project

大意讓 Qt 以任意尺寸運行在任意平台。有點誇大~不過可以關注一下~。


你的dll還少了不少,完整下來要100多M。 依賴的庫暫時沒辦法精簡,不過它的資源文件可以刪除一些。 打包壓縮下安裝文件大概20多M,還可以接受。


你好,qt5.7怎麼使用qtwebengine?

怎麼編譯qtwebengine? 謝謝!


可以試試使用upx之類的工具壓縮一下qt的動態庫


那些沒引用的動態庫可以刪除不?可以刪除下,看看程序能運行不。


推薦閱讀:

HTML5 實現錄音,然後上傳到伺服器,有現成方案嗎?
在對日文漢字標註假名時,<ruby>元素是不是一個好的解決方案?
如果是想學HTML5遊戲開發,技能樹怎麼點?
做H5頁面用什麼軟體比較好?
HTML5 到底是什麼?

TAG:HTML5 | QtC開發框架 | 用戶界面設計 |