¿áÓÎ-KUÓÎƽ̨µÇ¼

ÄúÏÖÔÚËùÔÚλÖ㺠Ö÷Ò³ > ÐÂÎÅÖÐÐÄ > ³£¼ûÎÊÌâ

AndroidÄÚ´æ¹ÜÀíÖ®µÀ

·¢²¼ÈÕÆÚ£º2019-10-29 15:37 ä¯ÀÀ´ÎÊý£º

¡¡¡¡ÏàÐÅÒ»²½²½×ß¹ýÀ´µÄAndroid´ÓÒµÕߣ¬Ã¿¸öÈ˶¼»áÓöµ½OOMµÄÇé¿ö¡£ÈçºÎ±ÜÃâºÍ·À·¶OOMµÄ³öÏÖ£¬¶ÔÓÚÿһ¸ö³ÌÐòÔ±À´ËµÈ·ÊµÊÇÒ»Ãűز»¿ÉÉÙµÄÄÜÁ¦¡£½ñÌìÎÒÃǾÍ̸̸ÔÚAndroidƽ̨ÏÂÄÚ´æµÄ¹ÜÀíÖ®µÀ£¬¿ªÊ¼½ñÌìµÄÖ÷Ìâ֮ǰ£¬ÏÈÔٴλعËÁ½¸ö¸ÅÄî¡£

¡¡¡¡ÄÚ´æй©£º¶ÔÏóÔÚÄÚ´æheap¶ÑÖÐÖзÖÅäµÄ¿Õ¼ä£¬µ±²»ÔÙʹÓûòûÓÐÒýÓÃÖ¸ÏòµÄÇé¿öÏ£¬ÈÔ²»Äܱ»GCÕý³£»ØÊÕµÄÇé¿ö¡£¶àÊý³öÏÖÔÚ²»ºÏÀíµÄ±àÂëÇé¿öÏ£¬±ÈÈçÔÚActivityÖÐ×¢²áÁËÒ»¸ö¹ã²¥½ÓÊÕÆ÷£¬µ«ÊÇÔÚÒ³Ãæ¹Ø±ÕµÄʱºò½øÐÐunRegister£¬¾Í»á³öÏÖÄÚ´æÒç³öµÄÏÖÏó¡£Í¨³£Çé¿öÏ£¬´óÁ¿µÄÄÚ´æй©»áÔì³ÉOOM¡£

¡¡¡¡OOM£º¼´OutOfMemoery£¬¹ËÃû˼Òå¾ÍÊÇÖ¸ÄÚ´æÒç³öÁË¡£ÄÚ´æÒç³öÊÇÖ¸APPÏòϵͳÉêÇ볬¹ý×î´ó·§ÖµµÄÄÚ´æÇëÇó£¬ÏµÍ³²»»áÔÙ·ÖÅä¶àÓàµÄ¿Õ¼ä£¬¾Í»áÔì³ÉOOM error¡£ÔÚÎÒÃÇAndroidƽ̨Ï£¬¶àÊýÇé¿öÊdzöÏÖÔÚͼƬ²»µ±´¦Àí¼ÓÔصÄʱºò¡£

¡¡¡¡ÄÚ´æ¹ÜÀíÖ®µÀÂÎ޷ǾÍÊÇÏÈÀí½â²¢ÕÒ³öÄÚ´æй©µÄÔ­Òò£¬ÔÙ»ùÓÚÕâЩ·´Ê½È¥ºÏÀíµÄ±àÂ룬ȥ·À·¶½ø¶ø±ÜÃâÄڴ濪Ïú¹ý´óµÄÇéÐΡ£Ñ§Ï°ÈçºÎºÏÀíµÄ¹ÜÀíÄڴ棬×îºÃÏÈÁ˽âÄÚ´æ·ÖÅäµÄ»úÖƺÍÔ­Àí¡£Ö»ÓÐÉî²ã´ÎµÄÀí½âÁËÄÚ²¿µÄÔ­Àí£¬²ÅÄÜÕæÕý±ÜÃâOOMµÄ·¢Éú¡£µ«ÊDZ¾ÎľͲ»½éÉÜJvm/DavilkÄÚ´æ·ÖÅäµÄ»úÖÆÁË£¬ÈçÓÐÐËȤ£¬Çë²é¿´ÀúÊ·ÏûÏ¢£¬ÒÔÇ°×ö¹ýÌâΪ¡¶JVMÔËÐÐʱÊý¾ÝÇøÓò·ÖÎö¡·µÄ·ÖÏí¡£

