±³¾°
ÎÒÃÇÍøÒ×ǰ¶Ë¼¼Êõ²¿ - ÒÆ¶¯¼¼Êõ×é×÷Ϊ¹«Ë¾µÄÒÆ¶¯¶Ë»ù´¡¼¼Êõ²¿ÃÅ£¬Ö÷ҪΪÆäËû²¿ÃÅÌṩ½â¾ö·½°¸¡¢¼¼ÊõÖ§³ÖºÍ²úÆ··õ»¯¡£ÔÚ¼¸ÄêµÄ»ýÀÛ¹ý³ÌÖУ¬ÎÒÃÇÓµÓÐһЩ×Ô¼ºµÄ¿ò¼ÜºÍ
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»Ö§³ÖµÄ£¬Õâ¸ö¿ÉÒÔ´ÓÇ°ÃæµÄÔ´Âë·ÖÎöÖп´³öÀ´¡£ |