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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Android×î¼ÑÐÔÄÜʵ¼ù(Ò»)¡ª¡ªºÏÀí¹ÜÀíÄÚ´æ
 
×÷Õߣºguolin À´Ô´£ºCSDN ·¢²¼ÓÚ 2015-04-22
  1897  次浏览      27
 

Óв»ÉÙÅóÓѶ¼ÎʹýÎÒ£¬ÔõÑù²ÅÄÜд³ö¸ßÐÔÄܵÄÓ¦ÓóÌÐò£¬ÈçºÎ±ÜÃâ³ÌÐò³öÏÖOOM£¬»òÕßµ±³ÌÐòÄÚ´æÕ¼Óùý¸ßµÄʱºò¸ÃÔõôÑùÈ¥ÅŲ顣ȷʵ£¬Ò»¸öÓÅÐãµÄÓ¦ÓóÌÐò£¬²»½ö½öÒª¹¦ÄÜÍê³ÉµÃºÃ£¬ÐÔÄÜÎÊÌâÒ²Ó¦¸Ã´¦ÀíµÃÇ¡µ½ºÃ´¦¡£Îª´Ë£¬ÎÒÒ²ÊÇÔĶÁÁ˲»ÉÙAndroid¹Ù·½¸ø³öµÄ¸ßÐÔÄܱà³Ì½¨Ò飬ÄÇô´Ó±¾ÆªÎÄÕ¿ªÊ¼£¬ÎÒ¾Í×¼±¸¿ªÊ¼Ð´Ò»¸öÈ«ÐÂϵÁеIJ©ÎÄ£¬À´°ÑÕâЩ½¨Òé½øÐÐÕûÀíºÍ·ÖÎö£¬°ïÖú´ó¼ÒÄܹ»Ð´³ö¸ü¼Ó³öÉ«µÄÓ¦ÓóÌÐò¡£

×¢ÒⱾϵÁÐÎÄÕµÄÄÚÈÝ»ù±¾Ô´ÓÚAndroid Doc£¬Èç¹ûÏëÒªÔĶÁ¸ü¼ÓÏêϸµÄ¹ØÓÚÐÔÄÜ·½ÃæµÄ×ÊÁÏ£¬¿ÉÒÔÖ±½ÓÈ¥ÔĶÁAndroid¹Ù·½Îĵµ¡£

ÄÚ´æ(RAM)¶ÔÓÚÈκÎÒ»¸öÈí¼þ¿ª·¢»·¾³¶¼ÊÇÖַdz£Õä¹óµÄ×ÊÔ´£¬¶ø¶ÔÓÚÒÆ¶¯²Ù×÷ϵͳÀ´½²µÄ»°£¬Ôò»áÏԵøü¼ÓÕä¹ó£¬ÒòΪÊÖ»úµÄÓ²¼þÌõ¼þÏà¶ÔÓÚPC±Ï¾¹ÊDZȽÏÂäºóµÄ¡£¾¡¹ÜAndroidϵͳµÄÐéÄâ»úÓµÓÐ×Ô¶¯»ØÊÕÀ¬»øµÄ»úÖÆ£¬µ«Õâ²¢²»´ú±íÎÒÃǾͿÉÒÔºöÊÓÓ¦¸ÃÔÚʲôʱºò·ÖÅäºÍÊÍ·ÅÄÚ´æ¡£

ΪÁËʹÀ¬»ø»ØÊÕÆ÷¿ÉÒÔÕý³£ÊͷųÌÐòËùÕ¼ÓõÄÄڴ棬ÔÚ±àд´úÂëµÄʱºò¾ÍÒ»¶¨Òª×¢Ò⾡Á¿±ÜÃâ³öÏÖÄÚ´æÐ¹Â©µÄÇé¿ö£¨Í¨³£¶¼ÊÇÓÉÓÚÈ«¾Ö³ÉÔ±±äÁ¿³ÖÓжÔÏóÒýÓÃËùµ¼Öµģ©£¬²¢ÇÒÔÚÊʵ±µÄʱºòÈ¥ÊͷŶÔÏóÒýÓ᣶ÔÓÚ´ó¶àÊýµÄÓ¦ÓóÌÐò¶øÑÔ£¬ºóÃæÆäËüµÄÊÂÇé¾Í¿ÉÒÔ¶¼½»¸øÀ¬»ø»ØÊÕÆ÷È¥Íê³ÉÁË£¬Èç¹ûÒ»¸ö¶ÔÏóµÄÒýÓò»ÔÙ±»ÆäËü¶ÔÏóËù³ÖÓУ¬ÄÇôϵͳ¾Í»á½«Õâ¸ö¶ÔÏóËù·ÖÅäµÄÄÚ´æ½øÐлØÊÕ¡£

