Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
¼ì²âºÍ½â¾öAndroidÓ¦ÓõÄÐÔÄÜÎÊÌâ
 
×÷ÕߣºJessica Thornsby À´Ô´£ºcode.tutsplus ·¢²¼ÓÚ£º 2015-07-31
  2052  次浏览      30
 

ÕªÒª£º¿ª·¢ÕßÔÚæµÓÚ¹¹½¨¾«ÃÀµÄÓû§½çÃæ»òÍê³ÉеÄÌØÐÔʱ£¬ºÜÈÝÒ×Íü¼ÇÐÔÄÜÏà¹ØµÄÊÂÇé¡£±¾ÎÄ×÷Õ߾ͽâ¾öAndroidÓ¦ÓÃÐÔÄÜÎÊÌâ¸ø³öÁËÈý¸ö·½Ã棬¼´¹ý¶È»æÖÆ¡¢AndroidͼÐÎäÖȾÒÔ¼°Memory LeaksÄÚ´æÐ¹Â©¡£

ǰÑÔ

ÎÞÂÛÄãµÄÓ¦ÓöàôÓд´ÐÂÐÔ¡¢ÓÐÓã¬Èç¹ûËü¿¨µÃÒªÃü£¬»òÕ߷dz£ÏûºÄÄڴ棬ÄÇôÿÈ˽«»áÔ¸ÒâʹÓÃËü¡£

Òò´Ë£¬ÐÔÄܱäµÃÓÈÎªÖØÒª¡£µ±ÄãæµÓÚ¹¹½¨¾«ÃÀµÄÓû§½çÃæ»òÕßÍê³ÉеÄÌØÐÔʱ£¬Äã¿ÉÄÜÈÝÒ×ÍüÈ´µôһЩÐÔÄÜÏà¹ØµÄÊÂÇé¡£

ÕâÒ²ÊÇΪʲôÓÐGoogle PlayµÄÓ¦ÓÃÉóºË»úÖÆµÄÔ­ÒòÖ®Ò»¡£

ÕâÆªÎÄÕÂÖУ¬Äã»á¿´µ½Ã¿¸öAndroid¹¤³ÌʦÐèÒªÁ˽âµÄһЩÐÔÄÜÎÊÌâ¡£Ä㽫»áѧ»áʹÓÃAndroid SDKÌṩµÄ¡¢ÒѰ²×°ÔÚÄãµÄÉ豸ÖеŤ¾ßÀ´²âÊÔÕâЩÎÊÌâÊÇ·ñ·¢ÉúÔÚÄã×Ô¼ºµÄÓ¦ÓÃÖС£

Èç¹ûÔÚÄãµÄÓ¦ÓÃÖз¢ÏÖÁËÒ»¸öÐÔÄÜÎÊÌ⣬Äã¿Ï¶¨»áÏëÐÞ¸´Ëü¡£ÎÒÃÇ»¹»á¿´Ò»¿´ÈçºÎʹÓÃAndroid SDK ¹¤¾ßÀ´»ñÈ¡¸ü¶à¹ØÓÚÄÇЩûÓи²¸Çµ½µÄÐÔÄÜÎÊÌâµÄÏà¹ØÐÅÏ¢¡£Ò»µ©ÄãÓÐÁËÕâЩÐÅÏ¢£¬Ä㽫»á¶ÔÈçºÎÌáÉýÓ¦ÓÃÐÔÄÜÓÐÒ»¸ö¸üÉî¿ÌµÄÀí½â£¬²¢ÇÒÄܹ»¹¹½¨³öÈÃÓû§Ï²°®µÄApp¡£

1. ¹ý¶È»æÖÆ

²½Öè1 : ÎÊÌâÃèÊö

ÄãÓ¦ÓõÄÓû§½çÃæÊÇÁ¬½ÓÓû§µÄŦ´ø£¬µ«ÊÇ´´½¨Æ¯ÁÁµÄ½çÃæÖ»ÊÇÌôÕ½µÄÆäÖÐÒ»Ãæ£¬Ä㻹ÐèҪȷ±£Óû§½çÃæÁ÷³©µÄÔËÐС£

Ò»¸ö³£¼ûµÄÎÊÌâ¾ÍÊÇÓû§½çÃæ¿¨¶Ù£¬³öÏÖÕâÖÖÇé¿öµÄÔ­Òò¿ÉÄÜÊÇoverdraw¡£OverdrawÊÇÆÁÄ»ÉϵÄij¸öÏñËØÔÚͬһ֡µÄʱ¼äÄÚ±»»æÖÆÁ˶à´Î¡£

