

0
0
AndroidÃæÊÔ±¦µä3.0£¬ÄÚÈÝ£ºJavaSE »ù´¡£¬JavaSE ¸ß¼¶£¬Android »ù´¡£¬Android ¸ß¼¶£¬Android ÏîÄ¿£¬ÏîÄ¿ÃæÊÔ³£¼ûÎÊÌâ£¬ÃæÊÔʵս¼Ç¼£¬BAT ÃæÊÔÌ⣬Android ×îм¼Êõ¡£
ÿ´Î¿´Ñô¸çµÄÃæÊÔ±¦µä¶¼ÊÕ»õÆÄ¶à¡£ÎÞÂÛÊÇ´úÂëÖÊÁ¿»¹ÊÇÓïÑÔÐ޴ǵÄÏνӣ¬¿Öż´±ãÊÇÕ¾ÔÚ¾ÞÈ˵ļç°òÉÏ£¬Òª×·Éϼ¼ÊõÅ£È˵ĽŲ½Ò²Òª¸¶³ö³£ÈËÄÑÒÔ½ÓÊܵÄŬÁ¦°É¡£
¶ÔÓÚÕâÆªÃæÊÔ×ܽᣬ¼òֱϲ»¶ºÍ³ç°ÝµÄ²»ÐС£
˵ÁËÌ«¶àµÄ·Ï»°£¬Õ¼Á˼¸¶Îƪ·ù£¬»¹ÊÇÖ±½ÓÇÐÈëÖØµã°É¡£
¶ÔÓÚÐÔÄÜ·ÖÎö£¬Ò²¾³£ËÑË÷Ïà¹Ø×ÊÁÏ£¬Ë¡ÎÒ²ÅÊèѧdz£¬µ«»¹ÊÇÈ̲»×¡·¢±íһϹ۵㡣
ÏÈÀ´¿´¿´Square¹«Ë¾¸ø³öµÄÔÚAndroidÖÐÄÚ´æÐ¹Â¶µÄ½âÊÍ£º
> What is a memory leak?
Some objects have a limited lifetime. When their job is done, they are expected to be garbage collected. If a chain of references holds an object in memory after the end of its expected lifetime, this creates a memory leak. When these leaks accumulate, the app runs out of memory.
>
For instance, after Activity.onDestroy() is called, the activity, its view hierarchy and their associated bitmaps should all be garbage collectable. If a thread running in the background holds a reference to the activity, then the corresponding memory cannot be reclaimed. This eventually leads to an OutOfMemoryError crash.
ÓÐЩ¶ÔÏóÓÐÒ»¸öÓÐÏÞµÄÉúÃüÖÜÆÚ£¬µ±ËûÃÇÈÎÎñ½áÊøµÄʱºò£¬Ó¦¸Ã±»GC»ØÊÕ¡£Èç¹ûÔڸöÔÏóÉúÃüÖÜÆÚ½áÊøµÄʱºò£¬ÈÔÈ»ÓÐһϵÁжÔÏóholdסÁ˸öÔÏóµÄÒýÓ㬾ͻᵼÖÂÄÚ´æÐ¹Â¶¡£Ëæ×Åй¶µÄ»ýÀÛ£¬app½«Äڴ潫ÏûºÄ´ù¾¡¡£¡¢
±ÈÈçActivity.onDestroy( )±»»Øµ÷Ö®ºó£¬view²ã¼¶Ê÷ÒÔ¼°¹ØÁªµÄbitmap¶¼Ó¦¸Ã±»GC»ØÊÕ£¬Èç¹ûÒ»¸öÕýÔÚÔËÐеĺǫ́Ïß³ÌholdסÁËÕâ¸öactivityµÄÒýÓã¬ÓëÆäÏà¹ØµÄÄڴ潫²»»á±»»ØÊÕ£¬×îÖջᵼÖÂoutOfMemoryError±ÀÀ£¡£
´Ó¶ø¿É¼û£¬OOMÒ»°ã´ú±íןüÉî²ã´ÎµÄÎÊÌ⣺Memory Leak
Óɴ˿ɼû£¬ÄÚ´æÐ¹Â¶Ö¸µÄÊdzÌÐòÖÐһЩ¶ÔÏ󲻻ᱻGC»ØÊÕ£¬¶øÊ¼ÖÕÕ¼ÓÃÄڴ棬¼´ÔÚ¶ÔÏóµÄÒýÓÃÁ´Öбä³ÉÁ˿ɴﲻ¿ÉÓ᣶øÄÚ´æÒç³öÊÇÖ¸³ÌÐòÔËÐÐÆÚ¼äÎÞ·¨ÉêÇë×ã¹»µÄÄÚ´æ¶øµ¼ÖµĴíÎ󣬿ÉÒÔ˵ÄÚ´æÐ¹Â¶ÊÇÄÚ´æÒç³öµÄÒ»ÖÖÓÕÒò£¬µ«ÊDz»Î¨Ò»ÒòËØ¡£
ÄÇô¿´Ò»ÏÂÕâ¸öÖøÃûµÄµ®ÉúÓÚ2009ÄêµÄstatic DrawableÀý×Ó£¬È»ºóÔÚSDKÖв鿴һÏÂÀú´úSDK°æ±¾ºÅ£¬»á·¢ÏÖ
/**
* December 2009: Android 2.0.1
*/
public static final int ECLAIR_0_1 = 6;
/**
* January 2010: Android 2.1
*/
public static final int ECLAIR_MR1 = 7;
2009ÄêµÄ×îºóÒ»¸ö°æ±¾ÊÇ2.0.1¡£2.1°æ±¾²Å³öÏÖÔÚ2010Ä꣬¶øÇÒÕâ¸öÄê´ú£¬Ã²ËƹúÄÚ×öAndroidµÄÈËÉÙÖ®ÉõÉÙ¡£
ËùÒÔÖ»ÐèÒª°ÑÕâЩSDKµÄ°æ±¾£¬·¿´Ò»±é£¬È·Êµ»á·¢ÏÖÕâ¸öÓÐÄÚ´æÐ¹Â¶Òþ»¼µÄÇ¿ÒýÓÃÁ´£º
Drawable->TextView->Context
µ«ÊÇÈç¹û¿´Ò»Ï»®Ê±´úµÄ3.0°æ±¾£¨HONEYCOMB£©£¬»á·¢ÏÖGoogleµÄAndroidС×éÃ²ËÆÒѾעÒâµ½ÁËÕâ¸öÎÊÌ⣬²¢ÇÒÐÞ¸´ÁËËü¡£
ÓÉ
public final void setCallback(Callback cb) {
mCallback = cb;
}
Ìæ»»Îª
public final void setCallback(Callback cb) {
mCallback = new WeakReference<Callback>(cb);
}
ÓÃÈõÒýÓÃÀ´´úÌæÇ¿ÒýÓã¬ÕâÑù¾Í±ÜÃâÁËContextµÄй¶¡£
ÔÙÀ´ËµËµBitmap.recycle()¡£
Õâ¸öÒ²¿ÉÒÔËãÊÇÒ»¸öÀúÊ·ÒÅÁôÎÊÌâ¡£ÔÚ3.0°æ±¾Ö®Ç°¡£
Bitmap.javaÔ´Âë¡£
// Note: mNativeBitmap is used by FaceDetector_jni.cpp
// Don't change/rename without updating FaceDetector_jni.cpp
private final int mNativeBitmap;
BitmapµÄ×ÊÔ´ÊÇÔڵײãCÖд¦ÀíµÄ£¬Òò´Ë3.0֮ǰµÄ.recycle()£¬²¢Ã»ÓÐʲô´í¡£µ«ÊÇÔÚ3.0ÒÔ¼°Ö®ºó¡£
Bitmap.javaÔ´Âë¡£
/**
* Backing buffer for the Bitmap.
*/
private byte[] mBuffer;
ͼƬÊý¾Ý±£´æÔÚ³ÉÔ±±äÁ¿mBufferÖУ¬Ò²¾ÍÊÇ˵ʹÓÃHeap´æ´¢´úÌæÁ˵ײãC´¦Àí¡£Òò´Ë²»ÓÃÏÔʽµ÷ÓÃ.recycle()¡£Ö»ÐèÒª°ÑbitmapÖÃnull»òÕßʹÓÃÐéÒýÓóÖÓоÍÐÐÁË¡£ÕâÑùͼƬ¾ÍÄܱ»GC»ØÊÕÁË¡¢¡£
ÁíÍâ¡¢£¬ÓÉÓÚ²»Í¬°æ±¾µÄSDK¡¢£¬.recycle()×¢ÊÍÒ²²»Í¬¡¢£¬µ«ÊÇÓÐÒ»¾ä»°ÊÇʼÖÕûÓиıäµÄ
>This is an advanced call, and normally need not be called, since the normal GC process will free up this memory when there are no more references to this bitmap.
ÕâÊÇÒ»¸ö¸ß¼¶º¯Êý¡¢£¬Ò»°ãÇé¿öÏÂû±ØÒªµ÷Óã¬ÔÚûÓÐÒýÓÃÖ¸Ïòbitmapʱ¡¢£¬GC»á×Ô¶¯ÊÍ·ÅÄÚ´æ¡¢¡£
¶øÇÒÎҵĽ¨ÒéÊDz»ÒªÆµ·±µÄµ÷ÓÃSystem.gc();ÒòΪÕâÔÚ´ó¶àÇé¿öÏÂÖ»ÄÜÏÔʽÌáÐÑGC»ØÊÕ£¬¾¿¾¹Ê²Ã´Ê±ºò½øÐлØÊÕ²Ù×÷¡¢£¬»¹ÊÇ¿´VM×ÔÉíµÄËã·¨ºÍµ÷¶È¡¢¡£
248.9M / 12-08
RTS¼´Ê±Õ½ÂÔ
ÏÂÔØ
248.9M / 12-08
RTS¼´Ê±Õ½ÂÔ
ÏÂÔØ
253.4M / 12-08
RPG½ÇÉ«°çÑÝ
ÏÂÔØ
ÆÞÖÐÃÛ3È«cg´æµµ
ÓÎÏ·¹¤¾ß / 28KB
ÏÂÔØ
1
csgo¿Õ¸ñ¼üÁ¬Ìø½Å±¾ÂÌÉ«Ãâ·Ñ°æ
ÓÎÏ·¹¤¾ß / 564KB
ÏÂÔØ
2
DNF9ÖÜÄêµÚÊ®Ì×Ìì¿Õʱװ²¹¶¡
ÓÎÏ·¹¤¾ß / 1.6M
ÏÂÔØ
3
Ò׿ØÍõÎĵµ¼ÓÃÜÈí¼þv2017¹Ù·½°æÂÌÉ«Ãâ·Ñ°æ
Îļþ´¦Àí / 46M
ÏÂÔØ
4
3456wg¶àѡƤ·ôv10.6¹Ù·½°æ
ÓÎÏ·¹¤¾ß / 2.2M
ÏÂÔØ
5
dnfÒ»¼üÈÎÎñÖúÊÖv0428×îÐÂÃâ·Ñ°æ
ÓÎÏ·¹¤¾ß / 863KB
ÏÂÔØ
6
adobeÇåÀí¹¤¾ß(AdobeCreativeCloudCleanerTool)V2017 ÂÌÉ«°æ
Îļþ´¦Àí / 5.9M
ÏÂÔØ
7
°®ÆÕÉúR230´òÓ¡»úÇåÁãÈí¼þºº»¯°æ
°ì¹«Ñ§Ï° / 1.8M
ÏÂÔØ
8
ÊÓÆµ¡¢¡¢Í¼Æ¬È¥Ë®Ó¡´óʦHitPaw Watermark Removerv1.2.1 ÍêÃÀ½âËø°æ
Îļþ´¦Àí / 80.4M
ÏÂÔØ
9
GTKWave(WAVÎļþ²¨Ðβ쿴¹¤¾ß)v3.3.66 ¹Ù·½°æ
Îļþ´¦Àí / 4.4M
ÏÂÔØ
10
140.5M / 09-05
Á¢¼´ÏÂÔØ
76.4M / 03-25
Á¢¼´ÏÂÔØ
55M / 06-05
Á¢¼´ÏÂÔØ
88.7M / 04-13
Á¢¼´ÏÂÔØ
900.9M / 03-02
Á¢¼´ÏÂÔØ
96.2M / 07-06
Á¢¼´ÏÂÔØ
311.2M / 07-06
Á¢¼´ÏÂÔØ
335M / 07-06
Á¢¼´ÏÂÔØ
ǰ³ÌËÆ½õ(Excellent Expectations)
200M / 07-06
Á¢¼´ÏÂÔØ
413.8M / 07-06
Á¢¼´ÏÂÔØ
x8ɳÏ䰲׿Ãâ·Ñ°æ2023¹Ù·½×îаæ
480.3M / 01-03
Á¢¼´ÏÂÔØ
768.9M / 08-19
Á¢¼´ÏÂÔØ
165.4M / 09-05
Á¢¼´ÏÂÔØ
131.8M / 04-13
Á¢¼´ÏÂÔØ
195.6M / 03-03
Á¢¼´ÏÂÔØ
45.6M / 09-08
Á¢¼´ÏÂÔØ
665.2M / 07-06
Á¢¼´ÏÂÔØ
2.84G / 07-06
Á¢¼´ÏÂÔØ
93M / 07-06
Á¢¼´ÏÂÔØ
338.3M / 07-06
Á¢¼´ÏÂÔØ
959.8M / 12-24
Á¢¼´ÏÂÔØ 312M / 07-30
Á¢¼´ÏÂÔØ 1.38G / 07-26
Á¢¼´ÏÂÔØ DZͧΰΰÃÔÖ²Îï´óÕ½½©Ê¬ÔÓ½»°æµçÄÔ°æ
109.8M / 06-03
Á¢¼´ÏÂÔØ 142M / 01-08
Á¢¼´ÏÂÔØ 1.2M / 11-23
Á¢¼´ÏÂÔØ 548.8M / 04-13
Á¢¼´ÏÂÔØ 1.6M / 04-13
Á¢¼´ÏÂÔØ 1.48G / 03-18
Á¢¼´ÏÂÔØ 646.6M / 03-03
Á¢¼´ÏÂÔØ 401.9M / 01-06
Á¢¼´ÏÂÔØ 1.89G / 12-19
Á¢¼´ÏÂÔØ 110.5M / 09-05
Á¢¼´ÏÂÔØ 33.4M / 09-05
Á¢¼´ÏÂÔØ 60M / 04-29
Á¢¼´ÏÂÔØ 254M / 04-25
Á¢¼´ÏÂÔØ 659M / 04-23
Á¢¼´ÏÂÔØ up¶Ôսƽ̨ºÐ×Ó¹Ù·½ÏÂÔØ2023×îаæ
253.4M / 12-08
Á¢¼´ÏÂÔØ 253M / 12-08
Á¢¼´ÏÂÔØ 1.19G / 11-16
Á¢¼´ÏÂÔØ 118.2M / 01-06
Á¢¼´ÏÂÔØ 488.3M / 06-04
Á¢¼´ÏÂÔØ 369M / 09-22
Á¢¼´ÏÂÔØ 181.5M / 09-22
Á¢¼´ÏÂÔØ 201.2M / 09-05
Á¢¼´ÏÂÔØ 248.9M / 12-08
Á¢¼´ÏÂÔØ 248.9M / 12-08
Á¢¼´ÏÂÔØ 100.6M / 03-06
Á¢¼´ÏÂÔØ 148.9M / 03-06
Á¢¼´ÏÂÔØ 1.12G / 07-06
Á¢¼´ÏÂÔØ 126.7M / 02-04
Á¢¼´ÏÂÔØ 1.76G / 09-22
Á¢¼´ÏÂÔØ 1.92G / 04-17
Á¢¼´ÏÂÔØ 201.5M / 04-13
Á¢¼´ÏÂÔØ 7.31G / 07-01
Á¢¼´ÏÂÔØ 94.3M / 07-06
Á¢¼´ÏÂÔØ 2.48G / 07-06
Á¢¼´ÏÂÔØ 7.63G / 07-06
Á¢¼´ÏÂÔØ 1M / 07-06
Á¢¼´ÏÂÔØ 778.1M / 07-06
Á¢¼´ÏÂÔØ 1.40G / 12-19
Á¢¼´ÏÂÔØ 72M / 07-06
Á¢¼´ÏÂÔØ 548.7M / 07-06
Á¢¼´ÏÂÔØ 1.00G / 07-06
Á¢¼´ÏÂÔØ 9.13G / 07-06
Á¢¼´ÏÂÔØ 126.2M / 07-06
Á¢¼´ÏÂÔØ 72M / 07-06
Á¢¼´ÏÂÔØ 105.1M / 07-06
Á¢¼´ÏÂÔØ 132M / 07-06
Á¢¼´ÏÂÔØ 132M / 07-06
Á¢¼´ÏÂÔØ bonbonjump°²×¿¹Ù·½ÏÂÔØ2023×îаæ
13.4M / 01-03
Á¢¼´ÏÂÔØ 293.0M / 09-05
Á¢¼´ÏÂÔØ 1.22G / 07-06
Á¢¼´ÏÂÔØ 20.53G / 07-06
Á¢¼´ÏÂÔØ 229.9M / 07-06
Á¢¼´ÏÂÔØ 3.70G / 07-06
Á¢¼´ÏÂÔØ 904.0M / 07-06
Á¢¼´ÏÂÔØ 15.84G / 07-06
Á¢¼´ÏÂÔØ 45.50G / 07-06
Á¢¼´ÏÂÔØ 1.02G / 07-06
Á¢¼´ÏÂÔØ Copyright 2010-2025 µ¥»úÓÎÏ·ÏÂÔØ (R) °æÈ¨ËùÓÐ ·ÉÏèÏÂÔØËùÓÐÓÎÏ·¼°Èí¼þÏÂÔØ×ÊÔ´À´Ô´»¥ÁªÍø£¬²¢ÓÉÍøÓÑÉÏ´«·ÖÏí¡¢¡£ÈçÓÐÇÖȨ¡¢£¬ÇëÀ´µçÀ´º¯¸æÖ®¡£
·ÉÏèÖҸ棺µÖÖÆ²»Á¼É«Çé¡¢¡¢·´¶¯¡¢¡¢±©Á¦ÓÎÏ· ºÏÀí°²ÅÅÓÎϷʱ¼ä ÏíÊܽ¡¿µÉú»î ¶õ¹«Íø°²±¸£º42011102003115ºÅ ¡¾¶õICP±¸17000818ºÅ-1¡¿