如果图片很多,50M算不算合理?还是说有其他的评判维度呢?
1
xpfd 2015-05-06 09:12:46 +08:00 1
对于java程序来讲,内存从来就是the more the better
|
2
Prothunder OP @xpfd 总内存当然是the more the better,但是单个程序的内存应该是the less the better
|
3
zhaoxiting1997 2015-05-06 09:17:47 +08:00 via Android 1
非浏览器,游戏的话,50M可以接受,超过100M无法接受(运行时),后台时最多50M,太多就找精简版的或禁止后台了
|
4
c742435 2015-05-06 09:32:19 +08:00 3
前台 占用几百兆都无所谓,只要不出现崩溃;
后台占用,哼哼,20m就浪费 |
5
kyze8439690 2015-05-06 09:39:14 +08:00 1
是屏幕像素而分,像我用nexus5一般在五六十m浮动,而且重复打开关闭activity不会泄露。
|
6
CtrlSpace 2015-05-06 09:40:38 +08:00 1
超过100MB 开始,性能较差的机子就会开始卡顿了
|
7
Prothunder OP @CtrlSpace 100M,允许的空间还是挺大的
|
8
holmesabc 2015-05-06 09:43:43 +08:00 1
微信一个进程120M
|
9
mthli 2015-05-06 09:48:33 +08:00 1
内存变化平缓比较好,如果出现大范围GC的话体验肯定不好。
|
10
morethansean 2015-05-06 09:57:30 +08:00 1
同4L,前台你爱咋地咋地,只要不崩溃别卡出翔……
后台进程上了10mb 都看不惯……特别在一群有些时候根本就显示0MB 的用 GCM的程序堆里出现一个在后台一直站着几十 MB 的 APP 时,就真的很烦躁…… |
11
pomelom 2015-05-06 17:07:55 +08:00
@zhaoxiting1997 微信QQ100以上妥妥的..
|
12
allan1st 2015-05-06 18:56:05 +08:00 1
感觉你们都走到了误区里去了,Android App 质量不是以占多少内存 来衡量的,内存是系统分配的,给你多少你就有多少;好的 app 是在系统给你 30m 内存和 130m 内存的时候都能很好的平衡性能,而且能在 app 切到 background,并且系统有需要的时候释放这部分内存。
|
13
allan1st 2015-05-06 19:17:55 +08:00 2
另外科普一下 Android 内存和 GC Bitmap 等知识,浅见,如果有错误请指出:
比方说你的 Android App 需要显示一张图,计算简单就算它 1024*1024 像素,这张图的 Bitmap 在内存里面占用 2M (RGB565)和 4M (RGB8888),只要这张图片还在屏幕上显示,那么它必须存在内存里;反之不然:bitmap 会继续保持在内存里,这样你下次要显示这张图片就会一下子读取出来,因为内存是非常快的。如果 App 需要更多的内存怎么办,Android 的 Delvik/ART 会做一次 GC,回收那些已经移出屏幕外边的 bitmap,因此你就有更多内存可以读取新图片了。 那么什么时候会崩溃和卡呢? 1. 卡: 图片太大或者太密集,导致频繁的 GC:Android 的 GC 是 stop the world 的,主线程也会因此受到阻塞,如果阻塞时间大于 16ms (60分之一秒),那么就会掉帧,也就是卡。 另外和系统也有关系: 三星 Galaxy S4 内存1G。最新系统好像是 4.1。一次 GC 居然要用20ms 以上,每个 App 基本只有 50m 左右分配到的空间,那么必须卡。 Moto G 1st gen 内存1G。最新系统 Android 5,用的 ART,一次 GC 只有 2-5ms,而且每个 app 可以分到 60 - 80M 左右,看上去流畅的像飞一样。 2. 崩溃 有些垃圾程序员不知道 ListView/RecyclerView 可以回收重用,或者自己写了个很差劲的 Cache,或者很多 Activity 内存泄露,那么可用的内存就越来越少,等到真的要用内存的时候就不够了,这样就会 out-of-memory 了,也就是奔溃了。 一个优秀的 app 是不可能在你切换到后台后还在 Running 里面看到占用几十一百M 的内存的;它只会出现在 Cached Processes 里面,这是系统随时可以回收的部分。 希望能够帮助你们判断 App 到底好不好,而不是看到一个图片为主的 app 达到了100M 就认为它流氓。 |
14
zhaoxiting1997 2015-05-06 20:17:21 +08:00 via Android
@pomelom 所以我微信有coolapk上的去后台老版,QQ只用国际版
|
15
Prothunder OP @allan1st 非常感谢,学到不少
|
16
shaobin0604 2015-05-14 14:45:31 +08:00
感谢 @allan1st ,另外指出一个问题,Galaxy S4 的 ram 是 2g
|
17
allan1st 2015-05-14 15:15:37 +08:00 via Android
@shaobin0604 不是内存说错了,是型号,s3 1g RAM版本。谢谢。
|
18
dast 2015-05-22 22:16:30 +08:00
@zhaoxiting1997 国际版,好多BUG
|