¾ÛÅøÁî
46.¢½.168.138
46.¢½.168.129
46.¢½.168.161
46.¢½.168.136
46.¢½.168.145
46.¢½.168.162
46.¢½.168.144
46.¢½.168.140
115.¢½.135.198
46.¢½.168.139
 
°Ô½Ã¹° 3°Ç
 
¸Þ¸ð¸® ´©Ãâ ÇÇÇϱâ
±Û¾´ÀÌ : ÁöÅÂÈ£                   ³¯Â¥ : 2012-11-25 (ÀÏ) 11:11 Á¶È¸ : 3370
¸Þ¸ð¸® ´©Ãâ ÇÇÇϱâ

T-Mobile G1°ú °°Àº ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀ̼ǵéÀº Heap ¸Þ¸ð¸® ¿µ¿ªÀÌ
16MB ·Î Á¦ÇѵǾî ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¸ð¸®´Â ÇÚµåÆù¿¡´Â ¸¹Àº ¾çÀÇ 
¸Þ¸ð¸®ÀÌÁö¸¸ °³¹ßÀÚ°¡ ÇÊ¿ä·Î Çϴ°Ϳ¡´Â Å©°Ô ¸ø ¹ÌĨ´Ï´Ù.
ÀÌ ¸Þ¸ð¸®¸¦ ¸ðµÎ ´Ù »ç¿ëÇÒ °èȹÀÌ ¾ø´Ù°í ÇÏ´õ¶óµµ °³¹ß½Ã¿¡´Â
ÀÌ ¿µ¿ªÀ» ÃÖ¼ÒÇÑÀ¸·Î »ç¿ëÇؼ­ ´Ù¸¥ ¾ÖÇø®ÄÉÀ̼ǵéÀÌ Kill ´çÇÏÁö
¾Ê°í ¿î¿ëµÉ ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÕ´Ï´Ù. ¾Èµå·ÎÀ̵尡 ´õ ¸¹Àº ¾ÖÇø®ÄÉÀ̼ÇÀ»
¸Þ¸ð¸®¿¡ »óÁÖ½ÃÅ´À¸·Î¼­ »ç¿ëÀÚ´Â ¾ÖÇø®ÄÉÀ̼ǰ£¿¡ ´õ ºü¸¥ ÀüȯÀ»
ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾Èµå·ÎÀ̵带 °³¹ß ÇÒ ¶§¿¡ ¸Þ¸ð¸®ÀÇ ´©ÃâÇö»óÀº ´ëºÎºÐÀÇ
°æ¿ì¿¡ °°Àº ½Ç¼ö¶§¹®¿¡ ÀϾ´Ï´Ù.
Áï, Context¿¡ ¿À·£½Ã°£ Áö¼ÓµÇ´Â ÂüÁ¶¸¦ Çϱ⠶§¹®ÀÔ´Ï´Ù.

¾Èµå·ÎÀ̵忡¼­ Context´Â ¾ÆÁÖ ´Ù¾çÇÑ ÀÛ¾÷À» ´ã´çÇϴµ¥ ´ëºÎºÐÀº
¸®¼Ò½ºÀÇ Á¢±Ù°ú ·ÎµåÇϴµ¥ »ç¿ëµË´Ï´Ù. ¶§¹®¿¡ ¸ðµç À§Á¬Àº »ý¼ºÀÚ¿¡¼­
Contextº¯¼ö¸¦ ¹Þ½À´Ï´Ù. ÀϹÝÀûÀÎ ¾Èµå·ÎÀÌµå ¾ÖÇø®ÄÉÀ̼ÇÀÇ °æ¿ì¿¡
Context´Â µÎ Á¾·ù·Î ±¸ºÐµË´Ï´Ù. Activity¿Í ApplicationÀÌ ±×°ÍÀε¥
°³¹ßÀÚ´Â º¸Åë Activity¸¦ Ŭ·¡½º¿¡ »ó¼Ó¹Þ°í Context°¡ ÇÊ¿äÇÑ
¸Þ¼­µå¸¦ »ó¼ÓÇÕ´Ï´Ù. ¿¹¸¦ Çѹø º¸°Ú½À´Ï´Ù.

01.@Override
02.protected void onCreate(Bundle state) {
03.super.onCreate(state);
04. 
05.TextView label = new TextView(this);
06.label.setText("Leaks are bad");
07. 
08.setContentView(label);
09.}

