关于Processing开发应用及发布分享的一些经验分享

从2015年10月份开始接触Processing,到现在的2021年9月底,足足有6年了!笔者会竭尽全力把所有学到的知识、经验分享出来。这篇是关于Processing开发应用及发布分享的一些内容,可能会分好几期,慢慢整理。


关于发布、生成可执行应用文件(.exe)

因为日常都在Windows平台上工作,因此只针对exe可执行文件的发布分享来讨论。

Processing官方的IDE有输出成可执行文件的功能,点击菜单【文件-输出程序】即可。弹出的对话框如下图:
image
首先是基于系统平台,没什么好说的,默认Windows。
其次是展示模式,可以设成【Presentation Mode】,也就是展演模式,跟菜单【速写本-展示模式】一个效果,无论有没有定义fullScreen,都会全屏展示画布,展示分辨率低于桌面显示分辨率的话,超出部分被填充默认底色。当然还有个停止按钮的显示与否的控制。
再次是【Embed Java】,即是否要将JRE(java程序运行环境)一同复制一份并入应用目录中。Processing程序就是Java程序,因此JRE是必须要依赖的。如果被打开应用的系统上并没有相关JRE运行环境的环境设置以及包本身,那么是打不开应用的!而如果嵌入一起放入应用目录中,则不必担心是否有上述问题,无论该系统有无JRE环境都能正常运行。缺点是整个应用占磁盘空间增大了很多!本身Processing程序编译出来的字节码.class很小。还有个细节,我这里的截图是针对x64的,是64位版Processing导出,如果需要x86也就是32位版需要下载对应版本的Processing导出。

接下来看一下导出之后的目录文件及文件夹的样子。
image
image

可以看到默认命名application.windows32application.windows64两个文件夹被创建。其中的32位版是不包含JRE的,而64位版下面的java命名的文件夹就是JRE环境,默认大小186MB。其他的还有data文件夹,包含pde文件中所调资源的文件,如图片、视频、文本等;lib文件夹包含了java包文件.jar,如下图:
image
其中的Particles_guanfang.jar就是我们使用pde写的代码生成的字节码(逻辑),其他的都是Processing运行环境所需的功能包,特别是渲染部分opengl组件还有Processing自己的核心逻辑coresource文件夹中包含了源代码,包括.pde和自动填写的.java代码:
image
还有一个最重要的文件.exe可执行文件。至此官方给出的输出应用方案导出最后的结果就是上面看到的这些文件和文件夹。实质上官方也是借一个叫Launch4J的框架来生成相应的可执行应用程序。该框架免费使用,我们也可以单独使用它,选择需要输出的java源文件然后跟着向导推进,很方便就可导出exe可执行文件。而pde文件是独立于java语言系统的,要让其工作正常,就得需要.java源代码,这就为什么在source文件夹会多出一个自己补充填写好的.java文件。此文件代码内容容纳所有pde代码内容,使用标准的入口函数执行程序。
要发布,可以把application.windows64这个文件夹打包然后分享,用户只需要解包后进目录双击打开exe文件就能顺利运行程序。

 

应用程序的优化

说了那么多,并没有提到优化问题
【1】如果需要再封装,方便用户安装、卸载、管理,可以参考笔者的一篇关于安装包制作的分享文章:
【软件推荐】针对Windows平台的安装包制作工具汇总·自动化部署·打包软件

【2】看一看小小的官方例子打包出来的容量大小:
image
挺大的,是不是,相对其他商业软件而言,啊这~~~
试一试怎么瘦身。看一看哪里是大头!很显然,就是JRE环境包,整整186MB!能不能让他变得小巧一些但不失能力。答案是可以的,网上有不少相关资料,还有现成的“精简版JRE"供下载,试了一试,并不可行,Processing有他自己的封装,跟标准环境还有点出入,这个回头再探讨。总之可以参考我的做法:
找到java下面的bin文件夹,删除jfxwebkit.dll这个文件!
找到java下面的lib文件夹,删除ext文件夹!
这两个容量占比很大,删除后整个JRE变成100多MB,小了不少!还想减去也可以就得拆包,或者一个个小文件尝试删除而不影响运行,比较麻烦了。当然啦,如果打包了其实包大小还可以,比如采用精简版JRE后的压缩包大小为42.9MB,还算可以吧!

【3】如果输出多个PDE应用,则可以合并打包。如图:
image
怎么做到的?另外的多个PDE工程同样【文件-输出程序】,不用勾选JRE环境包了,导出之后,将文件夹中的所有文件及文件夹一起拷贝或剪切到第一个应用文件夹中,会有一些重复的文件,替换即可!这样就会自动合并。实际上是把对应程序的jar包放入指定文件夹中,还有data资源文件夹中的内容,还有最重要的exe文件统统合在一起了。当然source源代码如果不想分享出去也可删除、忽略。这样的做法,统一管理,也能很有效地降低了冗余数据,控制大小。回头可以借安装包的发布,生成一些快捷方式方便用户使用、运行和卸载。

 

小结

还有很多值得聊,比如可以增设批处理执行程序.bat.vbsps1等来统一管理应用;嵌入其他开发平台、应用软件中;手动打包导出应用等。慢慢来吧。希望能帮到读者,感谢。

posted @ 2021-09-27 20:57  SHARP-EYE  阅读(1204)  评论(0编辑  收藏  举报