ÎÒÃÇÔÚ¿ª·¢Èí¼þµÄʱºòÓ¦µ±×ÔʼÖÁÖÕ¶¼°ÑÄÚ´æµÄÎÊÌâ³ä·Ö¿¼ÂǽøÈ¥£¬ÕâÑùµÄ»°²ÅÄÜ¿ª·¢³ö¸ü¼Ó¸ßÐÔÄܵÄÈí¼þ¡£¶øÄÚ´æÎÊÌâÒ²²¢²»ÊÇÎÞ¹æÂÉ¿ÉÐеģ¬Androidϵͳ¸øÎÒÃÇÌá³öÁ˺ܶàÄÚ´æÓÅ»¯µÄ½¨Òé¼¼ÇÉ£¬Ö»Òª°´ÕÕÕâЩ¼¼ÇÉÀ´±àд³ÌÐò£¬¾Í¿ÉÒÔÈÃÎÒÃǵijÌÐòÔÚÄÚ´æÐÔÄÜ·¢Ãæ±íÏÖµÃÏ൱²»´í£¬ÏÂÃæÎÒÃǾÍÀ´Ò»Ò»Ñ§Ï°Ò»ÏÂÕâЩ¼¼ÇÉ¡£

½ÚÖÆµØÊ¹ÓÃService

Èç¹ûÓ¦ÓóÌÐòµ±ÖÐÐèҪʹÓÃServiceÀ´Ö´Ðкǫ́ÈÎÎñµÄ»°£¬ÇëÒ»¶¨Òª×¢ÒâÖ»Óе±ÈÎÎñÕýÔÚÖ´ÐеÄʱºò²ÅÓ¦¸ÃÈÃServiceÔËÐÐÆðÀ´¡£ÁíÍ⣬µ±ÈÎÎñÖ´ÐÐÍêÖ®ºóȥֹͣServiceµÄʱºò£¬ÒªÐ¡ÐÄServiceֹͣʧ°Üµ¼ÖÂÄÚ´æÐ¹Â©µÄÇé¿ö¡£

µ±ÎÒÃÇÆô¶¯Ò»¸öServiceʱ£¬ÏµÍ³»áÇãÏòÓÚ½«Õâ¸öServiceËùÒÀÀµµÄ½ø³Ì½øÐб£Áô£¬ÕâÑù¾Í»áµ¼ÖÂÕâ¸ö½ø³Ì±äµÃ·Ç³£ÏûºÄÄÚ´æ¡£²¢ÇÒ£¬ÏµÍ³¿ÉÒÔÔÚLRU cacheµ±Öлº´æµÄ½ø³ÌÊýÁ¿Ò²»á¼õÉÙ£¬µ¼ÖÂÇл»Ó¦ÓóÌÐòµÄʱºòºÄ·Ñ¸ü¶àÐÔÄÜ¡£ÑÏÖØµÄ»°£¬ÉõÖÁÓпÉÄܻᵼÖ±ÀÀ££¬ÒòΪϵͳÔÚÄÚ´æ·Ç³£³Ô½ôµÄʱºò¿ÉÄÜÒÑÎÞ·¨Î¬»¤ËùÓÐÕýÔÚÔËÐеÄServiceËùÒÀÀµµÄ½ø³ÌÁË¡£

ΪÁËÄܹ»¿ØÖÆServiceµÄÉúÃüÖÜÆÚ£¬Android¹Ù·½ÍƼöµÄ×î¼Ñ½â¾ö·½°¸¾ÍÊÇʹÓÃIntentService£¬ÕâÖÖServiceµÄ×î´óÌØµã¾ÍÊǵ±ºǫ́ÈÎÎñÖ´ÐнáÊøºó»á×Ô¶¯Í£Ö¹£¬´Ó¶ø¼«´ó³Ì¶ÈÉϱÜÃâÁËServiceÄÚ´æÐ¹Â©µÄ¿ÉÄÜÐÔ¡£¹ØÓÚIntentService¸ü¼ÓÏêϸµÄÓ÷¨½²½â£¬¿ÉÒԲο¼¡¶µÚÒ»ÐдúÂ롪¡ªAndroid¡·µÄ9.5.2½Ú¡£

ÈÃÒ»¸öServiceÔÚºǫ́һֱ±£³ÖÔËÐУ¬¼´Ê¹Ëü²¢²»Ö´ÐÐÈκι¤×÷£¬ÕâÊDZàдAndroid³ÌÐòʱ×îÔã¸âµÄ×ö·¨Ö®Ò»¡£ËùÒÔAndroid¹Ù·½¼«¶È½¨Ò鿪·¢ÈËÔ±ÃDz»Òª¹ýÓṴ́À·£¬ÈÃServiceÔÚºǫ́һֱÔËÐУ¬Õâ²»½ö¿ÉÄܻᵼÖÂÊÖ»úºÍ³ÌÐòµÄÐÔÄܷdz£µÍÏ£¬¶øÇÒ±»Óû§·¢ÏÖÁËÖ®ºóÒ²ÓпÉÄÜÖ±½Óµ¼ÖÂÎÒÃǵÄÈí¼þ±»Ð¶ÔØ£¨ÎÒ¸öÈ˾ͻáÕâô×ö£©¡£

