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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
»ùÓÚPythonµÄÐÐΪÇý¶¯¿ª·¢ÊµÕ½
 
×÷Õß David Sale À´Ô´:code.tutsplus  »ðÁú¹ûÈí¼þ  ·¢²¼ÓÚ 2015-2-28
  2674  次浏览      30
 

ÐÐΪÇý¶¯¿ª·¢(Behavior-Driven Development,BDD)ÊÇÒ»ÖÖ׿ԽµÄ¿ª·¢Ä£Ê½¡£ÄܰïÖú¿ª·¢ÕßÑø³ÉÈÕÇåÈÕ½áµÄºÃϰ¹ß£¬´Ó¶ø±ÜÃâÉõÖÁ¶Å¾ø“×îºóÒ»·ÖÖÓ”µÄÇé¿ö³öÏÖ£¬Òò´Ë¶ÔÌá¸ß´úÂëÖÊÁ¿ÊÇ´óÓÐñÔÒæµÄ¡£ÆäÓëGherkinÓï·¨Ïà½áºÏµÄ²âÊԽṹ¼°Éè¼ÆÐÎʽ£¬Ê¹µÃ¶ÔÍŶӵÄÈ«²¿³ÉÔ±°üÀ¨·Ç¼¼ÊõÈËÔ±¶¼¾ßÓм«ºÃµÄÒ×¶ÁÐÔ¡£

ËùÓдúÂë¶¼±ØÐë½øÐвâÊÔ£¬ÕâÒâζ×ÅÉÏÏßʱ°Ñϵͳ覴ýµµ½×îµÍÉõÖÁΪÁã¡£ÕâÐèÒªÓëÍêÕûµÄ²âÊÔÌ×¼þÏàÅ䣬´ÓÕûÌå°Ñ¿ØÈí¼þÐÐΪ£¬Ê¹µÃ¼ì²âÓëά»¤¶¼ÄÜÓÐÐò½øÐС£Õâ¾ÍÊÇBDDµÄ÷ÈÁ¦ËùÔÚ£¬ÄѵÀ²»Ð͝Âð£¿

ʲôÊÇBDD?

BDDµÄ¸ÅÄîºÍÀíÂÛÔ´×ÔTDD(²âÊÔÇý¶¯¿ª·¢)£¬ÀàËÆÓÚTDDµÄÀíÂÛÒªµãÊÇÔÚ±àÂëǰÏÈдºÃ²âÊÔ¡£²»Í¬µãÊdzýÁËʹÓõ¥Ôª²âÊÔ½øÐÐϸÁ£¶È»¯²âÊÔ£¬»¹Ê¹ÓýÓÊܲâÊÔ(acceptance tests)¹á´©³ÌÐòʼĩ¡£½ÓÏÂÀ´ÎÒÃÇ»á½áºÏLettuce²âÊÔ¿ò¼Ü½øÐн²½â¡£

BDD¹ý³Ì¿É¼òµ¥¸ÅÀ¨Îª£º

  • ±àдһ¸öȱÏݽÓÊܲâÊÔ
  • ±àдһ¸öȱÏݵ¥Ôª²âÊÔ
  • ʹµ¥Ôª²âÊÔͨ¹ý
  • ÖØ¹¹
  • ʹ½ÓÊܲâÊÔͨ¹ý

ÔÚÿ¸ö¹¦ÄÜÀÈçÓÐÐèÒªÖØ¸´ÉÏÊö²½Öè¡£

Ãô½Ý¿ª·¢ÖеÄBDD

ÔÚÃô½Ý¿ª·¢ÖУ¬BDD¸üÊÇÈçÓãµÃË®¡£

Èç¹ûÏîÄ¿µÄй¦ÄܺÍÐÂÐèÇóÿ¸ôÒ»¡¢Á½¸öÐÇÆÚ¾Í·¢Éú±ä¸ü£¬ÄÇô¸ÃÍŶÓÐèÒªÅäºÏ½øÐпì½Ú×àµÄ²âÊԺͱàÂ빤×÷¡£PythonÖеĽÓÊܺ͵¥Ôª²âÊÔ¿ÉÒÔ°ïÖúʵÏÖ¸ÃÄ¿±ê¡£

