DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: fiscan1
今日帖子: 1
在线用户: 0
导航: 论坛 -> 移动应用开发 斑竹:flyers,iamdream  
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2022/7/28 16:21:01
标题:
Delphi 开发安卓 程序体积太大了,有没有办法减少点 浏览:2172
加入我的收藏
楼主: 1、生成的app的apk、so都很大,做了个测试代码大概1多千行,编译后的so文件有28兆,有没有办法弄小一点。
2、一个java 的测试例子的apk才80k,做成Delphi的apk要6兆,so文件有十几兆。
----------------------------------------------
-
作者:
男 net1999 (好人) ★☆☆☆☆ -
普通会员
2022/7/28 19:54:25
1楼: 关闭DEBUG项。
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2022/7/28 20:16:26
2楼: 已经是release模式
----------------------------------------------
-
作者:
男 emailx45 (emailx45) ▲▲▲▲△ -
普通会员
2022/7/28 21:37:44
3楼: the big problem is "graphical resources" used for all apps currently!
the FireMonkey do usage of many styles/skins/canvas/etc...

then, if you apps needs many this resources, your final-binary will be big!

each new edition of RAD Studio use many technics to avoid this but really the developer is king here!

in another native-language like used by Android, dont needs "add new graphical resources in final binary, because it's navite in O.S." like TControls in MSWindows.

Then, only somethings will be add in your final-binary!

summary: many RES, JARs, pictures, etc... it's the problem!

          !Code not!

any way, today all people like "beautiful things on the screen"
----------------------------------------------
The higher the degree, the greater the respect given to the humblest!RAD 11.3
作者:
男 zhuoyu (拙于) ▲▲▲▲△ -
普通会员
2022/7/28 22:51:27
4楼: 28M,真不算大,我们的APP都要60M多呢!
----------------------------------------------
-
作者:
男 zyp1984 (小李他妈的飞刀) ★☆☆☆☆ -
普通会员
2022/7/28 23:09:18
5楼: 只要比微信小那就不算大。。。。另外如果谷哥如果同意delphi在安卓系统中内置一些库的话,估计Delphi也可以很小。
----------------------------------------------
山外青山楼外楼,能人背后有能人弄..
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2022/7/29 0:37:54
6楼: 1. 真实情况是你安装的哪个 APP 都比 Delphi 的大很多;
2. 真实情况是,JAVA 是安卓的内置系统,JAVA 的程序估计用了很多系统自带的东西所以才小。但那些用 JAVA 开发的实用的 APP 比如微信,哪个又小了?
----------------------------------------------
-
作者:
男 newbuyer (newbuyer) ★☆☆☆☆ -
普通会员
2022/7/29 3:28:49
7楼: 这个...28m如果不是嵌入式设备,算很小了,不能跟java比. 现在写个Win的App,随便内置个Chromium/Python都无力吐槽.
----------------------------------------------
-
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2022/7/29 8:44:36
8楼: 以前,和微软的exe比大小,
现在,和谷歌的apk比大小。
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
男 k3man (嗯哼) ★☆☆☆☆ -
普通会员
2022/7/29 9:43:22
9楼: 刚开始玩吗?现在还在乎体积问题?早过了386时代跟字节集较劲时代了。Delphi所有库都不是官方集成在系统中的,每一次的编译都会被打进APP。道理跟Windows下的一样。你以为微软的体积很小吗?那是他的库被官方集成到了系统中。
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2022/7/29 11:37:48
10楼: 如果是做成了那没关系,在在开发过程中几个so加起来100兆,apk的包都80多兆,调试启动好慢的
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2022/7/29 12:30:27
11楼: 使用lazarus吧,一样可以andorid\iso\linux,虽然简陋点,但没有商业就没有雍肿。
----------------------------------------------
-
作者:
男 doersoft (hnysoft.com) ★☆☆☆☆ -
普通会员
2022/7/29 14:40:55
12楼: 楼主,先安心做出来好用的APP并成功上架运营,有了客户保证这APP能用,再考虑优化,再不济用flutter/原生 重写好了~~~
----------------------------------------------
delphi|vue|golang hnysoft|hnyerp+mes+srm
作者:
男 newbuyer (newbuyer) ★☆☆☆☆ -
普通会员
2022/7/30 7:31:18
13楼: Delphi开发Android的我没什么发言权, 不过开发的Win App的话其实有些工具可以看出EXE引用的哪些unit分别有哪些有多大,原理通常是分析.map文件或者解析源码关系. 很久以前我用过这个:
https://code.google.com/archive/p/delphiunitsizes/
刚刚试过还能用, 分析了自己的一个无界面自动更新程序, 光classes就350k.