µ±½çÃæ²»¿É¼ûʱÊÍ·ÅÄÚ´æ

µ±Óû§´ò¿ªÁËÁíÍâÒ»¸ö³ÌÐò£¬ÎÒÃǵijÌÐò½çÃæÒѾ­²»ÔٿɼûµÄʱºò£¬ÎÒÃÇÓ¦µ±½«ËùÓкͽçÃæÏà¹ØµÄ×ÊÔ´½øÐÐÊÍ·Å¡£ÔÚÕâÖÖ³¡¾°ÏÂÊÍ·Å×ÊÔ´¿ÉÒÔÈÃϵͳ»º´æºǫ́½ø³ÌµÄÄÜÁ¦ÏÔÖøÔö¼Ó£¬Òò´ËÒ²»áÈÃÓû§ÌåÑé±äµÃ¸üºÃ¡£

ÄÇôÎÒÃÇÈçºÎ²ÅÄÜÖªµÀ³ÌÐò½çÃæÊDz»ÊÇÒѾ­²»¿É¼ûÁËÄØ£¿ÆäʵºÜ¼òµ¥£¬Ö»ÐèÒªÔÚActivityÖÐÖØÐ´onTrimMemory()·½·¨£¬È»ºóÔÚÕâ¸ö·½·¨ÖмàÌýTRIM_MEMORY_UI_HIDDENÕâ¸ö¼¶±ð£¬Ò»µ©´¥·¢ÁËÖ®ºó¾Í˵Ã÷Óû§ÒѾ­À뿪ÁËÎÒÃǵijÌÐò£¬ÄÇô´Ëʱ¾Í¿ÉÒÔ½øÐÐ×ÊÔ´ÊͷŲÙ×÷ÁË£¬ÈçÏÂËùʾ£º

@Override  
public void onTrimMemory(int level) {
super.onTrimMemory(level);
switch (level) {
case TRIM_MEMORY_UI_HIDDEN:
// ½øÐÐ×ÊÔ´ÊͷŲÙ×÷
break;
}
}

×¢ÒâonTrimMemory()·½·¨ÖеÄTRIM_MEMORY_UI_HIDDEN»Øµ÷Ö»Óе±ÎÒÃdzÌÐòÖеÄËùÓÐUI×é¼þÈ«²¿²»¿É¼ûµÄʱºò²Å»á´¥·¢£¬ÕâºÍonStop()·½·¨»¹ÊÇÓкܴóÇø±ðµÄ£¬ÒòΪonStop()·½·¨Ö»Êǵ±Ò»¸öActivityÍêÈ«²»¿É¼ûµÄʱºò¾Í»áµ÷Ó㬱ÈÈç˵Óû§´ò¿ªÁËÎÒÃdzÌÐòÖеÄÁíÒ»¸öActivity¡£Òò´Ë£¬ÎÒÃÇ¿ÉÒÔÔÚonStop()·½·¨ÖÐÈ¥ÊÍ·ÅһЩActivityÏà¹ØµÄ×ÊÔ´£¬±ÈÈç˵ȡÏûÍøÂçÁ¬½Ó»òÕß×¢Ïú¹ã²¥½ÓÊÕÆ÷µÈ£¬µ«ÊÇÏñUIÏà¹ØµÄ×ÊÔ´Ó¦¸ÃÒ»Ö±ÒªµÈµ½onTrimMemory(TRIM_MEMORY_UI_HIDDEN)Õâ¸ö»Øµ÷Ö®ºó²ÅÈ¥ÊÍ·Å£¬ÕâÑù¿ÉÒÔ±£Ö¤Èç¹ûÓû§Ö»ÊÇ´ÓÎÒÃdzÌÐòµÄÒ»¸öActivity»Øµ½ÁËÁíÍâÒ»¸öActivity£¬½çÃæÏà¹ØµÄ×ÊÔ´¶¼²»ÐèÒªÖØÐ¼ÓÔØ£¬´Ó¶øÌáÉýÏìÓ¦ËÙ¶È¡£

µ±ÄÚ´æ½ôÕÅʱÊÍ·ÅÄÚ´æ