ÀýÈ磬ÏëÏóÒ»ÏÂÒ»¸öÓÐÀ¶É«µÄ±³¾°Îı¾£¬Android²»½ö»á»æÖƶÔÓû§¿É¼ûµÄÀ¶É«ÇøÓò£¬¶øÊÇ»á»æÖÆÕû¸öÀ¶É«µÄ±³¾°ÒÔ¼°ÉÏÃæµÄÎı¾¡£ÕâÒâζ×ÅһЩÏñËØ»á±»Á½´Î»æÖÆ£¬Õâ¾ÍÊǹý¶È»æÖÆ¡£

һЩÈçÉÏÊöÀý×ÓËù˵µÄ¹ý¶È»æÖÆÊ¾ÀýÊDz»¿É±ÜÃâµÄ¡£È»¶ø£¬¹ý¶àµÄ¶à¶È»æÖÆ»áÒý·¢Ã÷ÏÔµÄÐÔÄÜÎÊÌ⣬Òò´ËÄã±ØÐ뽫¹ý¶È»æÖƵĿÉÄÜÐÔ½µµ½×îС¡£

¼ì²âÓ¦ÓÃÖеĹý¶È»æÖÆÏà¶ÔÀ´Ëµ±È½Ï¼òµ¥¡£´óÁ¿µÄ¹ý¶È»æÖÆ»áÒý³öÆäËûÓû§½çÃæÏà¹ØÎÊÌ⣬ÀýÈçÊÓͼ²ã¼¶¹ýÓÚ¸´Ôӵȡ£»ùÓÚÕâЩԭÒò£¬µ±Äã²âÊÔÄãµÄAppµÄÐÔÄÜÎÊÌâʱ£¬´Ó¹ý¶È»æÖÆ¿ªÊ¼ÊÇÒ»¸öÃ÷ÖǵÄÑ¡Ôñ¡£

²½Öè2 : ¼ì²â¹ý¶È»æÖÆ

ºÃÏûÏ¢ÊÇÄãµÄAndroidÉ豸ÉÏÒѾ­ÄÚÖÃÁ˼ì²â¹ý¶È»æÖƵŤ¾ß¡£

Òò´ËÄãÐèÒª×öµÄµÚÒ»²½¾ÍÊǰ²×°ÄãÒª²âÊÔµÄAppµ½ÄãµÄÉ豸ÖС£È»ºó´ò¿ªÉèÖÃÒ³Ãæ£¬Ñ¡Ôñ¿ª·¢Ñ¡ÏDeveloper Options£©->µ÷ÊÔGPU ¹ý¶È»æÖÆ£¨Debug GPU Overdraw£©£¬È»ºóÑ¡Ôñ¡°ÏÔʾ¹ý¶È»æÖÆÇøÓò£¨Show overdraw area£©¡±¡£ÈçÏÂͼËùʾ¡£

Õâ¸ö¹¤¾ßʹÓÃÉ«¿éÀ´´ú±í²»Í¬ÊýÁ¿µÄ¹ý¶È»æÖÆ¡£Ê£ÏµÄÊÂÇé¾ÍÊÇÆô¶¯ÄãÒª²âÊÔµÄÓ¦Óã¬È»ºó¹Û²ìËüµÄ¹ý¶È»æÖÆÇé¿ö¡£

  • ûÑÕÉ« : ûÓйý¶È»æÖÆ£¬Ò²¾ÍÊÇ˵һ¸öÏñËØÖ»±»»æÖÆÁËÒ»´Î¡£
  • À¶É« : ¹ý¶È»æÖÆÁËÒ»´Î£¬Ò²¾ÍÊÇÒ»¸öÏñËØµã±»»æÖÆÁËÁ½´Î¡£
  • ÂÌÉ« : ¹ý¶È»æÖÆÁË2´Î. Ò²¾ÍÊÇÒ»¸öÏñËØµã±»»æÖÆÁËÈý´Î£¬Í¨³££¬ÄãÐèÒª¼¯Öо«Á¦ÓÅ»¯¹ý¶È»æÖÆ´ÎÊý´óÓÚµÈÓÚ2´ÎµÄÇé¿ö¡£
  • dzºìÉ« : ¹ý¶È»æÖÆ3´Î¡£ÕâÈ¡¾öÓÚÄãµÄÓ¦Óã¬Ð¡·¶Î§µÄ3´Î¹ý¶È»æÖÆ¿ÉÄÜÊDz»¿É±ÜÃâµÄ£¬µ«ÊÇÈç¹ûÄã¿´µ½ÁËÖеȻòÕß´óÁ¿µÄºìÉ«ÇøÓòÄÇôÄã¾ÍÐèÒª²éÕÒ³öÏÖÕâ¸öÎÊÌâµÄÔ­ÒòÁË¡£
  • ÉîºìÉ« : ¹ý¶È»æÖÆ4´Î£¬ÏñËØµã±»»æÖÆÁË5´Î£¬ÉõÖÁ¸ü¶à´Î¡£³öÏÖÕâÖÖÎÊÌâÄã¾ø±ÆÒªÕÒµ½Ô­Òò£¬²¢ÇÒ½â¾öËü¡£

