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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÍøÒ× Android¹¤³ÌÄ£°å»¯Êµ¼ù
 
×÷ÕߣºÕÅÔÆÁú  À´Ô´£ºInfoQ ·¢²¼ÓÚ£º 2016-12-2
  2298  次浏览      27
 

±³¾°

ÎÒÃÇÍøÒ×ǰ¶Ë¼¼Êõ²¿ - ÒÆ¶¯¼¼Êõ×é×÷Ϊ¹«Ë¾µÄÒÆ¶¯¶Ë»ù´¡¼¼Êõ²¿ÃÅ£¬Ö÷ҪΪÆäËû²¿ÃÅÌṩ½â¾ö·½°¸¡¢¼¼ÊõÖ§³ÖºÍ²úÆ··õ»¯¡£ÔÚ¼¸ÄêµÄ»ýÀÛ¹ý³ÌÖУ¬ÎÒÃÇÓµÓÐһЩ×Ô¼ºµÄ¿ò¼ÜºÍ SDK£¬ÈçÇáÓ¦Óÿò¼Ü¡¢ÈȸüРSDK¡¢ÍøÂçÇëÇó¿â¡¢±¾µØ´æ´¢¿â¡¢Ò³Ãæ¹ÜÀíµÈ£¬·þÎñ¹ýÍøÒ×ÐÂÎÅ¡¢ÔÆÒôÀÖ¡¢¿¼À­¡¢Ò×ÐŵÈÒÚ¼¶²úÆ·£¬ÏȺó·õ»¯¹ýÇà¹ûÉãÏñÍ·¡¢¶þ´ÎÔªGacha¡¢ÑÏÑ¡µÈÖØÒª²úÆ·¡£

ÔÚ¶àÄêµÄAndroid¿ª·¢ÖУ¬¶ÔÓÚ Android ¶Ë²úÆ·¿ª·¢£¬ÎÒÃÇÓÐÈçϼ¸µãÌå»á£º

²úÆ··õ»¯ÅÅÆÚ½ôÕÅ

²úÆ·¾­ÀíÒ»°ã¹ØÐĵÄÊǾßÌåµÄÒµÎñÂß¼­£¬¶øÇ°ÆÚ»ù´¡Ä£¿éµÄ´î½¨£¬Èç¸÷Ä£¿éÈçºÎ×éÖ¯£¬Ê¹ÓôúÂë½á¹¹ÈçºÎÑ¡Ôñ£¬Í¼Æ¬¡¢ÍøÂç¡¢±¾µØ´æ´¢µÈÑ¡ÓÃÄĸö sdk µÈ£¬Ò»°ã²»»áÓÐרÃÅÅÅÆÚ¡£

»ù´¡Ä£¿éµÄÐèÇó¾ßÓÐÏàËÆÐÔ

ÄÚÈÝÐͲúÆ·£¬Æä´î½¨µÄ»ù´¡Ä£¿é»ù±¾É϶¼»á°üº¬Í¼Æ¬ÏÔʾ¡¢ÍøÂçÇëÇó¡¢±¾µØ´æ´¢¡¢Í¨Ðŵȡ£

»ù´¡Ä£¿éµÄÑ¡Ðͺ͹¤¾ßÀà¾ßÓпÉÖØÓÃÐÔ

ÍøÉÏÏà¹ØµÄµÚÈý·½¿âÓкܶ࣬µ±È»Ò»°ãµÄ¹«Ë¾Ò²ÊÇ»áÓÐ×Ô¼º¿ª·¢»òÕßά»¤µÄ¸÷¸ö»ù´¡ SDK¡£ºÜ¶àʱºò£¬SDK Ñ¡ÐÍ»á¸üÆ«ÏòÓÚ×Ô¼º¹«Ë¾¿ª·¢Î¬»¤µÄ SDK£¬»òÕßÑ¡Ôñ×Ô¼º×îÊìϤ£¬»ò×îÖ÷Á÷¡¢×î¿É¿¿µÄ SDK¡£Òò´Ëµ±¿ª·¢¶à¸öÏàͬÀàÐͲúƷʱ£¬ÕâÀïµÄ¼¼ÊõÑ¡ÐÍÊÇ¿ÉÖØÓõġ£

ÍøÂçÇëÇóµÄ´úÂë¾ßÓлúеÐÔ