¡¡¡¡Android APPµÄËùÄÜÉêÇëµÄ×î´óÄÚ´æ´óСÊǶàÉÙ£¬ÓÐÈË˵ÊÇ16MB£¬ÓÐÈËÓÖ˵ÊÇ24MB¡£ÕâÖÖÊÂÇ飬»¹ÊÇÇ××ÔÓÃ×Ô¼ºµÄÊÖ»ú²âÊÔϱȽϿ¿Æס£²âÊÔ·½Ê½Ò²±È½Ï¼òµ¥£¬JavaÖÐÓиöRuntimeÀ࣬Ö÷ÒªÓÃ×÷APPÓëÔËÐл·¾³½»»¥£¬APP²¢²»»áΪÎÒÃÇ´´½¨RuntimeµÄʵÀý£¬µ«ÊÇJavaΪÎÒÃÇÌṩÁ˵¥Àý»ñÈ¡µÄ·½Ê½Runtime.getRuntime()¡£Í¨¹ýmaxMemory()·½·¨»ñȡϵͳ¿ÉΪAPP·ÖÅäµÄ×î´óÄڴ棬totalMemory()»ñÈ¡APPµ±Ç°Ëù·ÖÅäµÄÄÚ´æheap¿Õ¼ä´óС¡£

¡¡¡¡ÎÒÊÖÉÏÓÐÁ½²¿ÊÖ»ú£¬Ò»²¿Oppo find7£¬ÔËÐÐColor OS£¬Êµ²â×î´óÄÚ´æ·ÖÅäΪ192MB;Ò»²¿ÌìÓïv9£¬ÔËÐÐСÃ×ϵͳ£¬Êµ²â×î´óÄÚ´æ·ÖÅäΪ100MB¡£ÕâÏ¿´³öµãüĿÁË°É£¬ÓÉÓÚAndroidÊÇ¿ªÔ´ÏµÍ³£¬²»Í¬µÄÊÖ»ú³§ÉÌÆäʵÊÇÓµÓÐÐÞ¸ÄÕⲿ·ÖȨÏÞÄÜÁ¦µÄ£¬ËùÒÔ¾ÍÔì³ÉÁ˲»Í¬Æ·ÅƺͲ»Í¬ÏµÍ³µÄÊÖ»ú£¬¶ÔÓÚAPPµÄÄÚ´æÖ§³ÖÒ²ÊDz»Ò»ÑùµÄ£¬ºÍIOSµÄºã¾Ã100MBÊDz»Í¬µÄ¡£Ò»°ãÀ´Ëµ£¬ÊÖ»úÄÚ´æµÄÅäÖÃÔ½¸ß£¬³§ÉÌÒ²»áµ÷´óÊÖ»úÖ§³ÖµÄÄÚ´æ×î´ó·§Öµ£¬ÓÈÆäÊÇÏÖÔÚÆì½¢»úÂúÌì·¢²¼µÄÇé¿öÏ¡£µ«ÊÇ¿ª·¢ÕßΪÁË¿¼ÂÇ¿ª·¢³öµÄAPPµÄÄÚ´æ¼æÈÝÐÔ£¬ÎÞ·¨±£Ö¤APPÔËÐÐÔÚºÎÖÖÊÖ»úÉÏ£¬Ö»ÄÜ´Ó±àÂë½Ç¶ÈÀ´ÓÅ»¯ÄÚ´æÁË¡£

¡¡¡¡ÏÂÃæÎÒÃÇÖðÌõÀ´·ÖÎöAndroidÄÚ´æÓÅ»¯µÄ¹Ø¼üµã¡£