²½Öè3 £º ×îС»¯¹ý¶È»æÖÆ

Ò»µ©Äã·¢ÏÖÁËij¸öÇøÓòÓÐÑÏÖØµÄ¹ý¶È»æÖÆ£¬×î¼òµ¥µÄ·½·¨¾ÍÊÇ´ò¿ªÄãÓ¦ÓõÄxmlÎļþÕÒµ½¹ý¶ÈÖØµþµÄÇøÓò£¬ÌرðÊÇÄÇЩ²»¿É¼ûµÄdrawable¶ÔÏóºÍ±»»æÖÆÔÚÆäËû¿Ø¼þÉϵı³¾°£¬ÒÔ´ËÀ´½µµÍÕâЩµØ·½µÄ¹ý¶È»æÖÆ¡£

ÄãÒ²Ó¦¸Ã²éÕÒÄÇЩ±³¾°ÊôÐÔÉèÖÃΪ°×É«£¬²¢ÇÒËüµÄ¸¸ÊÓͼ±³¾°Ò²ÉèÖÃΪ°×É«µÄÇøÓò¡£ËùÓÐÕâЩ¶¼»áÒýÆðÑÏÖØµÄ¹ý¶È»æÖÆ¡£

AndroidϵͳÄÜ×Ô¶¯µÄ½µµÍһЩ¼òµ¥µÄ¹ý¶È»æÖÆ£¬µ«ÊÇÕâЩ¶ÔÓÚ¸´ÔÓµÄ×Ô¶¨ÒåView²¢Ã»ÓÐʲô¼ÛÖµ£¬ÒòΪAndroid²»»áÖªµÀÄãÈçºÎ»æÖÆÄãµÄÄÚÈÝ¡£

Èç¹ûÄãÔÚAppÖÐʹÓÃÁ˸´ÔÓµÄ×Ô¶¨ÒåView£¬Äã¿ÉÒÔΪʹÓÃclipRectº¯ÊýΪÄãµÄÊÓͼ¶¨Òå¿É»æÖÆÇøÓòµÄ±ß½ç¡£¸üÐÂÏà¹ØÐÅÏ¢¿ÉÒԲο¼official Android documentation¡£

2. Android ͼÐÎäÖȾ

²½Öè1 : ÎÊÌâÃèÊö

ÁíÒ»¸ö³£¼ûµÄÐÔÄÜÎÊÌâ¾ÍÊÇÓ¦ÓõÄÊÓͼ²ã¼¶¡£ÎªÁËäÖȾÿ¸öÊÓͼ£¬Android¶¼»á¾­ÀúÕâÈý¸ö½×¶Î :

  1. ²âÁ¿
  2. ²¼¾Ö
  3. »æÖÆ

»¨ÔÚÕâÈý¸ö½×¶ÎµÄʱ¼äÓëView²ã¼¶ÖеÄViewµÄÊýÁ¿³ÉÕý±È£¬Õâ¾ÍÒâζ׎µµÍAppäÖȾʱ¼äµÄ×î¼òµ¥µÄ·½·¨¾ÍÊÇʶ±ðºÍÒÆ³ýÄÇЩ²¢Ã»ÓÐʲôÂÑÓõÄUIÔªËØ¡£

¼´Ê¹ÔÚÄãµÄÊÓͼ²ã¼¶ÉϵÄËùÓÐView¶¼ÊDZØÐëµÄ£¬²»Í¬µÄ²¼¾Ö·½Ê½Ò²¿ÉÄܶԲâÁ¿¹ý³Ì²úÉúÖØÒªµÄÓ°Ï졣ͨ³£À´Ëµ£¬ÄãµÄÊÓͼ²ã¼¶Ô½É»¨ÔÚ²âÁ¿ÊÓͼµÄʱ¼ä¾ÍÔ½³¤¡£

ÔÚÊÓͼäÖȾÆÚ¼ä£¬Ã¿¸öView¶¼ÒªÏòËüµÄ¸¸ViewÌṩËü×Ô¼ºµÄ³ß´ç¡£Èç¹û¸¸view·¢ÏÖÁËÈÎÒâÒ»¸ö³ß´çÎÊÌ⣬ÄÇôËü»áÇ¿ÖÆÒªÇóËùÓеÄ×ÓÊÓÍ¼ÖØÐ²âÁ¿¡£

¼´Ê¹Ã»ÓдíÎó·¢Éú£¬ÖØÐ²âÁ¿Ò²¿ÉÄܳöÏÖ¡£ÀýÈ磬ΪÁËÕýÈ·µÄ½øÐв¼¾ÖRelativeLayoutͨ³£»á¶ÔËüÃǵÄ×ÓÊÓͼ½øÐÐÁ½´Î²âÁ¿¡£×ÓÊÓͼʹÓÃÁËlayout_weightÊôÐÔµÄLinearLayoutÒ²»á¶ÔËüµÄ×ÓÊÓͼ½øÐÐÁ½´Î²âÁ¿¡£