½ÓÊܲâÊÔΪÈËÊìÖªµÄÊÇʹÓÃÁËÒ»¸öÓ¢ÎĸñʽµÄ“ÌØÐÔ”ÃèÊöÎļþ£¬ÄÚÈÝÊǺ¬ÓеIJâÊÔÒÔ¼°¸ö±ð²âÊÔ¡£ÕâÑù×öµÄºÃ´¦ÊÇʹÕû¸öÏîÄ¿ÍŶӶ¼²ÎÓëÆäÖУ¬³ýÁË¿ª·¢Õߣ¬»¹ÓйÜÀíÕßÓëÉÌÒµ·ÖÎöÕߵȲ»²ÎÓëʵ¼Ê²âÊÔ¹ý³ÌµÄ·Ç¼¼Êõ³ÉÔ±¡£

ÌØÐÔÎļþµÄ±àд×ñѭȫԱ¿É¶ÁµÄ¹æÔò£¬Ê¹¼¼ÊõºÍ·Ç¼¼Êõ³ÉÔ±¶¼ÄÜÇå³þÀí½âÓë½ÓÊÕ¡£Èç¹ûÖ»°üº¬µ¥Ôª²âÊÔ£¬ÄÇôÓпÉÄܻᵼÖÂÐèÇó·ÖÎö²»È«Ãæ»ò²»ÄÜ´ï³É¹²Ê¶¡£½ÓÊܲâÊÔµÄ×î´óÓŵãÊÇÊÊÓÃÐÔÇ¿£¬²»ÂÛÏîÄ¿¹æÄ£´óС¶¼ÄÜÔËÓÃ×ÔÈç¡£

GherkinÓï·¨

ͨ³£»áʹÓÃGherkinÀ´±àд½ÓÊܲâÊÔ£¬GherkinÀ´×ÔCucumber¿ò¼Ü£¬ÓÉRubyÓïÑÔËù±àд¡£GherkinÓ﷨ʮ·Ö¼òµ¥£¬ÔÚLettuce PythonÖÐÖ÷ҪʹÓÃÒÔÏÂ8µãÀ´½øÐÐÌØÐԺͲâÊԵ͍Ò壺

  • Given¼ÙÉè
  • Whenʱ¼ä
  • ThenÏÂÒ»²½
  • AndÓë
  • FeatureÌØÐÔ£º
  • Background±³¾°£º
  • Scenario Outline³¡ºÏ´ó¸Ù£º

°²×°

ʹÓÃPython³£ÓõÄpip installÓï¾ä¾Í¿ÉÍê³ÉLettuce°üµÄ°²×°£º

$ lettuce /path/to/example.featureÓÃÓÚÔËÐвâÊÔ¡£¿ÉÒÔÿ´ÎÖ»ÔËÐÐÒ»¸ö²âÊÔÎļþ£¬»òÕßÊÇÌύĿ¼ÃûÀ´ÔËÐÐĿ¼ÏµÄËùÓÐÎļþ¡£

ΪÁËʹ²âÊԵıàдºÍʹÓøü¼ÓÈÝÒ×£¬ÎÒÃǽ¨Òé°ÑnosetestsÒ²°²×°ºÃ£º

ÌØÐÔÎļþ

ÌØÐÔÎļþÓÉÓ¢Óïд³É£¬ÄÚÈÝÊDzâÊÔËù¸²¸ÇµÄ³ÌÐò·¶Î§¡£´ËÍ⻹°üÀ¨²âÊԵĴ´½¨ÈÎÎñ¡£»»ÑÔÖ®£¬Äã³ýÁËÐèÒª±àд²âÊÔ£¬»¹µÃ¹æ·¶×Ô¼º¾Í³ÌÐòµÄ·½·½ÃæÃæ±àд³öÁ¼ºÃµÄÎĵµ¡£ÕâÑù×öµÄºÃ´¦ÊÇʹ×Ô¼º¶Ô´úÂëÉÏ϶¼ÐÄÖÐÓÐÊý£¬Ã÷È·ÏÂÒ»²½×öʲô¡£Ëæ×ÅÏîÄ¿¹æÄ£µÄÀ©´ó£¬ÎĵµµÄÖØÒªÐÔ»áÖð²½ÏÔÏÖ£»ÀýÈçÖØÐ»عËij¸ö¹¦ÄÜ»ò¶Ôij¸öµ÷ÓÃAPI½øÐлØËݵȵȡ£