¡¡¡¡1¡¢Íò¶ñµÄstatic

¡¡¡¡staticÊǸöºÃ¶«Î÷£¬ÉùÃ÷¸³Öµµ÷ÓþÍÊÇÄÇôµÄ¼òµ¥·½±ã£¬µ«ÊÇ°éËæ¶øÀ´µÄ»¹ÓÐÐÔÄÜÎÊÌâ¡£ÓÉÓÚstaticÉùÃ÷±äÁ¿µÄÉúÃüÖÜÆÚÆäʵÊǺÍAPPµÄÉúÃüÖÜÆÚÒ»ÑùµÄ£¬ÓеãÀàËÆÓëApplication¡£Èç¹û´óÁ¿µÄʹÓõĻ°£¬¾Í»áÕ¼¾ÝÄÚ´æ¿Õ¼ä²»ÊÍ·Å£¬»ýÉٳɶàÒ²»áÔì³ÉÄÚ´æµÄ²»¶Ï¿ªÏú£¬Ö±ÖÁ¹Òµô¡£staticµÄºÏÀíʹÓÃÒ»°ãÓÃÀ´ÐÞÊλù±¾Êý¾ÝÀàÐÍ»òÕßÇáÁ¿¼¶¶ÔÏ󣬾¡Á¿±ÜÃâÐÞ¸´¼¯ºÏ»òÕß´ó¶ÔÏ󣬳£ÓÃ×÷ÐÞÊÎÈ«¾ÖÅäÖÃÏî¡¢¹¤¾ßÀà·½·¨¡¢ÄÚ²¿Àà¡£

¡¡¡¡2¡¢ÎÞ¹ØÒýÓÃ

¡¡¡¡ºÜ¶àÇé¿öÏ£¬ÎÒÃÇÐèÇóÓõ½´«µÝÒýÓ㬵«ÊÇÎÒÃÇÎÞ·¨È·±£ÒýÓô«µÝ³öÈ¥ºóÄÜ·ñ¼°Ê±µÄ»ØÊÕ¡£±ÈÈç±È½ÏÓдú±íÐÔµÄContextй©£¬ºÜ¶àÇé¿öϵ±Activity ½áÊøµôºó£¬ÓÉÓÚÈÔ±»ÆäËûµÄ¶ÔÏóÖ¸Ïòµ¼ÖÂÒ»Ö±³Ù³Ù²»ÄÜ»ØÊÕ£¬Õâ¾ÍÔì³ÉÁËÄÚ´æй©¡£Õâʱ¿ÉÒÔ¿¼ÂǵÚÈýÌõ½¨Òé¡£

¡¡¡¡3¡¢ÉÆÓÃSoftReference/WeakReference/LruCache

¡¡¡¡Java¡¢AndroidÖÐÓÐûÓÐÕâÑùÒ»ÖÖ»úÖÆÄØ£¬µ±ÄÚ´æ³Ô½ô»òÕßGCɨ¹ýµÄÇé¿öÏ£¬¾ÍÄܼ°Ê±°ÑһЩÄÚ´æÕ¼ÓøøÊͷŵô£¬´Ó¶ø·ÖÅä¸øÐèÒª·ÖÅäµÄµØ·½¡£´ð°¸Êǿ϶¨µÄ£¬javaΪÎÒÃÇÌṩÁËÁ½¸ö½â¾ö·½°¸¡£Èç¹û¶ÔÄÚ´æµÄ¿ªÏú±È½Ï¹Ø×¢µÄAPP£¬¿ÉÒÔ¿¼ÂÇʹÓÃWeakReference£¬µ±GC»ØÊÕɨ¹ýÕâ¿éÄÚ´æÇøÓòʱ¾Í»á»ØÊÕ;Èç¹û²»ÊÇÄÇô¹Ø×¢µÄ»°£¬¿ÉÒÔʹÓÃSoftReference£¬Ëü»áÔÚÄÚ´æÉêÇë²»×ãµÄÇé¿öÏÂ×Ô¶¯ÊÍ·Å£¬Í¬ÑùÒ²Äܽâ¾öOOMÎÊÌ⡣ͬʱAndroid×Ô3.0ÒÔºóÒ²ÍƳöÁËLruCacheÀ࣬ʹÓÃLRUËã·¨¾ÍÊÍ·ÅÄڴ棬һÑùµÄÄܽâ¾öOOM£¬Èç¹û¼æÈÝ3.0һϵİ汾£¬Çëµ¼Èëv4°ü¡£¹ØÓÚµÚ¶þÌõµÄÎÞ¹ØÒýÓõÄÎÊÌ⣬ÎÒÃÇ´«²Î¿ÉÒÔ¿¼ÂÇʹÓÃWeakReference°üװһϡ£

