4. 1.1. Memory problem:
Why?
• Limited heap size: 16MB, 32MB, 64MB,..
• Usually in decoding or manipulating bitmaps.
• Painful in solving memory problem for low-end devices
10. 2.1. Android Bitmaps (con’t)
• Pre-Gingerbread GC (< 2.3):
• Stop all app’s threads – not stop all applications
• Full heap collection
• Pause times often > 100ms
• Gingerbread and beyond (>= 2.3):
• Mostly concurrent
• Partial collections
• Pause times usually < 5ms
• Garbage collection in Android does no compacting.
17. 3.4. Common ways to leak
• Context Leak
• Handler Leak or Inner Class leak Outer
• Solution
Notes de l'éditeur
Phầnthứnhất: chúng ta sẽtìmhiểutổngquátvềbộnhớtrong Android, tạisaotronglậptrìnhcho di động, vàtronglậptrìnhtrong Android lại hay xảyracácvấnđềvềbộnhớPhầnthứhai: Chúng ta sẽcùngnhaugiảiphẫuđốitượng Android Bitmap, đốitượngdùngđểhiểnthịhìnhảnhtrong Android. Thườngthì 80-90% vấnđềvềbộnhớsẽcóliênquanđếnđốitượngnày.Phần thứ ba: Mìnhsẽnóivềmộtlỗiphổbiếnvềbộnhớ, đólàlỗi leak memory. Sẽcómộtvàivídụ demos vềlỗi leak mem, cáchpháthiệncũngnhưlàcácgiảipháp
Câuhỏicơbản, ngồi ở đâychứngtỏđãtừngbịThường hay bịvấnđềvềbộnhớkhi decode vàthaotáctrênhìnhảnhnhư copy, xoaychẳnghạn.Tìnhhuốngthườnggặp: tạomộtứngdụngvàmuốntrangtrímộtvàihìnhảnhđểứngdụngđẹphơn -> Search trênStackOverflowvàtìmđượcvài thread hướngdẫnlàphảidùngImageViewvàBitmapFactoryđể decode ảnhthànhđốitượng bitmap vàgắnvàoImageViewDecode mộtvàihìnhđầukhôngcóvấnđềgì, nhưngkhichươngtrìnhchạymộtthờigianchúng ta bắtđầugặpvấnđềvềbộnhớ. Thườngthìsẽgặplỗinày.Cácbạnbắtđầutìmhiểuđểgiảiquyếtlỗinày. Ởnhữnggiaiđoạnđầuthìcácbạnsẽcảmthấykhálàứcchếkhimàgiảiquyếtvấnđềbộnhớnày, đặcbiệtlàtrêncácmáyyếuchỉcó 16MB heap.