¿Í»§¶Ë¿ª·¢ÐèÒª¸ù¾ÝÍøÂç½Ó¿ÚЭÒ飬±àдÏà¹ØµÄ GET¡¢POST µÈÇëÇó´úÂëºÍ¶ÔÓ¦µÄ JavaBean£¬Õⲿ·ÖµÄ´úÂë±àдÆäʵÊǷdz£»úеµÄ¡£

ÍøÒ×¹¤³ÌÄ£°åÊÇʲô£¿

¶ÔÓÚ¸÷¸ö»ù´¡Ä£¿é£¬ÎÒÃÇÍŶӷâ×°ÁË×Ô¼ºµÄ SDK£¬ÈçÍøÂç¿â¡¢±¾µØ´æ´¢¿â¡¢Ò³Ãæ¹ÜÀí¿â¡¢Í¼Æ¬¿âµÈ¡£Ê¹ÓÃÎÒÃǵŤ³ÌÄ£°åÉú³ÉµÄ³õʼ¹¤³Ì£¬¾ÍÒѾ­°üº¬ÁËÎÒÃÇÌṩµÄ»ù´¡Ä£¿é£¬²úÆ·ÍŶӵĿª·¢²»ÐèÒªÔÙ»¨·ÑÖØ¸´µÄʱ¼ä×ö¼¼Êõµ÷ÑС¢Ñ¡ÐÍ¡¢SDK·â×°¼¯³ÉµÈ¹¤×÷£¬¶øÖ»ÐèÒª¹ØÐÄ×Ô¼ºµÄÒµÎñÂß¼­±àд¡£ÎÒÃÇÆÚÍû²úÆ·ÍŶÓÖ»Ðè 1 ·ÖÖÓ¾ÍÄܵõ½×Ô¼ºµÄ³õʼ¹¤³Ì£¬²¢ÄÜÂíÉÏͶÈëÒµÎñÂß¼­¿ª·¢£¬¼ÈÄÜËõ¶Ì¿ª·¢ÖÜÆÚ£¬Ò²Äܱ£Ö¤¹¤³Ì´úÂëÖÊÁ¿¡£

´ËÍ⣬ÎÒÃÇÒ²ÌṩÁË Android Studio ²å¼þ (NEIPlugin)£¬¼¯³É²å¼þºó£¬¾ÍÄÜÔÚ Android Studio ÖÐͨ¹ý²Ëµ¥µã»÷×Ô¶¯ÏÂÔØ¼¯³ÉÎÒÃǵŤ³ÌÄ£°å£¬Ò²ÄÜ×Ô¶¯Éú³ÉÍøÂçÇëÇóÏà¹ØµÄ´úÂë¡£

´úÂëÉú³É½á¹ûʾÀý

Android Ä£°å¹¤³ÌʵÏÖ

×î³õÎÒÃÇʹÓÃÖն˽ű¾ÃüÁîµÄ·½Ê½£¬Í¨¹ýÎļþ¿½±´ºÍÎı¾²éÕÒÌæ»»£¨Ö÷ÒªÊÇÌæ»»°üÃûµÈ£©µÄ·½Ê½ÊµÏÖ¡£µ«ÖÕ¹é¶Ô Android ¿ª·¢ÈËÔ±²»Ì«ÓѺ㬱Ͼ¹´ó¼Ò¸üϰ¹ßʹÓà Android Studio Éú³É¹¤³Ì¡£ËùÐÒ£¬Ç¿´óµÄ Android Studio ÒѾ­ÌṩÁ˽ÏÎªÈ«ÃæµÄÄ£°å¹¦ÄÜ£¬ÕâÀï´ó¸Å¿ÉÒÔ·ÖΪÒÔϼ¸Àࣺ

¹¤³ÌÄ£°å (±¾ÎÄÄÚÈÝ)

ÎļþÄ£°å

×¢ÊÍÄ£°å

±àÂëÄ£°å(Living Template)

Android ¹¤³ÌÄ£°å»ù´¡ÖªÊ¶

¹¤³ÌÄ£°åʵÀý½éÉÜ

¶ÔÓÚ Android Studio£¬Ä£°åλÖãº

Windows µÄ·¾¶ÔÚ `${android studio °²×°Â·¾¶}/plugins/android/lib/templates/`

MacOS µÄ·¾¶ÔÚ `${Android Studio.app ´æ·Å·¾¶}/Contents/plugins/android/lib/templates/`

ÓйØÄ£°åµÄÎļþ¼Ð£º