³ýÁ˸ղ޲µÄTRIM_MEMORY_UI_HIDDENÕâ¸ö»Øµ÷£¬onTrimMemory()·½·¨»¹ÓкܶàÖÖÆäËüÀàÐ͵Ļص÷£¬¿ÉÒÔÔÚÊÖ»úÄÚ´æ½µµÍµÄʱºò¼°Ê±Í¨ÖªÎÒÃÇ¡£ÎÒÃÇÓ¦¸Ã¸ù¾Ý»Øµ÷Öд«ÈëµÄ¼¶±ðÀ´È¥¾ö¶¨ÈçºÎÊÍ·ÅÓ¦ÓóÌÐòµÄ×ÊÔ´£º

TRIM_MEMORY_RUNNING_MODERATE ±íʾӦÓóÌÐòÕý³£ÔËÐУ¬²¢ÇÒ²»»á±»É±µô¡£µ«ÊÇĿǰÊÖ»úµÄÄÚ´æÒѾ­ÓеãµÍÁË£¬ÏµÍ³¿ÉÄܻῪʼ¸ù¾ÝLRU»º´æ¹æÔòÀ´È¥É±ËÀ½ø³ÌÁË¡£

TRIM_MEMORY_RUNNING_LOW ±íʾӦÓóÌÐòÕý³£ÔËÐУ¬²¢ÇÒ²»»á±»É±µô¡£µ«ÊÇĿǰÊÖ»úµÄÄÚ´æÒѾ­·Ç³£µÍÁË£¬ÎÒÃÇÓ¦¸ÃÈ¥ÊͷŵôһЩ²»±ØÒªµÄ×ÊÔ´ÒÔÌáÉýϵͳµÄÐÔÄÜ£¬Í¬Ê±ÕâÒ²»áÖ±½ÓÓ°Ïìµ½ÎÒÃÇÓ¦ÓóÌÐòµÄÐÔÄÜ¡£

TRIM_MEMORY_RUNNING_CRITICAL ±íʾӦÓóÌÐòÈÔÈ»Õý³£ÔËÐУ¬µ«ÊÇϵͳÒѾ­¸ù¾ÝLRU»º´æ¹æÔòɱµôÁ˴󲿷ֻº´æµÄ½ø³ÌÁË¡£Õâ¸öʱºòÎÒÃÇÓ¦µ±¾¡¿ÉÄܵØÈ¥ÊÍ·ÅÈκβ»±ØÒªµÄ×ÊÔ´£¬²»È»µÄ»°ÏµÍ³¿ÉÄÜ»á¼ÌÐøÉ±µôËùÓлº´æÖеĽø³Ì£¬²¢ÇÒ¿ªÊ¼É±µôһЩ±¾À´Ó¦µ±±£³ÖÔËÐеĽø³Ì£¬±ÈÈç˵ºǫ́ÔËÐеķþÎñ¡£

ÒÔÉÏÊǵ±ÎÒÃǵÄÓ¦ÓóÌÐòÕýÔÚÔËÐÐʱµÄ»Øµ÷£¬ÄÇôÈç¹ûÎÒÃǵijÌÐòĿǰÊDZ»»º´æµÄ£¬Ôò»áÊÕµ½ÒÔϼ¸ÖÖÀàÐ͵Ļص÷£º

TRIM_MEMORY_BACKGROUND ±íʾÊÖ»úĿǰÄÚ´æÒѾ­ºÜµÍÁË£¬ÏµÍ³×¼±¸¿ªÊ¼¸ù¾ÝLRU»º´æÀ´ÇåÀí½ø³Ì¡£Õâ¸öʱºòÎÒÃǵijÌÐòÔÚLRU»º´æÁбíµÄ×î½üλÖã¬ÊDz»Ì«¿ÉÄܱ»ÇåÀíµôµÄ£¬µ«ÕâʱȥÊͷŵôһЩ±È½ÏÈÝÒ×»Ö¸´µÄ×ÊÔ´Äܹ»ÈÃÊÖ»úµÄÄÚ´æ±äµÃ±È½Ï³ä×㣬´Ó¶øÈÃÎÒÃǵijÌÐò¸ü³¤Ê±¼äµØ±£ÁôÔÚ»º´æµ±ÖУ¬ÕâÑùµ±Óû§·µ»ØÎÒÃǵijÌÐòʱ»á¸Ð¾õ·Ç³£Ë³³©£¬¶ø²»ÊǾ­ÀúÁËÒ»´ÎÖØÐÂÆô¶¯µÄ¹ý³Ì¡£

TRIM_MEMORY_MODERATE ±íʾÊÖ»úĿǰÄÚ´æÒѾ­ºÜµÍÁË£¬²¢ÇÒÎÒÃǵijÌÐò´¦ÓÚLRU»º´æÁбíµÄÖмäλÖã¬Èç¹ûÊÖ»úÄڴ滹µÃ²»µ½½øÒ»²½Êͷŵϰ£¬ÄÇôÎÒÃǵijÌÐò¾ÍÓб»ÏµÍ³É±µôµÄ·çÏÕÁË¡£