ÕâЩ¶¼È¡¾öÓÚÄãµÄ²¼¾Ö·½Ê½£¬²âÁ¿ºÍÖØÐ²âÁ¿µÄ´ú¼Û·Ç³£°º¹ó£¬Ëü»áÑÏÖØÓ°ÏìÄãµÄäÖȾËÙ¶È¡£

È·±£ÄãµÄÓû§½çÃæäÖȾÁ÷³©µÄ¹Ø¼ü¾ÍÊÇÒÆ³ýÈκηDZØÐëµÄViewÒÔ¼°¼õÉÙÄãµÄView²ã¼¶¡£

Hierarchy ViewerÊÇÒ»¸öÄܹ»½«ÄãÍêÕûµÄView²ã¼¶¿ÉÊÓ»¯µÄ¹¤¾ß£¬Õâ¸ö¹¤¾ßÄܹ»°ïÖúÄã·¢ÏÖÈßÓàµÄViewÒÔ¼°Ç¶Ì׵IJ¼¾Ö¡£

²½Öè2£ºÊ¹Óà Hierarchy Viewer

ÔÚÎÒÃǽøÒ»²½Á˽âHierarchy Viewer֮ǰ£¬ÄãÐèÒªÖªµÀËüµÄһЩ¹æÔò¡£Ê×ÏÈHierarchy ViewerÖ»ÄÜÓëÕýÔÚÔËÐеÄApp½øÐн»»¥£¬¶ø²»ÊÇÄãµÄÔ´´úÂë¡£Õâ¾ÍÊÇ˵ÄãÐèÒª½«App°²×°µ½ÄãµÄÉ豸»òÕßÄ£ÄâÆ÷ÉÏ¡£

»¹ÓÐÒ»¸ö×îÖØÒªµÄÎÊÌ⣬¾ÍÊÇĬÈÏÇé¿öÏÂHierarchy ViewerÖ»ÄÜÓëÔËÐпª·¢°æAndroidϵͳµÄÉ豸½øÐн»»¥£¨ÒëÕß×¢£º Ò»°ãÀ´Ëµ£¬Ê¹ÓÃÄ£ÄâÆ÷¼´¿É£©¡£Èç¹ûÄãûÓпª·¢É豸£¬ÄÇÄãÐèÒªÌí¼ÓViewServer classµ½ÄãµÄÓ¦ÓÃÖС£

Á˽âÕâЩ֮ºó¾ÍÈÃÎÒÃÇ´ò¿ªAndroid Studio£¬²¢ÇÒÑ¡Ôñ¡±tools¡± -> ¡°Android¡± -> ¡°Android Device Monitor¡±£¬ÈçͼËùʾ¡£

È»ºóµã»÷Hierarchy View°´Å¥£¬ÈçÏÂͼËùʾ¡£

ÆÁÄ»×ó±ßµÄWindows±êÇ©ÏÂÁгöÁËËùÓÐAndroidÉ豸ºÍÄ£ÄâÆ÷¡£Ñ¡ÔñÄãµÄÉ豸ºó£¬Äã»á¿´µ½ÄãÉ豸ÉÏÔËÐеÄËùÓнø³Ì¡£Ñ¡ÖÐÄãÒª¼ì²âµÄ½ø³Ì£¬È»ºóÄã»á¿´µ½Èý¸ö×Ô¶¯¸üеÄÊÓͼ²ã¼¶ÇøÓò¡£

ÕâÈý¸ö´°¿ÚÌṩÁËÊÓͼ²ã¼¶µÄÈý¸ö²»Í¬¿ÉÊÓ»¯Õ¹Ê¾¡£

  • Tree View: **** ÊÓͼ²ã¼¶´°¿Ú£¬Ã¿¸ö½Úµã´ú±íÁËÒ»¸öView;
  • Tree Overview: Õû¸öÊÓͼ²ã¼¶µÄËõÂÔ²¼¾Ö;
  • Layout View: µ±Ç°ÊÓͼ²ã¼¶µÄÂÖÀª.

Hierarchy ViewÖÐÓÐÈý¸ö´°¿Ú¡£Èç¹ûÄãÔÚÒ»¸ö´°¿ÚÖÐÑ¡ÔñÁËÒ»¸öView£¬ÄÇôËü»áÔÚÁíÍâÁ½¸öÖиßÁÁÏÔʾ¡£ÄãÄÜͬʱʹÓÃÕâÈý¸ö´°¿Ú²éÕÒView²ã¼¶ÖеÄÈßÓàÊÓͼ¡£

Èç¹ûÄ㲻ȷ¶¨Ò»¸öViewÊÇ·ñÊÇUI½çÃæÖеıØÐëÔªËØ£¬×î¼òµ¥µÄ·½·¨¾ÍÊǵ½Tree View´°¿Úµã»÷Õâ¸ö½Úµã¡£Ä㽫»á¿´µ½¸ÃViewÊÇÈçºÎÏÔʾÔÚÆÁÄ»µÄÔ¤ÀÀ£¬´ËʱÄã¾Í¿ÉÒÔÈ·ÇеØÖªµÀ¸ÃViewÊÇ·ñÊDZØÐëµÄ¡£

µ«ÊǼ´Ê¹Ò»¸öView¶Ô×îÖÕµÄäÖȾЧ¹ûÓй±Ï×Ò²²¢²»Òâζ×ÅËü²»»áÒýÆðÑÏÖØµÄÐÔÄÜÎÊÌâ¡£ÄãÒѾ­¿´µ½ÁËÈçºÎͨ¹ýHierarchy ViewerÀ´ÕÒµ½Ã÷ÏÔµÄǶÌײ¼¾Ö£¬µ«ÊÇÈç¹ûÕâÒýÆðµÄÐÔÄÜÎÊÌâ²¢²»ÄÇôÃ÷ÏÔÄØ£¿»òÕß»¹ÓÐÆäËûµÄÔ­ÒòʹµÃ¸ÃÊÓͼäÖȾµÃ·Ç³£Âý£¿

ºÃÏûÏ¢¾ÍÊÇÄ㻹¿ÉÒÔͨ¹ýHierarchy ViewerÀ´ÆÊÎöÿ¸öViewÔÚ²»Í¬µÄäÖȾ½×¶ÎµÄºÄʱ¡£µ±ÐÔÄÜÎÊÌâµÄÔ­Òò²»ÄÇôÃ÷ÏÔʱ£¬ÕâÊÇÄã·¢ÏÖÎÊÌâµÄÁíһ;¾¶¡£

ϸöÕ½ÚÎÒ½«ÎªÄãչʾÈçºÎͨ¹ýHierarchy ViewerÀ´ÆÊÎöÿ¸öViewµÄäÖȾʱ¼äÀ´ÕÒµ½Ç±·üÔÚÎÊÌâ±íÃæµÄÐÔÄÜÎÊÌâ¡£

²½Öè3 : ½ÚµãµÄÐÔÄÜ·ÖÎö

¶¨Î»ÄãµÄÓû§½çÃæÆ¿¾±µÄ×î¼òµ¥·½·¨¾ÍÊÇÊÕ¼¯Ã¿¸öView·Ö±ðÍê³É²âÁ¿¡¢²¼¾Ö¡¢»æÖƵÄʱ¼ä¡£

Äã²»½ö¿ÉÒÔͨ¹ýHierarchy ViewerÊÕ¼¯ÕâЩÐÅÏ¢£¬Hierarchy Viewer»¹¿ÉÒÔͨË×Ò×¶®µØÏòÄãչʾÕâЩÊý¾Ý£¬Òò´ËÄã¿ÉÒÔͨ¹ýÕâÖÖÐÎʽÀ´ÕÒµ½ÐÔÄÜÎÊÌâ¡£

Hierarchy ViewerĬÈϲ¢²»»áÏÔʾäÖȾʱ¼ä¡£ÄãÐèÒªµ½Tree View´°¿ÚÌí¼ÓÕâ¸öÐÅÏ¢£¬È»ºóÑ¡ÔñÄãÏëÒª²âÊԵĸù½Úµã¡£ÏÂÒ»²½£¬ÔÚHierarchy ViewerÉϵã»÷ÓÉÂÌ¡¢ºì¡¢×ϵÄÈý¸öÔ²ÐÎÉ«¿é×é³ÉµÄ°´Å¥£¬ÈçͼËùʾ¡£

Èý¸öÔ²µãÉ«¿é¾Í»áÏÔʾÔÚÿ¸ö½ÚµãÉÏ£¬´Ó×óµ½ÓÒ£¬ÕâЩԲµã·Ö±ð´ú±í :

  • ÓÃÓÚ²âÁ¿µÄʱ¼ä
  • ÓÃÓÚ²¼¾ÖµÄʱ¼ä
  • ÓÃÓÚ»æÖƵÄʱ¼ä

ÿ¸öÔ²µã¶¼ÓÐÑÕÉ«£º

  • ÂÌÉ« ´ú±í¸ÃViewµÄäÖȾËÙ¶ÈÖÁÉÙÒª¿ìÓÚÒ»°ëÒÔÉÏµÄÆäËû²ÎÓë²âÊԵĽڵ㡣ÀýÈ磬һ¸öÔÚ²¼¾ÖλÖÃÉϵÄÂÌÉ«µÄÔ²µã´ú±íËüµÄ²¼¾ÖËÙ¶ÈÒª¿ìÓÚ50%ÒÔÉÏµÄÆäËû½Úµã£»
  • »ÆÉ« ´ú±í¸ÃViewÂýÓÚ50%ÒÔÉÏµÄÆäËû½Úµã£»
  • ºìÉ« ´ú±í¸ÃViewµÄäÖȾËÙ¶È±ÈÆäËûËùÓвÎÓë²âÊԵĽڵ㶼Âý¡£