activities£º¹¤³ÌÄ£°åÏà¹Ø£¬Èç EmptyActivity Îļþ¼ÐÓÃÓÚ´´½¨Ò»¸ö¿ÕÒ³ÃæµÄÄ£°å£¬GoogleMapsActivity Îļþ¼Ð¶ÔÓ¦´´½¨Ò»¸öµØÍ¼Ò³ÃæµÄÄ£°åµÈ

gradle£º·ÅÖÃÁË gradle Ä£°å£¬ÓÃÓÚÔÚн¨¹¤³ÌµÄ¸ùĿ¼ÏÂÉú³É gradle Îļþ¼Ð£¬Ö§³ÖÓû§²»Óð²×° gradle ¾ÍÄÜʹÓà gradlew ÃüÁî

gradle-project£º¹¤³ÌÄ£°åÏà¹Ø£¬ÓÃÓÚ¹¹½¨ module£¬Android Project£¬Java Library µÈ

other£º¹¹½¨ÎļþÄ£°åµÈ

ÕâÀïÎÒÃǹØÐĵÄÊÇ activities Îļþ¼ÐÀïÃæµÄÄÚÈÝ

Ê×ÏȲ鿴Ï EmtpyActivity (¿Õ°×Ò³ÃæÄ£°å) ÀïÃæµÄÄÚÈÝ

globals.xml.ftl: È«¾Ö±äÁ¿Îļþ£¬±£´æÒ»Ð©È«¾Ö±äÁ¿£¬µ±ÖпÉÒÔÒýÓÃÆäËûÎļþµÄÈ«¾Ö±äÁ¿

recipe.xml.ftl: ÅäÖÃÒªÒýÓõÄÄ£°å·¾¶ÒÔ¼°ÎļþµÄÉú³É¹æÔò

template.xml: Ä£°åµÄÅäÖÃÐÅÏ¢£¬°üÀ¨Ä£°åµÄÏÔʾͼ±ê£¬½çÃæµÄ±íÏÖ£¬È«¾Ö±äÁ¿ÎļþºÍÖ´ÐÐÎļþµÄÖ¸¶¨µÈ

Android Studio ʹÓõÄÊÇ FreeMarker Ä£°åÒýÇæ£¬ËùÒÔÎļþºó׺¶¼ÊÇ .ftl

³£ÓñêǩʹÓÃ

${}: FreeMarker µÄÓï·¨£¬Èç ${packageName}, ${superClass} ÊÇ globals.xml.ftl È«¾Ö±äÁ¿Îļþ»òtemplate.xml.ftl Öж¨Òå±äÁ¿ÒýÓÃ

<#if></#if>: FreeMarker µÄÓï·¨£¬Ìõ¼þÅжÏÓï¾ä

<#include>: FreeMarker µÄÓï·¨£¬°üº¬Óï¾ä

copy: ½«Îļþ»òÕßÎļþ¼Ð´Ó from ±êÇ©¿½±´µ½ to ±êǩָ¶¨µÄ·¾¶

instantiate: ½«Îļþ»òÕßÎļþ¼Ð£¬Ö´ÐÐ FreeMarker Óï·¨£¬´Ó from ±êǩʵÀý»¯µ½ to ±êǩָ¶¨µÄ·¾¶

merge: ºÏ²¢ from ºÍ to ±êÇ©·Ö±ðÖ¸¶¨µÄÎļþ

open: ÔÚ¹¤³Ì´ò¿ªºó£¬Ä¬ÈÏ´ò¿ªÖ¸¶¨µÄÎļþ

ʵÀý£ºÊ¹Óÿհ×Ò³ÃæÄ£°åÉú³É¹¤³Ì²¢´ò¿ªºó£¬¿ÉÒÔ¿´µ½Ä¬ÈÏ´ò¿ªÁË MainActivity.java ºÍ activity_main.xml Îļþ

¹¤³ÌÄ£°å´´½¨

н¨ HTTemplate Îļþ¼ÐÄÚÈÝÈçÏ£º

template.xml

Ö¸¶¨Ä£°åÃû¡¢ÃèÊö¡¢×îµÍÖ§³Ö sdk °æ±¾¡¢Àà±ðµÈ£¬ÊäÈë½çÃæÒªÇóÖ¸¶¨°üÃûºÍ Application ÀàÃû

globals.xml.ftl

ÒýÓù«¹²ÎļþÄÚÈÝ

