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