TRIM_MEMORY_COMPLETE ±íʾÊÖ»úĿǰÄÚ´æÒѾ­ºÜµÍÁË£¬²¢ÇÒÎÒÃǵijÌÐò´¦ÓÚLRU»º´æÁбíµÄ×î±ßԵλÖã¬ÏµÍ³»á×îÓÅÏÈ¿¼ÂÇɱµôÎÒÃǵÄÓ¦ÓóÌÐò£¬ÔÚÕâ¸öʱºòÓ¦µ±¾¡¿ÉÄܵذÑÒ»ÇпÉÒÔÊͷŵĶ«Î÷¶¼½øÐÐÊÍ·Å¡£

±ÜÃâÔÚBitmapÉÏÀË·ÑÄÚ´æ

µ±ÎÒÃǶÁȡһ¸öBitmapͼƬµÄʱºò£¬ÓÐÒ»µãÒ»¶¨Òª×¢Ò⣬¾ÍÊÇǧÍò²»ÒªÈ¥¼ÓÔØ²»ÐèÒªµÄ·Ö±æÂÊ¡£ÔÚÒ»¸öºÜСµÄImageViewÉÏÏÔʾһÕŸ߷ֱæÂʵÄͼƬ²»»á´øÀ´ÈκÎÊÓ¾õÉϵĺô¦£¬µ«È´»áÕ¼ÓÃÎÒÃÇÏ൱¶à±¦¹óµÄÄÚ´æ¡£ÐèÒª½ö¼ÇµÄÒ»µãÊÇ£¬½«Ò»ÕÅͼƬ½âÎö³ÉÒ»¸öBitmap¶ÔÏóʱËùÕ¼ÓõÄÄÚ´æ²¢²»ÊÇÕâ¸öͼƬÔÚÓ²ÅÌÖеĴóС£¬¿ÉÄÜÒ»ÕÅͼƬֻÓÐ100kÄã¾õµÃËü²¢²»´ó£¬µ«ÊǶÁÈ¡µ½ÄÚ´æµ±ÖÐÊǰ´ÕÕÏñËØµãÀ´ËãµÄ£¬±ÈÈçÕâÕÅͼƬÊÇ1500*1000ÏñËØ£¬Ê¹ÓõÄARGB_8888ÑÕÉ«ÀàÐÍ£¬ÄÇôÿ¸öÏñËØµã¾Í»áÕ¼ÓÃ4¸ö×Ö½Ú£¬×ÜÄÚ´æ¾ÍÊÇ1500*1000*4×Ö½Ú£¬Ò²¾ÍÊÇ5.7M£¬Õâ¸öÊý¾Ý¿´ÆðÀ´¾Í±È½Ï¿Ö²ÀÁË¡£

ÖÁÓÚÈçºÎȥѹËõͼƬ£¬ÒÔ¼°¸ü¶àÔÚͼƬ·½Ãæ½ÚÊ¡ÄÚ´æµÄ¼¼Êõ£¬´ó¼Ò¿ÉÒÔÈ¥²Î¿¼ÎÒ֮ǰдµÄһƪ²©¿Í Android¸ßЧ¼ÓÔØ´óͼ¡¢¶àͼ½â¾ö·½°¸£¬ÓÐЧ±ÜÃâ³ÌÐòOOM ¡£

ʹÓÃÓÅ»¯¹ýµÄÊý¾Ý¼¯ºÏ

Android APIµ±ÖÐÌṩÁËһЩÓÅ»¯¹ýºóµÄÊý¾Ý¼¯ºÏ¹¤¾ßÀ࣬ÈçSparseArray£¬SparseBooleanArray£¬ÒÔ¼°LongSparseArrayµÈ£¬Ê¹ÓÃÕâЩAPI¿ÉÒÔÈÃÎÒÃǵijÌÐò¸ü¼Ó¸ßЧ¡£´«Í³Java APIÖÐÌṩµÄHashMap¹¤¾ßÀà»áÏà¶Ô±È½ÏµÍЧ£¬ÒòΪËüÐèҪΪÿһ¸ö¼üÖµ¶Ô¶¼Ìṩһ¸ö¶ÔÏóÈë¿Ú£¬¶øSparseArray¾Í±ÜÃâµôÁË»ù±¾Êý¾ÝÀàÐÍת»»³É¶ÔÏóÊý¾ÝÀàÐ͵Äʱ¼ä¡£

ÖªÏþÄÚ´æµÄ¿ªÖ§Çé¿ö

ÎÒÃÇ»¹Ó¦µ±Çå³þÎÒÃÇËùʹÓÃÓïÑÔµÄÄڴ濪֧ºÍÏûºÄÇé¿ö£¬²¢ÇÒÔÚÕû¸öÈí¼þµÄÉè¼ÆºÍ¿ª·¢µ±Öж¼Ó¦¸Ã½«ÕâЩÐÅÏ¢¿¼ÂÇÔÚÄÚ¡£¿ÉÄÜÓÐһЩ¿´ÆðÀ´ÎÞ¹ØÍ´Ñ÷µÄд·¨£¬½á¹ûÈ´»áµ¼ÖºܴóÒ»²¿·ÖµÄÄڴ濪֧£¬ÀýÈ磺

ʹÓÃö¾Ùͨ³£»á±ÈʹÓþ²Ì¬³£Á¿ÒªÏûºÄÁ½±¶ÒÔÉϵÄÄڴ棬ÔÚAndroid¿ª·¢µ±ÖÐÎÒÃÇÓ¦µ±¾¡¿ÉÄܵز»Ê¹ÓÃö¾Ù¡£

ÈκÎÒ»¸öJavaÀ࣬°üÀ¨ÄÚ²¿Àà¡¢ÄäÃûÀ࣬¶¼ÒªÕ¼Óôó¸Å500×Ö½ÚµÄÄÚ´æ¿Õ¼ä¡£

ÈκÎÒ»¸öÀàµÄʵÀýÒªÏûºÄ12-16×Ö½ÚµÄÄڴ濪֧£¬Òò´ËƵ·±´´½¨ÊµÀýÒ²ÊÇ»áÒ»¶¨³ÌÐòÉÏÓ°ÏìÄÚ´æµÄ¡£

ÔÚʹÓÃHashMapʱ£¬¼´Ê¹ÄãÖ»ÉèÖÃÁËÒ»¸ö»ù±¾Êý¾ÝÀàÐ͵ļü£¬±ÈÈç˵int£¬µ«ÊÇÒ²»á°´ÕÕ¶ÔÏóµÄ´óСÀ´·ÖÅäÄڴ棬´ó¸ÅÊÇ32×Ö½Ú£¬¶ø²»ÊÇ4×Ö½Ú¡£Òò´Ë×îºÃµÄ°ì·¨¾ÍÊÇÏñÉÏÃæËù˵µÄÒ»Ñù£¬Ê¹ÓÃÓÅ»¯¹ýµÄÊý¾Ý¼¯ºÏ¡£

½÷É÷ʹÓóéÏó±à³Ì

Ðí¶à³ÌÐòÔ±¶¼Ï²»¶¸÷ÖÖʹÓóéÏóÀ´±à³Ì£¬ÈÏΪÕâÊÇÒ»Öֺܺõıà³Ìϰ¹ß¡£µ±È»£¬ÕâÒ»µã²»¿É·ñÈÏ£¬ÒòΪµÄ³éÏóµÄ±à³Ì·½·¨¸ü¼ÓÃæÏò¶ÔÏ󣬶øÇÒÔÚ´úÂëµÄά»¤ºÍ¿ÉÀ©Õ¹ÐÔ·½Ãæ¶¼»áÓÐËùÌá¸ß¡£µ«ÊÇ£¬ÔÚAndroidÉÏʹÓóéÏó»á´øÀ´¶îÍâµÄÄڴ濪֧£¬ÒòΪ³éÏóµÄ±à³Ì·½·¨ÐèÒª±àд¶îÍâµÄ´úÂ룬ËäÈ»ÕâЩ´úÂë¸ù±¾Ö´Ðв»µ½£¬µ«ÊÇÈ´Ò²ÒªÓ³Éäµ½ÄÚ´æµ±ÖУ¬²»½öÕ¼ÓÃÁ˸ü¶àµÄÄڴ棬ÔÚÖ´ÐÐЧÂÊ·½ÃæÒ²»áÓÐËù½µµÍ¡£µ±È»ÕâÀïÎÒ²¢²»ÊÇÌᳫ´ó¼ÒÍêÈ«²»Ê¹ÓóéÏó±à³Ì£¬¶øÊǽ÷É÷ʹÓóéÏó±à³Ì£¬²»ÒªÈÏΪÕâÊÇÒ»ÖֺܿáµÄ±à³Ì·½Ê½¶øÈ¥ËÁÒâʹÓÃËü£¬Ö»ÔÚÄãÈÏΪÓбØÒªµÄÇé¿öϲÅȥʹÓá£

¾¡Á¿±ÜÃâʹÓÃÒÀÀµ×¢Èë¿ò¼Ü

