如何优化Symbian代码及资源文件

guirenwang 2008-12-31 09:12:57
小弟刚刚从事Symbian开发几个月,目前正准备发布一个版本的软件,但是该软件是出乎意料的大(440K),其功能是肯定没有QQ2008那么强大,而且做的界面也没有QQ那么好看,所以我就在想肯地是我的代码或资源上没有处理好,因此在这里来求教优化代码的方法。
我们做项目的几个人都是Symbian新手,有几个有WM开发经验,经过讨论说图片(所有图片都是BMP格式,为了适应最大屏幕,我们将图片都定义的比较大)是必须优化,但是我却不知道该怎么优化,请各位高手来分享分享经验。

我知道这个内容很泛,但是希望各位高手分享分享经验,分数不是问题,散完了可以发帖在挣,就是希望可以得到高手指点。
...全文
219 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
coderwu 2009-01-19
  • 打赏
  • 举报
回复
顶,学习先~
guirenwang 2009-01-13
  • 打赏
  • 举报
回复
谢谢楼上,我在去看看代码哪里可以优化。
ymh8416 2009-01-10
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 guirenwang 的回复:]
引用 14 楼 ymh8416 的回复:
应该不只是BMP的。 我新建个view+container程序,一运行就发现占内存就170多K,

而我做出的程序有7个view+container,软件本身占内存280K, 用taskman一看,运行时占内存800多K,我哭了。。。

我的MBM只有5K

嗯,我觉得你说的有道理,我将图片(不算掩图18张(96 pix×96 pix))压缩到原来的一半,发现程序小了30K,看来还是要在控件上下功夫。

外加一点经验,我在Ed版上编译的结果…
[/Quote]

我感觉在view和container上的创建和析构上还有戏,不用的内存马上干掉就行了,可是这方面没有经验,高手过来谈谈啊。

上周改进了从container从取得 appui中的数据的方法,程序运行时占用内存小了60多K
guirenwang 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ymh8416 的回复:]
应该不只是BMP的。 我新建个view+container程序,一运行就发现占内存就170多K,

而我做出的程序有7个view+container,软件本身占内存280K, 用taskman一看,运行时占内存800多K,我哭了。。。

我的MBM只有5K
[/Quote]
嗯,我觉得你说的有道理,我将图片(不算掩图18张(96 pix×96 pix))压缩到原来的一半,发现程序小了30K,看来还是要在控件上下功夫。

外加一点经验,我在Ed版上编译的结果比在fp1版上编译的结果要打近100k,而fp1版的也可以在ed版的手机上运行正常,看来编译器有很大的作用。到网上找了个RVCT的编译器,听说是开发利器,正在研究。。。
whhema 2009-01-06
  • 打赏
  • 举报
回复
建议楼主把bmp换成jpg,用的时候直接解码就成了
ymh8416 2009-01-06
  • 打赏
  • 举报
回复
应该不只是BMP的。 我新建个view+container程序,一运行就发现占内存就170多K,

而我做出的程序有7个view+container,软件本身占内存280K, 用taskman一看,运行时占内存800多K,我哭了。。。

我的MBM只有5K
guirenwang 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dyw 的回复:]
如前面所说,应该主要是BMP文件的问题。可以算一下BMP文件总共有多大。

只屏幕大小的图片动态解码也是很好的选择。若仍使用bmp文件,可以压缩一下,运行时再解压使用。
[/Quote]

[Quote=引用 4 楼 BEYONDMA 的回复:]
先看看你的资源有多大,最后用SVG。少用BMP。
[/Quote]
我的资源文件,就是那个MBM占了189K,实在是要压缩。
目前正在寻找BMP转SVG的工具,不知道两位可否指点一二
dyw 2008-12-31
  • 打赏
  • 举报
回复
如前面所说,应该主要是BMP文件的问题。可以算一下BMP文件总共有多大。

只屏幕大小的图片动态解码也是很好的选择。若仍使用bmp文件,可以压缩一下,运行时再解压使用。
anel 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guirenwang 的回复:]
非常感谢各位,再此我提出我的几点疑虑:
引用 1 楼 anel 的回复:
设法合并相同或相似的资源定义;
如有相同或相似的代码可合并成局部函数;
待续...

合并资源定义是可以,但是这样对于后面的项目升级和维护是不是会带来一定的难度,毕竟我们还是第一次开发Symbian项目。
[/Quote]

