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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
BeeHive£¬Ò»´ÎiOSÄ£¿é»¯½âñîʵ¼ù
 
×÷Õߣº´÷Åô À´Ô´ÓÚ£ºInfOQ ·¢²¼ÓÚ£º 2017-3-6
  2060  次浏览      27
 

1.ΪʲôÐèÒªBeeHive£¿

ÔÚÌìèAppµÄ¿ìËÙ·¢Õ¹¹ý³ÌÖУ¬ÈËÔ±²»¶Ï׳´ó£¬ÒµÎñ²»¶Ï¸´ÔÓ£¬´úÂëÁ¿ËæÖ®Ôö¶à£¬´øÀ´µÄÊÇЭ×÷¿ª·¢ÖÐÓöµ½¸÷ÖÖ¸÷ÑùµÄÎÊÌâ¡£

ÄãÊÇ·ñÔøÔÚÕâÑùµÄ»·¾³Ï¼èÄÑ¿ª·¢£¿Î·ÊÖη½ÅµØ±ß×öÐèÇó±ß¸ÄBUG¡£

ͬʱiOSµÄ¹¤³Ì´úÂëµÄñîºÏ¿ÉÄÜÊÇÕâÑùµÄ£º

AppDelegateÖаüº¬´óÁ¿¿âµÄinitÒÔ¼°ÆäËû²Ù×÷£¬ÉÙÔò¼¸°ÙÐУ¬¶àÔòÉÏǧÐУ¬Î޹شúÂë¶Ñ»ýÔÚÆäÖУ¬Î¬»¤³É±¾¼«¸ß£¬²»Í¬¿âµÄµ÷ÓÃÂß¼­»¥Ïཻ´í£¬ÈçÏÂͼËùʾ£º

ÃæÌõʽµÄñîºÏ£¬µ¼ÖÂÉϲãÒµÎñÊÜÏÞÓڵײã»ù´¡¿âµÄÒÀÀµÓ°Ï죬BUGÅŲ黺Âý¡¢Ð¹¦ÄÜÔö¼ÓЧÂÊËæ´úÂëÁ¿µÝÔö¶ø²»¶ÏµÝ¼õ¡£

1.1 ¿ª·¢ÖÐÖ÷ÒªÎÊÌâ

¿ª·¢¹ý³ÌÖÐ×ܽáÁËÒÔÏÂApp¿ª·¢ÖÐÓöµ½µÄÎÊÌ⣺

1.¹¦ÄÜ´úÂëÖ®¼äµÄÒÀÀµ¸´ÔÓ£¬¿Éά»¤ÐÔ²î

2.Эͬ¿ª·¢¹ý³ÌÖУ¬²¢Ðпª·¢´æÔÚblockÇé¿ö

3.¹¦ÄܽçÏÞ²»ÇåÎú£¬»ù´¡¹¦ÄÜÄ£¿é±ä¶¯£¬»áµ¼ÖÂÉϲãÒµÎñÊܵ½Ó°Ïì

4.¸÷ÍŶӸºÔð¹¦ÄÜÄ£¿é£¬ÔÚÖ÷¹¤³ÌÖÐÓÐñîºÏ´úÂë

5.ÉϲãÒµÎñ»á³öÏÖ·´ÏòÌṩ¹¦Äܸøµ×²ãÇé¿ö

3.ÐÔÄÜ·ÖÎöÓÅ»¯£¬Ëæ´úÂëÔö¼Ó±äµÃÀ§ÄÑ

1.2 AppºÍ¿ª·¢ÈËÔ±µÄËßÇó

Ò»¸öAppÓ¦¸ÃÓÐÈçÏÂÌØÐÔ£º

1.¹¦ÄÜ¿Éά»¤ÐÔ

2.¹¦ÄÜ¿ÉÓÃÐÔ

3.¹¦ÄܾßÓÐÁ¼ºÃÐÔÄÜ

4.¹¦ÄܿɷÖÎö£¬¿ÉÁ¿»¯

5.¹¦Äܿɵ¥Ôª²âÊÔ

¿ª·¢ÈËԱϣÍûЭͬ¿ª·¢ÖÐÄܹ»×öµ½ÒÔϼ¸µã£º

1.²»Ï£Íû±»±ðÈËblockס¿ª·¢

2.ÒÀÀµ¿â°æ±¾¡¢Ô¼¶¨µÄ½Ó¿ÚÒªÎȶ¨

3.ÒÔ×îÉÙÇÖÈëʽ´úÂëÀ´½ÓÈëij¸ö¹¦ÄÜ

´úÂë¸ôÀ뿪·¢ÎÊÌ⣬ͨ¹ýCocoapodsµÃµ½½â¾ö£¬´úÂë²ãÃæ´ïµ½Á˷ָµ«Âß¼­¹¦ÄÜÉϵÄñîºÏÎÊÌ⻹ÊÇÎÞ·¨½â¾ö¡£¿ª·¢ÈËԱϣÍûÔÚÀ©Õ¹ÒµÎñµÄͬʱ×öµ½¿ìËÙÎȶ¨£¬Òò´ËÐèÒªÓÐÒ»ÖÖAppÄ£¿é½âñʽÀ´Èÿª·¢ÈËÔ±ÖÐÃâÊÜÒÀÀµ¹ØÏµµÄÍ´¿à£¬ÓÚÊÇÈÿª·¢ÈËÔ±²úÉúÁË´òÔìÒ»¸öBeeHiveÈ«¾Ö»ù´¡¿ò¼ÜµÄÏë·¨¡£

2. BeeHiveµÄ×î¼Ñʵ¼ù

BeeHiveµÄʹÓ÷½·¨¿ÉÒԲο¼BeeHiveµÄREADME¡£ÕâÀï¾ÙÒ»¸öʵ¼Ê¿ª·¢ÖеÄÀý×Ó¡£

2.1 3D-TouchÀý×Ó

2.1.1 ³¡¾°1:´î½¨3DTouch³¡¾°

iPhone 6s¼°ÒÔÉϵÄÉ豸֧³Ö3D-Touchºó£¬¼¸ºõËùÓÐÓ¦Óö¼ÔÚÊÊÅäÆäÌØÐÔ£¬°´ÕÕ¹ßÀý£¬ÔÚAppDelegateÖаüº¬ÈçÏ´úÂ룺

-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem
 completionHandler:(void (^)(BOOL))completionHandler
{
....
}

ÕâÒâζ×ÅAppDelegateÒªÔö³¤´úÂëÐÐÊý£¬ÊµÔòQuickActionµÄ¹¦ÄÜûÓбØÒªÐ´ÔÚAppDelegateÖС£ÀûÓÃBeeHive¿ò¼ÜÌØÐÔ£¬´´½¨3DTouch Pod£¬¶ÀÁ¢3DTouchÏà¹ØÒµÎñ¹¦ÄÜ¡£

-(void)modQuickAction:(BHContext *)context
{
....
//process context.shortcutItem
}

2.1.2 ³¡¾°2:3DTouchÐèÒª¶¯Ì¬»¯£¬¿ÉÁ¿»¯

Ò»¸ö¶¯Ì¬ÅäÖÃquickActionÐèÇóµÄµ½À´£¬ÒÔÍùµÄ×ö·¨ÐèÒªÒýÈëÅäÖÃModule£¬´´½¨¶ÔӦһϵÁе÷ÓÃÁ÷³Ì£¬ÕâʱֻÐèÒªµ÷ÓÃÅäÖÃService¼´¿É£¬¶øÇÒÏ£Íû¸üÔçµÄ¸üÐÂquickActionItem£¬ÓÚÊÇ¿ÉÒÔµ÷ÓÃmodInitÀ´ÊµÏÖ¡£

-(void)modQuickAction:(BHContext *)context
{
....
//update config by configCenter Service
}

²úÆ··½»¹Ï£ÍûÖªµÀÓû§¶¼ÓÃÁËÄÄЩQuickAction£¬Õâʱµ÷ÓÃUserTrack Service¼´¿É£¬ÖîÈç´ËÀàµÄÒ»¸öÉϲãÒµÎñ£¬¿ª·¢ÈËÔ±Òªµ÷ÓÃLog£¬CacheµÈµÈ·þÎñ£¬²ÉÓÃBeeHive ServiceÐÎʽºóÖ»ÐèÒ»Ðе÷Óü´¿É¡£

2.1.3 ³¡¾°3:3DTouchÐèÒª×öµ½¸öÐÔ»¯

ÔÚûÓзþÎñ¶ËµÄÇé¿öÏ£¬ÈçºÎ×öµ½QuickAction¸öÐÔ»¯£¬×¢²á²¢ÌṩÁË3DTouchBHService£¬¸øÆäËûÒµÎñµ÷ÓñÈÈçij¸ö¹¦ÄÜÒ³Ãæ