ÏÖÔÚÓкܶàÈ˶¼Ï²»¶ÔÚAndroid¹¤³Ìµ±ÖÐʹÓÃÒÀÀµ×¢Èë¿ò¼Ü£¬±ÈÈç˵ÏñGuice»òÕßRoboGuiceµÈ£¬ÒòΪËüÃÇ¿ÉÒÔ¼ò»¯Ò»Ð©¸´ÔӵıàÂë²Ù×÷£¬±ÈÈç¿ÉÒÔ½«ÏÂÃæµÄÒ»¶Î´úÂ룺

class AndroidWay extends Activity {   
TextView name;
ImageView thumbnail;
LocationManager loc;
Drawable icon;
String myName;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
name = (TextView) findViewById(R.id.name);
thumbnail = (ImageView) findViewById(R.id.thumbnail);
loc = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);
icon = getResources().getDrawable(R.drawable.icon);
myName = getString(R.string.app_name);
name.setText( "Hello, " + myName );
}
}

¼ò»¯³ÉÕâÑùµÄÒ»ÖÖд·¨£º

@ContentView(R.layout.main)  
class RoboWay extends RoboActivity {
@InjectView(R.id.name) TextView name;
@InjectView(R.id.thumbnail) ImageView thumbnail;
@InjectResource(R.drawable.icon) Drawable icon;
@InjectResource(R.string.app_name) String myName;
@Inject LocationManager loc;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
name.setText( "Hello, " + myName );
}
}

¿´ÉÏȥȷʵʮ·ÖÓÕÈË£¬ÎÒÃÇÉõÖÁ¿ÉÒÔ½«findViewById()ÕâÒ»ÀàµÄ·±Ëö²Ù×÷È«²¿Ê¡È¥ÁË¡£µ«ÊÇÕâЩ¿ò¼ÜΪÁËÒªËÑѰ´úÂëÖеÄ×¢½â£¬Í¨³£¶¼ÐèÒª¾­Àú½Ï³¤µÄ³õʼ»¯¹ý³Ì£¬²¢ÇÒ»¹¿ÉÄܽ«Ò»Ð©ÄãÓò»µ½µÄ¶ÔÏóÒ²Ò»²¢¼ÓÔØµ½ÄÚ´æµ±ÖС£ÕâЩÓò»µ½µÄ¶ÔÏó»áÒ»Ö±Õ¼ÓÃ×ÅÄÚ´æ¿Õ¼ä£¬¿ÉÄÜÒª¹ýºÜ¾ÃÖ®ºó²Å»áµÃµ½ÊÍ·Å£¬Ïà½Ï֮ϣ¬Ò²Ðí¶àÇü¸Ðп´ËÆ·±ËöµÄ´úÂë²ÅÊǸüºÃµÄÑ¡Ôñ¡£

ʹÓÃProGuard¼ò»¯´úÂë

ProGuardÏàÐÅ´ó¼Ò¶¼²»»áİÉú£¬ºÜ¶àÈ˶¼»áʹÓÃÕâ¸ö¹¤¾ßÀ´»ìÏý´úÂ룬µ«ÊdzýÁË»ìÏýÖ®Í⣬Ëü»¹¾ßÓÐѹËõºÍÓÅ»¯´úÂëµÄ¹¦ÄÜ¡£ProGuard»á¶ÔÎÒÃǵĴúÂë½øÐмìË÷£¬É¾³ýһЩÎÞÓõĴúÂ룬²¢ÇÒ»á¶ÔÀà¡¢×ֶΡ¢·½·¨µÈ½øÐÐÖØÃüÃû£¬ÖØÃüÃûÖ®ºóµÄÀà¡¢×ֶκͷ½·¨Ãû¶¼»á±ÈÔ­À´¼ò¶ÌºÜ¶à£¬ÕâÑùµÄ»°Ò²¾Í¶ÔÄÚ´æµÄÕ¼ÓñäµÃ¸üÉÙÁË¡£

ʹÓöà¸ö½ø³Ì

Õâ¸ö¼¼ÇÉÆäʵ²¢²»ÊǷdz£½¨ÒéʹÓ㬵«ËüȷʵÊÇÒ»ÖÖ¿ÉÒÔ°ïÖúÎÒÃǽÚÊ¡ºÍ¹ÜÀíÄÚ´æµÄ¸ß¼¶¼¼ÇÉ¡£Èç¹ûÄãҪʹÓÃËüµÄ»°Ò»¶¨Òª½÷É÷ʹÓã¬ÒòΪ¾ø´ó¶àÊýµÄÓ¦ÓóÌÐò¶¼²»Ó¦¸ÃÔÚ¶à¸ö½ø³Ìµ±ÖÐÔËÐеģ¬Ò»µ©Ê¹Óò»µ±£¬ËüÉõÖÁ»áÔö¼Ó¶îÍâµÄÄÚ´æ¶ø²»ÊǰïÎÒÃǽÚÊ¡ÄÚ´æ¡£Õâ¸ö¼¼ÇɱȽÏÊÊÓÃÓÚÄÇЩÐèÒªÔÚºǫ́ȥÍê³ÉÒ»Ïî¶ÀÁ¢µÄÈÎÎñ£¬ºÍǰ̨µÄ¹¦ÄÜÊÇ¿ÉÒÔÍêÈ«Çø·Ö¿ªµÄ³¡¾°¡£

