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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
AndroidÆô¶¯¹ý³ÌÉîÈë½âÎö
 
×÷Õß ÂÞÉýÑôµÄ²©¿Í£¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-09-09
  2616  次浏览      19
 

µ±°´ÏÂAndroidÉ豸µçÔ´¼üʱ¾¿¾¹·¢ÉúÁËʲô£¿

AndroidµÄÆô¶¯¹ý³ÌÊÇÔõôÑùµÄ£¿

ʲôÊÇLinuxÄںˣ¿

×ÀÃæϵͳlinuxÄÚºËÓëAndroidϵͳlinuxÄÚºËÓÐʲôÇø±ð£¿

ʲôÊÇÒýµ¼×°ÔسÌÐò£¿

ʲôÊÇZygote£¿

ʲôÊÇX86ÒÔ¼°ARM linux£¿

ʲôÊÇinit.rc?

ʲôÊÇϵͳ·þÎñ£¿

µ±ÎÒÃÇÏëµ½AndroidÆô¶¯¹ý³Ìʱ£¬ÄÔº£ÖÐ×ÜÊÇð³öºÜ¶àÒÉÎÊ¡£±¾ÎĽ«½éÉÜAndroidµÄÆô¶¯¹ý³Ì£¬Ï£ÍûÄÜ°ïÖúÄãÕÒµ½ÉÏÃæÕâЩÎÊÌâµÄ´ð°¸¡£

AndroidÊÇÒ»¸ö»ùÓÚLinuxµÄ¿ªÔ´²Ù×÷ϵͳ¡£x86£¨x86ÊÇһϵÁеĻùÓÚintel 8086 CPUµÄ¼ÆËã»ú΢´¦ÀíÆ÷Ö¸Á¼Ü¹¹£©ÊÇlinuxÄں˲¿Êð×î³£¼ûµÄϵͳ¡£È»¶ø£¬ËùÓеÄAndroidÉ豸¶¼ÊÇÔËÐÐÔÚARM´¦ÀíÆ÷£¨ARM Ô´×Ô½ø½×¾«¼òÖ¸Á»úÆ÷£¬Ô´×ÔARM¼Ü¹¹£©ÉÏ£¬³ýÁËÓ¢ÌضûµÄXoloÉ豸(http://xolo.in/xolo-x900-features)¡£XoloÀ´Ô´×ÔÁ趯1.6GHz x86´¦ÀíÆ÷¡£AndroidÉ豸»òÕßǶÈëÉ豸»òÕß»ùÓÚlinuxµÄARMÉ豸µÄÆô¶¯¹ý³ÌÓë×ÀÃæ°æ±¾Ïà±ÈÉÔ΢ÓÐЩ²î±ð¡£ÕâƪÎÄÕÂÖУ¬ÎÒ½«½âÊÍAndroidÉ豸µÄÆô¶¯¹ý³Ì¡£ÉîÈëlinuxÆô¶¯¹ý³ÌÊÇһƪ½²×ÀÃælinuxÆô¶¯¹ý³ÌµÄºÃÎÄ¡£

µ±Ä㰴ϵçÔ´¿ª¹ØºóAndroidÉ豸ִÐÐÁËÒÔϲ½Öè¡£

AndroidÆô¶¯Á÷³Ì/¹ý³Ì

µÚÒ»²½£ºÆô¶¯µçÔ´ÒÔ¼°ÏµÍ³Æô¶¯

µ±µçÔ´°´Ï£¬Òýµ¼Ð¾Æ¬´úÂ뿪ʼ´ÓÔ¤¶¨ÒåµÄµØ·½£¨¹Ì»¯ÔÚROM£©¿ªÊ¼Ö´ÐС£¼ÓÔØÒýµ¼³ÌÐòµ½RAM£¬È»ºóÖ´ÐС£

µÚ¶þ²½£ºÒýµ¼³ÌÐò

Òýµ¼³ÌÐòÊÇÔÚAndroid²Ù×÷ϵͳ¿ªÊ¼ÔËÐÐÇ°µÄÒ»¸öС³ÌÐò¡£Òýµ¼³ÌÐòÊÇÔËÐеĵÚÒ»¸ö³ÌÐò£¬Òò´ËËüÊÇÕë¶ÔÌض¨µÄÖ÷°åÓëоƬµÄ¡£É豸ÖÆÔìÉÌҪôʹÓúÜÊÜ»¶Ó­µÄÒýµ¼³ÌÐò±ÈÈçredboot¡¢uboot¡¢qi bootloader»òÕß¿ª·¢×Ô¼ºµÄÒýµ¼³ÌÐò£¬Ëü²»ÊÇAndroid²Ù×÷ϵͳµÄÒ»²¿·Ö¡£Òýµ¼³ÌÐòÊÇOEM³§ÉÌ»òÕßÔËÓªÉ̼ÓËøºÍÏÞÖƵĵط½¡£

Òýµ¼³ÌÐò·ÖÁ½¸ö½×¶ÎÖ´ÐС£µÚÒ»¸ö½×¶Î£¬¼ì²âÍⲿµÄRAMÒÔ¼°¼ÓÔضԵڶþ½×¶ÎÓÐÓõijÌÐò£»µÚ¶þ½×¶Î£¬Òýµ¼³ÌÐòÉèÖÃÍøÂç¡¢ÄÚ´æµÈµÈ¡£ÕâЩ¶ÔÓÚÔËÐÐÄÚºËÊDZØÒªµÄ£¬ÎªÁË´ïµ½ÌØÊâµÄÄ¿±ê£¬Òýµ¼³ÌÐò¿ÉÒÔ¸ù¾ÝÅäÖòÎÊý»òÕßÊäÈëÊý¾ÝÉèÖÃÄںˡ£

AndroidÒýµ¼³ÌÐò¿ÉÒÔÔÚ\bootable\bootloader\legacy\usbloaderÕÒµ½¡£

´«Í³µÄ¼ÓÔØÆ÷°üº¬µÄ¸öÎļþ£¬ÐèÒªÔÚÕâÀï˵Ã÷£º

init.s³õʼ»¯¶ÑÕ»£¬ÇåÁãBBS¶Î£¬µ÷ÓÃmain.cµÄ_main()º¯Êý£»

main.c³õʼ»¯Ó²¼þ£¨ÄÖÖÓ¡¢Ö÷°å¡¢¼üÅÌ¡¢¿ØÖÆ̨£©£¬´´½¨linux±êÇ©¡£

¸ü¶à¹ØÓÚAndroidÒýµ¼³ÌÐòµÄ¿ÉÒÔÔÚÕâÀïÁ˽⡣

µÚÈý²½£ºÄÚºË

AndroidÄÚºËÓë×ÀÃælinuxÄÚºËÆô¶¯µÄ·½Ê½²î²»¶à¡£ÄÚºËÆô¶¯Ê±£¬ÉèÖûº´æ¡¢±»±£»¤´æ´¢Æ÷¡¢¼Æ»®ÁÐ±í£¬¼ÓÔØÇý¶¯¡£µ±ÄÚºËÍê³ÉϵͳÉèÖã¬ËüÊ×ÏÈÔÚϵͳÎļþÖÐÑ°ÕÒ¡±init¡±Îļþ£¬È»ºóÆô¶¯root½ø³Ì»òÕßϵͳµÄµÚÒ»¸ö½ø³Ì¡£

µÚËIJ½£ºinit½ø³Ì

initÊǵÚÒ»¸ö½ø³Ì£¬ÎÒÃÇ¿ÉÒÔ˵ËüÊÇroot½ø³Ì»òÕß˵Óнø³ÌµÄ¸¸½ø³Ì¡£init½ø³ÌÓÐÁ½¸öÔðÈΣ¬Ò»ÊǹÒÔØĿ¼£¬±ÈÈç/sys¡¢/dev¡¢/proc£¬¶þÊÇÔËÐÐinit.rc½Å±¾¡£

init½ø³Ì¿ÉÒÔÔÚ/system/core/initÕÒµ½¡£

init.rcÎļþ¿ÉÒÔÔÚ/system/core/rootdir/init.rcÕÒµ½¡£

readme.txt¿ÉÒÔÔÚ/system/core/init/readme.txtÕÒµ½¡£

¶ÔÓÚinit.rcÎļþ£¬AndroidÖÐÓÐÌض¨µÄ¸ñʽÒÔ¼°¹æÔò¡£ÔÚAndroidÖУ¬ÎÒÃǽÐ×öAndroid³õʼ»¯ÓïÑÔ¡£

Android³õʼ»¯ÓïÑÔÓÉËÄ´óÀàÐ͵ÄÉùÃ÷×é³É£¬¼´Actions£¨¶¯×÷£©¡¢Commands£¨ÃüÁ¡¢Services£¨·þÎñ£©¡¢ÒÔ¼°Options£¨Ñ¡Ï¡£

Action£¨¶¯×÷£©£º¶¯×÷ÊÇÒÔÃüÁîÁ÷³ÌÃüÃûµÄ£¬ÓÐÒ»¸ö´¥·¢Æ÷¾ö¶¨¶¯×÷ÊÇ·ñ·¢Éú¡£

Óï·¨

on <trigger>
<command>
<command>
<command>

Service£¨·þÎñ£©£º·þÎñÊÇinit½ø³ÌÆô¶¯µÄ³ÌÐò¡¢µ±·þÎñÍ˳öʱinit½ø³Ì»áÊÓÇé¿öÖØÆô·þÎñ¡£

Óï·¨

service <name> <pathname> [<argument>]*
<option>
<option>
...
Options£¨Ñ¡Ï

Ñ¡ÏîÊǶԷþÎñµÄÃèÊö¡£ËüÃÇÓ°Ïìinit½ø³ÌÈçºÎÒÔ¼°ºÎʱÆô¶¯·þÎñ¡£

ÔÛÃÇÀ´¿´¿´Ä¬ÈϵÄinit.rcÎļþ¡£ÕâÀïÎÒÖ»ÁгöÁËÖ÷ÒªµÄʼþÒÔ¼°·þÎñ¡£

Table
Action/Service ÃèÊö
on early-init ÉèÖÃinit½ø³ÌÒÔ¼°Ëü´´½¨µÄ×Ó½ø³ÌµÄÓÅÏȼ¶£¬ÉèÖÃinit½ø³ÌµÄ°²È«»·¾³
on init ÉèÖÃÈ«¾Ö»·¾³£¬Îªcpu accounting´´½¨cgroup(×ÊÔ´¿ØÖÆ)¹ÒÔصã
on fs ¹ÒÔØmtd·ÖÇø
on post-fs ¸Ä±äϵͳĿ¼µÄ·ÃÎÊȨÏÞ
on post-fs-data ¸Ä±ä/dataĿ¼ÒÔ¼°ËüµÄ×ÓĿ¼µÄ·ÃÎÊȨÏÞ
on boot »ù±¾ÍøÂçµÄ³õʼ»¯£¬ÄÚ´æ¹ÜÀíµÈµÈ
service servicemanager Æô¶¯ÏµÍ³¹ÜÀíÆ÷¹ÜÀíËùÓеı¾µØ·þÎñ£¬±ÈÈçλÖá¢ÒôƵ¡¢Shared preferenceµÈµÈ¡­
service zygote Æô¶¯zygote×÷ΪӦÓýø³Ì

ÔÚÕâ¸ö½×¶ÎÄã¿ÉÒÔÔÚÉ豸µÄÆÁÄ»ÉÏ¿´µ½¡°Android¡±logoÁË¡£

µÚÎå²½

ÔÚJavaÖУ¬ÎÒÃÇÖªµÀ²»Í¬µÄÐéÄâ»úʵÀý»áΪ²»Í¬µÄÓ¦Ó÷ÖÅ䲻ͬµÄÄÚ´æ¡£¼ÙÈçAndroidÓ¦ÓÃÓ¦¸Ã¾¡¿ÉÄÜ¿ìµØÆô¶¯£¬µ«Èç¹ûAndroidϵͳΪÿһ¸öÓ¦ÓÃÆô¶¯²»Í¬µÄDalvikÐéÄâ»úʵÀý£¬¾Í»áÏûºÄ´óÁ¿µÄÄÚ´æÒÔ¼°Ê±¼ä¡£Òò´Ë£¬ÎªÁË¿Ë·þÕâ¸öÎÊÌ⣬Androidϵͳ´´ÔìÁË¡±Zygote¡±¡£ZygoteÈÃDalvikÐéÄâ»ú¹²Ïí´úÂë¡¢µÍÄÚ´æÕ¼ÓÃÒÔ¼°×îСµÄÆô¶¯Ê±¼ä³ÉΪ¿ÉÄÜ¡£ZygoteÊÇÒ»¸öÐéÄâÆ÷½ø³Ì£¬ÕýÈçÎÒÃÇÔÚÇ°Ò»¸ö²½ÖèËù˵µÄÔÚϵͳÒýµ¼µÄʱºòÆô¶¯¡£ZygoteÔ¤¼ÓÔØÒÔ¼°³õʼ»¯ºËÐÄ¿âÀࡣͨ³££¬ÕâЩºËÐÄÀàÒ»°ãÊÇÖ»¶ÁµÄ£¬Ò²ÊÇAndroid SDK»òÕߺËÐÄ¿ò¼ÜµÄÒ»²¿·Ö¡£ÔÚJavaÐéÄâ»úÖУ¬Ã¿Ò»¸öʵÀý¶¼ÓÐËü×Ô¼ºµÄºËÐÄ¿âÀàÎļþºÍ¶Ñ¶ÔÏóµÄ¿½±´¡£

Zygote¼ÓÔؽø³Ì

¼ÓÔØZygoteInitÀ࣬Դ´úÂ룺/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java

registerZygoteSocket()ΪzygoteÃüÁîÁ¬½Ó×¢²áÒ»¸ö·þÎñÆ÷Ì×½Ó×Ö¡£

preloadClassed ¡°preloaded-classes¡±ÊÇÒ»¸ö¼òµ¥µÄ°üº¬Ò»ÏµÁÐÐèÒªÔ¤¼ÓÔØÀàµÄÎı¾Îļþ£¬Äã¿ÉÒÔÔÚ<Android Source>/frameworks/baseÕÒµ½¡°preloaded-classes¡±Îļþ¡£

preloadResources() preloadResourcesÒ²Òâζ×ű¾µØÖ÷Ìâ¡¢²¼¾ÖÒÔ¼°android.RÎļþÖаüº¬µÄËùÓж«Î÷¶¼»áÓÃÕâ¸ö·½·¨¼ÓÔØ¡£

ÔÚÕâ¸ö½×¶Î£¬Äã¿ÉÒÔ¿´µ½Æô¶¯¶¯»­¡£µÚÁù²½£ºÏµÍ³·þÎñ»ò·þÎñ

Íê³ÉÁËÉÏÃ漸²½Ö®ºó£¬ÔËÐл·¾³ÇëÇóZygoteÔËÐÐϵͳ·þÎñ¡£ÏµÍ³·þÎñͬʱʹÓÃnativeÒÔ¼°java±àд£¬ÏµÍ³·þÎñ¿ÉÒÔÈÏΪÊÇÒ»¸ö½ø³Ì¡£Í¬Ò»¸öϵͳ·þÎñÔÚAndroid SDK¿ÉÒÔÒÔSystem ServicesÐÎʽ»ñµÃ¡£ÏµÍ³·þÎñ°üº¬ÁËËùÓеÄSystem Services¡£

Zygote´´½¨ÐµĽø³ÌÈ¥Æô¶¯ÏµÍ³·þÎñ¡£Äã¿ÉÒÔÔÚZygoteInitÀàµÄ¡±startSystemServer¡±·½·¨ÖÐÕÒµ½Ô´´úÂë¡£

ºËÐÄ·þÎñ£º

1.Æô¶¯µçÔ´¹ÜÀíÆ÷£»

2.´´½¨Activity¹ÜÀíÆ÷£»

3.Æô¶¯µç»°×¢²á£»

4.Æô¶¯°ü¹ÜÀíÆ÷£»

5.ÉèÖÃActivity¹ÜÀí·þÎñΪϵͳ½ø³Ì£»

6.Æô¶¯ÉÏÏÂÎĹÜÀíÆ÷£»

7.Æô¶¯ÏµÍ³Context Providers£»

8.Æô¶¯µç³Ø·þÎñ£»

9.Æô¶¯¶¨Ê±¹ÜÀíÆ÷£»

10.Æô¶¯´«¸Ð·þÎñ£»

11.Æô¶¯´°¿Ú¹ÜÀíÆ÷£»

12.Æô¶¯À¶ÑÀ·þÎñ£»

13.Æô¶¯¹ÒÔØ·þÎñ¡£

ÆäËû·þÎñ£º

1.Æô¶¯×´Ì¬À¸·þÎñ£»

2.Æô¶¯Ó²¼þ·þÎñ£»

3.Æô¶¯ÍøÂç״̬·þÎñ£»

4.Æô¶¯ÍøÂçÁ¬½Ó·þÎñ£»

5.Æô¶¯Í¨Öª¹ÜÀíÆ÷£»

6.Æô¶¯É豸´æ´¢¼àÊÓ·þÎñ£»

7.Æô¶¯¶¨Î»¹ÜÀíÆ÷£»

8.Æô¶¯ËÑË÷·þÎñ£»

9.Æô¶¯¼ôÇаå·þÎñ£»

10.Æô¶¯µÇ¼Ç·þÎñ£»

11.Æô¶¯±ÚÖ½·þÎñ£»

12.Æô¶¯ÒôƵ·þÎñ£»

13Æô¶¯¶ú»ú¼àÌý£»

14.Æô¶¯AdbSettingsObserver£¨´¦ÀíadbÃüÁ¡£

µÚÆß²½£ºÒýµ¼Íê³É

Ò»µ©ÏµÍ³·þÎñÔÚÄÚ´æÖÐÅÜÆðÀ´ÁË£¬Android¾ÍÍê³ÉÁËÒýµ¼¹ý³Ì¡£ÔÚÕâ¸öʱºò¡°ACTION_BOOT_COMPLETED¡±¿ª»úÆô¶¯¹ã²¥¾Í»á·¢³öÈ¥¡£

   
2616 ´Îä¯ÀÀ       19
 
Ïà¹ØÎÄÕÂ

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

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

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù 8-23[ÌØ»Ý]
LinuxÄں˱à³Ì¼°É豸Çý¶¯ 8-15[±±¾©]
Python¡¢Êý¾Ý·ÖÎöÓë»úÆ÷ѧϰ 8-23[ÌØ»Ý]
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ 8-22[ÏßÉÏ]
QTÓ¦Óÿª·¢ 9-5[±±¾©]

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


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


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