公司里在目前都是用c/c++ & html5 开发客户端,cef + html5负责页面渲染,而业务逻辑部分交给 c/c++, 中间通过 js bridge 让页面的js 和 c/c++ 通讯。 而服务端程序用java开发。
由于个人对 c/c++ 不熟,也无爱,因此想试试用java + html5 写一个类似的客户端。
翻了一下资料,最新的也就是javafx2.0,资料虽然不多,但官方还是有demo和tutorial,照猫画虎还是难度不高的。
javafx自带webview,支持webkit,也直接支持 js 同 后台java通讯,功能上没什么问题。借助java丰富的库支持,后台功能写起来也非常方便。
开发过程中,javafx也有一些缺陷。
a : 在 mac mdp上, 显示稍模糊,忍了,毕竟在windows电脑上显示正常。
b : javafx开源喊了这么久了,到现在还没开源,出异常了没法追,只能网上找或自己看日志信息。
花了两天,搭了一个大概的架子,使用maven添加了一些第三方的库,虽然对客户端程序而言,过分地引用第三方包会增大体积,但该用的还是要的,而且还有可能用proguard等工具过滤掉无用的类对象。
自己的代码加上引用的jar包,大概2M,大概实现浏览网页,下载app,adb install之类的功能。
然后我想啊,大部分人没有javafx运行环境的,需要把运行环境一起打包进去的,然后试了一下javafxpackager,打包出了一个mac上使用的dmg,大小144M,当时就想摔电脑了。。。。。。
官方虽然有提可以做runtime的裁剪,但并没有提供裁剪好的范例,个人裁剪runtime还是有一些风险。 也查了一下是否可以把java直接编译为native code的方法来缩小体积,部分是商用的,而且也不保证同jvm完全的兼容性。 完全没看到oracle投入任何的精力在 java 转 native code上。
不得不伤心地说,如果不解决javafx 和 jvm 体积或本地化的问题,java在桌面上没有前途。
下一步试试python + html5, 先学学python。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于