ÕâÀï¾ÙÒ»¸ö±È½ÏÊʺÏȥʹÓÃ¶à½ø³Ì¼¼Çɵij¡¾°£¬±ÈÈç˵ÎÒÃÇÕýÔÚ×öÒ»¸öÒôÀÖ²¥·ÅÆ÷Èí¼þ£¬ÆäÖв¥·ÅÒôÀֵŦÄÜÓ¦¸ÃÊÇÒ»¸ö¶ÀÁ¢µÄ¹¦ÄÜ£¬Ëü²»ÐèÒªºÍUI·½ÃæÓÐÈκιØÏµ£¬¼´Ê¹Èí¼þÒѾ­¹Ø±ÕÁËÒ²Ó¦¸Ã¿ÉÒÔÕý³£²¥·ÅÒôÀÖ¡£Èç¹û´ËʱÎÒÃÇֻʹÓÃÒ»¸ö½ø³Ì£¬ÄÇô¼´Ê¹Óû§¹Ø±ÕÁËÈí¼þ£¬ÒѾ­ÍêÈ«ÓÉServiceÀ´¿ØÖÆÒôÀÖ²¥·ÅÁË£¬ÏµÍ³ÈÔÈ»»á½«Ðí¶àUI·½ÃæµÄÄÚ´æ½øÐб£Áô¡£ÔÚÕâÖÖ³¡¾°Ï¾ͷdz£ÊʺÏʹÓÃÁ½¸ö½ø³Ì£¬Ò»¸öÓÃÓÚUIչʾ£¬ÁíÒ»¸öÔòÓÃÓÚÔÚºǫ́³ÖÐøµØ²¥·ÅÒôÀÖ¡£

ÏëҪʵÏÖ¶à½ø³ÌµÄ¹¦ÄÜÒ²·Ç³£¼òµ¥£¬Ö»ÐèÒªÔÚAndroidManifestÎļþµÄÓ¦ÓóÌÐò×é¼þÖÐÉùÃ÷Ò»¸öandroid:processÊôÐԾͿÉÒÔÁË£¬±ÈÈç˵ÎÒÃÇÏ£Íû²¥·ÅÒôÀÖµÄService¿ÉÒÔÔËÐÐÔÚÒ»¸öµ¥¶ÀµÄ½ø³Ìµ±ÖУ¬¾Í¿ÉÒÔÕâÑùд£º

<service android:name=".PlaybackService"  
android:process=":background" />

ÕâÀïÖ¸¶¨µÄ½ø³ÌÃûÊÇbackground£¬ÄãÒ²¿ÉÒÔ½«Ëü¸Ä³ÉÈÎÒâÄãϲ»¶µÄÃû×Ö¡£ÐèҪעÒâµÄÊÇ£¬½ø³ÌÃûµÄÇ°Ãæ¶¼Ó¦¸Ã¼ÓÉÏÒ»¸öðºÅ£¬±íʾ¸Ã½ø³ÌÊÇÒ»¸öµ±Ç°Ó¦ÓóÌÐòµÄ˽Óнø³Ì¡£

×ñÑ­ÒÔÉϵÄËùÓбà³Ì½¨Ò飬ÎÒÃǾͿÉÒÔÈÃÓ¦ÓóÌÐòÄÚ´æµÄʹÓñäµÃ¸ü¼ÓºÏÀí»¯¡£µ«ÕâÖ»ÊǵÚÒ»²½¶øÒÑ£¬ÎªÁËÒªÈóÌÐòÓµÓÐ×î¼ÑÐÔÄÜ£¬ÎÒÃÇҪѧϰµÄ¶«Î÷»¹Óкܶ࣬ÏÂÆªÎÄÕµ±Öн«»á½éÉÜÈçºÎ·ÖÎöÄÚ´æµÄʹÓÃÇé¿ö£¬¸ÐÐËȤµÄÅóÓÑÇëÃ÷Ìì¼ÌÐøÔĶÁ Android×î¼ÑÐÔÄÜʵ¼ù(¶þ)¡ª¡ª·ÖÎöÄÚ´æµÄʹÓÃÇé¿ö ¡£

   
1897 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

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

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

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

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


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


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