-(void)updateAccessTimesWithActionURL:(NSURL *)actionURL
{
....
// save view controller access times by cache service
// update local quickAction Items by access times and any other element
}

ÉÏÃæÈý¸öµäÐͳ¡¾°Ö÷񻃾¼°µÄµ½BeeHive¼¸´ó¹¦Äܵ㣺

1.ModuleµÄ´´½¨£¬¸ÐÖªAppÉúÃüÖÜÆÚ

2.¶ÔÄÚÒýÈë¡¢µ÷ÓÃService

3.¶ÔÍâÌṩService

4.¹¦ÄÜÒÆÖ²£¬ÎÞÐècopy£¬podfileÖÐÔö¼ÓpodÔ´

Õû¸ö3DTouch¿ª·¢¹ý³ÌÖв»Éæ¼°ÆäËûÆäËû¹¦ÄܵľßÌåʵÏÖ£¬ÃæÏòÇÐÆ¬±à³Ì¹ý³ÌÖУ¬Ö»Òª¹ØÐÄ×Ô¼ºÄ£¿é¶ÔÓ¦µÄÐèÇó¼´¿É¡£

3. BeeHive½á¹¹ÓëÔ­Àí½âÎö

BeeHive½è¼øÁËSpring Service¡¢Apache DSOµÄ¼Ü¹¹ÀíÄ²ÉÓÃAOP+À©Õ¹AppÉúÃüÖÜÆÚAPIÐÎʽ£¬½«ÒµÎñ¹¦ÄÜ¡¢»ù´¡¹¦ÄÜÄ£¿éÒÔÄ£¿é·½Ê½ÒÔ½â¾ö´óÐÍÓ¦ÓÃÖеĸ´ÔÓÎÊÌ⣬²¢ÈÃÄ£¿éÖ®¼äÒÔServiceÐÎʽµ÷Ó㬽«¸´ÔÓÎÊÌâÇз֣¬ÒÔAOP·½Ê½Ä£¿é»¯·þÎñ£¬¾ÙÀýÀ´ËµÈÕÖ¾¡¢ÂñµãÄ£¿é²ÉÓÃAOP·½Ê½ºó£¬ÒµÎñ·½²»ÐèÒª¿¼ÂÇÈÕÖ¾¡¢ÂñµãµÄÏà¹Ø´úÂ룬ֻҪÒÔcreateServiceÈ¥ÉùÃ÷µ÷ÓÃService¼´¿É¡£

ÏàÓ¦µÄBeeHive¼Ü¹¹ÈçÏ£º

Core + pluginµÄÐÎʽ¿ÉÒÔÈÃÒ»¸öÓ¦ÓÃÖ÷Á÷³Ì²¿·ÖµÃµ½¼¯ÖйÜÀí£¬²»Í¬Ä£¿éÒÔpluginÐÎʽ´æÔÚ£¬±ãÓÚºáÏòµÄÀ©Õ¹ºÍÒÆÖ²¡£

ͼÖеÄBHContext£¬ÊÇBeeHiveµÄÅäÖÃÎļþ£¬Ìṩȫ¾ÖͳһÉÏÏÂÎÄÐÅÏ¢¡£

ͼÖеÄBHCore¼´BeeHiveÌṩע²á¡¢´´½¨Module¡¢ServiceÂß¼­£¬Module¡¢Service×¢²áºÍµ÷ÓÃÂß¼­Ö»ºÍºËÐÄÄ£¿éÏà¹Ø£¬ModuleÖ®¼äûÓÐÖ±½ÓµÄ¹ØÁª¹ØÏµ¡£

BeeHiveºËÐÄ˼ÏëÉæ¼°Á½¸ö²¿·Ö£º

1.¸÷¸öÄ£¿é¼äµ÷ÓôÓÖ±½Óµ÷ÓöÔӦģ¿é£¬±ä³Éµ÷ÓÃServiceµÄÐÎʽ£¬±ÜÃâÁËÖ±½ÓÒÀÀµ¡£

2.AppÉúÃüÖÜÆÚµÄ·Ö·¢£¬½«ñîºÏÔÚAppDelegateÖÐÂß¼­²ð·Ö£¬Ã¿¸öÄ£¿éÒÔ΢ӦÓõÄÐÎʽ¶ÀÁ¢´æÔÚ¡£

