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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÉîÈëÀí½âAndroid Buildϵͳ
 
À´Ô´£ºÔÆÆÜÉçÇø ·¢²¼ÓÚ£º 2017-5-27
  3277  次浏览      28
 

¸ÅÊö

Android Build ϵͳÊÇÓÃÀ´±àÒë Android ϵͳ¡¢Android SDK ÒÔ¼°Ïà¹ØÎĵµµÄÒ»Ì׿ò¼Ü¡£ÔÚAndroidϵͳÖУ¬Android µÄÔ´ÂëÖаüº¬ÁËÐíÐí¶à¶àµÄÄ£¿é¡£ ²»Í¬²úÉ̵IJ»Í¬É豸¶ÔÓÚ Android ϵͳµÄ¶¨Öƶ¼ÊDz»Ò»ÑùµÄ¡£ÈçºÎ½«ÕâЩģ¿éͳһ¹ÜÀíÆðÀ´£¬ÈçºÎÄܹ»ÔÚ²»Í¬µÄ²Ù×÷ϵͳÉϽøÐбàÒ룬ÈçºÎÔÚ±àÒëʱÄܹ»Ö§³ÖÃæÏò²»Í¬µÄÓ²¼þÉ豸£¬²»Í¬µÄ±àÒëÀàÐÍ£¬ÇÒ»¹ÒªÌá¹©ÃæÏò¸÷¸ö²úÉ̵͍֯À©Õ¹£¬AndroidϵͳÈçºÎ½â¾öÕâЩÎÊÌâÄØ£¿Õâ¾ÍÊÇÎÒÃDz»µÃ²»Ì¸µÄAndroid Build ϵͳ¡£

AndroidÔ´ÂëĿ¼½á¹¹£º

LinuxϵͳµÄmakeÃüÁî

ÔÚ½²½âAndroid±àÒëϵͳ֮ǰ£¬ÎÒÃÇÊ×ÏÈÐèÒªÁ˽âLinuxϵͳµÄmakeÃüÁî¡£ÔÚLinuxϵͳÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ýmakeÃüÁîÀ´±àÒë´úÂë¡£MakeÃüÁîÔÚÖ´ÐеÄʱºò£¬Ä¬ÈÏ»áÔÚµ±Ç°Ä¿Â¼ÕÒµ½Ò»¸öMakefileÎļþ£¬È»ºó¸ù¾ÝMakefileÎļþÖеÄÖ¸ÁîÀ´¶Ô´úÂë½øÐбàÒë¡£Èçgcc£¬LinuxϵͳÖеÄshellÃüÁîcp¡¢rmµÈµÈ¡£

¿´µ½ÕâÀÓеÄС»ï°é¿ÉÄÜ»á˵£¬ÔÚLinuxϵͳÖУ¬shellºÍmakeÃüÁîÓÐÊ²Ã´Çø±ðÄØ£¿

makeÃüÁîÊÂʵҲÊÇͨ¹ýshellÃüÁîÀ´Íê³ÉÈÎÎñµÄ£¬µ«ÊÇËüµÄÉñÆæÖ®´¦ÊÇ¿ÉÒÔ°ïÎÒÃÇ´¦ÀíºÃÎļþÖ®¼äµÄÒÀÀµ¹ØÏµ¡£ÀýÈçÓÐÒ»¸öÎļþT£¬ËüÒÀÀµÓÚÁíÍâÒ»¸öÎļþD£¬ÒªÇóÖ»Óе±ÎļþDµÄÄÚÈÝ·¢Éú±ä»¯£¬²ÅÖØÐÂÉú³ÉÎļþT¡£

MakeÃüÁîÊÇÔõô֪µÀÁ½¸öÎļþÖ®¼ä´æÔÚÒÀÀµ¹ØÏµ£¬ÒÔ¼°µ±±»ÒÀÀµÎļþ·¢Éú±ä»¯Ê±ÈçºÎ´¦ÀíÄ¿±êÎļþµÄÄØ£¿´ð°¸¾ÍÔÚÇ°ÃæÌáµ½µÄMakefileÎļþ¡£MakefileÎļþʵ¼ÊÉÏÊÇÒ»¸ö½Å±¾Îļþ£¬¾ÍÏñÆÕͨµÄshell½Å±¾ÎļþÒ»Ñù£¬Ö»²»¹ýËü×ñÑ­µÄÊÇMakefileÓï·¨¡£MakefileÎļþ×î»ù´¡µÄ¹¦ÄܾÍÊÇÃèÊöÎļþÖ®¼äµÄÒÀÀµ¹ØÏµ£¬ÒÔ¼°Ôõô´¦ÀíÕâЩÒÀÀµ¹ØÏµ¡£

Android Build¼ò½é

Android Build ϵͳÊÇ Android ϵͳµÄÒ»²¿·Ö£¬Ö÷ÒªÓÃÀ´±àÒë Android ϵͳ£¬Android SDK ÒÔ¼°Ïà¹ØÎĵµ¡£¸ÃϵͳÖ÷ÒªÓÉ Make Îļþ£¬Shell ½Å±¾ÒÔ¼° Python ½Å±¾×é³É¡£

Android build·ÖÀࣺ

build/core Ŀ¼ÏµÄÎļþ£¬ÕâÊÇAndroid BuildµÄϵͳ¿ò¼ÜºËÐÄ£»

deviceĿ¼ÏµÄÎļþ£¬´æ·ÅµÄÊǾßÌåµÄ²úÆ·ÅäÖÃÎļþ£»

¸÷¸öÄ£¿éµÄ±àÒëÎļþ£ºAndroid.mk£¬Î»ÓÚÄ£¿éµÄÔ­ÎļþĿ¼Ï¡£

Android BuildϵͳºËÐÄ

Android BuildϵͳºËÐÄÔÚĿ¼build/core£¬Õâ¸öĿ¼ÖÐÓÐmkÎļþ¡¢shell½Å±¾ºÍper½Å±¾£¬ËûÃǹ¹³ÉAndroid BuildϵͳµÄ»ù´¡ºÍ¼Ü¹¹¡£

ÔÚºËÐĵÄbuil/coreÀϵͳÖ÷Òª¸ÉÁËÈý¼þÊÂÇ飺

³£ÓÃÃüÁ

source build/envsetup.sh
lunch
make

¶øÔÚbuild/envsetup.shÖÐÖ÷ÒªÍê³ÉÁËÈý¼þÊ£º

Ö´ÐÐAndroidϵͳµÄ±àÒ룬±ØÐëÏÈÖ´ÐÐenvsetup.sh½Å±¾£¬Õâ¸ö½Å±¾»á½¨Á¢AndroidµÄ±àÒë»·¾³¡£Æä¾ßÌåÖ´ÐеÄÊǽ¨Á¢shellÃüÁîÒÔ¼°µ÷ÓÃadd_lunch_comboÃüÁÕâ¸öÃüÁîµÄ½«µ÷ÓøÃÃüÁîµÄËù´«µÝµÄ²ÎÊý´æ·Åµ½Ò»¸öÈ«¾ÖµÄÊý×é±äÁ¿LUNCH_MENU_CHOICESÖС£

±àÒë Android ϵͳ

Android ϵͳµÄ±àÒë»·¾³Ä¿Ç°Ö»Ö§³Ö Ubuntu ÒÔ¼° Mac OS Á½ÖÖ²Ù×÷ϵͳ¡£ÔÚ±àÒëAndroidϵͳ֮ǰÎÒÃÇÐèÒªÏÈ»ñÈ¡ÍêÕûµÄ Android Ô´Âë¡£´ò¿ª¿ØÖÆÌ¨Ö®ºóתµ½ Android Ô´ÂëµÄ¸ùĿ¼£¬È»ºóÖ´ÐÐÈçÏÂÃüÃû£º

source build/envsetup.sh
lunch full-eng
make -j8

¹ØÓÚÕ⼸ÌõÃüÁîµÄÒâ˼£¬ÎÒÃÇÉÏÃæÌá¹ý¡£

µÚÒ»²½ÃüÁî¡°source build/envsetup.sh¡± ÒýÈëÁË b uild/envsetup.sh½Å±¾£¬¸Ã½Å±¾µÄ×÷ÓÃÊdzõʼ»¯±àÒë»·¾³£¬²¢ÒýÈëһЩ¸¨ÖúµÄ Shell º¯Êý£»

µÚ¶þ²½ÃüÁî¡°lunch full-eng¡±Êǵ÷Óà lunch º¯Êý£¬²¢Ö¸¶¨²ÎÊýΪ¡°full-eng¡±¡£lunch º¯ÊýµÄ²ÎÊýÓÃÀ´Ö¸¶¨´Ë´Î±àÒëµÄÄ¿±êÉ豸ÒÔ¼°±àÒëÀàÐÍ¡£

µÚÈý²¿ÃüÁî¡°make -j8¡±²ÅÕæÕý¿ªÊ¼Ö´ÐбàÒë¡£make µÄ²ÎÊý¡°-j¡±Ö¸¶¨ÁËͬʱ±àÒëµÄ Job ÊýÁ¿£¬ÕâÊǸöÕûÊý£¬¸Ãֵͨ³£ÊDZàÒëÖ÷»ú CPU Ö§³ÖµÄ²¢·¢Ïß³Ì×ÜÊýµÄ 1 ±¶»ò 2 ±¶£¨ÀýÈ磺ÔÚÒ»¸ö 4 ºË£¬Ã¿¸öºËÖ§³ÖÁ½¸öÏß³ÌµÄ CPU ÉÏ£¬¿ÉÒÔʹÓà make -j8 »ò make -j16£©¡£

ÍêÕûµÄ±àÒëʱ¼äÒÀÀµÓÚ±àÒëÖ÷»úµÄÅäÖá£

Build ½á¹û

ËùÓеıàÒë²úÎï¶¼½«Î»ÓÚ /out Ŀ¼Ï£¬¸ÃĿ¼ÏÂÖ÷Òª°üº¬£º

/out/host/£º¸ÃĿ¼Ï°üº¬ÁËÕë¶ÔÖ÷»úµÄ Android ¿ª·¢¹¤¾ßµÄ²úÎï¡£¼´ SDK Öеĸ÷ÖÖ¹¤¾ß£¬ÀýÈ磺emulator£¬adb£¬aapt µÈ¡£

/out/target/common/£º¸ÃĿ¼Ï°üº¬ÁËÕë¶ÔÉ豸µÄ¹²Í¨µÄ±àÒë²úÎÖ÷ÒªÊÇ Java Ó¦ÓôúÂëºÍ Java ¿â¡£

/out/target/product//£º°üº¬ÁËÕë¶ÔÌØ¶¨É豸µÄ±àÒë½á¹ûÒÔ¼°Æ½Ì¨Ïà¹ØµÄ C/C++ ¿âºÍ¶þ½øÖÆÎļþ¡£ÆäÖУ¬ÊǾßÌåÄ¿±êÉ豸µÄÃû³Æ¡£

/out/dist/£º°üº¬ÁËΪ¶àÖÖ·Ö·¢¶ø×¼±¸µÄ°ü£¬Í¨¹ý¡°make disttarget¡±½«Îļþ¿½±´µ½¸ÃĿ¼£¬Ä¬ÈϵıàÒëÄ¿±ê²»»á²úÉú¸ÃĿ¼¡£

Build Éú³ÉµÄ¾µÏñÎļþ

Build µÄ²úÎïÖÐ×îÖØÒªµÄÊÇÈý¸ö¾µÏñÎļþ£¬ËüÃǶ¼Î»ÓÚ /out/target/product// Ŀ¼ÏÂ:

system.img£º°üº¬ÁË Android OS µÄϵͳÎļþ£¬¿â£¬¿ÉÖ´ÐÐÎļþÒÔ¼°Ô¤ÖõÄÓ¦ÓóÌÐò£¬½«±»¹ÒÔØÎª¸ù·ÖÇø¡£

ramdisk.img£ºÔÚÆô¶¯Ê±½«±» Linux Äں˹ÒÔØÎªÖ»¶Á·ÖÇø£¬Ëü°üº¬ÁË /initÎļþºÍһЩÅäÖÃÎļþ¡£ËüÓÃÀ´¹ÒÔØÆäËûϵͳ¾µÏñ²¢Æô¶¯ init ½ø³Ì¡£

userdata.img£º½«±»¹ÒÔØÎª /data£¬°üº¬ÁËÓ¦ÓóÌÐòÏà¹ØµÄÊý¾ÝÒÔ¼°ºÍÓû§Ïà¹ØµÄÊý¾Ý¡£

Make Îļþ

Õû¸ö Build ϵͳµÄÈë¿ÚÎļþÊÇÔ´ÂëÊ÷¸ùĿ¼ÏÂÃû³ÆÎª¡°Makefile¡±µÄÎļþ£¬µ±ÔÚÔ´´úÂë¸ùĿ¼Éϵ÷Óà make ÃüÁîʱ£¬make ÃüÁîÊ×ÏȽ«¶ÁÈ¡¸ÃÎļþ¡£

