|
 |
8³â Àü |
What Triggers ANR?
In Android, application responsiveness is monitored by the Activity Manager and Window Manager system services. Android will display the ANR dialog for a particular application when it detects one of the following conditions:
No response to an input event (e.g. key press, screen touch) within 5 seconds
A BroadcastReceiver hasn't finished executing within 10 seconds
ANR ÀÌ ¹ß»ýÇÏ´Â °æ¿ì´Â ¾î¶² °æ¿ìÀϱî¿ä?
- Input À̺¥Æ®¿¡ 5ÃÊ ¾È¿¡ ÀÀ´äÀÌ ¾øÀ» °æ¿ì(¿¹: key press, screen touch)
- BroadcastReceiver°¡ 10Ãʾȿ¡ ¿Ï·áµÇÁö ¾ÊÀ» °æ¿ì.
¾Èµå·ÎÀÌµå ¾îÇø®ÄÉÀ̼ÇÀº ¿ø·¡ ½Ì±Û½º·¹µå(main)¿¡¼¸¸ µ¹¾Æ°£´Ù.
À̸»ÀÎ Áï½¼.. ´ç½ÅÀÇ ¾îÇø®ÄÉÀ̼ÇÀÌ ¸ÞÀÎ ½º·¹µå¿¡¼ ¹ºÁþÀ» Çϵ簣¿¡ ¿Ï·áµÇ±â±îÁö ¿À·£ ½Ã°£ÀÌ °É¸°´Ù¸é ANR ´ÙÀ̾ó·Î±×°¡ ¶ã ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
´ç½ÅÀÇ ¾îÇø®ÄÉÀ̼ǿ¡´Â ±× ½º½º·Î°¡ input event³ª intent broadcast¸¦ Á¶ÀÛÇÒ ¼ö ÀÖ´Â ±âȸ°¡ ÁÖ¾îÁöÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
±×·¯¹Ç·Î ¸ÞÀνº·¹µå¿¡¼ µ¹¾Æ°¡´Â ¾î¶² ¸Þ¼Òµå¶óµµ °¡´ÉÇÑÇÑ ÀÛÀº ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù.
ƯÈ÷³ª, ¾×ƼºñƼµéÀº onCreate()¿Í onResume()°ú °°Àº Å° ¶óÀÌÇÁ»çÀÌŬ ¸Þ¼ÒµåÀÇ ¼³Á¤Àº °¡´ÉÇÑÇÑ ÀÛ°Ô ±¸¼ºµÇ¾î¾ß ÇÑ´Ù.
³×Æ®¿÷À̳ª µ¥ÀÌÅͺ£À̽º ÀÛ¾÷ ¶Ç´Â ºñÆ®¸ÊÀÇ ¸®»çÀÌ¡°ú °°Àº º¹ÀâÇÏ°í ¹«°Å¿î °è»ê°ú °°Àº ½Ã°£ÀÌ ¿À·¡ °É¸®´Â ¸í·ÉµéÀº child thread¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù.(µ¥ÀÌÅͺ£À̽º ¸í·ÉÀÇ °æ¿ì asynchronous ¿äûÀ» »ç¿ëÇÑ´Ù)
ÇÏÁö¸¸ ÀÌ°ÍÀÌ ¸ÞÀνº·¹µå°¡ child ½º·¹µå°¡ ¿Ï·áµÉ ¶§ ±îÁö block µÇ¾î¾ß ÇÑ´Ù´Â ¶æÀº ¾Æ´Ï´Ù. child ½º·¹µå°¡ ¿Ï·áµÉ ¶§ ±îÁö block ½ÃÅ°´Â °Í º¸´Ù´Â main ½º·¹µå¿¡¼ child½º·¹µå¸¦ À§ÇÑ Handler¸¦ Á¦°øÇØ ÁÖ¾î¾ß ÇÑ´Ù.
StrictMode´Â ³×Æ®¿÷À̳ª DB ¸í·Éµé°ú °°Àº ÀáÀçÀûÀ¸·Î ¿À·£ ½Ã°£ÀÌ °É¸± ¸í·ÉµéÀ» ã´Âµ¥ µµ¿òÀÌ µÈ´Ù. |
|
̵̧ : 272 |
̵̧
¸ñ·Ï
|
|