另外我看了一下, GExpert 和 MMX 也有类似的工具, 没用过不好比较.
https://www.mmx-delphi.de/articles/unit-dependency-analyzer/
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2022/7/30 8:05:25
14楼: 1、Windows程序变大原因我大概知道,如果程序不含泛型,delphi程序一般都不大,引入泛型后,每加入一个泛型程序明显变大,我试过同样功能,不采用泛型程序大概5兆,用了泛型后要十几兆。

2、但泛型确实好用,用了泛型,代码明显清晰、简洁,我想编译优化工作,只能emb去做。

3、最近用delphi弄安卓程序,使用第三方的so、jar都很方便,但有时jar里发生异常,会莫名导致app闪退,在java或delphi代码加catch都没用,花了几天,换Delphi的不同的编译参数去试,才catch到异常,虽然意外,总算解决闪退,这肯定是Delphi的考虑不周,好悲催。

4、我想java几十k的apk,相同功能,Delphi却要十几兆apk,况且Delphi用的还是ndk,所产生的so肯定有无数垃圾,现在没有更好办法,只能升级的电脑内存、硬盘、cpu去解决。

5、最近试了C++Builder,还可以,速度快到超出我的想象,以往编译个东西要等半天,现在几乎按下键就编译好了。
----------------------------------------------
-
作者:
男 newbuyer (newbuyer) ★☆☆☆☆ -
普通会员
2022/7/30 10:50:37
15楼: 泛型原理应该就是个语法糖参数模板式复制代码,所以应该不容易"优化". 但是的确舒服好用.

程序员的电脑是吃饭工具, 投资不能少.

遇到艰难的问题解决了, 不妨公布给同行参考参考, 共同进步.
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2022/7/30 12:29:58
16楼: 并不是所有jar发生异常时都会闪退,我用了一个打开平板电脑led灯的jar,估计平板电脑内置了硬件接口相关包,在平板电脑能正常使用。但我用手机测试,而我的手机没有相关包,发生闪退,死活都不抛异常,在java和delphi代码加catch都不行,试了几天,勾了各编译组合,有时行,有时不行,当“Use debug .dcu”后在jar才正确抛出异常,不会闪退,编译出来的apk要大一些,这肯定是delphi的问题。
----------------------------------------------
-
作者:
男 stacker (OOP才是王道) ★☆☆☆☆ -
普通会员
2022/8/1 15:34:40
17楼: 你用Java和Delphi比不合适,Java是用SDK,而Delphi是用NDK,Java的UI都内建在系统里,而Delphi的则要自带。
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2022/8/1 15:50:56
18楼: so太大了,emb能不能做些优化,弄小一点,好调试,现在每次启动都要安装几十兆到手机太慢了。
----------------------------------------------
-
作者:
男 stacker (OOP才是王道) ★☆☆☆☆ -
普通会员
2022/8/2 7:49:22
19楼: 其实FMX和Unity/Unreal本质上是一样的东西,如果你认为FMX的库太大了,那你应该去看看后两者有没有比FMX小呢?
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2022/8/6 17:17:33
20楼: 看来Delphi release 有时闪退,也有人碰到
https://www.cnblogs.com/caibirdy1985/p/9470236.html

5)补充一个非常冷门的原因,代码优化BUG:常出现在APP使用DEBUG编译时运行正常,但使用RELEASE编译运行则崩溃

这种情况下,首先确认你的水平处于中高以上时,对自己的代码已经非常确定无错误,但实际中编译出来仍然会出现崩溃,可尝试关闭代码优化,DCC的编译器BUG是存在的,特别是对代码优化的处理上,每个版本的更新都会被报告或多或少几个编译器BUG。 所以关闭代码优化,可能可以解决崩溃问题!

需要注意的是,使用DEBUG和使用RELEASE编译使用的dcu不同,甚至代码中可能使用{$IFDEF DEBUG}做编译开关导致处理代码不同,因此需要优先排查此部分代码是否存在BUG。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2022/8/6 22:17:56
21楼: 目前为止,delphi 默认配置的 release 我没遇到过类似问题。

当然,有很多选项可以自己选的。如果是自己选的某个选项,那我不知道。反正默认的我没遇到过。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS