Android¨t²Î¦w¥þ©M¤Ï½s͹ê¾Ô ( ²Åé ¦r) |
§@ªÌ¡G·¨®m | Ãþ§O¡G1. -> µ{¦¡³]p -> ¤â¾÷µ{¦¡ -> Android |
ĶªÌ¡G |
¥Xª©ªÀ¡G¤H¥Á¶l¹q¥Xª©ªÀ | 3dWoo®Ñ¸¹¡G 42171 ¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I¡i¦³®w¦s¡j NT°â»ù¡G 395 ¤¸ |
¥Xª©¤é¡G8/1/2015 |
¶¼Æ¡G529 |
¥úºÐ¼Æ¡G0 |
|
¯¸ªø±ÀÂË¡G  |
¦L¨ê¡G¶Â¥Õ¦L¨ê | »y¨t¡G ( ²Åé ª© ) |
|
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R (½Ð¥ýµn¤J·|û) |
ISBN¡G9787115393036 |
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç |
(²Åé®Ñ¤W©Òz¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, YŪªÌ»Ýn½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ) |
§@ªÌ§Ç¡G |
ĶªÌ§Ç¡G |
«e¨¥¡G |
¤º®e²¤¶¡G¡@¡@¡mAndroid¨t²Î¦w¥þ©M¤Ï½s͹ê¾Ô¡n´`§Çº¥¶i¦aÁ¿¸Ñ¤FAndroid¨t²Î¦w¥þ¤è±ªº°ò¥»ª¾ÃÑ¡A±qAndroid¨t²Î¤¶²Ð¶}©l¨ìºî¦X¹ê¨Òªº¹ê¾Ô¹Lµ{¡A¥þµ{åªR¤FAndroid¨t²Î¦w¥þ¡BÀ³¥Î¦w¥þ¶}µo©M¥[±K¡B¸Ñ±K¤è±ªº®Ö¤ßª¾ÃÑ¡C¥þ®Ñ¦@17³¹¡A¥Dn¤º®e¥]¬A¡AAndroid§Þ³N®Ö¤ß®Ø¬[¤ÀªR¡BÀò¨ú¦}½sĶ·½¥N½X¡BAndroid¨t²Îªº¦w¥þ¾÷¨î¡B¤º¦s¦w¥þ¾÷¨î¡BBinder³q«H¦w¥þ¾÷¨î¡BAndroidµêÀÀ¾÷°ò¦¡BDalvik VMªº¹B§@¬yµ{¡BDEX¤å¥ó¸Ô¸Ñ¡B½s¼g¦w¥þªºÀ³¥Îµ{§Ç¡BÀ³¥Î¦w¥þµ¦²¤¡B¤å¥ó¥[±K¡B¹q¸Ü¨t²Îªº¦w¥þ¾÷¨î¡Bµu«H¨t²Îªº¦w¥þ¾÷¨î¡Bºôµ¸¨¾¤õùÙ¨t²Î¡B¤å¥ó¥[±K¨t²Îµ¥®Ö¤ß§Þ³N¡C ¡mAndroid¨t²Î¦w¥þ©M¤Ï½s͹ê¾Ô¡n¾A¦XAndroidªì¾ÇªÌ¡BAndroidÀ³¥Î¶}µoªÌ¡BAndroid¦w¥þ¬[ºc¬ã¨s¤Hû¡BAndroid©³¼h¶}µo¤Hû©MAndroid·½¥N½X¤ÀªR¤Hû¾Ç²ß¡A¤]¥i¥H§@¬°¬ÛÃö°ö°V¾Ç®Õ©M¤j±M°|®Õ¬ÛÃö±M·~ªº±Ð¾Ç¥Î®Ñ¡C |
¥Ø¿ý¡G²Ä1³¹ Android§Þ³N·§z 1 1.1 ´¼¯à¤â¾÷¨t²Î¤¶²Ð 1 1.2 ·f«ØAndroidÀ³¥Î¶}µoÀô¹Ò 2 1.2.1 ¦w¸ËAndroid SDKªº ¨t²În¨D 2 1.2.2 ¦w¸ËJDK 2 1.2.3 Àò¨ú¦}¦w¸ËEclipse©M Android SDK 5 1.2.4 ¦w¸ËADT 7 1.2.5 ³]©wAndroid SDK Home 8 1.2.6 ÅçÃÒ¶}µoÀô¹Ò 9 1.2.7 ³Ð«ØAndroidµêÀÀ³]³Æ¡]AVD¡^ 9 1.2.8 ±Ò°ÊAVD¼ÒÀÀ¾¹ 10 1.2.9 ¸Ñ¨M·f«ØÀô¹Ò¹Lµ{¤¤ ªº±`¨£°ÝÃD 12 ²Ä2³¹ Android§Þ³N®Ö¤ß®Ø¬[¤ÀªR 15 2.1 ²ªRAndroid¦w¸Ë¤å¥ó 15 2.1.1 Android SDK¥Ø¿ýµ²ºc 15 2.1.2 android.jar¤Î¤º³¡µ²ºc 16 2.1.3 ¾\ŪSDKÀ°§U¤åÀÉ 16 2.1.4 ±`¥ÎªºSDK¤u¨ã 17 2.2 ºt¥Ü©x¤è¹ê¨Ò 19 2.3 åªRAndroid¨t²Î¬[ºc 23 2.3.1 AndroidÅé¨tµ²ºc¤¶²Ð 23 2.3.2 AndroidÀ³¥Î¤uµ{ ¤å¥ó²Õ¦¨ 25 2.4 ²z¤¤j²Õ¥ó 27 2.4.1 ¥ÎActivity¨Óªí²{¬É± 27 2.4.2 ¥ÎIntent©MIntent Filters ¹ê²{¤Á´« 28 2.4.3 Service¬°§AªA°È 28 2.4.4 ¥ÎBroadcast Intent/Receiverµo°e¼s¼½ 29 2.4.5 ¥ÎContent Provider ¦sÀx¼Æ¾Ú 29 2.5 ¶iµ{©M½uµ{ 29 2.5.1 ¥ý¬Ý¶iµ{ 29 2.5.2 ¦A¬Ý½uµ{ 30 2.5.3 À³¥Îµ{§Çªº¥Í©R©P´Á 30 ²Ä3³¹ Àò¨ú¦}½sĶ·½½X 33 3.1 ¦bLinux¨t²Î¤¤Àò¨ú Android·½½X 33 3.2 ¦bWindows¥»OÀò¨ú Android·½½X 34 3.3 ¤ÀªRAndroid·½½Xµ²ºc 36 3.3.1 À³¥Îµ{§Ç 38 3.3.2 À³¥Îµ{§Ç®Ø¬[ 39 3.3.3 ¨t²ÎªA°È 39 3.3.4 ¨t²Îµ{§Ç®w 41 3.3.5 ¨t²Î¹B¦æ®w 44 3.3.6 µw¥ó©â¶H¼h 44 3.4 ½sĶ·½½X 45 3.4.1 ·f«Ø½sĶÀô¹Ò 46 3.4.2 ¶}©l½sĶ 46 3.4.3 ¦b¼ÒÀÀ¾¹¤¤¹B¦æ 47 3.4.4 ±`¨£ªº¿ù»~¤ÀªR 48 3.4.5 ¹ê½îºt½m¡X¡Xºt¥Ü¨âºØ½sĶ Androidµ{§Çªº¤èªk 49 3.5 ½sĶAndroid Kernel 52 3.5.1 Àò¨úGoldfish¤º®Ö¥N½X 52 3.5.2 Àò¨úMSM¤º®Ö¥N½X 55 3.5.3 Àò¨úOMAP¤º®Ö¥N½X 55 3.5.4 ½sĶAndroidªºLinux ¤º®Ö 55 3.6 ½sĶ·½½X¥Í¦¨SDK 57 ²Ä4³¹ Android¨t²Îªº¦w¥þ¾÷¨î 61 4.1 Android¦w¥þ¾÷¨î·§z 61 4.1.1 Androidªº¦w¥þ¾÷¨î¼Ò«¬ 61 4.1.2 Androidªº¦w¥þ®Ø¬[·§z 62 4.2 ¤ÀªRLinux¨t²Îªº¦w¥þ¾÷¨î 63 4.2.1 Linux¥Î¤áÅv°ò¦ 63 4.2.2 ¶iµ{ 68 4.3 ¤ÀªRAndroid¨t²Îªº¦w¥þ¾÷¨î 70 4.3.1 ¨F½c¼Ò«¬¤¶²Ð 70 4.3.2 À³¥Îµ{§Çªº¦w¥þ¾÷¨î 72 4.3.3 ¤À°Ï¥[¸ü¾÷¨î 73 ²Ä5³¹ ¤º¦s¦w¥þ¾÷¨î¡X¡X°Î¦W¦@¨É ¤º¦s¨t²Î 74 5.1 ¤ÀªRAshmemÅX°Êµ{§Ç 74 5.1.1 °ò¦¼Æ¾Úµ²ºc 74 5.1.2 ªì©l¤Æ³B²z 75 5.1.3 ¥´¶}°Î¦W¦@¨É¤º¦s ³]³Æ¤å¥ó 76 5.1.4 ¤º¦s¬M®g 78 5.1.5 ¹ê²{Ū¼g¾Þ§@ 79 5.1.6 Âê©w©M¸ÑÂê 81 5.1.7 ¦^¦¬¤º¦s¶ô 86 5.2 ¤ÀªRC++³X°Ý±µ¤f¼h 87 5.2.1 ±µ¤fMemoryBase 87 5.2.2 «È¤áºÝ¹ê²{ 90 5.2.3 ±µ¤fMemoryBase 94 5.3 ¤ÀªRJava³X°Ý±µ¤f¼h 97 5.4 ¤º¦sÀu¤Æ¾÷¨î 100 5.4.1 sp©Mwp²ªR 100 5.4.2 ¸Ô¸Ñ´¼¯à«ü°w 102 5.5 Android¤º¦s¨t²Îªº¦w¥þ ¾÷¨î¤ÀªR 118 5.5.1 Ashmem°Î¦W¦@¨É¤º¦s ªº¾÷²z 119 5.5.2 ¨Ï¥ÎLow Memory Killer ¾÷¨î¹ê²{¦w¥þ©M°ª®Ä 119 ²Ä6³¹ Binder³q«H¦w¥þ¾÷¨î¡]¤W¡^ 121 6.1 Binder¾÷¨î°ò¦ 121 6.1.1 ¿ï¾ÜBinder¾÷¨îªº ì¦]¡X¡X²¼ä§Ö³t¡B §C¯Ó¤º¦s¡B§ó¥[¦w¥þ 121 6.1.2 Binder¦w¥þ¾÷¨îªº ¥²n©Ê 122 6.1.3 Androidªº¶iµ{¶¡³q«H ¡]IPC¡^¾÷¨îBinder 122 6.1.4 Service Manager¬OBinder ¾÷¨îªº¤W¤U¤åºÞ²zªÌ 123 6.1.5 Service ManagerªA°È 137 6.2 ¤ÀªRBinderÅX°Êµ{§Ç 140 6.2.1 ¤ÀªR¼Æ¾Úµ²ºc 140 6.2.2 ¤ÀªR³]³Æªì©l¤Æ 150 6.2.3 ¥´¶}Binder³]³Æ¤å¥ó 151 6.2.4 ¤º¦s¬M®g 152 6.2.5 ÄÀ©ñª«²z¶± 156 6.2.6 ¤À°t¤º®Ö½w¨R°Ï 157 6.2.7 ÄÀ©ñ¤º®Ö½w¨R°Ï 158 6.2.8 ¬d¸ß¤º®Ö½w¨R°Ï 160 ²Ä7³¹ Binder³q«H¦w¥þ¾÷¨î¡]¤U¡^ 162 7.1 Binder«Ê¸Ë®w 162 7.1.1 ÃþBBinder 163 7.1.2 ÃþBpRefBase 165 7.1.3 ÃþIPCThreadState 166 7.2 ªì©l¤ÆJava¼hBinder®Ø¬[ 168 7.3 ¤ÀªRMediaServerªº³q«H¾÷¨î 170 7.3.1 MediaServerªº¤J¤f¨ç¼Æ 170 7.3.2 ProcessState 171 7.3.3 defaultServiceManager 173 7.3.4 ª`¥UMediaPlayerService 179 7.3.5 ¤ÀªRStartThread Pool©M join Thread Pool 188 7.4 Á`µ²¶iµ{³q«H¾÷¨îªº¦w¥þ©Ê 190 7.4.1 ¶iµ{¥ý½uµ{¦w¥þ 190 7.4.2 »·µ{¹Lµ{½Õ¥Î¾÷¨î ¡]RPC¡^ 191 7.4.3 ¹ê²{½uµ{¦w¥þ¤èªk 192 7.4.4 Binder¤¤ªº¦w¥þµ¦²¤ 193 ²Ä8³¹ AndroidµêÀÀ¾÷°ò¦ 194 8.1 Dalvik VM©MJVMªº®t²§ 194 8.2 DalvikµêÀÀ¾÷ªº¥Dn¯S©º 195 8.3 Dalvik VM¬[ºc 196 8.3.1 DalvikµêÀÀ¾÷ªº¥N½Xµ²ºc 196 8.3.2 dx¤u¨ã 198 8.3.3 Dalvik VMªº¶iµ{ºÞ²z 198 8.3.4 Androidªºªì©l¤Æ¬yµ{ 198 8.4 Dalvik VM±±¨îVM©R¥O¸Ô¸Ñ 199 8.4.1 °ò¥»©R¥O 199 8.4.2 ÂX®iªºJNIÀË´ú 199 8.4.3 Â_¨¥ 200 8.4.4 ¦r¸`½X®ÕÅç©MÀu¤Æ 200 8.4.5 Dalvik VMªº¹B¦æ¼Ò¦¡ 201 8.4.6 ¦ºÂê¹w´ú 201 8.4.7 dump°ï´Ì°lÂÜ 202 8.4.8 dex¤å¥ó©M®ÕÅç 202 8.4.9 ²£¥Í¼Ð§Ó¦ì 202 8.5 Dalvik VM¶iµ{ºÞ²z 202 8.5.1 Zygote°ò¦ 202 8.5.2 Dalvikªº¶iµ{¼Ò«¬ 211 8.5.3 Dalvikªº¶iµ{³q«H 215 8.6 Zygote¡]¥¥¨|¡^¶iµ{ 218 8.6.1 Zygote°ò¦ 218 8.6.2 ¤ÀªRZygoteªº±Ò°Ê¹Lµ{ 219 ²Ä9³¹ Dalvik VMªº¹B§@¬yµ{ 233 9.1 Dalvik VM¬ÛÃöªº¥i°õ¦æµ{§Ç 233 9.1.1 dalvikvm¡Bdvz©M app_process²¤¶ 233 9.1.2 ¹ï¤ñapp_process©M dalvikvmªº°õ¦æ¹Lµ{ 234 9.2 ªì©l¤ÆDalvik VM 236 9.2.1 ¶}©lµêÀÀ¾÷ªº·Ç³Æ¤u§@ 236 9.2.2 ªì©l¤Æ¸òÂÜÅã¥Ü¨t²Î 237 9.2.3 ªì©l¤Æ©U§£¦^¦¬¾¹ 237 9.2.4 ªì©l¤Æ½uµ{¦Cªí©M ¥D½uµ{Àô¹Ò°Ñ¼Æ 237 9.2.5 ¤À°t¤º³¡¾Þ§@¤èªkªº ªí®æ¤º¦s 238 9.2.6 ªì©l¤ÆµêÀÀ¾÷ªº«ü¥O½X ¬ÛÃöªº¤º®e 238 9.2.7 ¤À°t«ü¥O±H¦s¾¹ª¬ºA ªº¤º¦s 239 9.2.8 ¤À°t«ü¥O±H¦s¾¹ª¬ºA ªº¤º¦s©M³Ì°ò¥»¥Îªº Java®w 239 9.2.9 ªì©l¤Æ¨Ï¥ÎªºJavaÃþ®w ½uµ{Ãþ 240 9.2.10 ªì©l¤ÆµêÀÀ¾÷¨Ï¥Îªº ²§±`JavaÃþ®w 241 9.2.11 ªì©l¤Æ¨ä¥L¹ï¶H 242 9.3 ±Ò°ÊZygote 250 9.3.1 ¦binit.rc¤¤°t¸mzygote ±Ò°Ê°Ñ¼Æ 250 9.3.2 ±Ò°ÊSocketªA°ÈºÝ¤f 250 9.3.3 ¥[¸üpreload-classes 251 9.3.4 ¥[¸üpreload-resources 252 9.4 ±Ò°Ê |
§Ç¡G |