事情是这样的,我的同事让我帮他看这个代码为什么不分配内存,我看了两天没啥结果,水平不够就来问了
binding.button.setOnClickListener { repeat(1000) { list.add(Bitmap.createBitmap(10240, 1024 / 4, Bitmap.Config.ARGB_8888)) } } 通过 Android studio 的 profiler 查看内存根本没动静,dump 出来看到都 bitmap 的 Native size 都已经 9 个 G 了(亲测),每个 java bitmao 也都有 NativePtr,还不是相同的,但是这应该是 bug 或者是虚拟内存空间的?搞不懂,然后看了两天代码,基础有点差,最后只看到确实分配了内存
sk_sp<Bitmap> Bitmap::allocateHeapBitmap(size_t size, const SkImageInfo& info, size_t rowBytes) { // 应该是这里吧?? void* addr = calloc(size, 1); if (!addr) { return nullptr; } return sk_sp<Bitmap>(new Bitmap(addr, size, info, rowBytes)); } 昨天也是搞到几点才睡觉,救