µ±ÊÕ¼¯ÁËÕâЩÊý¾ÝÖ®ºó£¬Äã²»½öÖªµÀÄÄЩViewÐèÒªÓÅ»¯£¬Ä㻹»áÈ·ÇеØÖªµÀÊÇÔÚäÖȾµÄÄĸö½×¶Îµ¼ÖµÄÎÊÌâ¡£

ÄÄЩ»ÆÉ«¡¢ºìÉ«µÄµØ·½¾ÍÊÇÄãÐèÒª¿ªÊ¼ÓÅ»¯µÄµØ·½£¬ÕâЩÐÔÄÜÖ¸±êÓë¸ÃÊÓͼ²ã¼¶ÏÂµÄÆäËûÆÊÎö½ÚµãÒ²ÓйØÏµ¡£»»¾ä»°Ëµ£¬Äã¿Ï¶¨»áÓÐһЩÊÓͼäÖȾµÃ±ÈÆäËûµÄÂý¡£

ÔÚ¿ªÊ¼¸ÄÁ¼ÄãµÄViewÏà¹ØµÄ´úÂë֮ǰ£¬Ãþ×ÅÄãµÄÁ¼ÐÄÎÊÒ»¾ä¸ÃViewäÖȾµÃ±ÈÆäËûÊÓͼÂýÊÇ·ñÓÐÒ»¸öºÏÀíµÄÔ­Òò£¬Èç¹û´ð°¸ÊÇ·ñ¶¨µÄ£¬ÄÇô¾Í¿ªÊ¼ÄãµÄViewÓÅ»¯Ö®Âðɡ£

3. Memory Leaks ÄÚ´æÐ¹Â©

²½Öè1£ºÎÊÌâÃèÊö

AndroidÊÇÒ»¸ö×Ô¶¯¹ÜÀíÄÚ´æµÄ¿ª·¢»·¾³£¬²»ÒªÈÃÕâ¸ö¾ä»°ÃɱÎÁË£¬ÒòΪÄÚ´æÐ¹Â©ÒÀ¾ÉÊÇ¿ÉÄÜ·¢ÉúµÄ¡£ÕâÊÇÒòΪÀ¬»ø»ØÊÕÆ÷Ö»»áÒÆ³ýÄÇЩ²»¿É´ïµÄ¶ÔÏó¡£Èç¹ûËü²»ÊÇÒ»¸ö²»¿É´ïµÄ¶ÔÏó£¬ÄÇô¸Ã¶ÔÏó¾Í²»»á±»Êͷŵô¡£

ÕâЩ²»¿É´ïµÄ¶ÔÏóÒõ»ê²»É¢£¬¾Û¼¯ÔÚÄãµÄ¶ÑÄÚ´æÖУ¬Õ¼ÓÃAppµÄÄÚ´æ¿Ø¼þ¡£Èç¹ûÄã¼ÌÐøÐ¹Â©¶ÔÏó£¬ÄÇô¿ÉÓõÄÄÚ´æ¿Õ¼ä½«»áÔ½À´Ô½Ð¡£¬GC²Ù×÷¾Í»áƵ·±´¥·¢¡£

ÓÐÁ½¸öÔ­Òò±íÃ÷ÕâÊÇÒ»¸ö»µÏûÏ¢¡£Ê×ÏÈ£¬GC²Ù×÷ͨ³£²»»áÃ÷ÏÔµØÓ°ÏìÄãµÄAppÐÔÄÜ£¬µ«Êǵ±ÄÚ´æ¿Ø¼þ½ÏСʱ´óÁ¿µÄGC²Ù×÷»áʹÄãµÄApp±äÂý£¬´ËʱUI¾Í²»»áÄÇôÁ÷³©ÁË¡£µÚ¶þÎÊÌâÊÇÒÆ¶¯É豸µÄÄÚ´æ¿Õ¼äÏà¶ÔÀ´Ëµ½ÏС£¬Òò´ËÄÚ´æÐ¹Â©»á¿ìËÙµØÉý¼¶ÎªÄÚ´æÒç³ö£¬µ¼ÖÂÓ¦ÓÃCrash¡£

ÄÚ´æÐ¹Â©ÄÑÒÔ±»¼ì²â³ö¡£¿ÉÄÜÖ»Óе±Óû§¿ªÊ¼±§Ô¹ÄãµÄÓ¦ÓÃʱÄã²ÅÄÜ·¢¾õÄÚ´æÐ¹Â©ÎÊÌâ¡£ÐÒÔ˵ØÊÇ£¬Android SDKÌṩÁËһЩÓÐÓõŤ¾ßÀ´ÈÃÄãÕÒµ½ÕâЩÎÊÌâ¡££¨ÒëÕß×¢ : SquareµÄ¿ªÔ´¿âLeakCanaryÊDzéÕÒÄÚ´æÐ¹Â©µÄÓÅÐ㹤¾ß,Ç¿ÁÒ½¨Òé´ó¼ÒʹÓã©¡£

