從2015年10月份開始接觸Processing,到現在的2021年9月底,足足有6年了!筆者會竭盡全力把所有學到的知識、經驗分享出來。這篇是關於Processing開發應用及發布分享的一些內容,可能會分好幾期,慢慢整理。
關於發布、生成可執行應用文件(.exe)
因為日常都在Windows平台上工作,因此只針對exe可執行文件的發布分享來討論。
Processing官方的IDE有輸出成可執行文件的功能,點擊菜單【文件-輸出程序】即可。彈出的對話框如下圖:
首先是基於系統平台,沒什么好說的,默認Windows。
其次是展示模式,可以設成【Presentation Mode】,也就是展演模式,跟菜單【速寫本-展示模式】一個效果,無論有沒有定義fullScreen
,都會全屏展示畫布,展示分辨率低於桌面顯示分辨率的話,超出部分被填充默認底色。當然還有個停止按鈕的顯示與否的控制。
再次是【Embed Java】,即是否要將JRE
(java程序運行環境)一同復制一份並入應用目錄中。Processing程序就是Java程序,因此JRE是必須要依賴的。如果被打開應用的系統上並沒有相關JRE運行環境的環境設置以及包本身,那么是打不開應用的!而如果嵌入一起放入應用目錄中,則不必擔心是否有上述問題,無論該系統有無JRE環境都能正常運行。缺點是整個應用占磁盤空間增大了很多!本身Processing程序編譯出來的字節碼.class
很小。還有個細節,我這里的截圖是針對x64的,是64位版Processing導出,如果需要x86也就是32位版需要下載對應版本的Processing導出。
接下來看一下導出之后的目錄文件及文件夾的樣子。
可以看到默認命名application.windows32
、application.windows64
兩個文件夾被創建。其中的32位版是不包含JRE的,而64位版下面的java
命名的文件夾就是JRE環境,默認大小186MB。其他的還有data
文件夾,包含pde文件中所調資源的文件,如圖片、視頻、文本等;lib
文件夾包含了java包文件.jar
,如下圖:
其中的Particles_guanfang.jar
就是我們使用pde寫的代碼生成的字節碼(邏輯),其他的都是Processing運行環境所需的功能包,特別是渲染部分opengl
組件還有Processing自己的核心邏輯core
;source
文件夾中包含了源代碼,包括.pde
和自動填寫的.java
代碼:
還有一個最重要的文件.exe
可執行文件。至此官方給出的輸出應用方案導出最后的結果就是上面看到的這些文件和文件夾。實質上官方也是借一個叫Launch4J
的框架來生成相應的可執行應用程序。該框架免費使用,我們也可以單獨使用它,選擇需要輸出的java源文件然后跟着向導推進,很方便就可導出exe可執行文件。而pde文件是獨立於java語言系統的,要讓其工作正常,就得需要.java
源代碼,這就為什么在source
文件夾會多出一個自己補充填寫好的.java
文件。此文件代碼內容容納所有pde代碼內容,使用標准的入口函數執行程序。
要發布,可以把application.windows64
這個文件夾打包然后分享,用戶只需要解包后進目錄雙擊打開exe文件就能順利運行程序。
應用程序的優化
說了那么多,並沒有提到優化問題。
【1】如果需要再封裝,方便用戶安裝、卸載、管理,可以參考筆者的一篇關於安裝包制作的分享文章:
【軟件推薦】針對Windows平台的安裝包制作工具匯總·自動化部署·打包軟件
【2】看一看小小的官方例子打包出來的容量大小:
挺大的,是不是,相對其他商業軟件而言,啊這~~~
試一試怎么瘦身。看一看哪里是大頭!很顯然,就是JRE環境包,整整186MB!能不能讓他變得小巧一些但不失能力。答案是可以的,網上有不少相關資料,還有現成的“精簡版JRE"供下載,試了一試,並不可行,Processing有他自己的封裝,跟標准環境還有點出入,這個回頭再探討。總之可以參考我的做法:
①找到java
下面的bin
文件夾,刪除jfxwebkit.dll
這個文件!
②找到java
下面的lib
文件夾,刪除ext
文件夾!
這兩個容量占比很大,刪除后整個JRE變成100多MB,小了不少!還想減去也可以就得拆包,或者一個個小文件嘗試刪除而不影響運行,比較麻煩了。當然啦,如果打包了其實包大小還可以,比如采用精簡版JRE后的壓縮包大小為42.9MB,還算可以吧!
【3】如果輸出多個PDE應用,則可以合並打包。如圖:
怎么做到的?另外的多個PDE工程同樣【文件-輸出程序】,不用勾選JRE環境包了,導出之后,將文件夾中的所有文件及文件夾一起拷貝或剪切到第一個應用文件夾中,會有一些重復的文件,替換即可!這樣就會自動合並。實際上是把對應程序的jar
包放入指定文件夾中,還有data
資源文件夾中的內容,還有最重要的exe
文件統統合在一起了。當然source
源代碼如果不想分享出去也可刪除、忽略。這樣的做法,統一管理,也能很有效地降低了冗余數據,控制大小。回頭可以借安裝包的發布,生成一些快捷方式方便用戶使用、運行和卸載。
小結
還有很多值得聊,比如可以增設批處理執行程序.bat
、.vbs
、ps1
等來統一管理應用;嵌入其他開發平台、應用軟件中;手動打包導出應用等。慢慢來吧。希望能幫到讀者,感謝。