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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
SwiftÖеÄÖ¸Õë²Ù×÷¼°Ê¹ÓÃ
 
×÷Õß ÍõΡ À´Ô´:OneV's Den  »ðÁú¹ûÈí¼þ  ·¢²¼ÓÚ 2015-1-23
  2090  次浏览      27
 

´Ó´«Í³µÄC´úÂëºÍÓëÖ®ÎÞ·ìÅäºÏµÄObjective-C´úÂëÇ¨ÒÆµ½Swift²¢·ÇС¹¤³Ì£¬ÎÒÃǵĴúÂë¿â¿Ï¶¨»áʱ²»Ê±³öÏÖһЩºÍCЭ×÷µÄµØ·½£¬Èç¹ûÏëÒª¼ÌÐøÊ¹ÓÃÄÇЩC APIµÄ»°£¬Á˽âһЩ»ù±¾µÄSwiftÖ¸Õë²Ù×÷ºÍʹÓõÄ֪ʶ»áºÜÓаïÖú¡£

AppleÆÚÍûÔÚSwiftÖÐÖ¸ÕëÄܹ»¾¡Á¿¼õÉٵdz¡¼¸ÂÊ£¬Òò´ËÔÚSwiftÖÐÖ¸Õë±»Ó³ÉäΪÁËÒ»¸ö·ºÐÍÀàÐÍ£¬²¢ÇÒ»¹±È½Ï³éÏó¡£ÕâÔÚÒ»¶¨³Ì¶ÈÉÏÔì³ÉÁËÔÚSwiftÖÐÖ¸ÕëʹÓõÄÀ§ÄÑ£¬ÌرðÊǶÔÄÇЩ²¢²»ÊìϤָÕ룬ҲûÓжàÉÙÖ¸Õë²Ù×÷¾­ÑéµÄ¿ª·¢Õߣ¨°üÀ¨ÎÒ×Ô¼ºÒ²ÊÇ£©À´Ëµ£¬ÔÚSwiftÖÐʹÓÃÖ¸ÕëȷʵÊÇÒ»¸öÌôÕ½¡£ÔÚÕâÆªÎÄÕÂÀÎÒÏ£ÍûÄÜ´Ó×î»ù±¾µÄʹÓÿªÊ¼£¬×ܽáÒ»ÏÂÔÚSwiftÖÐʹÓÃÖ¸ÕëµÄһЩ³£¼û·½Ê½ºÍ³¡¾°¡£ÕâÆªÎÄÕ¼ٶ¨ÄãÖÁÉÙÖªµÀÖ¸ÕëÊÇʲô£¬Èç¹û¶ÔÖ¸Õë±¾ÉíµÄ¸ÅÄ̫Çå³þµÄ»°£¬¿ÉÒÔÏÈ¿´¿´ÕâÆªÎå·ÖÖÓCÖ¸Õë½Ì³Ì£¨»òÕßËüµÄÖÐÎİ汾£©£¬Ó¦¸Ã»áºÜÓаïÖú¡£

³õ²½

ÔÚSwiftÖУ¬Ö¸Õ붼ʹÓÃÒ»¸öÌØÊâµÄÀàÐÍÀ´±íʾ£¬ÄǾÍÊÇUnsafePointer<T>¡£×ñÑ­ÁËCocoaµÄÒ»¹á²»¿É±äÔ­Ôò£¬UnsafePointer<T> Ò²ÊDz»¿É±äµÄ¡£µ±È»¶ÔÓ¦µØ£¬Ëü»¹ÓÐÒ»¸ö¿É±ä±äÌ壬UnsafeMutablePointer<T>¡£¾ø´ó²¿·Öʱ¼äÀCÖеÄÖ¸Õë¶¼»á±»ÒÔÕâÁ½ÖÖÀàÐÍÒýÈëµ½SwiftÖУºCÖÐconstÐÞÊεÄÖ¸Õë¶ÔÓ¦UnsafePointer£¨×î³£¼ûµÄÓ¦¸Ã¾ÍÊÇC×Ö·û´®µÄconst char *ÁË)£¬¶øÆäËû¿É±äµÄÖ¸ÕëÔò¶ÔÓ¦UnsafeMutablePointer¡£³ý´ËÖ®Í⣬SwiftÖдæÔÚ±íʾһ×éÁ¬ÐøÊý¾ÝÖ¸ÕëµÄUnsafeBufferPointer<T>£¬±íʾ·ÇÍêÕû½á¹¹µÄ²»Í¸Ã÷Ö¸ÕëCOpaquePointerµÈµÈ¡£ÁíÍâÄã¿ÉÄÜÒѾ­×¢Òâµ½ÁË£¬Äܹ»È·¶¨Ö¸ÏòÄÚÈݵÄÖ¸ÕëÀàÐͶ¼ÊÇ·ºÐ͵Ästruct£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÕâ¸ö·ºÐÍÀ´¶ÔÖ¸ÕëÖ¸ÏòµÄÀàÐͽøÐÐÔ¼ÊøÒÔÌṩһ¶¨°²È«ÐÔ¡£

¶ÔÓÚÒ»¸öUnsafePointer<T>ÀàÐÍ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýmemoryÊôÐÔ¶ÔÆä½øÐÐȡֵ£¬Èç¹ûÕâ¸öÖ¸ÕëÊǿɱäµÄUnsafeMutablePointer<T> ÀàÐÍ£¬ÎÒÃÇ»¹¿ÉÒÔͨ¹ýmemory¶ÔËü½øÐи³Öµ¡£±ÈÈçÎÒÃÇÏëҪдһ¸öÀûÓÃÖ¸ÕëÖ±½Ó²Ù×÷ÄÚ´æµÄ¼ÆÊýÆ÷µÄ»°£¬¿ÉÒÔÕâô×ö£º

ÕâÀïºÍCµÄÖ¸ÕëʹÓÃÀàËÆ£¬ÎÒÃÇͨ¹ýÔÚ±äÁ¿ÃûÇ°Ãæ¼ÓÉÏ&·ûºÅ¾Í¿ÉÒÔ½«Ö¸ÏòÕâ¸ö±äÁ¿µÄÖ¸Õë´«µÝµ½½ÓÊÜÖ¸Õë×÷Ϊ²ÎÊýµÄ·½·¨ÖÐÈ¥¡£ÔÚÉÏÃæµÄincrementorÖÐÎÒÃÇͨ¹ýÖ±½Ó²Ù×÷memoryÊôÐԸıäÁËÖ¸ÕëÖ¸ÏòµÄÄÚÈÝ¡£

ÓëÕâÖÖ×ö·¨ÀàËÆµÄÊÇʹÓÃSwiftµÄinout¹Ø¼ü×Ö¡£ÎÒÃÇÔÚ½«±äÁ¿´«Èëinout²ÎÊýµÄº¯Êýʱ£¬Í¬ÑùҲʹÓÃ&·ûºÅ±íʾµØÖ·¡£²»¹ýÇø±ðÊÇÔÚº¯ÊýÌåÄÚ²¿ÎÒÃDz»ÐèÒª´¦ÀíÖ¸ÕëÀàÐÍ£¬¶øÊÇ¿ÉÒÔ¶Ô²ÎÊýÖ±½Ó½øÐвÙ×÷¡£

ËäÈ»&ÔÚ²ÎÊý´«µÝʱ±íʾµÄÒâÒåºÍCÖÐÒ»Ñù£¬ÊÇij¸ö“±äÁ¿µÄµØÖ·”£¬µ«ÊÇÔÚSwiftÖÐÎÒÃÇûÓа취ֱ½Óͨ¹ýÕâ¸ö·ûºÅ»ñȡһ¸öUnsafePointerµÄʵÀý¡£ÐèҪעÒâÕâÒ»µãºÍCÓÐËù²»Í¬£º

Ö¸Õë³õʼ»¯ºÍÄÚ´æ¹ÜÀí

ÔÚSwiftÖв»ÄÜÖ±½ÓÈ¡µ½ÏÖÓжÔÏóµÄµØÖ·£¬ÎÒÃÇ»¹ÊÇ¿ÉÒÔ´´½¨ÐµÄUnsafeMutablePointer¶ÔÏó¡£ÓëSwift ÖÐÆäËû¶ÔÏóµÄ×Ô¶¯ÄÚ´æ¹ÜÀí²»Í¬£¬¶ÔÓÚÖ¸ÕëµÄ¹ÜÀí£¬ÊÇÐèÒªÎÒÃÇÊÖ¶¯½øÐÐÄÚ´æµÄÉêÇëºÍÊͷŵġ£Ò»¸ö UnsafeMutablePointerµÄÄÚ´æÓÐÈýÖÖ¿ÉÄÜ״̬£º

  • ÄÚ´æÃ»Óб»·ÖÅ䣬ÕâÒâζ×ÅÕâÊÇÒ»¸ö null Ö¸Õ룬»òÕßÊÇ֮ǰÒѾ­ÊͷŹý£»
  • ÄÚ´æ½øÐÐÁË·ÖÅ䣬µ«ÊÇÖµ»¹Ã»Óб»³õʼ»¯£»
  • ÄÚ´æ½øÐÐÁË·ÖÅ䣬²¢ÇÒÖµÒѾ­±»³õʼ»¯¡£

ÆäÖÐÖ»ÓеÚÈýÖÖ״̬ϵÄÖ¸ÕëÊÇ¿ÉÒÔ±£Ö¤Õý³£Ê¹Óõġ£UnsafeMutablePointerµÄ³õʼ»¯·½·¨(init)Íê³ÉµÄ¶¼ÊÇ´ÓÆäËûÀàÐÍת»»µ½UnsafeMutablePointerµÄ¹¤×÷¡£ÎÒÃÇÈç¹ûÏëҪн¨Ò»¸öÖ¸Õ룬ÐèÒª×öµÄÊÇʹÓÃalloc:Õâ¸öÀà·½·¨¡£¸Ã·½·¨½ÓÊÜÒ»¸önum: Int×÷Ϊ²ÎÊý£¬½«ÏòϵͳÉêÇënum¸öÊýµÄ¶ÔÓ¦·ºÐÍÀàÐ͵ÄÄÚ´æ¡£ÏÂÃæµÄ´úÂëÉêÇëÁËÒ»¸öInt´óСµÄÄڴ棬²¢·µ»ØÖ¸ÏòÕâ¿éÄÚ´æµÄÖ¸Õ룺

½ÓÏÂÀ´Ó¦¸Ã×öµÄÊǶÔÕâ¸öÖ¸ÕëµÄÄÚÈݽøÐгõʼ»¯£¬ÎÒÃÇ¿ÉÒÔʹÓÃinitialize:·½·¨À´Íê³É³õʼ»¯£º

ÔÚÍê³É³õʼ»¯ºó£¬ÎÒÃǾͿÉÒÔͨ¹ýmemoryÀ´²Ù×÷Ö¸ÕëÖ¸ÏòµÄÄÚ´æÖµÁË¡£

ÔÚʹÓÃÖ®ºó£¬ÎÒÃÇ×îºÃ¾¡¿ìÊÍ·ÅÖ¸ÕëÖ¸ÏòµÄÄÚÈݺÍÖ¸Õë±¾Éí¡£Óëinitialize:Åä¶ÔʹÓõÄdestroyÓÃÀ´Ïú»ÙÖ¸ÕëÖ¸ÏòµÄ¶ÔÏ󣬶øÓëalloc:¶ÔÓ¦µÄdealloc:ÓÃÀ´ÊÍ·Å֮ǰÉêÇëµÄÄÚ´æ¡£ËüÃǶ¼Ó¦¸Ã±»Åä¶ÔʹÓãº

×¢Ò⣺ÆäʵÔÚÕâÀï¶ÔÓÚIntÕâÑùµÄÔÚCÖÐÓ³ÉäΪintµÄ“ƽ·²Öµ”À´Ëµ£¬destroy²¢²»ÊDZØÒªµÄ£¬ÒòΪÕâЩֵ±»·ÖÅäÔÚ³£Á¿¶ÎÉÏ¡£µ«ÊǶÔÓÚÏñÀàµÄ¶ÔÏó»òÕ߽ṹÌåʵÀýÀ´Ëµ£¬Èç¹û²»±£Ö¤³õʼ»¯ºÍ´Ý»ÙÅä¶ÔµÄ»°£¬ÊÇ»á³öÏÖÄÚ´æÐ¹Â¶µÄ¡£ËùÒÔûÓÐÌØÊ⿼Âǵϰ£¬²»ÂÛÄÚ´æÖе½µ×ÊÇʲô£¬±£Ö¤initialize:ºÍdestroyÅä¶Ô»áÊÇÒ»¸öºÃϰ¹ß¡£

Ö¸ÏòÊý×éµÄÖ¸Õë

ÔÚSwiftÖн«Ò»¸öÊý×é×÷Ϊ²ÎÊý´«µÝµ½C APIʱ£¬SwiftÒѾ­°ïÖúÎÒÃÇÍê³ÉÁËת»»£¬ÕâÔÚAppleµÄ¹Ù·½²©¿ÍÖÐÓиöºÜºÃµÄÀý×Ó£º

¶ÔÓÚÒ»°ãµÄ½ÓÊÜconstÊý×éµÄC API£¬ÆäÒªÇóµÄÀàÐÍΪUnsafePointer£¬¶ø·ÇconstµÄÊý×éÔò¶ÔÓ¦UnsafeMutablePointer¡£Ê¹ÓÃʱ£¬¶ÔÓÚconstµÄ²ÎÊý£¬ÎÒÃÇÖ±½Ó½«SwiftÊý×é´«È루ÉÏÀýÖеÄaºÍb£©£»¶ø¶ÔÓڿɱäµÄÊý×飬ÔÚÇ°Ãæ¼ÓÉÏ&ºó´«Èë¼´¿É£¨ÉÏÀýÖеÄresult£©¡£

¶ÔÓÚ´«²Î£¬Swift½øÐÐÁ˼ò»¯£¬Ê¹ÓÃÆðÀ´·Ç³£·½±ã¡£µ«ÊÇÈç¹ûÎÒÃÇÏëҪʹÓÃÖ¸ÕëÀ´Ïñ֮ǰÓÃmemoryµÄ·½Ê½Ö±½Ó²Ù×÷Êý×éµÄ»°£¬¾ÍÐèÒª½èÖúÒ»¸öÌØÊâµÄÀàÐÍ£ºUnsafeMutableBufferPointer¡£Buffer PointerÊÇÒ»¶ÎÁ¬ÐøµÄÄÚ´æµÄÖ¸Õ룬ͨ³£ÓÃÀ´±í´ïÏñÊÇÊý×é»òÕß×ÖµäÕâÑùµÄ¼¯ºÏÀàÐÍ¡£

Ö¸Õë²Ù×÷ºÍת»»

  • withUnsafePointer

ÉÏÃæÎÒÃÇ˵¹ý£¬ÔÚSwiftÖв»ÄÜÏñCÀïÄÇÑùʹÓÃ&·ûºÅÖ±½Ó»ñÈ¡µØÖ·À´½øÐвÙ×÷¡£Èç¹ûÎÒÃÇÏë¶Ôij¸ö±äÁ¿½øÐÐÖ¸Õë²Ù×÷£¬ÎÒÃÇ¿ÉÒÔ½èÖúwithUnsafePointerÕâ¸ö¸¨Öú·½·¨¡£Õâ¸ö·½·¨½ÓÊÜÁ½¸ö²ÎÊý£¬µÚÒ»¸öÊÇ inoutµÄÈÎÒâÀàÐÍ£¬µÚ¶þ¸öÊÇÒ»¸ö±Õ°ü¡£Swift»á½«µÚÒ»¸öÊäÈëת»»ÎªÖ¸Õ룬Ȼºó½«Õâ¸öת»»ºóµÄUnsafeµÄÖ¸Õë×÷Ϊ²ÎÊý£¬È¥µ÷Óñհü¡£Ê¹ÓÃÆðÀ´´ó¸ÅÊÇÕâ¸öÑù×Ó£º

ÕâÀïÆäʵÎÒÃÇ×öÁ˺ÍÎÄÕÂÒ»¿ªÊ¼µÄincrementorÏàͬµÄÊÂÇé£¬Çø±ðÔÚÓÚ²»ÐèҪͨ¹ý·½·¨µÄµ÷ÓÃÀ´½«Öµ×ª»»ÎªÖ¸Õë¡£Õâô×öµÄºÃ´¦¶ÔÓÚÄÇЩֻ»áÖ´ÐÐÒ»´ÎµÄÖ¸Õë²Ù×÷À´ËµÊÇÏÔ¶øÒ×¼ûµÄ£¬¿ÉÒÔ½«“ÎÒÃǾÍÊÇÏë¶ÔÕâ¸öÖ¸Õë×öµãʶù”Õâ¸öÒâͼ±í´ïµÃ¸ü¼ÓÇåÎúÃ÷È·¡£

  • unsafeBitCast

unsafeBitCastÊǷdz£Î£ÏյIJÙ×÷£¬Ëü»á½«Ò»¸öÖ¸ÕëÖ¸ÏòµÄÄÚ´æÇ¿Öư´Î»×ª»»ÎªÄ¿±êµÄÀàÐÍ¡£ÒòΪÕâÖÖת»»ÊÇÔÚSwiftµÄÀàÐ͹ÜÀíÖ®Íâ½øÐеģ¬Òò´Ë±àÒëÆ÷ÎÞ·¨È·±£µÃµ½µÄÀàÐÍÊÇ·ñȷʵÕýÈ·£¬Äã±ØÐëÃ÷È·µØÖªµÀÄãÔÚ×öʲô¡£±ÈÈ磺

ÒòΪNSArrayÊÇ¿ÉÒÔ´æ·ÅÈÎÒâNSObject¶ÔÏóµÄ£¬µ±ÎÒÃÇÔÚʹÓÃCFArrayGetValueAtIndex´ÓÖÐȡֵµÄʱºò£¬µÃµ½µÄ½á¹û½«ÊÇÒ»¸öUnsafePointer<Void>¡£ÓÉÓÚÎÒÃǺÜÃ÷°×ÆäÖдæ·ÅµÄÊÇString¶ÔÏó£¬Òò´Ë¿ÉÒÔÖ±½Ó½«ÆäÇ¿ÖÆ×ª»»ÎªCFString¡£

¹ØÓÚunsafeBitCastÒ»ÖÖ¸ü³£¼ûµÄʹÓó¡¾°ÊDz»Í¬ÀàÐ͵ÄÖ¸ÕëÖ®¼ä½øÐÐת»»¡£ÒòΪָÕë±¾ÉíËùÕ¼ÓõĵĴóСÊÇÒ»¶¨µÄ£¬ËùÒÔÖ¸ÕëµÄÀàÐͽøÐÐת»»ÊDz»»á³öʲôÖÂÃüÎÊÌâµÄ¡£ÕâÔÚÓëһЩC APIЭ×÷ʱ»áºÜ³£¼û¡£±ÈÈçÓкܶàC APIÒªÇóµÄÊäÈëÊÇvoid *£¬¶ÔÓ¦µ½SwiftÖÐΪUnsafePointer<Void>¡£ÎÒÃÇ¿ÉÒÔͨ¹ýÏÂÃæÕâÑùµÄ·½Ê½½«ÈÎÒâÖ¸Õëת»»ÎªUnsafePointer¡£

×ܽá

Swift´ÓÉè¼ÆÉÏÀ´Ëµ¾ÍÊÇÒÔ°²È«×÷ÎªÖØÒªÔ­ÔòµÄ£¬ËäÈ»¿ÉÄÜÓÐЩ†ªà£¬µ«ÊÇ»¹ÊÇÒªÖØÉêÔÚSwiftÖÐÖ±½ÓʹÓúͲÙ×÷Ö¸ÕëÓ¦¸Ã×÷Ϊ×îºóµÄÊֶΣ¬ËüÃÇʼÖÕÊÇÎÞ·¨È·±£°²È«µÄ¡£´Ó´«Í³µÄC´úÂëºÍÓëÖ®ÎÞ·ìÅäºÏµÄObjective-C´úÂëÇ¨ÒÆµ½Swift²¢²»ÊÇÒ»¼þС¹¤³Ì£¬ÎÒÃǵĴúÂë¿â¿Ï¶¨»áʱ²»Ê±³öÏÖһЩºÍCЭ×÷µÄµØ·½¡£ÎÒÃǵ±È»¿ÉÒÔÑ¡ÔñʹÓÃSwiftÖØÐ´²¿·Ö³Â¾É´úÂ룬µ«ÊǶÔÓÚÏñÊǰ²È«»òÕßÐÔÄÜÖÁ¹ØÖØÒªµÄ²¿·Ö£¬ÎÒÃÇ¿ÉÄܳýÁ˼ÌÐøÊ¹ÓÃC APIÒÔÍâ±ðÎÞÑ¡Ôñ¡£Èç¹ûÎÒÃÇÏëÒª¼ÌÐøÊ¹ÓÃÄÇЩAPIµÄ»°£¬Á˽âһЩ»ù±¾µÄSwiftÖ¸Õë²Ù×÷ºÍʹÓõÄ֪ʶ»áºÜÓаïÖú¡£

¶ÔÓÚеĴúÂ룬¾¡Á¿±ÜÃâʹÓÃUnsafe¿ªÍ·µÄÀàÐÍ£¬Òâζ×Å¿ÉÒÔ±ÜÃâºÜ¶à²»±ØÒªµÄÂé·³¡£Swift¸ø¿ª·¢Õß´øÀ´µÄ×î´óºÃ´¦ÊÇ¿ÉÒÔÈÃÎÒÃÇÓøü¼ÓÏȽøµÄ±à³Ì˼Ï룬½øÐиü¿ìºÍ¸üרעµÄ¿ª·¢¡£Ö»ÓÐÔÚ×ðÖØÕâÖÖ˼ÏëµÄǰÌáÏ£¬ÎÒÃDzÅÄܸüºÃµØÏíÊÜÕâÃÅÐÂÓïÑÔ´øÀ´µÄÖÖÖÖÓÅÊÆ¡£ÏÔÈ»£¬ÕâÖÖ˼ÏëÊDz»°üÀ¨µ½´¦Ê¹Óà UnsafePointerµÄ¡£

   
2090 ´Îä¯ÀÀ       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ÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