²½Öè2 : ÄÚ´æ¼àÊÓÆ÷ £¨Memory Monitor£©

Memory MonitorÊÇÒ»¸öÄܹ»ÊµÊ±»ñȡӦÓÃÄÚ´æÊ¹ÓÃÇé¿öµÄ¹¤¾ß¡£ÐèҪעÒâµÄÊÇÕâ¸ö¹¤¾ßÖ»ÄÜ×÷ÓÃÓÚÕýÔÚÔËÐеÄÓ¦Óã¬Òò´ËÈ·±£ÄãµÄÒª²âÊÔµÄÓ¦ÓÃÒѾ­°²×°µ½ÄãµÄÉ豸ÖУ¬²¢ÇÒÄãµÄÉ豸ÒѾ­Á¬½Óµ½ÄãµÄµçÄÔÉÏ¡£

Memory MonitorÒѾ­ÄÚÖÃÔÚAndroid StudioÖУ¬Òò´ËÄã¿ÉÒÔµã»÷Android StudioµÄµ×²¿µÄ¡±Memory¡±Õâ¸ötabÀ´Çл»µ½ÄÚ´æ¼àÊÓÒ³Ãæ¡£µ±ÄãÇл»µ½¸ÃÒ³ÃæµÄʱºò£¬Memory Monitor¾Í¿ªÊ¼¼Ç¼ÄãµÄÄÚ´æÊ¹ÓÃÇé¿öÁË¡£

Èç¹ûMemory MonitorûÓпªÊ¼¼Ç¼£¬ÄÇôȷ±£ÄãµÄÉ豸ÊÇÒѾ­±»Ñ¡ÖеÄ״̬¡£

Èç¹ûMemory MonitorÌáʾNo debuggable applications£¬ÄÇôÄã¿ÉÒÔ´ò¿ªAndroid StudioµÄ¡±Tools¡±²Ëµ¥£¬Ñ¡Ôñ¡±Android¡±£¬È»ºóÈ·±£Ñ¡ÖÐÁËEnable adb integration¡£Õâ¸ö¹¦ÄÜ»¹²»ÊǺÜÎȶ¨£¬ËùÒÔÓÐʱºòÄãÐèÒªÊÖ¶¯Çл»ËüµÄ״̬¡£ÄãÒ²¿ÉÒÔ¶Ï¿ªÉ豸ÓëµçÄÔµÄÁ¬½Ó£¬È»ºóÔÙÖØÁ¬£¬ÕâÑù¿ÉÄܾÍOKÁË¡£

Ò»µ©Memory Monitor¼ì²âµ½ÕýÔÚÔËÐеÄÓ¦Óã¬Ëü¾Í»áÏÔʾÕâ¸öÓ¦ÓõÄÄÚ´æÊ¹ÓÃÇé¿ö¡£ÒÑʹÓõÄÄÚ´æ»á±»±íʾΪÉîÀ¶É«£¬Î´·ÖÅäµÄÄÚ´æÔò»á±äΪdzÀ¶É«¡£

»¨Ò»Ð©Ê±¼äÓëÄãµÄÉ豸½»»¥£¬²¢ÇÒ¹Ø×¢ÄãµÄÄÚ´æÊ¹ÓÃÇé¿ö¡£×îÖÕÒÑ·ÖÅäµÄÄÚ´æ»áÔö³¤£¬Ö±µ½Ã»ÓÐÄÚ´æ¿ÉÓᣴËʱ£¬ÏµÍ³¾Í»áÊÍ·Å´¥·¢GCÊÍ·ÅÄڴ棬µ±Äã¿´µ½ÒÑ·ÖÅäµÄÄÚ´æÃ÷ÏÔµÄϽµÊ±¾Í´ú±íGC²Ù×÷±»´¥·¢ÁË¡£

GCͨ³£Çé¿öÏ»ὫÎÞÓõÄÄÚ´æÊͷŵô£¬µ«Êǵ±Äã¿´µ½AppÔÚ¶Ìʱ¼äÄÚ¿ìËÙÔö³¤»òÕßGC±äµÃ·Ç³£Æµ·±£¬´ËʱÄã¾ÍÐèÒª±¶¼ÓСÐÄÁË£¬Õâ¾ÍÊÇ·¢ÉúÄÚ´æÐ¹Â©µÄÐźţ¡

Èç¹ûÄãͨ¹ýMemory MonitorÀ´×·×ÙÒ»¸ö¿ÉÒɵÄÄÚ´æÐ¹Â©ÎÊÌ⣬Äã¿ÉÄܻῴµ½Androidϵͳ»áΪÄãµÄAppÔö´ó¿ÉÓÃÄڴ棬TODO : ¡£

