2022年,開發(fā)獨(dú)立 EXE 桌面應(yīng)用程序,用什么語言、技術(shù)合適(開發(fā)桌面軟件)
先說明一下對「獨(dú)立 EXE」的要求:
1、程序只有一個 EXE 文件,不需要額外的安裝程序。
2、程序的體積要足夠小,不需要額外安裝其他運(yùn)行庫。寫「獨(dú)立 EXE」本就是為了方便,如果沒多少功能體積就達(dá)到幾十、幾百 MB,或者要額外安裝巨大的運(yùn)行庫,這就沒什么意思了。
3、程序只有一個 EXE 文件,不需要帶一堆其他文件。如果 EXE 文件帶著幾十、甚至上百個 DLL 或者其他文件,這不是獨(dú)立 EXE,這是全家桶。
4、程序不會將 AppData,Temp 這些運(yùn)行時數(shù)據(jù)都寫在 EXE 目錄下。因為 EXE 目錄不一定有寫權(quán)限,而且這樣做的話:將 EXE 文件放到桌面上、或者移動一下目錄都會亂套,而且可能因為誤操作導(dǎo)致丟失數(shù)據(jù),不利于便攜。
5、使用的語言、技術(shù)直接支持生成獨(dú)立 EXE,不需要復(fù)雜的代碼、步驟或者額外的第三方工具。有人說我用這個那個也能勉強(qiáng)生成獨(dú)立 EXE ,來吧,先看教程 …… 結(jié)果整了上萬字還沒有搞明白怎么弄,這不行。
如果您也有上述需求,那么可以試試 aardio 。
1、aardio 完全免費(fèi),并有最慷慨的免費(fèi)許可。個人或企業(yè)可免費(fèi)使用 aardio 開發(fā)商用、或非商用的應(yīng)用程序。使用 aardio 開發(fā)的軟件不需要放置鳴謝鏈接、不需要聲明使用 aardio 開發(fā)。
2、aardio 生成的軟件很小。
3、aardio 生成的軟件不需要安裝額外的外部運(yùn)行庫。
4、aardio 編寫的軟件有良好的兼容性,兼容 XP,Vista,Win7,Win8,Win10,Win11…… 等所有流行桌面操作系統(tǒng)。
5、aardio 很小也很簡單。編寫 aardio 程序也很簡單,幾句代碼就可以寫一個可運(yùn)行的程序,沒有任何復(fù)雜的操作。aardio 的也提供了大量可直接運(yùn)行與使用的范例 —— 上手成本低。很多用戶反饋下載 aardio 只是簡單看了一下,迅速就開發(fā)完成了需要的軟件。
6、aardio 直接支持生成獨(dú)立 EXE,aardio 中的很多庫、函數(shù)都自動支持獨(dú)立 EXE。這不需要額外修改代碼、或者付出額外的學(xué)習(xí)成本。
先看一個最簡單的例子,在 aardio 中可用下面的代碼讀文件內(nèi)容:
var str = string.load("/res/test.txt")
注意文件路徑最前面的單個斜桿(或反斜桿)表示 aardio 工程根目錄,aardio 工程中的子目錄 "/res/" 可以設(shè)為 EXE 內(nèi)嵌資源,也可以設(shè)為普通硬盤目錄,上面的代碼都不需要修改。
這只是舉一個簡單的例子,aardio 中的很多函數(shù)、庫都自動兼容這種資源路徑。你甚至可以在「單個 EXE」 里放一個 HTTP 服務(wù)器,再放一個網(wǎng)站,再創(chuàng)建一個瀏覽器來顯示這些網(wǎng)頁 —— 不需要任何外部文件,也不需要編寫任何復(fù)雜的代碼(參考 aardio 自帶范例)。
在 aardio 中還可以調(diào)用很多第三方編程語言,例如 C語言、C 、C#、Java、Python、R、Javascript、Node.js、Fortran、VB、Flash ActionScript、PHP、VBScript、PowerShell、NewLISP、AutoLISP、Delphi、FreeBASIC、Ruby、Rust、Julia、Nim、Go 語言、批處理 …… 請參考《 aardio 調(diào)用第三方編程語言示例》。
前些天一個 Python 用戶發(fā)給我的感謝信就是這么寫的 “…… 我是剛開始用 aardio 寫界面(實在不想用 PyQt 了),Python 寫數(shù)據(jù)處理業(yè)務(wù),感受到了 aardio 的強(qiáng)大和奇妙。我想把 Python 數(shù)據(jù)處理過程的信息反饋到前端界面中,《這回讓我們把 Python 玩出花來》看完后,用了幾分鐘搞定?。?!實在令人驚訝 aardio 的強(qiáng)大?。?!…… ”
GitHub 上一個 QT 用戶 yaleimeng 在開源項目主頁這樣寫道:“時隔四年,使用 aardio 重新開發(fā)二維碼識別與生成工具。舍棄了跨平臺特性。得到的是更高的開發(fā)效率,更小的軟件體積。原來使用 QT 和 C 語言開發(fā)項目在此,經(jīng)過了長期的學(xué)習(xí)才能寫出個像樣的東西。但是發(fā)布后軟件動輒 > 60MB,卻僅僅實現(xiàn)了一個小小的功能。讓人非常無語。本項目參考了 aardio 官方自帶示例,隨便改改,就初步達(dá)到了想要的效果。功能代碼非常簡短,可讀性好,而且最終發(fā)布軟件也會很小。”
aardio 編寫的開源軟件 ImTip :
ImTip 在 GitHub 發(fā)布后短時間就已超過 500 star。這是一個通用輸入法狀態(tài)有這些提示工具,僅用兩個字符就可提示中英、全半角、大小寫、中英標(biāo)點(diǎn)、多語言鍵盤布局等所有輸入法狀態(tài)。獨(dú)立 EXE,發(fā)行體積僅 588 KB。兼容 XP,Vista,Win7,Win8,Win10,Win11 …… 等所有流行桌面操作系統(tǒng)。
aardio 編寫的開源軟件 Gif123 :
最近很受歡迎的一個極簡錄屏軟件 ,發(fā)行體積僅 820 KB,無任何外部依賴,獨(dú)立 EXE ,兼容 XP,Vista,Win7,Win8,Win10,Win11 …… 等所有流行桌面操作系統(tǒng) 。
aardio 編寫的開源軟件 WubiLex :
貼吧一個關(guān)于 WubiLex 的討論帖子已經(jīng)超過 1200 回復(fù)。這也是一個獨(dú)立 EXE 程序,發(fā)行體積僅 890K。這是一個 Win10/Win11 系統(tǒng)自帶五筆的碼表與短語詞庫安裝、管理工具,并可增強(qiáng)微軟五筆的設(shè)置、熱鍵等功能。軟件已自帶五筆86、98、091、新世紀(jì)碼表,以及極點(diǎn)五筆、QQ五筆、微軟五筆默認(rèn)詞庫、昱瓊詞庫、海峰詞庫等。甚至自帶了小鶴音形、鄭碼、表形碼等碼表,可以一鍵把微軟五筆替換為小鶴音形輸入法、鄭碼輸入法、表形碼輸入法。
aardio 編寫的開源軟件 WinAsar :
獨(dú)立 EXE,體積僅 500KB,單文件,不需要運(yùn)行時,支持所有 Windows 操作系統(tǒng)。asar 文件打包、解包工具,不需要安裝 Node.js,純 aardio 代碼實現(xiàn)的 asar 解析器。
下面這個是 8 年前的開源項目,作者僅臨時學(xué)了個把月 aardio :
用 aardio 開發(fā)的桌面軟件比大家想象的要更多。但是 aardio 有著最慷慨的免費(fèi)許可協(xié)議,使用 aardio 開發(fā)的軟件不需要聲明使用了 aardio —— 這導(dǎo)致大家通常低估 aardio 開發(fā)的軟件數(shù)量。如果您注意一些其他的桌面軟件,就會發(fā)現(xiàn)在維護(hù)多年以后,用戶反饋中經(jīng)常會出現(xiàn)“崩潰”、“閃退” 等問題。但是請注意一下 aardio 開發(fā)的一些桌面軟件,例如 ImTip, Gif123, WubiLex ……在網(wǎng)絡(luò)上大量的用戶交流討論中,你幾乎看不到“崩潰”、“閃退” 這類反饋,如果您用 aardio 開發(fā)軟件,可能唯一需要擔(dān)心的事就是寫出來的 bug 太少了。
aardio 工程向?qū)В?/p>
可視化界面開發(fā),8 年前寫的范例:
aardio 自帶了大量的范例:
快如閃電的智能提示:
跳轉(zhuǎn)到定義:
九宮格自動縮放布局:
aardio 里可以方便地嵌入非常多的瀏覽器組件,甚至可以調(diào)用系統(tǒng)自帶的 Chrome 瀏覽器寫軟件界面,兼容 Chrome 啟動參數(shù)的瀏覽器都可以支持( 例如 Windows 自帶的瀏覽器 Edge Chromium),生成的 EXE 體積也非常小。