V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
20015jjw
V2EX  ›  问与答

Android 上多图内容内存老不够 - - 求问怎么办

  •  1
     
  •   20015jjw · 2015-12-04 09:36:58 +08:00 · 2560 次点击
    这是一个创建于 3281 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在写一个论坛的客户端,现在主要问题就是如果设备是平板什么的,可能会 OOM ,但是不知道怎么解决。
    截图如下:
    Screenshot

    虽然截图中看起来一个屏幕上的图还好,不是那么多,但是左右有好多 Tab ,每个 Tab 里面都会有好多图。

    容器是RecyclerView里面加上CardView,载图是用的Picasso,并且已经用了 cache 和 resize 。现在不是很明白怎么才能优化这个,或者可能可以增大可用内存空间什么?我看我的 AS 每次都 cap 在 95M 这样。平板是 Nexus 9 。

    11 条回复    2015-12-04 20:52:46 +08:00
    kslr
        1
    kslr  
       2015-12-04 10:07:42 +08:00
    想起来第一部手机了,当时打开一个有 100+图的页面会崩溃,然后每次看一点就死机重启继续翻下一页,继续死机
    ufo22940268
        2
    ufo22940268  
       2015-12-04 10:31:38 +08:00   ❤️ 1
    20015jjw
        3
    20015jjw  
    OP
       2015-12-04 11:55:57 +08:00 via Android
    @ufo22940268 似乎 picasso 的 resize 就是 subsample 我再看看 我在想是不是有啥没有 recycle 掉 因为我滚到下面上面的图似乎不需要再载入一次了 然而感觉就算从 cache 载也没那么快把...? 蟹蟹
    20015jjw
        4
    20015jjw  
    OP
       2015-12-04 11:58:53 +08:00 via Android
    @kslr hhhh 我当年的 G1 貌似还没装过有 100 个图的 App
    em70
        5
    em70  
       2015-12-04 12:12:49 +08:00 via Android
    图文混排是 HTML5 在移动设备上唯一比原生好的地方
    lucifer9
        6
    lucifer9  
       2015-12-04 14:22:13 +08:00
    需要问一下,做 1024 客户端的是怎么克服这个问题的
    dslwind
        7
    dslwind  
       2015-12-04 15:45:23 +08:00 via Android
    @lucifer9 1024 客户端在我一台 1G RAM 的安卓机上看达盖尔的旗帜版块经常会崩溃……
    dullwit
        8
    dullwit  
       2015-12-04 16:47:48 +08:00   ❤️ 1
    1. Fragment 的管理( setOffscreenPageLimit? 切换 Fragment 是否释放图片)
    2. 滑动的是否暂停加载图片?
    3. LruCache 划分的大小?(手机内存低,可以考虑向 Ashmem 里写入图片)
    目前暂时想得这些,还有极端的方法
    sunpj
        9
    sunpj  
       2015-12-04 17:16:30 +08:00   ❤️ 1
    setOffscreenPageLimit 改成 1 吧 虽然这样切换会比较慢。。
    实在不行考虑使用 facebook 的 fresco 那个内存管理好点
    TVBG
        10
    TVBG  
       2015-12-04 19:47:48 +08:00   ❤️ 1
    需要用到两级缓存,内存缓存和磁盘缓存,内存缓存要限制大小。
    KNOX
        11
    KNOX  
       2015-12-04 20:52:46 +08:00   ❤️ 1
    试试 glide
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3597 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:50 · PVG 18:50 · LAX 02:50 · JFK 05:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.