×îÖÕ£¬Äã¿ÉÄܻῴµ½ÄãµÄAppÏûºÄÁ˷dz£¶àµÄÄÚ´æÒÔÖÁÓÚϵͳÎÞ·¨ÔÙ¸øÄãµÄÓ¦Óøü¶àµÄ¿ÉÓÃÄÚ´æ¡£Èç¹ûÄã¿´µ½ÕâÖÖ³¡¾°£¬ÄÇô˵Ã÷ÄãÔÚÄÚ´æÊ¹ÓÃÉÏ·¸Á˺ÜÑÏÖØµÄ´íÎó¡£

²½Öè3 : Android Device Monitor

ÁíÒ»¸öÄܹ»°ïÖúÄãÊÕ¼¯¸üйØÓÚÄÚ´æÐ¹Â©ÐÅÏ¢ºÍÆäËûÄÚ´æÏà¹ØÎÊÌâµÄ¹¤¾ßÊÇAndroid Device MonitorµÄDDMMS¹¤¾ßϵÄHeap¡£

Heap¹¤¾ßÄܹ»Í¨¹ýÏÔʾϵͳΪÄã·ÖÅäÁ˶àÉÙÄÚ´æÀ´°ïÖúÄãÕï¶ÏÄÚ´æÐ¹Â©ÎÊÌâ¡£ÕýÈçÉÏÃæÌáµ½µÄ£¬Èç¹ûÒÑ·ÖÅäµÄÄÚ´æ²»¶ÏµØÔö³¤£¬ÄÇôÕâÊÇ·¢ÉúÄÚ´æÐ¹Â©µÄÃ÷ÏÔÐźš£

µ«ÊÇÕâ¸ö¹¤¾ß»¹ÌṩÁËÐí¶à¹ØÓÚÄãµÄÓ¦ÓöÑÄÚ´æÊ¹ÓÃÇé¿öµÄÊý¾Ý£¬°üº¬ÄãµÄAppÄÚ·ÖÅäµÄ¸÷ÖÖ¶ÔÏó¡¢·ÖÅäµÄ¶ÔÏóÊýÁ¿ÒÔ¼°ÕâЩ¶ÔÏóÕ¼ÓÃÁ˶àÉٿռ䡣ÕâЩ¶îÍâµÄÐÅÏ¢¶ÔÓÚÄã×·×ÙÄÚ´æÐ¹Â©¼«ÎªÓÐÓá£

Äã¿ÉÒÔÔÚAndroid Device Monitor¹¤¾ßÖÐÑ¡ÔñDDMS£¬ÔÚDevicesÖÐÑ¡ÔñÄãÒª¼ì²âµÄApp¡£È»ºóÑ¡ÔñHeap±êÇ©£¬ÈçͼËùʾ¡£È»ºó»¨Ò»Ð©Ê±¼äÓëÄãµÄApp½øÐн»»¥ÒÔÊÕ¼¯ÄÚ´æÐÅÏ¢¡£

heapÊä³öÐÅÏ¢»áÔÚGCʼþÖ®ºó£¬ÒòΪÄã¿ÉÒÔÊÖ¶¯µã»÷Cause GCÀ´´¥·¢GC£¬Ê¹µÃHeapÄÚ´æÊý¾Ý¾¡¿ìµØÏÔʾ³öÀ´¡£

Ò»µ©GCʼþ±»´¥·¢ÁË£¬heap±êǩϾͻá¸üÐÂAppµÄ¶ÑÄÚ´æÊ¹ÓÃÐÅÏ¢£¬ÕâЩÐÅÏ¢»áÔÚÿ´ÎGCʱ¸üС£

×ܽá

ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒÃÇѧϰÁËһЩ¿ª·¢ÖÐ×î³£¼ûµÄÐÔÄÜÎÊÌ⣬¹ý¶È»æÖÆ¡¢ÄÚ´æÐ¹Â©¡¢»ºÂýµÄUIäÖȾ¡£

ÏàÐÅÄãÒѾ­ÕÆÎÕÁËÈçºÎʹÓù¤¾ßÀ´¼ì²éÕâЩÎÊÌ⣬ÒÔ¼°ÈçºÎ»ñÈ¡¸üеÄÐÅÏ¢À´ÅжÏÄãµÄÓ¦ÓÃÖÐÊÇ·ñ³öÏÖÁËÕâЩÐÔÄÜÎÊÌâ¡£ÄãÓÐÔ½¶àµÄÐÅÏ¢£¬¾ÍÔ½ÈÝÒ××·×Ùµ½ÎÊÌâµÄÔ­Òò²¢ÇÒÐÞ¸´Ëü¡£

   
2052 ´Îä¯ÀÀ       30
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ


Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ


ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