À§ÀÇ ÄÚµå´Â View°¡ Àüü Activity¸¦ ÂüÁ¶ÇÏ°í ÀÖ°í µû¶ó¼­ Activity°¡ 
Æ÷ÇÔÇÏ´Â ÀÚ·áµµ ÂüÁ¶ÇÏ°í ÀÖ½À´Ï´Ù. º¸Åë ÀÌ ÀÚ·á´Â ViewÀÇ °èÃþ°ú
¸ðµç ¸®¼Ò½º¸¦ Æ÷ÇÔÇÕ´Ï´Ù. µû¶ó¼­ Context¸¦ ´©ÃâÇÑ´Ù¸é (¿©±â¼­ 
´©ÃâÀ̶ó´Â ¶æÀº Context¿¡ °è¼Ó ÂüÁ¶¸¦ Çϱ⠶§¹®¿¡ Garbage Collector°¡
Á¤¸®ÇÏ´Â °ÍÀ» ¹æÁö ÇÑ´Ù´Â ¶æÀÔ´Ï´Ù.) ¸¹Àº ¾çÀÇ ¸Þ¸ð¸®¸¦ ´©ÃâÇÏ°Ô µË´Ï´Ù.
ÁÖÀÇ ÇÏÁö ¾ÊÀ¸¸é Àüü ActivityÀÇ ¸Þ¸ð¸®°¡ ´©ÃâµÉ ¼ö ÀÖ½À´Ï´Ù.

½ºÅ©¸°ÀÇ Orientation(¹æÇâ Áï, Landscape¿Í Portrait)ÀÌ ¹Ù²î°Ô µÇ¸é
½Ã½ºÅÛÀº Default ¼³Á¤¿¡ µû¶ó ÇöÀç Activity¸¦ Æı«ÇÏ°í ±× »óŸ¦ 
À¯ÁöÇϸ鼭 »õ·Î¿î Activity¸¦ »ý¼ºÇÕ´Ï´Ù. ±×·¸°Ô ÇÏ´Â µ¿¾È ¾Èµå·ÎÀ̵å´Â
¾ÖÇø®ÄÉÀ̼ÇÀÇ ¸®¼Ò½º·ÎºÎÅÍ UI¸¦ ´Ù½Ã ·ÎµåÇÕ´Ï´Ù. ¸¸¾à¿¡ ¾ÖÇø®ÄÉÀ̼ÇÀ»
°³¹ß ÇÒ ¶§ Å« »çÀÌÁîÀÇ ºñÆ®¸ÊÀ» »ðÀÔÇϴµ¥ Orientation(¹æÇâ)¿¡ µû¶ó
°è¼Ó ·ÎµåÇÏ°í ½ÍÁö ¾Ê´Ù¸é °¡Àå ½¬¿î ¹æ¹ýÀº ¾Æ·¡ÀÇ Äڵ忡¼­ º¸ÀÌ´Â ¹Ù¿Í °°ÀÌ
static Çʵ忡 ³Ö°í »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
Äڵ带 º¸½ÃÁÒ.

01.private static Drawable sBackground;
02. 
03.@Override
04.protected void onCreate(Bundle state) {
05.super.onCreate(state);
06. 
07.TextView label = new TextView(this);
08.label.setText("Leaks are bad");
09. 
10.if (sBackground == null) {
11.sBackground = getDrawable(R.drawable.large_bitmap);
12.}
13.label.setBackgroundDrawable(sBackground);
14. 
15.setContentView(label);
16.}
¸ÕÀú À§ÀÇ Äڵ忡¼­ ù¹ø° Orientation(¹æÇâ) Àüȯ½Ã¿¡ ¸¸µé¾îÁö´Â
Activity¿¡¼­ ¸Þ¸ð¸® ´©ÃâÀÌ ¹ß»ýÇÕ´Ï´Ù. DrawableÀÌ View¿¡ Àü°³µÇ¸é
View´Â Drawable¿¡ ÄݹéÇÔ¼ö·Î ¼³Á¤µË´Ï´Ù. Áï, DrawableÀº TextView¿¡
ÂüÁ¶ÇÏ°í ÀÖ°í TextView ÀÚ½ÅÀº Activity(Context)¸¦ ÂüÁ¶ÇÏ°í ÀÖÀ¸¸ç
Activity´Â »ç½Ç»ó ¸ðµç °ÍÀ» ÂüÁ¶ÇÏ°í ÀÖ½À´Ï´Ù. (Äڵ忡 µû¶ó ´Ù¸§)

À§ÀÇ ¿¹Á¦´Â ContextÀÇ ¸Þ¸ð¸® ´©ÃâÀÇ ¾ÆÁÖ °£´ÜÇÑ »ç·Ê·Î ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡¼­´Â
Home Screen's Source Code(ÇÁ·ÎÁ§Æ® ³»¿¡ unbindDrawables() ¸Þ¼­µå Âü°í)
¿¡¼­ ¾î¶² ½ÄÀ¸·Î ¸Þ¸ð¸® ´©ÃâÀÌ ÀϾ´ÂÁö È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Èï¹Ì·Ó°Ôµµ Context¿¡ °ü·ÃÇÑ ¸Þ¸ð¸® ´©Ãâ »ç·Ê´Â ¾ó¸¶µçÁö ÀÖ°í Á¤µµ¿¡ µû¶ó
½É°¢Çϱ⵵ ÇÕ´Ï´Ù. ÀÌ·± °æ¿ì´Â »ç¿ë°¡´É ¸Þ¸ð¸® ¿µ¿ªÀÌ ºñ±³Àû »¡¸® ¼ÒÁøµË´Ï´Ù.