Makefile ÎļþµÄÄÚÈÝÖ»ÓÐÒ»ÐУº¡°include build/core/main.mk¡±¡£¸ÃÐдúÂëµÄ×÷ÓúÜÃ÷ÏÔ£º°üº¬ build/core/main.mk Îļþ¡£ÔÚ main.mk ÎļþÖÐÓÖ»á°üº¬ÆäËûµÄÎļþ£¬ÆäËûÎļþÖÐÓÖ»á°üº¬¸ü¶àµÄÎļþ£¬ÕâÑù¾ÍÒýÈëÁËÕû¸ö Build ϵͳ¡£

ÔÚÕû¸öBuildϵͳÖУ¬Make Îļþ¼äµÄ¹ØÏµÊÇÏ൱¸´Ôӵġ£¿´Ò»ÕÅmakeÎļþÖ÷ÒªµÄ¹ØÏµÍ¼£º

Make ³£ÓÃÎļþ£º

Android Ô´ÂëÖаüº¬ÁËÐí¶àµÄÄ£¿é£¬Ä£¿éµÄÀàÐÍÓкܶàÖÖ£¬ÀýÈ磺Java ¿â£¬C/C++ ¿â£¬APK Ó¦Óã¬ÒÔ¼°¿ÉÖ´ÐÐÎļþµÈ ¡£²¢ÇÒ£¬Java »òÕß C/C++ ¿â»¹¿ÉÒÔ·ÖΪ¾²Ì¬µÄ»òÕß¶¯Ì¬µÄ£¬¿â»ò¿ÉÖ´ÐÐÎļþ¼È¿ÉÄÜÊÇÕë¶ÔÉ豸£¨±¾Îĵġ°É豸¡±Ö¸µÄÊÇ Android ϵͳ½«±»°²×°µÄÉ豸£¬ÀýÈçij¸öÐͺŵÄÊÖ»ú»òƽ°å£©µÄÒ²¿ÉÄÜÊÇÕë¶ÔÖ÷»ú£¨±¾Îĵġ°Ö÷»ú¡±Ö¸µÄÊÇ¿ª·¢ Android ϵͳµÄ»úÆ÷£¬ÀýÈç×°ÓÐ Ubuntu ²Ù×÷ϵͳµÄ PC »ú»ò×°ÓÐ MacOS µÄ iMac »ò Macbook£©µÄ¡£²»Í¬ÀàÐ͵ÄÄ£¿éµÄ±àÒë²½ÖèºÍ·½·¨ÊDz»Ò»Ñù£¬ÎªÁËÄܹ»Ò»ÖÂÇÒ·½±ãµÄÖ´Ðи÷ÖÖÀàÐÍÄ£¿éµÄ±àÒ룬ÔÚ config.mk Öж¨ÒåÁËÐí¶àµÄ³£Á¿£¬ÕâÆäÖеÄÿ¸ö³£Á¿ÃèÊöÁËÒ»ÖÖÀàÐÍÄ£¿éµÄ±àÒ뷽ʽ¡£³£¼ûµÄÓУº BUILD_HOST_STATIC_LIBRARY BUILD_HOST_SHARED_LIBRARY BUILD_STATIC_LIBRARY BUILD_SHARED_LIBRARY BUILD_EXECUTABLE BUILD_HOST_EXECUTABLE BUILD_PACKAGE BUILD_PREBUILT BUILD_MULTI_PREBUILT BUILD_HOST_PREBUILT BUILD_JAVA_LIBRARY BUILD_STATIC_JAVA_LIBRARY BUILD_HOST_JAVA_LIBRARY ²»Í¬ÀàÐ͵ÄÄ£¿éµÄ±àÒë¹ý³Ì»áÓÐһЩÏàͬµÄ²½Ö裬ÀýÈ磺±àÒëÒ»¸ö Java ¿âºÍ±àÒëÒ»¸ö APK Îļþ¶¼ÐèÒª¶¨ÒåÈçºÎ±àÒë Java Îļþ¡£ÎªÁ˼õÉÙ´úÂëÈßÓ࣬ÐèÒª½«¹²Í¬µÄ´úÂ븴ÓÃÆðÀ´£¬¸´Óõķ½Ê½Êǽ«¹²Í¬´úÂë·Åµ½×¨ÃŵÄÎļþÖУ¬È»ºóÔÚÆäËûÎļþÖаüº¬ÕâЩÎļþµÄ·½Ê½À´ÊµÏֵġ£ Ä£¿éµÄ±àÒ뷽ʽ¶¨ÒåÎļþµÄ°üº¬¹ØÏµ£º ![ÕâÀïдͼƬÃèÊö] (http://img.blog.csdn.net/ 20170402232734662? watermark/2/text/ aHR0cDovL2Jsb2cu Y3Nkbi5uZXQveGlhbmd6aGlob25nOA ==/font/5a6L5L2T/ fontsize/400/fill/I0JBQkFCMA ==/dissolve/70/gravity/ SouthEast) ## Make ±àÒë¾µÏñ ### make /make droid Èç¹ûÔÚÔ´ÂëÊ÷µÄ¸ùĿ¼ֱ½Óµ÷Óá°make¡±ÃüÁî¶ø²»Ö¸¶¨ÈκÎÄ¿±ê£¬Ôò»áÑ¡ÔñĬÈÏÄ¿±ê£º¡°droid¡±£¨ÔÚ main.mk Öж¨Ò壩¡£Òò´Ë£¬ÕâºÍÖ´ÐС°make droid¡±Ð§¹ûÊÇÒ»ÑùµÄ¡£ droid Ä¿±ê½«±àÒë³öÕû¸öϵͳµÄ¾µÏñ¡£´ÓÔ´´úÂëµ½±àÒë³öϵͳ¾µÏñ£¬Õû¸ö±àÒë¹ý³Ì·Ç³£¸´ÔÓ¡£Õâ¸ö¹ý³Ì²¢²»ÊÇÔÚ droid Ò»¸öÄ¿±êÖж¨ÒåµÄ£¬¶øÊÇ droid Ä¿±ê»áÒÀÀµÐí¶àÆäËûµÄÄ¿±ê£¬ÕâЩĿ±êµÄ»¥ÏàÅäºÏµ¼ÖÂÁËÕû¸öϵͳµÄ±àÒë¡£ ÄÇôÐèÒª±àÒë³öϵͳ¾µÏñ£¬ÐèÒªÄÄЩÒÀÀµÄØ£¿ ![ÕâÀïдͼƬÃèÊö](http://img.blog.csdn.net/ 20170402233525703? watermark/2/text/aHR0cDovL2Jsb2cu Y3Nkbi5uZXQveGlhbmd6aGlob25nOA == /font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ==/dissolve/70/gravity/ SouthEast) droid ËùÒÀÀµµÄÆäËû MakeÄ¿±ê˵Ã÷£º

Build ϵͳÖаüº¬µÄÆäËûһЩ Make Ä¿±ê£º

# ¶¨ÖÆ Build ϵͳÖÐÄÚÈÝ µ±ÎÒÃÇÒª¿ª·¢Ò»¿îÐ嵀 Android ²úÆ·µÄʱºò£¬ÎÒÃÇÊ×ÏȾÍÐèÒªÔÚ Build ϵͳÖÐÌí¼Ó¶ÔÓڸòúÆ·µÄ¶¨Òå¡£ÔÚ Android Build ϵͳÖжԲúÆ·¶¨ÒåµÄÎļþͨ³£Î»ÓÚ device Ŀ¼Ï£¬device Ŀ¼Ï¿ÉÒÔ¹«Ë¾ÃûÒÔ¼°²úÆ·Ãû·ÖΪ¶þ¼¶Ä¿Â¼£¬È»ºó¼ÓÈ뵽ϵͳÖУ¬ÈçÒÔǰСÃ׵ȻùÓÚAndroidÉî¶È¶¨ÖƵÄϵͳ¡£ ͨ³££¬¶ÔÓÚÒ»¸ö²úÆ·µÄ¶¨Òåͨ³£ÖÁÉÙ»á°üÀ¨ËĸöÎļþ£ºAndroidProducts.mk£¬²úÆ·°æ±¾¶¨ÒåÎļþ£¬BoardConfig.mk ÒÔ¼° verndorsetup.sh¡£ ## AndroidProducts.mk ¸ÃÎļþÖ»ÐèÒª¶¨ÒåÒ»¸ö±äÁ¿£¬Ãû³ÆÎª¡°PRODUCT_MAKEFILES¡±¡£ ``` PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/full_stingray.mk \ $(LOCAL_DIR)/stingray_emu.mk \ $(LOCAL_DIR)/generic_stingray.mk ``` ## ²úÆ·°æ±¾¶¨ÒåÎļþ ¸ÃÎļþÖаüº¬Á˶ÔÓÚÌØ¶¨²úÆ·°æ±¾µÄ¶¨Òå¡£¸ÃÎļþ¿ÉÄܲ»Ö»Ò»¸ö£¬ÒòΪͬһ¸ö²úÆ·¿ÉÄÜ»áÓжàÖÖ°æ±¾¡£ ͨ³£Çé¿öÏ£¬ÎÒÃDz¢²»ÐèÒª¶¨ÒåËùÓÐÕâЩ±äÁ¿¡£Build ϵͳµÄÒѾ­Ô¤Ïȶ¨ÒåºÃÁËһЩ×éºÏ£¬ËüÃǶ¼Î»ÓÚ /build/target/product Ï£¬Ã¿¸öÎļþ¶¨ÒåÁËÒ»¸ö×éºÏ£¬ÎÒÃÇÖ»Òª¼Ì³ÐÕâЩԤÖõ͍Ò壬ȻºóÔÙ¸²¸Ç×Ô¼ºÏëÒªµÄ±äÁ¿¶¨Òå¼´¿É¡£ ``` # ¼Ì³Ð full_base.mk ÎļþÖе͍Òå $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) # ¸²¸ÇÆäÖÐÒѾ­¶¨ÒåµÄһЩ±äÁ¿ PRODUCT_NAME := full_lt26 PRODUCT_DEVICE := lt26 PRODUCT_BRAND := Android PRODUCT_MODEL := Full Android on LT26 ``` ## BoardConfig.mk ¸ÃÎļþÓÃÀ´ÅäÖÃÓ²¼þÖ÷°å£¬ËüÆäÖж¨ÒåµÄ¶¼ÊÇÉ豸µ×²ãµÄÓ²¼þÌØÐÔ¡£ÀýÈ磺¸ÃÉ豸µÄÖ÷°åÏà¹ØÐÅÏ¢£¬Wifi Ïà¹ØÐÅÏ¢£¬»¹ÓÐ bootloader£¬Äںˣ¬radioimage µÈÐÅÏ¢¡£ ## vendorsetup.sh ¸ÃÎļþÖÐ×÷ÓÃÊÇͨ¹ý add_lunch_combo º¯ÊýÔÚ lunch º¯ÊýÖÐÌí¼ÓÒ»¸ö²Ëµ¥Ñ¡Ïî¡£¸Ãº¯ÊýµÄ²ÎÊýÊDzúÆ·Ãû³Æ¼ÓÉϱàÒëÀàÐÍ£¬ÖмäÒÔ¡°-¡±Á¬½Ó£¬ÀýÈ磺add_lunch_combo full_lt26-userdebug¡£ /build/envsetup.sh »áɨÃèËùÓÐ device ºÍ vender ¶þ ¼¶Ä¿ ¼ÏµÄÃû³Æ Ϊ"vendorsetup.sh"Îļþ£¬²¢¸ù¾ÝÆäÖеÄÄÚÈÝÀ´È·¶¨ lunch º¯ÊýµÄ ²Ëµ¥Ñ¡Ïî¡£ ÔÚÅäÖÃÁËÒÔÉϵÄÎļþÖ®ºó£¬±ã¿ÉÒÔ±àÒë³öÎÒÃÇÐÂÌí¼ÓµÄÉ豸µÄϵͳ¾µÏñÁË¡£ ÎÒÃÇ¿ÉÒÔʹÓÃÃüÁ ``` source build/envsetup.sh ``` À´²é¿´Build ϵͳÒѾ­ÒýÈëÁ˸ոÕÌí¼ÓµÄ vendorsetup.sh Îļþ¡£ ## Ìí¼ÓÐÂÄ£¿é ÔÚÔ´ÂëÊ÷ÖУ¬Ò»¸öÄ£¿éµÄËùÓÐÎļþͨ³£¶¼Î»ÓÚͬһ¸öÎļþ¼ÐÖС£ÎªÁ˽«µ±Ç°Ä£¿éÌí¼Óµ½Õû¸ö Build ϵͳÖУ¬Ã¿¸öÄ£¿é¶¼ÐèÒªÒ»¸öרÃÅµÄ Make Îļþ£¬¸ÃÎļþµÄÃû³ÆÎª¡°Android.mk¡±¡£Build ϵͳ»áɨÃèÃû³ÆÎª¡°Android.mk¡±µÄÎļþ£¬²¢¸ù¾Ý¸ÃÎļþÖÐÄÚÈݱàÒë³öÏàÓ¦µÄ²úÎï¡£ ×¢£º ÔÚ Android Build ϵͳÖУ¬±àÒëÊÇÒÔÄ£¿é£¨¶ø²»ÊÇÎļþ£©×÷Ϊµ¥Î»µÄ£¬Ã¿¸öÄ£¿é¶¼ÓÐÒ»¸öΨһµÄÃû³Æ£¬Ò»¸öÄ£¿éµÄÒÀÀµ¶ÔÏóÖ»ÄÜÊÇÁíÍâÒ»¸öÄ£¿é£¬¶ø²»ÄÜÊÇÆäËûÀàÐ͵ĶÔÏó¡£¶ÔÓÚÒѾ­±àÒëºÃµÄ¶þ½øÖƿ⣬Èç¹ûÒªÓÃÀ´±»µ±×÷ÊÇÒÀÀµ¶ÔÏó£¬ÄÇôӦµ±½«ÕâЩÒѾ­±àÒëºÃµÄ¿â×÷Ϊµ¥¶ÀµÄÄ£¿é¡£¶ÔÓÚÕâЩÒѾ­±àÒëºÃµÄ¿âʹÓà BUILD_PREBUILT »ò BUILD_MULTI_PREBUILT¡£ÀýÈ磺µ±±àÒëij¸ö Java ¿âÐèÒªÒÀÀµÒ»Ð© Jar °üʱ£¬²¢²»ÄÜÖ±½ÓÖ¸¶¨ Jar °üµÄ·¾¶×÷ΪÒÀÀµ£¬¶ø±ØÐëÊ×ÏȽ«ÕâЩ Jar °ü¶¨ÒåΪһ¸öÄ£¿é£¬È»ºóÔÚ±àÒë Java ¿âµÄʱºòͨ¹ýÄ£¿éµÄÃû³ÆÀ´ÒÀÀµÕâЩ Jar °ü¡£ ÄÇôÔõô±àдAndroid.mk ÎļþÄØ£¿ Android.mk Îļþͨ³£ÒÔÒÔÏÂÁ½ÐдúÂë×÷Ϊ¿ªÍ·£º ``` LOCAL_PATH := $(call my-dir) //ÉèÖõ±Ç°Ä£¿éµÄ±àÒë·¾¶Îªµ±Ç°Îļþ¼Ð·¾¶ include $(CLEAR_VARS)//ÇåÀí±àÒë»·¾³ÖÐÓõ½µÄ±äÁ¿ ``` ΪÁË·½±ãÄ£¿éµÄ±àÒ룬Build ϵͳÉèÖÃÁ˺ܶàµÄ±àÒë»·¾³±äÁ¿¡£Òª±àÒëÒ»¸öÄ£¿é£¬Ö»ÒªÔÚ±àÒë֮ǰ¸ù¾ÝÐèÒªÉèÖÃÕâЩ±äÁ¿È»ºóÖ´ÐбàÒë¼´¿É¡£³£¼ûµÄÈ磺 - LOCAL_SRC_FILES£ºµ±Ç°Ä£¿é°üº¬µÄËùÓÐÔ´´úÂëÎļþ¡£ - LOCAL_MODULE£ºµ±Ç°Ä£¿éµÄÃû³Æ£¬Õâ¸öÃû³ÆÓ¦µ±ÊÇΨһµÄ£¬Ä£¿é¼äµÄÒÀÀµ¹ØÏµ¾ÍÊÇͨ¹ýÕâ¸öÃû³ÆÀ´ÒýÓõġ£ - LOCAL_C_INCLUDES£ºC »ò C++ ÓïÑÔÐèÒªµÄÍ·ÎļþµÄ·¾¶¡£ - LOCAL_STATIC_LIBRARIES£ºµ±Ç°Ä£¿éÔÚ¾²Ì¬Á´½ÓʱÐèÒªµÄ¿âµÄÃû³Æ¡£ - LOCAL_SHARED_LIBRARIES£ºµ±Ç°Ä£¿éÔÚÔËÐÐʱÒÀÀµµÄ¶¯Ì¬¿âµÄÃû³Æ¡£ - LOCAL_CFLAGS£ºÌṩ¸ø C/C++ ±àÒëÆ÷µÄ¶îÍâ±àÒë²ÎÊý¡£ - LOCAL_JAVA_LIBRARIES£ºµ±Ç°Ä£¿éÒÀÀµµÄ Java ¹²Ïí¿â¡£ - LOCAL_STATIC_JAVA_LIBRARIES£ºµ±Ç°Ä£¿éÒÀÀµµÄ Java ¾²Ì¬¿â¡£ - LOCAL_PACKAGE_NAME£ºµ±Ç° APK Ó¦ÓõÄÃû³Æ¡£ - LOCAL_CERTIFICATE£ºÇ©Êðµ±Ç°Ó¦ÓõÄÖ¤ÊéÃû³Æ¡£ - LOCAL_MODULE_TAGS£ºµ±Ç°Ä£¿éËù°üº¬µÄ±êÇ©£¬Ò»¸öÄ£¿é¿ÉÒÔ°üº¬¶à¸ö±êÇ©¡£±êÇ©µÄÖµ¿ÉÄÜÊÇ debug, eng,user£¬development »òÕß optional¡£ÆäÖУ¬optionalÊÇĬÈϱêÇ©¡£±êÇ©ÊÇÌṩ¸ø±àÒëÀàÐÍʹÓõ쬲»Í¬µÄ±àÒëÀàÐͻᰲװ°üº¬²»Í¬±êÇ©µÄÄ£¿é¡£ ±àÒëÀàÐÍ˵Ã÷:

¸ù¾ÝÉϱí¸÷ÖÖÀàÐÍÄ£¿éµÄ±àÒ뷽ʽ£¬ÒªÖ´ÐбàÒ룬ֻÐèÒªÒýÈë±í 3 ÖжÔÓ¦µÄ Make Îļþ¼´¿É¡£ÀýÈ磬Ҫ±àÒëÒ»¸ö APK Îļþ£¬Ö»ÐèÒªÔÚ Android.mk ÎļþÖУ¬¼ÓÈë¡°include $(BUILD_PACKAGE)¡£

³ý´ËÒÔÍ⣬Build ϵͳÖл¹¶¨ÒåÁËһЩ±ã½ÝµÄº¯ÊýÒÔ±ãÔÚ Android.mk ÖÐʹÓ㬰üÀ¨£º

$(call my-dir)£º»ñÈ¡µ±Ç°Îļþ¼Ð·¾¶¡£

$(call all-java-files-under, )£º»ñȡָ¶¨Ä¿Â¼ÏµÄËùÓÐ Java Îļþ¡£

$(call all-c-files-under, )£º»ñȡָ¶¨Ä¿Â¼ÏµÄËùÓÐ C ÓïÑÔÎļþ¡£

$(call all-Iaidl-files-under, ) £º»ñȡָ¶¨Ä¿Â¼ÏµÄËùÓÐ AIDL Îļþ¡£

$(call all-makefiles-under, )£º»ñȡָ¶¨Ä¿Â¼ÏµÄËùÓÐ Make Îļþ¡£

$(call intermediates-dir-for, , , , )£º»ñÈ¡ Build Êä³öµÄÄ¿±êÎļþ¼Ð·¾¶¡£

È磺±àÒëÒ»¸ö APK Îļþ

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# »ñÈ¡ËùÓÐ×ÓĿ¼ÖÐµÄ Java Îļþ
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# µ±Ç°Ä£¿éÒÀÀµµÄ¾²Ì¬ Java ¿â£¬Èç¹ûÓжà¸öÒÔ¿Õ¸ñ·Ö¸ô
LOCAL_STATIC_JAVA_LIBRARIES := static-library
# µ±Ç°Ä£¿éµÄÃû³Æ
LOCAL_PACKAGE_NAME := LocalPackage
# ±àÒë APK Îļþ
include $(BUILD_PACKAGE)

±àÒëÒ»¸ö Java µÄ¾²Ì¬¿â£º

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

# »ñÈ¡ËùÓÐ×ÓĿ¼ÖÐµÄ Java Îļþ
LOCAL_SRC_FILES := $(call all-subdir-java-files)

# µ±Ç°Ä£¿éÒÀÀµµÄ¶¯Ì¬ Java ¿âÃû³Æ
LOCAL_JAVA_LIBRARIES := android.test.runner

# µ±Ç°Ä£¿éµÄÃû³Æ
LOCAL_MODULE := sample

# ½«µ±Ç°Ä£¿é±àÒë³ÉÒ»¸ö¾²Ì¬µÄ Java ¿â
include $(BUILD_STATIC_JAVA_LIBRARY)

   
3277 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì