Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
5 MB对于BlackBerry应用程序是否太大?_Blackberry - Fatal编程技术网

5 MB对于BlackBerry应用程序是否太大?

5 MB对于BlackBerry应用程序是否太大?,blackberry,Blackberry,我参与了一个遗留的BlackBerry应用程序,其中COD安装文件的大小约为5MB(主要来自嵌入式图像等)。这个尺寸值得关注吗?黑莓应用程序通常应该更小,为什么?你应该首先尝试优化你的图像。运行图像槽是一个很好的方法。查看是否可以用较小的图像替换某些图像,或者尽可能多地使用相同的图像。黑莓设备的RAM为32、64或128 MB,具体取决于型号。你需要考虑是否所有这些5 MB将同时用于内存中,或者如果它将使用更小或更大的量。记住,你可以让一个应用程序的内存增加到40MB,但是不能运行其他应用程序。

我参与了一个遗留的BlackBerry应用程序,其中COD安装文件的大小约为5MB(主要来自嵌入式图像等)。这个尺寸值得关注吗?黑莓应用程序通常应该更小,为什么?

你应该首先尝试优化你的图像。运行图像槽是一个很好的方法。查看是否可以用较小的图像替换某些图像,或者尽可能多地使用相同的图像。
黑莓设备的RAM为32、64或128 MB,具体取决于型号。你需要考虑是否所有这些5 MB将同时用于内存中,或者如果它将使用更小或更大的量。记住,你可以让一个应用程序的内存增加到40MB,但是不能运行其他应用程序。

我不认为5Mb对于现代智能手机来说太多。无论如何,如果你的应用程序真的需要所有的图像,那么你就别无选择,只有一个大的代码文件。在互联网速度较慢的某些情况下,这可能会导致OTA安装过程缓慢。因此,一些不耐烦的用户可能会取消安装。为了克服安装速度慢的问题,一些开发人员将核心代码与资源分开,因此在OTA安装后,在第一次运行应用程序时,可能会在弹出窗口或某种安装向导下下载资源。这当然会使启动代码更难实现

我能想到的另一个问题是,图像的大小是否优化了?BB以16位每色通道方案(RGB 565)显示颜色,与图像颜色深度无关。因此,通过一些565过滤器对所有图像(如果还没有)进行预处理是值得的。这方面的Photoshop插件很少。然而,不要指望一个巨大的尺寸减少。对于5 Mb的图像集,您可能只会获得1 Mb的“折扣”(20%),所以无论如何,您仍然会有几Mb的图像

最后一点要注意的是,确保正确地构建类,以便正确地利用RAM。很可能您的图像资源是以某种压缩图像格式(JPG、PNG)的形式存在的。因此,在这种形式下,它们相对较小,但当它们成为位图时,位图区域的每个像素至少占用2字节或最多占用4字节(取决于位图类型)。确保你不要玩太多静态的东西,因为一旦加载,它将一直存在(消耗内存),直到应用程序结束,除非你手动将其清空


谢谢。

到目前为止,这个问题有一些很好的答案。我想补充的一点是,如果你的应用程序中有重复的图像(以支持不同设备上的不同屏幕大小),那么考虑创建应用程序的不同版本,这些应用程序只使用特定屏幕大小的图像。如果您还针对不同的操作系统版本,这可能会使构建的总数增加很多—但是如果您关心应用程序的大小,那么这是一个很好的方法。

不幸的是,图像非常精细,因为它们使用了大量渐变。BB屏幕通常为16位彩色,任何类型的图像压缩都会让它们看起来特别可怕。最新的设备,如Torch 9800和Bold 9850,有512MB的闪存,因此随着时间的推移,问题越来越少。但是仍然有很多市场上的设备空间有限,特别是如果已经安装了大量的应用程序的话。我认为如果是png的话,压缩是无损的,而如果是jpeg的话,压缩损失很小。试试看,如果你不喜欢结果,就不要使用这些图像。这是黑莓手机,不是“现代智能手机”。)新版本的操作系统是否具有32位ARGB位图类型?我被困在4.6.1中,只是看了看4.6.1和6.0的位图API——它们在这一部分没有区别。