Qt 5.7使用QWebEngine載入html做UI,但運行庫卻近70M,如何能減少體積?
01-09
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的下載量不是什麼大問題。如果你一定要追求極端大小,可以考慮用 CEFhttps://code.google.com/archive/p/chromiumembedded/這是一個剪裁過的Chrome瀏覽器內核,但是它只是個內核,要做成App還需要你自己搞定很多事情。
這個正適合我來回答。見
https://zhuanlan.zhihu.com/p/22663686https://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 WebKithttp://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 到底是什麼?