看了一篇《关于使用Delphi XE10 进行android开发的一些总结》有些想说的。
以下内容有复制原文,正常字体显示的是原文,黑体是我想说的。
我并不想讨论什么样的开发语言更优秀,只希望能以我自己的体会、总结的使用情况,说出我的感受
如果说, 再有新项目, 让我选择用Java还是Delphi, 那么, 我会毫不犹豫的选择使用 Java…
(选择什么语言开发,都是各自的权利,没什么应该选这或不应该选哪的,根据自己的需要,不要误导也不要被误导。)
不可否则, Delphi在界面上, 确实没的说, 搭建速度快, 所见即所得, 传说的一份代码多平台使用(确实可以在ios下运行, 但是也会存在不少问题)
(无论什么系统,都会存在问题,Delphi做的时候肯定也会有问题,我们应该理性的去区分出现问题的根源,有部分朋友只要一发现问题就说是XX的问题,这样是不正确的、不科学的、不客观的)
但是, 由于以下几个问题, 导致我完全, 再也不想用Delphi做Android开发了:
- 应用第三方Jar包非常麻烦
首先, 要用第三方工具, 将jar转换成pas;
其次, 转换后也不一定可以直接使用, 需要逐步的排查错误, 导入需要的文件;
无所谓, 反正arcgis map的5W行pas文件, 我都调试通过了…
(Delphi使用Jar包其实已经非常方便了,我做过很多调用JAR方面的技术工作,总结一下:调用Jar确实不好做,非常多的坑,只是我们要知道的是,我到现在所遇到的坑95%以上是第三方的原因,例如常见的是开发文档与调用方式不匹配,包括某些大厂如某宝某讯,他们的接口说明都有部分描述错误。还有某为的技术支持,接触不多,正好遇到技术不咋的来做支持,弄得我非常的郁闷,最后还是自己想办法解决的,当然我还是相信其他多数技术人员应该非常牛逼的。
这里只是想说明:朋友们使用Delphi调用JAR时,需要做好思想准备,坑很多,但基本与DELPHI无关,使用JAVA开发同样也会遇到,只是他们会直接看DEMO或复制DEMO里的代码,所以就很少发现问题。
多提一点建议给需要调用JAR包的朋友,如果打算做接口,请一定找到JAR对应的开发文档,并且一定要有JAR对应的DEMO代码,有程序也行,可以反编译得到JAVA代码,然后文档做参考,代码作对照,一定不要全信文档,很多朋友自己可能都这样搞的,接口变了懒得或忘了去更新文档,做技术的80%以上不喜欢写文档。所以调用JAR包,懂JAVA也是非常重要的,不懂的话,尽可能就别做。
不多说了,JAR这部请看另一篇博客。
- Webbrowser, ArcGIS Map这样的控件, 永远在最顶层
这就很烦躁了, 想跟其他界面进行交互, 就需要不停的显示, 隐藏, 这些顶层控件所在的界面, 如果要在这层界面上加控件, 恭喜你, 练习用代码创建控件, 并布局的好时候到了;
(这里说到的问题,在10.3以前确实存在的,只要使用系统控件,那么系统控件就会在最上层,其他delphi的控件都会被挡住)
- 莫名其妙的Android就无法调试了
选择Android, 启动调试, 程序在手机上运行起来了, IDE中根本没有调试…也是莫名其妙的出现
(这个肯定是博主自己的技术问题,不管是安卓还是IOS,我反正是都可以调试,调试也是我解决问题的主要方法之一。XE5开始,我都用过调试,而且调试是超级的方便。)
- 代码到手机上运行的过程太慢
无论你修改没有修改代码, 总是全部编译一遍, 然后安装到手机上, 全套大概要500, 呸,要3~5分钟…(Eclipse就聪明多了, 没修改代码, 直接就可以开始调试了 )
(这一点,博主可能有些误会或误解,delphi里,compile、build是有区别的,什么时候应该使用什么,请根据自己的需要选择。
然后想给大家说的是:代码到手机上很快的。)
- 各种莫名其妙的错误
程序异常崩溃, FreeAndNil界面时崩溃, Frame隐藏/显示几次, 界面控件点击输入法卡死…炒鸡不稳定的玩意…
(同样的问题,我可能没怎么遇到,我知道的是随意FreeAndNil,或应该FreeAndNil的没有FreeAndNil,都会出现问题。然后是,出问题,一定不会是“莫名其妙”,就算是出现问题,一定是有原因的。学会科学、客观的去分析并解决问题。)
- 吃内存…太吃内存了…对编译机器的配置要求也高…
(这个我不太想说,大家有兴趣可以自己去试,反正我现在机器配置是高,当然也用过10年前“512地震前买的”的电脑做开发,那是去年的事,电脑是刚换的。)
以下是我本机截图:(大家自行比较一下内存、句柄使用量、线程量),上面是AS开发安卓的,下面BDS是DELPHI的。
最后,推荐给大家另一篇博文:
有视频可以证明的。仅用不到三分钟时间,没写一行代码完成数据服务器程序开发;余下5分钟完成应用端程序配置与界面、再用2分钟完成10行代码,总共10分钟10行代码完成包括用户登录、数据读取、数据显示、检索等功能,并生成Android、iOS、Mac、Win32、Win64多个运行平台下的应用程序(APP)。