BeeHiveÌṩÁËÈýÖÖ²»Í¬µÄµ÷ÓÃÐÎʽ£¬¾²Ì¬plist£¬¶¯Ì¬×¢²á£¬annotation¡£Module¡¢ServiceÖ®¼äûÓйØÁª£¬Ã¿¸öÒµÎñÄ£¿é¿ÉÒÔµ¥¶ÀʵÏÖModule»òÕßServiceµÄ¹¦ÄÜ¡£

3.1 Module

ͼÖаüº¬ÁËÖ÷ÒªµÄBeeHiveÆô¶¯¹ý³ÌÒÔ¼°ModuleµÄʱÐòÂß¼­¡£ModuleµÄʼþ·Ö·¢Ô´ÓÚBHAppDelegateÖеÄtriggerEvent£¬¶ÔÓ¦GlobalContextÒ²Ôڻص÷ÖÐÌṩ¸øÒµÎñ·½¡£

BHAppDelegateÖгýÁ˻ص÷ϵͳµÄʼþ£¬»¹½«AppÉúÃüÖÜÆÚ½øÐÐÀ©Õ¹£¬Ôö¼ÓModuleSetup£¬ModuleInit£¬ModuleSplash£¬´ËÍ⿪·¢ÈËÔ±»¹¿ÉÒÔ×ÔÐÐÀ©Õ¹¡£

À©Õ¹ÖÜÆÚ¹ý³ÌÖУ¬Í¬Ê±¼ÓÈëModule·ÖÎöÁ¿»¯¹¦ÄÜ£¬Ã¿¸öÄ£¿éInitµÄºÄʱ¾ù¿É¼ÆËã³öÀ´£¬ÎªÐÔÄÜÓÅ»¯×öµ½Êý¾ÝÉϵÄÖ§³Ö¡£Ò»¸öAppµÄÒµÎñÔö¶à¹ý³ÌÖУ¬Í¨¹ý·ÖÎö¶¨Î»ModuleµÄInitºÄʱ¿ÉÒÔÈ·¶¨ÐèÒªÓÅ»¯µÄModule¡£

Module×ñÑ­BHModuleProtocolºó£¬Äܹ»²¶»ñApp״̬µÄ»Øµ÷£¬²¢ÓµÓÐAppÉúÃüÖÜÆÚÄÚµÄÈ«¾ÖÉÏÏÂÎÄ£¬Í¨¹ýcontext¿É»ñÈ¡ÅäÖòÎÊý£¬Ä£¿é×ÊÔ´ÒÔ¼°·þÎñ×ÊÔ´¡£

ÒÔBeeHive×÷Ϊµ×²ã¿ò¼ÜµÄApp£¬³ýÁ˽âñî´øÀ´µÄ±ãÀû£¬¿ª·¢ÈËÔ±ÔÚ¿ª·¢ÐÂApp¹ý³ÌÖÐÉæ¼°Ïàͬ¹¦ÄܵÄModule£¬ÎÞÐèÖØ¸´ÔìÂÖ×Ó£¬Ö±½ÓÒÆÖ²Module£¬¿ª·¢Ò»¸öAppÈçͬƴװ»ýľ£¬ÄÜ×éºÏÐèÒªµÄ¹¦ÄÜÒµÎñ¡£

3.2 Service

ÉÏÊöͼÖаüº¬ServiceÏà¹ØµÄÂß¼­£¬ÒµÎñA¿ÉÒÔͨ¹ýcreateServiceÖ±½Óµ÷Ó÷þÎñ£¬Module¸ù¾ÝÐèÇó¶¯Ì¬×¢²áij¸ö·þÎñ¡£ServiceµÄµ÷ÓúÍʵÏÖ£¬ºËÐÄÊÇBHServiceManager¡£¿ÉÒÔµ¥¶À´´½¨Services interface Pod£¬Í³Ò»·ÅÖÃÒªÓõÄServices£¬ÕâÑùµÄÒµÎñÒÀÀµ¾Í´ÓÍø×´Ê½±ä³ÉÖÐÐÄʽ£¬ÒµÎñ·½Ö»ÐèÒÀÀµServicesÒ»¸ö¡£

Service¿ÉÒÔ¶¯Ì¬¹²Ïí¶ÔÏ󣬰´Ðè¼ÓÔØ£¬BeeHiveÂß¼­Êǽ«»ù´¡·þÎñ×¢²áÔÚplistÖУ¬ÒµÎñÐÍ·þÎñÔÊÐíService²»ÏÈ×¢²á£¬Ö±µ½ÒµÎñÐèҪʱ²Å±»¶¯Ì¬×¢²á¡£

ServiceÖ§³ÖÁ½ÖÖ²»Í¬Ä£Ê½£º

1.µ¥Àý£º ¶ÔÓÚÈ«¾ÖͳһÇÒÎÞ״̬·þÎñ£¬½¨ÒéʹÓÃÕâÖÖ´´½¨ÐÎʽ£¬ÕâÑùÓÐÀûÓÚServiceµÄͳһ¹ÜÀíÒÔ¼°¼õÉÙ²»±ØÒªÄÚ´æÏûºÄ¡£

2.¶àʵÀý£º ÿ´Îµ÷Ó÷þÎñ¶¼ÖØÐ´´½¨ÐµķþÎñ£¬¶ÔÓÚÉæ¼°×´Ì¬ÒÔ¼°×´Ì¬±ä»¯µÄ·þÎñ×îÊʺÏʹÓöàʵÀý·½Ê½¡£

ÔÚ¶àÏ̻߳·¾³ÏÂÓöµ½ÁËService¶ÁдÎÊÌ⣬ÒÑͨ¹ýLockÀ´ÒѱÜÃâArray crashÎÊÌâ¡£

²»¹ýService»¹´æÔÚÈçÏÂÎÊÌ⣺

1.ServiceÒÀÀµ¹ØÏµ,µ¼ÖµײãÒÀÀµµÄServiceûÓб»´´½¨Ê±¾Í±»µ÷Óá£

2. ¹æ»®Service¡¢Module´´½¨Ë³Ðò£¬Ê¹µÃApp´ïµ½Ã뿪£¬ÓÅ»¯ÐÔÄÜÌåÑé¡£

ǰÕßÒÀÀµÎÊÌâ¼Æ»®Í¨¹ýµ÷¶È»úÖÆÀ´½â¾ö£¬ºóÕß»¹ÐèÒª½«AppDelegate¸ü¶àÒµÎñ°þÀëÒÔ¼°Êµ¼ù²Å¿É£¬ÕâÀﲻϸ̸¡£

4. BeeHive±³ºóµÄ˼¿¼

BeeHiveÒÔÒ»¸ö·Ö·¢App״̬ºÍͳһService InterfaceµÄ¼Ü¹¹ÐÎʽ½â¾öÁ˶àÍŶӶ࿪·¢ÈËԱЭͬ¿ª·¢ÖеÄñîºÏÎÊÌâ¡£¶ÔÓÚʵ¼ù¹ý³ÌÖеĿª·¢³É±¾£¬ÊÊÓ¦ÐèÒªÒ»¶¨¹ý³Ì£¬µ«Âß¼­Àí˳ºó£¬Ó¦ÓÃÆðÀ´²»³ÉÎÊÌâ¡£¾ÍÊÕÒæ¶øÑÔ£¬BeeHive¸üÊʺϴóÐ͵ĶàÈËÏîÄ¿ÒÔ¼°¿ìËÙÒÆÖ²µÄÏîÄ¿£¬Ð¡ÏîĿʹÓÃÆðÀ´½Ï¸´ÔÓ£¬ÓÐЩµÃ²»³¥Ê§¡£

ÖÁ´Ë£¬BeeHiveÖÐÖ÷ÌåÒÑ·ÖÎöµ½Î»£¬BeeHiveÊÇÒ»¸öÕýÔڳɳ¤µÄiOS¿ò¼Ü£¬Ä¿Ç°StarÒÑ1500+£¬Ï£Íû´ó¼Ò¿ÉÒÔ¼¯Ë¼¹ãÒæ£¬¶àÌáissue¡¢Pull Request£¬ÕâÑùBeeHiveÒ²ÄÜÈøü¶àÈËÊÜÓá£ÏëÏóÒ»ÏÂÏñÃÛ·äÒ»ÑùÓÅÑŵشÿ¸ö·äÎÑÄ£¿é¡£

5. ²Î¿¼

1.SpringÏà¹Ø×ÊÁÏ

2.Apache DSO²Î¿¼Á´½Ó

3.Cocoapods×ÊÁÏ

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