¡¡¡¡4¡¢½÷É÷handler

¡¡¡¡ÔÚ´¦ÀíÒì²½²Ù×÷µÄʱºò£¬handler + threadÊǸö²»´íµÄÑ¡Ôñ¡£µ«ÊÇÏàÐÅÔÚʹÓÃhandlerµÄʱºò£¬´ó¼Ò¶¼»áÓöµ½¾¯¸æµÄÇéÐΣ¬Õâ¸ö¾ÍÊÇlintΪ¿ª·¢ÕßµÄÌáÐÑ¡£handlerÔËÐÐÓÚUIỊ̈߳¬²»¶Ï´¦ÀíÀ´×ÔMessageQueueµÄÏûÏ¢£¬Èç¹ûhandler»¹ÓÐÏûÏ¢ÐèÒª´¦Àíµ«ÊÇActivityÒ³ÃæÒѾ­½áÊøµÄÇé¿öÏ£¬ActivityµÄÒýÓÃÆäʵ²¢²»»á±»»ØÊÕ£¬Õâ¾ÍÔì³ÉÁËÄÚ´æй©¡£½â¾ö·½°¸£¬Ò»ÊÇÔÚActivityµÄonDestroy·½·¨Öе÷ÓÃ

¡¡¡¡handler.removeCallbacksAndMessages(null);È¡ÏûËùÓеÄÏûÏ¢µÄ´¦Àí£¬°üÀ¨´ý´¦ÀíµÄÏûÏ¢;¶þÊÇÉùÃ÷handlerµÄÄÚ²¿ÀàΪstatic¡£

¡¡¡¡5¡¢BitmapÖÕ¼«É±ÊÖ

¡¡¡¡BitmapµÄ²»µ±´¦Àí¼«¿ÉÄÜÔì³ÉOOM£¬¾ø´ó¶àÊýÇé¿ö¶¼ÊÇÒòÕâ¸öÔ­Òò³öÏֵġ£BitampλͼÊÇAndroidÖе±Ö®ÎÞÀ¢µÄÅÖС×Ó£¬ËùÒÔÔÚ²Ù×÷µÄʱºòµ±È»ÊÇÊ®·ÖµÄСÐÄÁË¡£ÓÉÓÚDalivk²¢²»»áÖ÷¶¯µÄÈ¥»ØÊÕ£¬ÐèÒª¿ª·¢ÕßÔÚBitmap²»±»Ê¹ÓõÄʱºòrecycleµô¡£Ê¹ÓõĹý³ÌÖУ¬¼°Ê±ÊÍ·ÅÊǷdz£ÖØÒªµÄ¡£Í¬Ê±Èç¹ûÐèÇóÔÊÐí£¬Ò²¿ÉÒÔÈ¥BItmap½øÐÐÒ»¶¨µÄËõ·Å£¬Í¨¹ýBitmapFactory.OptionsµÄinSampleSizeÊôÐÔ½øÐпØÖÆ¡£Èç¹û½ö½öÖ»Ïë»ñµÃBitmapµÄÊôÐÔ£¬Æäʵ²¢²»ÐèÒª¸ù¾ÝBItmapµÄÏñËØÈ¥·ÖÅäÄڴ棬ֻÐèÔÚ½âÎö¶ÁÈ¡BmpµÄʱºòʹÓÃBitmapFactory.OptionsµÄinJustDecodeBoundsÊôÐÔ¡£×îºó½¨Òé´ó¼ÒÔÚ¼ÓÔØÍøÂçͼƬµÄʱºò£¬Ê¹ÓÃÈíÒýÓûòÕßÈõÒýÓò¢½øÐб¾µØ»º´æ£¬ÍƼöʹÓÃandroid-universal-imageloader»òÕßxUtils£¬Å£È˳öÆ·£¬±ØÊô¾«Æ·¡£Ç°¼¸ÌìÔÚ½²¡¶×Ô¶¨Òå¿Ø¼þ(Èý) ¼Ì³Ð¿Ø¼þ¡·µÄʱºò£¬Ò²ÕûÀíÒ»¸ö£¬´ó¼Ò¿ÉÒÔÈ¥GithubÏÂÔØ¿´¿´¡£