½ÓÏÂÀ´»á½áºÏTDDÖеÄÒ»¸öʵÀý´´½¨Ò»¸öÌØÐÔÎļþ¡£¸ÃʵÀýÊÇÒ»¸öÓÉPythonд³ÉµÄ¼òÒ×¼ÆËãÆ÷£¬Í¬Ê±»áÑÝʾ½ÓÊܲâÊԵĻù±¾Ð´·¨¡£Ä¿Â¼¹¹³ÉµÄ½¨ÒéÊǽ¨Á¢Á½¸öÎļþ¼Ð£¬Ò»¸öÊÇapp£¬ÓÃÓÚ·ÅÖôúÂëÎļþÈçcalculator.py£»ÁíÒ»¸öÊÇtests£¬ÓÃÓÚ·ÅÖÃÌØÐÔÎļþ¼Ð¡£

calculator.py£º

tests/featuresĿ¼ÏµÄÌØÐÔÎļþcalculator.feature

´Ó¸ÃÀý×Ó²»ÄÑ¿´³öÌØÐÔÎļþµÄÃèÊöÊǷdz£Ö±½ØÁ˵±µÄ£¬Äܹ»Ê¹È«Ìå³ÉÔ±¶¼ÄÜ¿´Ã÷°×¡£

ÌØÐÔÎļþµÄÈý¸öÒªµã£º

  • Feature block(ÌØÐÔÇø¿é)£º¸Ã´¦ÃèÊöÁ˲âÊÔ×éËùº­¸ÇµÄ³ÌÐòÄÚÈÝ¡£ÕâÀï²»Ö´ÐÐÈκδúÂ룬µ«ÄÜʹÔĶÁÕßÃ÷°×ÕýÒª½øÐÐʲôÑùµÄÌØÐÔ²âÊÔ¡£
  • Background block(±³¾°Çø¿é)£ºÏÈÓÚÌØÐÔÎļþÖÐÿ¸ö³¡¾°(Scenario)Çø¿éÖ´ÐС£ÕâÀàËÆÓÚSetUp()·½·¨ÓÃÓÚ½øÐд´½¨´úÂëµÄ±àд£¬ÀýÈç½øÐÐÌõ¼þºÍλÖõıàд¡£
  • Scenario block(³¡¾°Çø¿é)£ºÕâÀïÓÃÓÚ¶¨Òå²âÊÔ¡£µÚÒ»ÐÐÓÃ×÷ÎĵµÔÙÒ»´ÎµÄÃèÊö£¬½Ó×ÅÊDzâÊԵľßÌåÄÚÈÝ¡£ÒÔÕâÑùµÄ·ç¸ñ±àд²âÊÔÄѵÀ²»ÊǺܼòµ¥Âð£¿

²½Öè(Steps)Îļþ

³ýÁËÌØÐÔÎļþ£¬²½ÖèÎļþÒ²ÊDZØÐëµÄ£¬ÕâÊÇ“¼ûÖ¤Ææ¼£µÄʱ¿Ì”¡£ÏÔÈ»µØ£¬ÌØÐÔÎļþ±¾Éí²»»á×ö³öʲô½á¹û£»ËüÐèÒª²½ÖèÎļþÒÀ´ÎµØÓëPythonÖ´ÐдúÂëÒ»Ò»Ó³Éä²ÅÓÐ×îºóµÄ½á¹ûÊä³ö¡£ÕâÀïÓ¦ÓõÄÊÇÕýÔò±í´ïʽ¡£

ÕýÔò±í´ïʽ£¿²»»á¹ýÓÚ¸´ÔÓÂð£¿ÆäʵÔÚBDDÊÀ½çÀÕýÔò±í´ïʽ³£ÓÃÓÚ²¶×½Õû¸ö×Ö·û´®»ò´ÓijÐÐץȡ±äÁ¿¡£ËùÒÔÊìÄÜÉúÇÉ¡£

ÕýÔò±í´ïʽ£¿ÔÚ²âÊÔÖÐʹÓò»»áÌ«¸´ÔÓÂð£¿ÔÚLettuceÊDz»»áµÄ£¬·´¶øÊǷdz£¼òµ¥µÄ¡£

ÒÔÏÂÊǶÔÓ¦µÄ²½ÖèÎļþµÄ±àд£º

ÎļþÊײ¿·ÖÊDZê×¼µÄµ¼Èëд·¨¡£ÀýÈç¶ÔCalculatorµÄ·ÃÎʺÍLettuce¹¤¾ßµÄµ¼È룬»¹ÓÐnosetest°üÖÐassert_equals¶Ï¶¨·½·¨µÄµ¼Èë¡£½ÓÏÂÀ´£¬Äã¾Í¿ÉÒÔ¿ªÊ¼Õë¶ÔÌØÐÔÎļþµÄÿһÐнøÐв½Ö趨Òå¡£ÈçǰËùÊö£¬ÕýÔò±í´ïʽºÜ¶àʱºòÓÃÓÚÌáÈ¡Õû¸ö×Ö·û´®£¬³ýÁËÓÐʱÐèÒªÔÚijÐжԱäÁ¿½øÐзÃÎÊ¡£

ÔÚÕâ¸öÀý×ÓÖУ¬ ÀïµÄ@stepÆðµ½½âÂëÌáÈ¡µÄ×÷Óã»u×ÖĸµÄÒâ˼ÊÇÒÔunicode±àÂ뷽ʽ½øÐбí´ïʽִÐС£½Ó×ÅÊÇʹÓÃÕýÔò±í´ïʽ¶ÔÒýÓõÄÄÚÈݽøÐÐÆ¥Å䣬ÕâÀïÊÇÒª½øÐÐÏà¼ÓµÄÊý×Ö¡£

È»ºóÊǶÔPython·½·¨´«Èë±äÁ¿£¬±äÁ¿Ãû¿ÉÈÎÒⶨÒ壬ÕâÀïʹÓÃxºÍy×÷Ϊcalculator add·½·¨µÄ´«Èë±äÁ¿Ãû¡£

´ËÍâÐèÒª½éÉÜworld±äÁ¿µÄʹÓá£worldÊÇÒ»¸öÈ«¾ÖÈÝÆ÷£¬Ê¹µÃ±äÁ¿¿ÉÒÔÔÚͬһ³¡¾°µÄ²»Í¬²½ÖèÖÐʹÓ᣷ñÔò£¬ËùÓбäÁ¿Ö»¶ÔÓ¦ÓÚÆäËùÔÚ·½·¨¿ÉÓá£ÀýÈç°Ñadd·½·¨µÄÔËËã½á¹û´æ·ÅÓÚij¸östep£¬¶øÔÚÁíÒ»ÍâÒ»¸östep½øÐнá¹ûµÄ¶Ï¶¨¡£

ÌØÐÔµÄÖ´ÐÐ

ÌØÐÔÎļþºÍ²½ÖèÎļþ¶¼Íê³Éºó£¬½ÓÏÂÀ´¿ÉÒÔÔËÐвâÊÔÀ´¿´¿´ÄÜ·ñͨ¹ý¡£ÄÚ½¨²âÊÔÔËÐлúµÄLettuceÖ´Ðз½Ê½ÊǺܼòµ¥µÄ£¬ÀýÈçlettuce test/features/calculator.feature£º

LettuceµÄÊä³öÊǷdz£¹¤ÕûµÄ£¬ËüÇå³þÏÔʾÁËÄÄÐÐÌØÐÔÎļþ´úÂë±»Ö´ÐÐÁË£¬È»ºó¶Ô³É¹¦Ö´ÐеÄÐÐÒÔ¸ßÁÁÂÌÉ«ÏÔʾ¡£´ËÍ⻹ÏÔʾÁËÕýÔÚÔËÐеÄÌØÐÔÎļþÒÔ¼°Ðкţ¬Õâ¶ÔÓÚ²âÊÔʧ°Üʱ½øÐÐÌØÐÔÎļþȱÏÝÐеIJéÕÒÊǺÜÓаïÖúµÄ¡£Êä³öĩβÊÇÌØÐÔ£¬³¡¾°£¬²½ÖèµÄÖ´ÐиöÊýÒÔ¼°Í¨¹ý¸öÊýµÄ½á¹û»ã×Ü¡£±¾ÀýÖÐËùÓвâÊÔ¶¼Í¨¹ýÁË¡£µ«Èç¹û³öÏÖ´íÎó£¬Lettuce»áÈçºÎ´¦ÀíÄØ£¿

Ê×ÏȵöÔcalculator.py´úÂë½øÐÐÐ޸쬰Ñadd·½·¨¸ÄΪÁ½ÊýÏà¼õ£º

ÔÙ´ÎÔËÐУ¬¿´¿´LettuceÊÇÈçºÎ¶Ô´íÎó½øÐÐ˵Ã÷µÄ£º

ÏÔÈ»£¬Êµ¼Ê½á¹û0ÓëÔ¤ÆÚ½á¹û4ÊDz»·ûµÄ¡£LettuceÇå³þÏÔʾÁ˸ÃÎÊÌ⣬½ÓÏÂÀ´¾ÍÊǵ÷ÊÔÅÅ´íÖ±µ½Í¨¹ýµÄʱ¼äÁË¡£

ÆäËü¹¤¾ß

ÔÚPythonÖл¹ÌṩÁ˺ܶ಻ͬµÄ¹¤¾ßÀ´½øÐÐÀàËÆµÄ²âÊÔ£¬ÕâЩ¹¤¾ß»ù±¾Ô´×ÔCucumber¡£ÀýÈ磺

  • Behave£ºÕâÊÇÒ»¸öCucumber½Ó¿Ú¡£ÎĵµÅäÌ×Æë±¸£¬±£³Ö¸üУ¬Óв»ÉÙµÄÅäÌ×¹¤¾ß¡£
  • Freshen£ºÁíÒ»¸öCucumber½Ó¿Ú£¬ÅäÌ×ÍøÕ¾ÓÐÍêÕûµÄ½Ì³ÌºÍʵÀý£¬°²×°·½Ê½¶¼ÊǼòµ¥µÄpip·½Ê½¡£

²»ÂÛʹÓÃʲô¹¤¾ß£¬Ö»Òª¶Ôij¸ö¹¤¾ßÔËÓÃÊìÁ·ÁË£¬ÆäËüµÄ×ÔÈ»ÄÜÈÚ»á¹áͨ¡£¶Ô½Ì³ÌÎĵµµÄÊì¶ÁÊdzɹ¦µÄµÚÒ»²½¡£

Óŵã

×ÔÐŵؽøÐдúÂëÖØ¹¹

ʹÓÃÒ»¸öÍêÕû²âÊÔÌ×¼þµÄÓŵãÊÇÏÔ¶øÒ×¼ûµÄ¡£ÕÒµ½Ò»¸öÇ¿´óµÄ²âÊÔÌ×¼þ£¬»áÈôúÂëÖØ¹¹¹¤×÷ʰ빦±¶£¬ÐÅÐÄÂúÂú¡£

Ëæ×ÅÏîÄ¿¹æÄ£µÄ²»¶ÏÀ©´ó£¬Èç¹ûȱ·¦ÓÐЧµÄ¹¤¾ß£¬Õⲻ഻áʹ»ØËݺÍÖØ¹¹¹¤×÷À§ÄÑÖØÖØ¡£Èç¹ûÓÐÒ»Ì×ÍêÕûµÄ½ÓÊܲâÊÔÀ´Óëÿ¸öÌØÐÔÒ»Ò»¶ÔÓ¦£¬ÄÇô½«ÄÜʹ±ä¸ü¹¤×÷ÓÐÐò²»ÎɵؽøÐУ¬²»»á¶ÔÏÖÓй¦ÄÜÄ£¿éÔì³ÉÆÆ»µ¡£

ȫԱ¶¼ÄܲÎÓëÆäÖеĽÓÊܲâÊÔ£¬½«Äܼ«´óµØÌáÉýÍŶÓÕ½¶·Á¦£¬Ò»¿ªÊ¼¾Í³¯×ÅͬһĿ±êǰ½ø¡£³ÌÐòÔ±¿É°Ñ¾«Á¦ÓÃÔÚ¾«È·µÄÄ¿±êÉÏ£¬±ÜÃâÐèÇó·¶Î§µÄʧ¿Ø£»²âÊÔÔ±¿É¾ÍÌØÐÔÎļþ½øÐÐÒ»Ò»¼ìÔÄ£¬°Ñ²âÊÔ»·½Ú×öµ½¼«Ö¡£×îºóÐγÉÁ¼ÐÔÑ­»·£¬Ê¹µÃ³ÌÐòµÄÿ¸öÌØÐÔ¶¼ÍêÃÀ½»¸¶¡£

×ÛÊö

½áºÏÉÏÊö¹ý³ÌºÍ¹¤¾ß£¬ÔÚ¹ýÍù¹¤×÷¹ýµÄÍŶÓÖÐÎÒÃǶ¼ÔøÈ¡µÃ²»´íµÄ³É¼¨¡£BDD¿ª·¢·½Ê½¿ÉʹÕû¸öÍŶӱ£³Öרע£¬±£³Ö×ÔÐÅ£¬±£³Ö»îÁ¦£¬²¢Ê¹Ç±ÔÚ´íÎó½µµ½×îµÍ¡£

   
2674 ´Îä¯ÀÀ       30
 
Ïà¹ØÎÄÕÂ

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

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

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

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

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


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