有没有人使用过fresco库加载图片解决OOM问题的?因为我的项目需要大量加载图片,用了fresco库主要就是想解决GC相关OOM问题,但是发现项目在AS中使用fresco库运行在21安卓版本以下还是会出现OOM问题,运行在21及以上的版本不会出现任何问题,gradle一些相关语句如下:
compileSdkVersion 23
buildToolsVersion '23.0.3'
minSdkVersion 15
targetSdkVersion 23
compile 'com.facebook.fresco:fresco:0.9.0+'
报错图片:
Bolehkah saya mengesyorkan meluncur
https://github.com/bumptech/g...
Gunakan Glide
1. Semak sama ada sistem mempunyai kod yang menggunakan memori besar atau gelung tak terhingga.
2. Anda boleh menambah parameter permulaan JVM untuk mengehadkan penggunaan memori: -XX:-UseGCOverheadLimit
Anda boleh menambah atribut pada lukisan dinding dan menukar saiz imej
Glide juga disyorkan. Kod ini mudah dan secara automatik memampatkan imej cache
Dalam sistem di bawah 5.0 (iaitu, API21), Fresco meletakkan imej dalam kawasan memori khas. Sudah tentu, apabila gambar tidak dipaparkan, memori yang diduduki akan dikeluarkan secara automatik. Ini akan menjadikan APP lebih lancar dan mengurangkan OOM yang disebabkan oleh penggunaan memori imej. Ia ditulis dalam dokumen Cina fresko
Dan kini yang terbaru ialah menyusun 'com.facebook.fresco:fresco:0.13.0', anda boleh mencubanya
Pertama sekali, saya di sini untuk menyokong anda.
Saya tidak tahu apa yang mereka fikirkan tentang menggunakan Glide. Bolehkah anda beritahu saya mengapa anda menggunakan Glide (walaupun saya selalu menggunakan glide)
Apabila anda menghadapi masalah, anda harus menyelesaikannya dengan menukar perpustakaan adalah satu cara, tetapi sekurang-kurangnya anda harus mencuba dan gagal sebelum menukar.
Saya ada soalan, kenapa fressco oom? Bukankah dikatakan bahawa ia adalah yang paling popular dalam industri?
Biar saya beritahu anda pendapat saya:
Jika poster itu benar-benar mengeluarkan perpustakaan ini daripada OOM, saya rasa ia agak berkuasa, anda juga boleh menyemak kod itu untuk melihat di mana ia tidak munasabah. Jika anda fikir anda betul, anda juga boleh menghantar isu kepada github
Saya pernah menghadapi masalah anda sebelum menggunakan Fresco Pada masa itu, saya mengesyaki bahawa ia adalah masalah dengan Fresco sendiri pencetus OOM Adalah disyorkan untuk menyemak kod anda sendiri terlebih dahulu.
Glide Sama
Ini ialah proses penyusunan oom, bukan oom masa jalan, dan tiada kaitan dengan perpustakaan yang digunakan.
Proses kompilasi menghasilkan OOM, dan parameter kompilasi perlu dilaraskan, seperti yang dikatakan @wordplat
Masalah anda sebenarnya adalah OOM yang dijana semasa penyusunan kod, bukan masalah yang disebabkan oleh rangka kerja itu sendiri, jadi anda hanya perlu melaraskan saiz memori timbunan JVM.
Kadang-kadang lebih mudah untuk menghantar kod