Context ¸Þ¸ð¸® ´©ÃâÀ» ÇÇÇÏ´Â ¹æ¹ýÀ¸·Î´Â µÎ°¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
°¡Àå È®½ÇÇÑ ¹æ¹ýÀº Context »ç¿ë¹üÀ§¸¦ Á¦ÇÑµÈ ¹üÀ§ ¾ÈÀ¸·Î ÇÑÁ¤ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
À§¿¡¼­ º¸¿©µå¸° ¿¹Á¦ Äڵ忡¼­´Â static ÂüÁ¶¸¦ »ç¿ëÇßÁö¸¸ À̳ÊŬ·¡½º(Inner Class)
¿¡¼­ ¹Ù±ùŬ·¡½º(Outer Class)¸¦ ¾Ï¹¬ÀûÀ¸·Î ÂüÁ¶ÇÏ´Â °ÍÀÌ À§ÇèÇÑ °ÍÀÓÀ» º¸¿´½À´Ï´Ù.
µÎ¹ø° ¹æ¹ýÀº Application Context¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
ÀÌ ¹æ¹ý¿¡¼­ Context´Â ¾×ƼºñƼ°¡ »ì¾ÆÀÖ´Â µ¿¾ÈÀº Áö¼ÓµÇ¸é¼­µµ ActivityÀÇ »ý¸íÁÖ±â
¿Í´Â º°°³ÀÇ ¼ö¸íÀ» °®½À´Ï´Ù. °³¹ß½Ã¿¡ ¿À·£½Ã°£ »ì¾ÆÀÖ¾î¾ß ÇÒ Context°¡ ÇÊ¿äÇÑ
Object°¡ ÇÊ¿äÇÏ´Ù¸é Application Object¸¦ ±â¾ïÇϽʽÿÀ.
Context.getApplicationContext() ¸Þ¼­µå¿Í Activity.getApplication() ¸Þ¼­µå¸¦
ÅëÇؼ­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¸Þ¸ð¸® ´©Ãâ ¹æÁö¿¡ ´ëÇØ ¿ä¾àÇÏÀÚ¸é


  • Context Acitivity¿¡ ¿À·£½Ã°£ Áö¼ÓµÇ´Â ÂüÁ¶¸¦ ÇÇÇÒ °Í (Acivitity¸¦ ÂüÁ¶ÇÏ´Â Object´Â
    »ý¸íÁֱⰡ Activity ÀÚü¿Í °°¾Æ¾ß ÇÑ´Ù.)

  • Context Activity ´ë½Å¿¡ Context ApplicationÀ» »ç¿ëÇÏ´Â ½À°üÀ» °¡ÁöÀÚ


  • Activity ¾ÈÀÇ Static ÀÌ ¾Æ´Ñ À̳ÊŬ·¡½º(Inner Class)¸¦ µÇµµ·Ï »ç¿ëÇÏÁö ¸»ÀÚ
    Static ÀÌ³Ê Å¬·¡½º¸¦ »ç¿ëÇÏ°í ¾àÇÑ ÂüÁ¶´Â Activity ¾È¿¡ µÎµµ·Ï ÇÏÀÚ
    ÀÌ ¹®Á¦¿¡ ´ëÇÑ ÇØ°áÃ¥Àº WeakReference¸¦ »ç¿ëÇÑ Static ÀÌ³Ê Å¬·¡½º¸¦ ÀÌ¿ëÇØ
    ¹Ù±ùŬ·¡½º(Outer Class)¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ´Ù.


  • Garbage Collector´Â ¸Þ¸ð¸® ´©Ãâ ¹æÁö¸¦ º¸ÀåÇÏÁö ¾Ê´Â´Ù.





 

°Ô½Ã¹° 3°Ç
¹øÈ£ Á¦¸ñ ±Û¾´ÀÌ ³¯Â¥ Á¶È¸
3  ¸Þ¸ð¸® ´©Ãâ ÇÇÇϱâ ÁöÅÂÈ£ 11-25 3371
2  [¹ø¿ª] Àç»ç¿ë °¡´ÉÇÑ UI ÄÄÆ÷³ÍÆ®·Î ·¹À̾ƿô ±¸¼ºÇϱâ +4 ÁöÅÂÈ£ 06-25 3520
1  ¾È³çÇϼ¼¿ä! +4 ÁöÅÂÈ£ 06-24 2900
 
 
 
Copyright ¨Ï wwwold.androidstudy.co.kr. All rights reserved.