¡¡¡¡6¡¢Cursor¼°Ê±¹Ø±Õ

¡¡¡¡ÔÚ²éѯSQLiteÊý¾Ý¿âʱ£¬»á·µ»ØÒ»¸öCursor£¬µ±²éѯÍê±Ïºó£¬¼°Ê±¹Ø±Õ£¬ÕâÑù¾Í¿ÉÒ԰ѲéѯµÄ½á¹û¼¯¼°Ê±¸ø»ØÊÕµô¡£

¡¡¡¡7¡¢Ò³Ãæ±³¾°ºÍͼƬ¼ÓÔØ

¡¡¡¡ÔÚ²¼¾ÖºÍ´úÂëÖÐÉèÖñ³¾°ºÍͼƬµÄʱºò£¬Èç¹ûÊÇ´¿É«£¬¾¡Á¿Ê¹ÓÃcolor;Èç¹ûÊǹæÔòͼÐΣ¬¾¡Á¿Ê¹ÓÃshape»­Í¼;Èç¹ûÉÔ΢¸´Ôӵ㣬¿ÉÒÔʹÓÃ9patchͼ;Èç¹û²»ÄÜʹÓÃ9patchµÄÇé¿öÏ£¬Õë¶Ô¼¸ÖÖÖ÷Á÷·Ö±æÂʵĻúÐͽøÐÐÇÐͼ¡£

¡¡¡¡8¡¢ListViewºÍGridViewµÄitem»º´æ

¡¡¡¡¶ÔÓÚÒƶ¯É豸£¬ÓÈÆäÓ²¼þ²Î²î²»ÆëµÄandroidÉú̬£¬Ò³ÃæµÄ»æÖÆÆäʵÊǺܺÄʱµÄ£¬findViewByIdÒ²ÊÇÂùÂýµÄ¡£ËùÒÔ²»ÖØÓÃView£¬ÔÚÓÐÁбíµÄʱºò¾ÍÓÈΪÏÔÖøÁË£¬¾­³£»á³öÏÖ»¬¶¯ºÜ¿¨µÄÏÖÏó¡£¾ßÌå²ÎÕÕÀúÊ·ÎÄÕ¡¶ËµËµViewHolderµÄÁíÒ»ÖÖд·¨¡·

¡¡¡¡9¡¢BroadCastReceiver¡¢Service

¡¡¡¡°ó¶¨¹ã²¥ºÍ·þÎñ£¬Ò»¶¨Òª¼ÇµÃÔÚ²»ÐèÒªµÄʱºò¸ø½â°ó¡£

¡¡¡¡10¡¢I/OÁ÷

¡¡¡¡I/OÁ÷²Ù×÷Íê±Ï£¬¶Áд½áÊø£¬¼ÇµÃ¹Ø±Õ¡£

¡¡¡¡11¡¢Ïß³Ì