recipe.xml.ftl

merge AndroidManifest.xml Îļþ

copy »òÕß merge ×ÊÔ´Îļþ

copy »ò instantiate java ´úÂë

merge build.gradle Îļþ

merge settings.gradle Îļþ

copy lib Îļþ¼ÐÀïÃæµÄÈ«²¿ÄÚÈÝ

copy module ¹¤³Ì

copy proguard-rules.pro Îļþ

root Îļþ¼Ð

·ÅÖÃÏà¹ØÄ£°åÔ´Îļþ£¬ÆäÖн«Ô´¹¤³ÌÖÐÒÀÀµÓÚÅäÖõĴúÂ룬°´ÕÕ FreeMarker Óï·¨½øÐÐÌæ»»

Ìí¼Ó¹¤³ÌÄ£°åͼ±ê£¬²¢ÔÚ template.xml ÖÐÌí¼ÓÒýÓÃ

settings.gradle ºÏ²¢

²é¿´ RecipeMergeUtils.mergeGradleSettingsFile ·½·¨£¬»ù±¾Âß¼­ÈçÏ£º

¶ÁȡĿ±êÎļþµÄÿһÐÐÄÚÈÝ£¬²¢ÅжÏÿÐÐÄÚÈݵĿªÍ·ÊÇ·ñÊÇ include ¿ªÍ·

ÊÇ£ºÔÚ include ºóÃæ²åÈëÄÚÈÝ

·ñ£ºÅ׳öÒì³£

·µ»ØºÏ²¢µÄÄÚÈÝ

build.gradle ºÏ²¢

²é¿´ GradleFileMerger.mergeGradleFiles ·½·¨£¬ÀïÃæ»áµ÷Óà mergePsi ·½·¨£¬Æä»ù±¾Âß¼­ÈçÏ£º

¶ÁÈ¡Îļþ source ºÍ dest ÎļþµÄÄÚÈÝ£¬²¢×ª»¯µÃµ½ GroovyFile ÀàÐͶÔÏó

Ö´ÐÐ mergePsi ·½·¨

ÕâÀï mergePsi Ö´Ðкϲ¢µÄÂß¼­ÊÇ

С½áºÍºóÐø¹¤×÷

µ½´Ë£¬»ù±¾ÉÏÍê³ÉÁËÎÒÃÇÔ­ÏÈÆÚÍûʵÏֵŤ³ÌÄ£°åºÍÍøÂçÇëÇó´úÂë×Ô¶¯Éú³ÉµÄ¹¤×÷£º

Ìṩ ht-template Ö§³ÖÉú³ÉÎÒÃǵÄÄ£°å¹¤³Ì

Ìṩ Android Studio ²å¼þ (NEIPlugin)

Ö§³Ö ht-template µÄÏÂÔØ°²×°

nei-toolkit ºÍ Node.js µÄÏÂÔØ°²×°

nei-toolkit ºÍ Node.js µÄʹÓã¬Éú³ÉÍøÂçÇëÇó´úÂë

ÕâÀﻹÊÇÓÐһЩÒòΪ Android ¹¤³ÌÄ£°å×ÔÉíµÄÏÞÖÆ¶øÎÞ·¨Íê³ÉµÄÄÚÈݵ㣺

ÎÞ·¨ÔÚ settings.gradle Ö¸¶¨ module ·¾¶

ÎÞ·¨ºÏ²¢ proguard-rules.pro Îļþ£¬ÔÝʱÉú³É proguard-rules.pro.template Îļþ

ÓÉÓÚ build.gradle ¶Ô apply ÃüÁîºÏ²¢»á³ö´íºÍÎÞ·¨ºÏ²¢ dependencies ÖÐµÄ apt ÃüÁËùÒÔÎÞ·¨ÔÚ build.gradle Öм¯³É ht-universalrouter

ÔٴΣ¬³ýÁËÍøÂçÇëÇó´úÂë±àдÊÇ»úеÐԵ쬯äËûµÄ»ùÓÚÎÒÃǵŤ³ÌÄ£°åÉú³ÉµÄ³õʼ¹¤³Ì£¬Ò²´æÔÚÒ»¶¨µÄ´úÂë±àд»úеÐÔ£º³õÊ¼Ò³Ãæ´úÂëÉú³É¡¢RecycleView Öеĸ÷¸ö ViewHolder Àà¡¢±¾µØÊý¾Ý¶ÁÈ¡±£´æµÈ£¬¶øÕâЩ¹¤×÷½«»áÊÇÎÒÃǵĺóÐø¹¤×÷¡£

±êÌâ

Q£º±¾´ÎµÄ·ÖÏíÊDz»ÊÇÐèÒªÓÐideaµÄ²å¼þ»¯ÖªÊ¶±³¾°£¿

A£ºidea ²å¼þ¿ª·¢µÄÄÚÈÝ£¬¿ÉÒԲ鿴¹Ù·½Îĵµ http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/setting_up_environment.html£¬ÀïÃæÓбȽÏÏêϸµÄ½éÉÜ¡£

Èç¹ûÐèÒª×Ô¼ºÑ§Ï°²å¼þ¿ª·¢µÄ»°£¬¾ÍÐèҪѧϰ¹Ù·½Îĵµ£¬²»¹ýÎҵķÖÏíÖв¢Ã»Óн²Êö²å¼þ¿ª·¢ÖеÄһЩϸ½Ú£¬Ó¦¸Ã²»»áÓÐÓ°Ïì¡£

Õâ´Î´ó¼ÒÈç¹û¾õµÃÌýÆðÀ´ÓеãÄÑ£¬ÎÒÏëÓ¦¸ÃÊÇÕâ´Î·ÖÏíÐèÒªÓй¤³ÌÄ£°å¿ª·¢µÄ±³¾°£¬²»È»È·Êµ»áÓеãÄÑ¡£

ÍÆ¼öÏÂÕâÆªÎÄÕ£¬¿ÉÒÔÈëÃÅϹ¤³ÌÄ£°å¿ª·¢µÄÄÚÈÝ£º

Mobile App Development: Tutorial How To Create Custom Android Code Templates

Q£ºÇëÎÊneitoolkitÊÇ×öʲôµÄ?

A£ºneitoolkit ÔÚÒÆ¶¯¶Ë£¬ÊÇÒ»¸öÅäºÏÎÒÃÇµÄ NEI ½Ó¿Ú¹ÜÀíÆ½Ì¨£¨http://nei.hz.netease.com/£©£¬ÓÃÀ´Éú³ÉÍøÂçÇëÇóÏà¹Ø´úÂëµÄÒ»¸ö¹¤¾ß£¬µ±È»¿ÉÒԲ鿴 README ½éÉÜ

Ö§³Ö¸ù¾Ý NEI ƽ̨ ¶¨ÖÆÉú³ÉÏîÄ¿³õʼ½á¹¹¼°´úÂë

Ö§³Ö NEJ ·¢²¼¹¤¾ß ÅäÖÃÎļþ×Ô¶¯Éú³É

Ö§³Ö Fiddler ºÍ Charles ¹¤¾ß´úÀí±¾µØÄ£ÄâÊý¾Ý£¬½Ó¿ÚÅäÖÃÎļþµ¼³ö

Ö§³Ö×Ô¶¯Éú³ÉÒÆ¶¯¶ËÊý¾ÝÄ£ÐÍ¡¢ÇëÇóÀà´úÂë

Ö§³Ö×Ô¶¯µ¼³öÄ£ÄâÊý¾Ý

¼¯³ÉÁ˱¾µØÄ£ÄâÈÝÆ÷

Q£ºÇëÎÊÉÏÎĵÄruntimeÔõôÀí½âѽ£¿

A£ºÕâÀïµÄ Runtime£¬Æäʵ¾ÍÊÇÖ´ÐÐÁË java ÖÐµÄ Runtime.getRuntime().exec(command); ·½·¨¡£

Õâ¸ö·½·¨µÄ×÷ÓþÍÊÇÖ´ÐÐ sh (windowsÖÐcmd) ÖеĽű¾ÃüÁî¡£

Q£ºÈç¹ûÄ£°æÖÐÓÐÐèÒªapt´¦ÀíµÄ´úÂ룬ģ°æÊDz»Ö§³ÖµÄÊÇô£¿

A£º¶÷£¬¹¤³ÌÄ£°åÊDz»Ö§³ÖµÄ£¬dependencies ÖÐ ·Ç compile ÃüÁîÈ«²¿¶¼ÊDz»Ö§³ÖµÄ£¬Õâ¸ö¿ÉÒÔ´ÓÇ°ÃæµÄÔ´Âë·ÖÎöÖп´³öÀ´¡£

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