这个取决于你的归纳能力,熟练后没问题了
guirenwang 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 anel 的回复:]
能不用资源文件就不用资源文件如listbox和editor
[/Quote]
我们都是新手,我们会向这方面努力的。
guirenwang 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 alex_hua 的回复:]
代码上的简洁优化对整个程序大小影响不大,当然再仔细检查一遍最好,去除冗余代码。
主要还是你的资源文件,而图片增加整个程序大小的最大因素。如下建议:
1. 如必需要用bmp格式文件,则在满足显示要求的前提下,降低bmp资源图片的颜色深度
2. 若其中某些是动态显示需要的,可以其他小图片格式满足,如gif,使用动态加载解码方式
3. 若再精简考虑,结合程序功能,动态从网络下载所需图片资源,再动态加载解码显示
[/Quote]
你所提到的动态加载解码方式会不会给系统带来额外的开销,会不会拖慢软件的运行速度?而为了节省空间的开销来花费时间性能的开销是否值得?
guirenwang 2008-12-31
  • 打赏
  • 举报
回复
非常感谢各位,再此我提出我的几点疑虑:
[Quote=引用 1 楼 anel 的回复:]
设法合并相同或相似的资源定义;
如有相同或相似的代码可合并成局部函数;
待续...
[/Quote]
合并资源定义是可以,但是这样对于后面的项目升级和维护是不是会带来一定的难度,毕竟我们还是第一次开发Symbian项目。
beyondma 2008-12-31
  • 打赏
  • 举报
回复
先看看你的资源有多大,最后用SVG。少用BMP。
anel 2008-12-31
  • 打赏
  • 举报
回复
能不用资源文件就不用资源文件如listbox和editor
alex_hua 2008-12-31
  • 打赏
  • 举报
回复
代码上的简洁优化对整个程序大小影响不大,当然再仔细检查一遍最好,去除冗余代码。
主要还是你的资源文件,而图片增加整个程序大小的最大因素。如下建议:
1. 如必需要用bmp格式文件,则在满足显示要求的前提下,降低bmp资源图片的颜色深度
2. 若其中某些是动态显示需要的,可以其他小图片格式满足,如gif,使用动态加载解码方式
3. 若再精简考虑,结合程序功能,动态从网络下载所需图片资源,再动态加载解码显示
anel 2008-12-31
  • 打赏
  • 举报
回复
设法合并相同或相似的资源定义;
如有相同或相似的代码可合并成局部函数;
待续...
btsy2000 2008-12-31
  • 打赏
  • 举报
回复
你可以考虑用jpg代替bmp应该会缩小不少体积
dyw 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 guirenwang 的回复:]
我的资源文件,就是那个MBM占了189K,实在是要压缩。
目前正在寻找BMP转SVG的工具,不知道两位可否指点一二
[/Quote]

恐怕没有这样的工具。找个专业美工绘制一下,注意不要在SVG图中嵌入其它图形,而是使用完全的矢量图。
儿大不由爷 2008-12-31
  • 打赏
  • 举报
回复
BMP 可以使用8位色的,能小不少呢,显示效果也差不多少。
本文档是本人5年JAVA经验整理的文档(持续性的),由于CSDN只能单个附件只能上传15MB,所以只好分包压缩了(4个包),希望各位同行能够理解。 本文档包括JAVA/FLEX/数据建模/Database/移动办公/项目管理/单点登录/软件架构/测试等相关性技术。 本文档还在持续维护中,各位可以通过《笔记变更说明》查看升级日志。 在这里声明下,本文档一部分是个人从学习、工作中整理出来的(代码都是经过调试的),还有一部分是从网上整理的。 本站相关文档都是经过后期整理的,或是在实际工作中整理的实例代码总结而成的。 由于本人目前允许上传的资源太小,所以无法上传整个的技术学习笔记(JAVA 五年的工作经验和学习笔记),待以后有机会会分享给大家。 技术体系包括: J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)/LDAP/C++/Portal/即时通讯/数据建模/UML/UML设计工具(Rose、EA、PD等)/移动办公(Android、Symbian、Wap等技术)/项目管理(敏捷开发等)/软件架构(NoSQL、SaaS、设计模式等)/数据库(MySQL、Oracle、EDB、SQLServer等)/测试(单元测试、压力测试)/linux服务器等 其中含有大量实例源代码。 这里需要说明的时,该文档是本人5年工作经验的积累,文档中大部分知识点来源于实际工作中的总结,(除了JAR等资源文件外)其代码都是可运行的,还有一部分知识来源于网络或者其他书籍,这里做一些收集,使该体系更加完善。

3,120

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