¡¡¡¡Ï̲߳»ÔÙÐèÒª¼ÌÐøÖ´ÐеÄʱºòÒª¼ÇµÃ¼°Ê±¹Ø±Õ£¬¿ªÆôÏß³ÌÊýÁ¿²»Ò×¹ý¶à£¬Ò»°ãºÍ×Ô¼º»úÆ÷ÄÚºËÊýÒ»Ñù×îºÃ£¬ÍƼö¿ªÆôÏ̵߳Äʱºò£¬Ê¹ÓÃÏ̳߳ء£

¡¡¡¡12¡¢String/StringBuffer

¡¡¡¡µ±Óн϶àµÄ×Ö·û´´ÐèҪƴ½ÓµÄʱºò£¬ÍƼöʹÓÃStringBuffer¡£


¡¡¡¡¿áÓÎ-KUÓÎƽ̨µÇ¼ÊÇÒ»¼Ò¹úÄÚоƬ´úÀíºÍ¹úÍâÆ·ÅÆ·ÖÏúµÄ×ۺϷþÎñÉÌ,¹«Ë¾ÌṩоƬicÑ¡ÐÍ¡¢À¶ÑÀWIFIÄ£×é¡¢½ø¿ÚоƬÌæ»»¹ú²ú½µ³É±¾µÈ½â¾ö·½°¸,¿É³Ð½ÓÏîÄ¿¿ª·¢,ÒÔ¼°ÔªÆ÷¼þһվʽ²É¹º·þÎñ,ÀàÐÍÓÐÔË·ÅоƬ¡¢µçԴоƬ¡¢MOоƬ¡¢À¶ÑÀоƬ¡¢MCUоƬ¡¢¶þ¼«¹Ü¡¢Èý¼«¹Ü¡¢µç×è¡¢µçÈÝ¡¢Á¬½ÓÆ÷¡¢µç¸Ð¡¢¼ÌµçÆ÷¡¢¾§Õñ¡¢À¶ÑÀÄ£×é¡¢WIÄ£×é¼°¸÷ÀàÄ£×éµÈµç×ÓÔªÆ÷¼þÏúÊÛ¡££¨¹ØÓÚÔªÆ÷¼þ¼Û¸ñÇë×ÉѯÔÚÏß¿Í·þ»Æ¾­Àí£º15382911663£©

¡¡¡¡´úÀí·ÖÏúÆ·ÅÆÓУºADI_ÑǵÂŵ°ëµ¼Ìå/ALTBRA_°¢¶ûÌØÀ­/BARROT_°ÙÈð»¥Áª/BORN_²®¶÷°ëµ¼Ìå/BROADCHIP_¹ãоµç×Ó/COREBAI_о°Û΢/DK_¶«¿Æ°ëµ¼Ìå/HDSC_»ª´ó°ëµ¼Ìå/holychip_оʥ/HUATECH_»ªÌ©/INFINEON_Ó¢·ÉÁè/INTEL_Ó¢Ìضû/ISSI/LATTICE_À³µÏ˼/maplesemi_ÃÀÆÖÉ­/MICROCHIP_΢о/MS_ÈðÃË/NATION_¹úÃñ¼¼Êõ/NEXPERIA_°²ÊÀ°ëµ¼Ìå/NXP_¶÷ÖÇÆÖ/Panasonic_ËÉϵçÆ÷/RENESAS_Èðɯ/SAMSUNG_ÈýÐÇ/ST_Òâ·¨°ëµ¼Ìå/TD_TECHCODEÃÀ¹úÌ©µÂ°ëµ¼Ìå/TI_µÂÖÝÒÇÆ÷/VISHAY_ÍþÊÀ/XILINX_ÈüÁé˼/оÌÆ΢µç×ӵȵÈ


ÃâÔðÉùÃ÷£º²¿·ÖͼÎÄÀ´Ô´ÍøÂ磬ÎÄÕÂÄÚÈݽö¹©²Î¿¼£¬²»¹¹³ÉͶ×ʽ¨Ò飬ÈôÄÚÈÝÓÐÎó»òÉæ¼°ÇÖȨ¿ÉÁªÏµÉ¾³ý¡£

15382911663
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