如题所述
ããä¸ãNDK产ççèæ¯
ããAndroidå¹³å°ä»è¯çèµ·ï¼å°±å·²ç»æ¯æCãC++å¼åãä¼æå¨ç¥ï¼AndroidçSDKåºäºJavaå®ç°ï¼è¿æå³çåºäºAndroid SDKè¿è¡å¼åç第ä¸æ¹åºç¨é½å¿ 须使ç¨Javaè¯è¨ãä½è¿å¹¶ä¸çåäºâ第ä¸æ¹åºç¨åªè½ä½¿ç¨Javaâãå¨Android SDKé¦æ¬¡åå¸æ¶ï¼Googleå°±å®£ç§°å ¶èææºDalvikæ¯æJNIç¼ç¨æ¹å¼ï¼ä¹å°±æ¯ç¬¬ä¸æ¹åºç¨å®å ¨å¯ä»¥éè¿JNIè°ç¨èªå·±çCå¨æåºï¼å³å¨Androidå¹³å°ä¸ï¼âJava+Câçç¼ç¨æ¹å¼æ¯ä¸ç´é½å¯ä»¥å®ç°çã
ããä¸è¿ï¼Googleä¹è¡¨ç¤ºï¼ä½¿ç¨åçSDKç¼ç¨ç¸æ¯Dalvikèææºä¹æä¸äºå£å¿ï¼Android SDKææ¡£éï¼æ¾ä¸å°ä»»ä½JNIæ¹é¢ç帮å©ãå³ä½¿ç¬¬ä¸æ¹åºç¨å¼åè 使ç¨JNIå®æäºèªå·±çCå¨æé¾æ¥åºï¼soï¼å¼åï¼ä½æ¯soå¦ä½ååºç¨ç¨åºä¸èµ·æå æapk并åå¸ï¼è¿éé¢ä¹åå¨ææ¯éç¢ãæ¯å¦ç¨åºæ´å å¤æï¼å ¼å®¹æ§é¾ä»¥ä¿éï¼æ æ³è®¿é®Framework
APIï¼Debugé¾åº¦æ´å¤§çãå¼åè éè¦èªè¡æé 使ç¨ã
ããäºæ¯NDKå°±åºè¿èçäºãNDKå ¨ç§°æ¯Native Development Kitã
ããNDKçåå¸ï¼ä½¿âJava+Câçå¼åæ¹å¼ç»äºè½¬æ£ï¼æ为å®æ¹æ¯æçå¼åæ¹å¼ãNDKå°æ¯Androidå¹³å°æ¯æCå¼åçå¼ç«¯ã
ãã
ããäºã为ä»ä¹ä½¿ç¨NDK
ãã1.代ç çä¿æ¤ãç±äºapkçjavaå±ä»£ç å¾å®¹æ被åç¼è¯ï¼èC/C++åºåæ±é¾åº¦è¾å¤§ã
ãã2.å¯ä»¥æ¹ä¾¿å°ä½¿ç¨ç°åçå¼æºåºã大é¨åç°åçå¼æºåºé½æ¯ç¨C/C++代ç ç¼åçã
ãã3.æé«ç¨åºçæ§è¡æçãå°è¦æ±é«æ§è½çåºç¨é»è¾ä½¿ç¨Cå¼åï¼ä»èæé«åºç¨ç¨åºçæ§è¡æçã
ãã4.便äºç§»æ¤ãç¨C/C++åå¾åºå¯ä»¥æ¹ä¾¿å¨å ¶ä»çåµå ¥å¼å¹³å°ä¸å次使ç¨ã
ãã
ããä¸ãNDKç®ä»
ãã1.NDKæ¯ä¸ç³»åå·¥å ·çéå
ããNDKæä¾äºä¸ç³»åçå·¥å ·ï¼å¸®å©å¼åè å¿«éå¼åCï¼æC++ï¼çå¨æåºï¼å¹¶è½èªå¨å°soåjavaåºç¨ä¸èµ·æå æapkãè¿äºå·¥å ·å¯¹å¼åè ç帮å©æ¯å·¨å¤§çã
ããNDKéæäºäº¤åç¼è¯å¨ï¼å¹¶æä¾äºç¸åºçmkæ件é离CPUãå¹³å°ãABIçå·®å¼ï¼å¼å人ååªéè¦ç®åä¿®æ¹mkæ件ï¼æåºâåªäºæ件éè¦ç¼è¯âãâç¼è¯ç¹æ§è¦æ±âçï¼ï¼å°±å¯ä»¥å建åºsoã
ããNDKå¯ä»¥èªå¨å°å°soåJavaåºç¨ä¸èµ·æå ï¼æ大å°åè½»äºå¼å人åçæå å·¥ä½ã
ãã2.NDKæä¾äºä¸ä»½ç¨³å®ãåè½æéçAPI头æ件声æ
ããGoogleæ确声æ该APIæ¯ç¨³å®çï¼å¨åç»ææçæ¬ä¸é½ç¨³å®æ¯æå½ååå¸çAPIãä»è¯¥çæ¬çNDKä¸çåºï¼è¿äºAPIæ¯æçåè½é常æéï¼å å«æï¼Cæ ååºï¼libcï¼ãæ åæ°å¦åºï¼libmï¼ãå缩åºï¼libzï¼ãLogåºï¼liblogï¼ã
ãã
ããåãNDKå¼åç¯å¢çæ建
ãã1.ä¸è½½å®è£ Android NDK
ããå°åï¼http://developer.android.com/sdk/ndk/index.html
ãã2.ä¸è½½å®è£ cygwin
ããç±äºNDKç¼è¯ä»£ç æ¶å¿ é¡»è¦ç¨å°makeågccï¼æä»¥ä½ å¿ é¡»å æ建ä¸ä¸ªlinuxç¯å¢ï¼ cygwinæ¯ä¸ä¸ªå¨windowså¹³å°ä¸è¿è¡çunix模æç¯å¢,å®å¯¹äºå¦ä¹ unix/linuxæä½ç¯å¢ï¼æè ä»unixå°windowsçåºç¨ç¨åºç§»æ¤ï¼é常æç¨ãéè¿å®ï¼ä½ å°±å¯ä»¥å¨ä¸å®è£ linuxçæ åµä¸ä½¿ç¨NDKæ¥ç¼è¯CãC++代ç äºãä¸è½½å°åï¼http://www.cygwin.com
ãã1ï¼ç¶ååå»è¿è¡å§ï¼è¿è¡åä½ å°çå°å®è£ å导çé¢ã
ãã2ï¼ç¹å»ä¸ä¸æ¥,æ¤æ¶è®©ä½ éæ©å®è£ æ¹å¼ï¼
ããInstall from
Internetï¼ç´æ¥ä»Internetä¸ä¸è½½å¹¶ç«å³å®è£ ï¼å®è£ å®æåï¼ä¸è½½å¥½çå®è£ æ件并ä¸ä¼è¢«å é¤ï¼èæ¯ä»ç¶è¢«ä¿çï¼ä»¥ä¾¿ä¸æ¬¡åå®è£ ï¼ã
ããDownload Without Installingï¼åªæ¯å°å®è£ æ件ä¸è½½å°æ¬å°ï¼ä½ææ¶ä¸å®è£ ã
ããInstall from Local Directoryï¼ä¸ä¸è½½å®è£ æ件ï¼ç´æ¥ä»æ¬å°æ个å«æå®è£ æ件çç®å½è¿è¡å®è£ ã
ãã3ï¼éæ©ç¬¬ä¸é¡¹ï¼ç¶åç¹å»ä¸ä¸æ¥ã
ãã4ï¼éæ©è¦å®è£ çç®å½ï¼æ³¨æï¼æ好ä¸è¦æ¾å°æä¸æåç©ºæ ¼çç®å½éï¼ä¼¼ä¹ä¼é æå®è£ åºé®é¢ï¼å ¶å®é项ä¸ç¨åï¼ä¹åç¹ä¸ä¸æ¥ï¼
ãã5ï¼ä¸ä¸æ¥æ¯éæ©å®è£ cygwinçç®å½ï¼è¿ä¸ªæ¯éæ©ä½ ä¸è½½çå®è£ å æå¨çç®å½ï¼é»è®¤æ¯ä½ è¿è¡setup.exeçç®å½ï¼ç´æ¥ç¹ä¸ä¸æ¥å°±å¯ä»¥ï¼
ãã6ï¼æ¤æ¶ä½ å ±æä¸ç§è¿æ¥æ¹å¼éæ©ï¼
ããDirect Connectionï¼ç´æ¥è¿æ¥ã
ããUse IE5 Settingsï¼ä½¿ç¨IEçè¿æ¥åæ°è®¾ç½®è¿è¡è¿æ¥ã
ããUse HTTP/FTP Proxyï¼ä½¿ç¨HTTPæFTP代çæå¡å¨è¿è¡è¿æ¥ï¼éè¦è¾å ¥æå¡å¨å°åã端å£å·ï¼ã
ããç¨æ·å¯æ ¹æ®èªå·±çç½ç»è¿æ¥çå®æ æ åµè¿è¡éæ©ï¼ä¸è¬æ£å¸¸æ åµä¸ï¼åéæ©ç¬¬ä¸ç§ï¼ä¹å°±æ¯ç´æ¥è¿æ¥æ¹å¼ãç¶ååç¹å»âä¸ä¸æ¥âã
ãã7ï¼è¿æ¯éæ©è¦ä¸è½½çç«ç¹ï¼éæ©åç¹ä¸ä¸æ¥ã
ãã8ï¼æ¤æ¶ä¼ä¸è½½å è½½å®è£ å å表
ãã9ï¼Searchæ¯å¯ä»¥è¾å ¥ä½ è¦ä¸è½½çå çå称ï¼è½å¤å¿«éçéåºä½ è¦ä¸è½½çå ãé£å个åéæé®æ¯éæ©ä¸è¾¹æ çæ ·å¼ï¼é»è®¤å°±è¡ï¼ä¸ç¨å¨ãViewé»è®¤æ¯Categoryï¼å»ºè®®æ¹æfullæ¾ç¤ºå ¨é¨å åæ¥ï¼ççä¸äºå 被éèæãå·¦ä¸è§é£ä¸ªå¤éæ¡æ¯æ¯å¦éèè¿æå ï¼é»è®¤æé©ï¼ä¸ç¨ç®¡å®å°±è¡ï¼ä¸è¾¹å¼å§ä¸è½½æ们è¦å®è£ çå å§ï¼ä¸ºäºé¿å å ¨é¨ä¸è½½ï¼è¿éååºäºåé¢å¼åNDKç¨å¾ççå ï¼autoconf2.1ãautomake1.10ãbinutilsãgcc-coreãgcc-
g++ãgcc4-coreãgcc4-g++ãgdbãpcreãpcre-develãgawkãmakeå ±12个å
ãã10ï¼ç¶åå¼å§éæ©å®è£ è¿äºå å§ï¼ç¹skipï¼æå®åææ°åçæ¬æ ¼å¼ï¼è¦ç¡®ä¿Bin项åæåå·ï¼èSrc项æ¯æºç ï¼è¿ä¸ªå°±æ²¡å¿ è¦éäºã
ãã11ï¼ä¸é¢æµè¯ä¸ä¸cygwinæ¯ä¸æ¯å·²ç»å®è£ 好äºã
ããè¿è¡cygwinï¼å¨å¼¹åºçå½ä»¤è¡çªå£è¾å ¥ï¼cygcheck -c
cygwinå½ä»¤ï¼ä¼æå°åºå½åcygwinççæ¬åè¿è¡ç¶ æï¼å¦æstatusæ¯okçè¯ï¼åcygwinè¿è¡æ£å¸¸ã
ããç¶åä¾æ¬¡è¾å ¥gcc âversionï¼g++ --versionï¼make âversionï¼gdb
âversionè¿è¡æµè¯ï¼å¦æé½æå°åºçæ¬ä¿¡æ¯åä¸äºæè¿°ä¿¡æ¯ï¼åcygwinå®è£ æåï¼
ãã3.é ç½® NDK ç¯å¢åé
ããaï¼é¦å æ¾å° cygwin çå®è£ ç®å½ï¼æ¾å°ä¸ä¸ª home\< ä½ çç¨æ·å >\.bash_profile æ件ï¼æçæ¯ï¼E:\cygwin\home\Administrator\.bash_profile ï¼ ( 注æï¼æå®è£ çæ¶åæç home æ件夹ä¸é¢ä»ä¹é½æ²¡æï¼è§£å³
çåæ³ï¼é¦å æå¼ç¯å¢åéï¼æéé¢çç¨æ·åéä¸ç HOME åéå æï¼å¨ E:\cygwin\home æ件夹ä¸å»ºç«å为Administrator çæ件夹ï¼æ¯ç¨æ·åï¼ï¼ç¶åæ E:\cygwin\etc\skel\.bash_profile æ·è´å°è¯¥æä»¶å¤¹ä¸ ) ã
ããbï¼æå¼ bash_profile æ件ï¼æ·»å NDK=/cygdrive/< ä½ çç符 >/<android
ndk ç®å½ > ä¾å¦ï¼
ããNDK=/cygdrive/e/android-ndk-r5
ããexport NDK
ããNDK è¿ä¸ªååæ¯é便åçï¼ä¸ºäºæ¹é¢ä»¥å使ç¨æ¹ä¾¿ï¼é个ç®ççååï¼ç¶åä¿å
ããcï¼æå¼ cygwin ï¼è¾å ¥ cd
$NDK ï¼å¦æè¾åºä¸é¢é ç½®ç /cygdrive/e/android-ndk-r5 ä¿¡æ¯ï¼å表æç¯å¢åé设置æåäºã
ãã
ãã4.ç¨ NDK æ¥ç¼è¯ç¨åº
ããaï¼ç°å¨æ们ç¨å®è£ 好ç NDK æ¥ç¼è¯ä¸ä¸ªç®åçç¨åºå§ï¼æ们éæ© ndk èªå¸¦çä¾å hello-jni ï¼æçä½äºE:\android-ndk-r5\samples\hello-jni( æ ¹æ®ä½ å ·ä½çå®è£ ä½ç½®èå® ) ï¼
ããbï¼è¿è¡ cygwin ï¼è¾å ¥å½ä»¤ cd
/cygdrive/e/android-ndk-r5/samples/hello-jni ï¼è¿å ¥å° E:\android-ndk-r5\samples\hello-jni ç®å½ã
ããcï¼è¾å ¥ $NDK/ndk-build ï¼æ§è¡æååï¼å®ä¼èªå¨çæä¸ä¸ª libs ç®å½ï¼æç¼è¯çæç .so æ件æ¾å¨éé¢ã ($NDKæ¯è°ç¨æ们ä¹åé 置好çç¯å¢åéï¼ ndk-build æ¯è°ç¨ ndk çç¼è¯ç¨åº )
ããdï¼æ¤æ¶å» hello-jni ç libs ç®å½ä¸çæ没æçæç .so æ件ï¼å¦ææï¼ä½ ç ndk å°±è¿è¡æ£å¸¸å¦ï¼
ãã
ãã5.å¨ eclipse ä¸éæ c/c++ å¼åç¯å¢
ããaï¼è£ Eclipse ç C/C++ ç¯å¢æä»¶ï¼ CDT ï¼è¿ééæ©å¨çº¿å®è£ ãããé¦å ç»å½ http://www.eclipse.org/cdt/downloads.php ï¼æ¾å°å¯¹åºä½ Eclipse çæ¬ç CDT æ件 çå¨çº¿å®è£ å°åã
ããbï¼ç¶åç¹ Help èåï¼æ¾å° Install New Software èå
ããcï¼ç¹å» Add æé®ï¼æåçå°åå¡«è¿å»ï¼åºæ¥æ件å表åï¼é Select All ï¼ç¶åéæ©ä¸ä¸æ¥å³å¯å®æå®è£ ã
ããdï¼å®è£ å®æåï¼å¨ eclispe ä¸å³å»æ°å»ºä¸ä¸ªé¡¹ç®ï¼å¦æåºç°äº c/c++ 项ç®ï¼å表æä½ ç CDT æ件å®è£ æåå¦ï¼
ããAndroidå¹³å°ä»è¯çèµ·ï¼å°±å·²ç»æ¯æCãC++å¼åãä¼æå¨ç¥ï¼AndroidçSDKåºäºJavaå®ç°ï¼è¿æå³çåºäºAndroid SDKè¿è¡å¼åç第ä¸æ¹åºç¨é½å¿ 须使ç¨Javaè¯è¨ãä½è¿å¹¶ä¸çåäºâ第ä¸æ¹åºç¨åªè½ä½¿ç¨Javaâãå¨Android SDKé¦æ¬¡åå¸æ¶ï¼Googleå°±å®£ç§°å ¶èææºDalvikæ¯æJNIç¼ç¨æ¹å¼ï¼ä¹å°±æ¯ç¬¬ä¸æ¹åºç¨å®å ¨å¯ä»¥éè¿JNIè°ç¨èªå·±çCå¨æåºï¼å³å¨Androidå¹³å°ä¸ï¼âJava+Câçç¼ç¨æ¹å¼æ¯ä¸ç´é½å¯ä»¥å®ç°çã
ããä¸è¿ï¼Googleä¹è¡¨ç¤ºï¼ä½¿ç¨åçSDKç¼ç¨ç¸æ¯Dalvikèææºä¹æä¸äºå£å¿ï¼Android SDKææ¡£éï¼æ¾ä¸å°ä»»ä½JNIæ¹é¢ç帮å©ãå³ä½¿ç¬¬ä¸æ¹åºç¨å¼åè 使ç¨JNIå®æäºèªå·±çCå¨æé¾æ¥åºï¼soï¼å¼åï¼ä½æ¯soå¦ä½ååºç¨ç¨åºä¸èµ·æå æapk并åå¸ï¼è¿éé¢ä¹åå¨ææ¯éç¢ãæ¯å¦ç¨åºæ´å å¤æï¼å ¼å®¹æ§é¾ä»¥ä¿éï¼æ æ³è®¿é®Framework
APIï¼Debugé¾åº¦æ´å¤§çãå¼åè éè¦èªè¡æé 使ç¨ã
ããäºæ¯NDKå°±åºè¿èçäºãNDKå ¨ç§°æ¯Native Development Kitã
ããNDKçåå¸ï¼ä½¿âJava+Câçå¼åæ¹å¼ç»äºè½¬æ£ï¼æ为å®æ¹æ¯æçå¼åæ¹å¼ãNDKå°æ¯Androidå¹³å°æ¯æCå¼åçå¼ç«¯ã
ãã
ããäºã为ä»ä¹ä½¿ç¨NDK
ãã1.代ç çä¿æ¤ãç±äºapkçjavaå±ä»£ç å¾å®¹æ被åç¼è¯ï¼èC/C++åºåæ±é¾åº¦è¾å¤§ã
ãã2.å¯ä»¥æ¹ä¾¿å°ä½¿ç¨ç°åçå¼æºåºã大é¨åç°åçå¼æºåºé½æ¯ç¨C/C++代ç ç¼åçã
ãã3.æé«ç¨åºçæ§è¡æçãå°è¦æ±é«æ§è½çåºç¨é»è¾ä½¿ç¨Cå¼åï¼ä»èæé«åºç¨ç¨åºçæ§è¡æçã
ãã4.便äºç§»æ¤ãç¨C/C++åå¾åºå¯ä»¥æ¹ä¾¿å¨å ¶ä»çåµå ¥å¼å¹³å°ä¸å次使ç¨ã
ãã
ããä¸ãNDKç®ä»
ãã1.NDKæ¯ä¸ç³»åå·¥å ·çéå
ããNDKæä¾äºä¸ç³»åçå·¥å ·ï¼å¸®å©å¼åè å¿«éå¼åCï¼æC++ï¼çå¨æåºï¼å¹¶è½èªå¨å°soåjavaåºç¨ä¸èµ·æå æapkãè¿äºå·¥å ·å¯¹å¼åè ç帮å©æ¯å·¨å¤§çã
ããNDKéæäºäº¤åç¼è¯å¨ï¼å¹¶æä¾äºç¸åºçmkæ件é离CPUãå¹³å°ãABIçå·®å¼ï¼å¼å人ååªéè¦ç®åä¿®æ¹mkæ件ï¼æåºâåªäºæ件éè¦ç¼è¯âãâç¼è¯ç¹æ§è¦æ±âçï¼ï¼å°±å¯ä»¥å建åºsoã
ããNDKå¯ä»¥èªå¨å°å°soåJavaåºç¨ä¸èµ·æå ï¼æ大å°åè½»äºå¼å人åçæå å·¥ä½ã
ãã2.NDKæä¾äºä¸ä»½ç¨³å®ãåè½æéçAPI头æ件声æ
ããGoogleæ确声æ该APIæ¯ç¨³å®çï¼å¨åç»ææçæ¬ä¸é½ç¨³å®æ¯æå½ååå¸çAPIãä»è¯¥çæ¬çNDKä¸çåºï¼è¿äºAPIæ¯æçåè½é常æéï¼å å«æï¼Cæ ååºï¼libcï¼ãæ åæ°å¦åºï¼libmï¼ãå缩åºï¼libzï¼ãLogåºï¼liblogï¼ã
ãã
ããåãNDKå¼åç¯å¢çæ建
ãã1.ä¸è½½å®è£ Android NDK
ããå°åï¼http://developer.android.com/sdk/ndk/index.html
ãã2.ä¸è½½å®è£ cygwin
ããç±äºNDKç¼è¯ä»£ç æ¶å¿ é¡»è¦ç¨å°makeågccï¼æä»¥ä½ å¿ é¡»å æ建ä¸ä¸ªlinuxç¯å¢ï¼ cygwinæ¯ä¸ä¸ªå¨windowså¹³å°ä¸è¿è¡çunix模æç¯å¢,å®å¯¹äºå¦ä¹ unix/linuxæä½ç¯å¢ï¼æè ä»unixå°windowsçåºç¨ç¨åºç§»æ¤ï¼é常æç¨ãéè¿å®ï¼ä½ å°±å¯ä»¥å¨ä¸å®è£ linuxçæ åµä¸ä½¿ç¨NDKæ¥ç¼è¯CãC++代ç äºãä¸è½½å°åï¼http://www.cygwin.com
ãã1ï¼ç¶ååå»è¿è¡å§ï¼è¿è¡åä½ å°çå°å®è£ å导çé¢ã
ãã2ï¼ç¹å»ä¸ä¸æ¥,æ¤æ¶è®©ä½ éæ©å®è£ æ¹å¼ï¼
ããInstall from
Internetï¼ç´æ¥ä»Internetä¸ä¸è½½å¹¶ç«å³å®è£ ï¼å®è£ å®æåï¼ä¸è½½å¥½çå®è£ æ件并ä¸ä¼è¢«å é¤ï¼èæ¯ä»ç¶è¢«ä¿çï¼ä»¥ä¾¿ä¸æ¬¡åå®è£ ï¼ã
ããDownload Without Installingï¼åªæ¯å°å®è£ æ件ä¸è½½å°æ¬å°ï¼ä½ææ¶ä¸å®è£ ã
ããInstall from Local Directoryï¼ä¸ä¸è½½å®è£ æ件ï¼ç´æ¥ä»æ¬å°æ个å«æå®è£ æ件çç®å½è¿è¡å®è£ ã
ãã3ï¼éæ©ç¬¬ä¸é¡¹ï¼ç¶åç¹å»ä¸ä¸æ¥ã
ãã4ï¼éæ©è¦å®è£ çç®å½ï¼æ³¨æï¼æ好ä¸è¦æ¾å°æä¸æåç©ºæ ¼çç®å½éï¼ä¼¼ä¹ä¼é æå®è£ åºé®é¢ï¼å ¶å®é项ä¸ç¨åï¼ä¹åç¹ä¸ä¸æ¥ï¼
ãã5ï¼ä¸ä¸æ¥æ¯éæ©å®è£ cygwinçç®å½ï¼è¿ä¸ªæ¯éæ©ä½ ä¸è½½çå®è£ å æå¨çç®å½ï¼é»è®¤æ¯ä½ è¿è¡setup.exeçç®å½ï¼ç´æ¥ç¹ä¸ä¸æ¥å°±å¯ä»¥ï¼
ãã6ï¼æ¤æ¶ä½ å ±æä¸ç§è¿æ¥æ¹å¼éæ©ï¼
ããDirect Connectionï¼ç´æ¥è¿æ¥ã
ããUse IE5 Settingsï¼ä½¿ç¨IEçè¿æ¥åæ°è®¾ç½®è¿è¡è¿æ¥ã
ããUse HTTP/FTP Proxyï¼ä½¿ç¨HTTPæFTP代çæå¡å¨è¿è¡è¿æ¥ï¼éè¦è¾å ¥æå¡å¨å°åã端å£å·ï¼ã
ããç¨æ·å¯æ ¹æ®èªå·±çç½ç»è¿æ¥çå®æ æ åµè¿è¡éæ©ï¼ä¸è¬æ£å¸¸æ åµä¸ï¼åéæ©ç¬¬ä¸ç§ï¼ä¹å°±æ¯ç´æ¥è¿æ¥æ¹å¼ãç¶ååç¹å»âä¸ä¸æ¥âã
ãã7ï¼è¿æ¯éæ©è¦ä¸è½½çç«ç¹ï¼éæ©åç¹ä¸ä¸æ¥ã
ãã8ï¼æ¤æ¶ä¼ä¸è½½å è½½å®è£ å å表
ãã9ï¼Searchæ¯å¯ä»¥è¾å ¥ä½ è¦ä¸è½½çå çå称ï¼è½å¤å¿«éçéåºä½ è¦ä¸è½½çå ãé£å个åéæé®æ¯éæ©ä¸è¾¹æ çæ ·å¼ï¼é»è®¤å°±è¡ï¼ä¸ç¨å¨ãViewé»è®¤æ¯Categoryï¼å»ºè®®æ¹æfullæ¾ç¤ºå ¨é¨å åæ¥ï¼ççä¸äºå 被éèæãå·¦ä¸è§é£ä¸ªå¤éæ¡æ¯æ¯å¦éèè¿æå ï¼é»è®¤æé©ï¼ä¸ç¨ç®¡å®å°±è¡ï¼ä¸è¾¹å¼å§ä¸è½½æ们è¦å®è£ çå å§ï¼ä¸ºäºé¿å å ¨é¨ä¸è½½ï¼è¿éååºäºåé¢å¼åNDKç¨å¾ççå ï¼autoconf2.1ãautomake1.10ãbinutilsãgcc-coreãgcc-
g++ãgcc4-coreãgcc4-g++ãgdbãpcreãpcre-develãgawkãmakeå ±12个å
ãã10ï¼ç¶åå¼å§éæ©å®è£ è¿äºå å§ï¼ç¹skipï¼æå®åææ°åçæ¬æ ¼å¼ï¼è¦ç¡®ä¿Bin项åæåå·ï¼èSrc项æ¯æºç ï¼è¿ä¸ªå°±æ²¡å¿ è¦éäºã
ãã11ï¼ä¸é¢æµè¯ä¸ä¸cygwinæ¯ä¸æ¯å·²ç»å®è£ 好äºã
ããè¿è¡cygwinï¼å¨å¼¹åºçå½ä»¤è¡çªå£è¾å ¥ï¼cygcheck -c
cygwinå½ä»¤ï¼ä¼æå°åºå½åcygwinççæ¬åè¿è¡ç¶ æï¼å¦æstatusæ¯okçè¯ï¼åcygwinè¿è¡æ£å¸¸ã
ããç¶åä¾æ¬¡è¾å ¥gcc âversionï¼g++ --versionï¼make âversionï¼gdb
âversionè¿è¡æµè¯ï¼å¦æé½æå°åºçæ¬ä¿¡æ¯åä¸äºæè¿°ä¿¡æ¯ï¼åcygwinå®è£ æåï¼
ãã3.é ç½® NDK ç¯å¢åé
ããaï¼é¦å æ¾å° cygwin çå®è£ ç®å½ï¼æ¾å°ä¸ä¸ª home\< ä½ çç¨æ·å >\.bash_profile æ件ï¼æçæ¯ï¼E:\cygwin\home\Administrator\.bash_profile ï¼ ( 注æï¼æå®è£ çæ¶åæç home æ件夹ä¸é¢ä»ä¹é½æ²¡æï¼è§£å³
çåæ³ï¼é¦å æå¼ç¯å¢åéï¼æéé¢çç¨æ·åéä¸ç HOME åéå æï¼å¨ E:\cygwin\home æ件夹ä¸å»ºç«å为Administrator çæ件夹ï¼æ¯ç¨æ·åï¼ï¼ç¶åæ E:\cygwin\etc\skel\.bash_profile æ·è´å°è¯¥æä»¶å¤¹ä¸ ) ã
ããbï¼æå¼ bash_profile æ件ï¼æ·»å NDK=/cygdrive/< ä½ çç符 >/<android
ndk ç®å½ > ä¾å¦ï¼
ããNDK=/cygdrive/e/android-ndk-r5
ããexport NDK
ããNDK è¿ä¸ªååæ¯é便åçï¼ä¸ºäºæ¹é¢ä»¥å使ç¨æ¹ä¾¿ï¼é个ç®ççååï¼ç¶åä¿å
ããcï¼æå¼ cygwin ï¼è¾å ¥ cd
$NDK ï¼å¦æè¾åºä¸é¢é ç½®ç /cygdrive/e/android-ndk-r5 ä¿¡æ¯ï¼å表æç¯å¢åé设置æåäºã
ãã
ãã4.ç¨ NDK æ¥ç¼è¯ç¨åº
ããaï¼ç°å¨æ们ç¨å®è£ 好ç NDK æ¥ç¼è¯ä¸ä¸ªç®åçç¨åºå§ï¼æ们éæ© ndk èªå¸¦çä¾å hello-jni ï¼æçä½äºE:\android-ndk-r5\samples\hello-jni( æ ¹æ®ä½ å ·ä½çå®è£ ä½ç½®èå® ) ï¼
ããbï¼è¿è¡ cygwin ï¼è¾å ¥å½ä»¤ cd
/cygdrive/e/android-ndk-r5/samples/hello-jni ï¼è¿å ¥å° E:\android-ndk-r5\samples\hello-jni ç®å½ã
ããcï¼è¾å ¥ $NDK/ndk-build ï¼æ§è¡æååï¼å®ä¼èªå¨çæä¸ä¸ª libs ç®å½ï¼æç¼è¯çæç .so æ件æ¾å¨éé¢ã ($NDKæ¯è°ç¨æ们ä¹åé 置好çç¯å¢åéï¼ ndk-build æ¯è°ç¨ ndk çç¼è¯ç¨åº )
ããdï¼æ¤æ¶å» hello-jni ç libs ç®å½ä¸çæ没æçæç .so æ件ï¼å¦ææï¼ä½ ç ndk å°±è¿è¡æ£å¸¸å¦ï¼
ãã
ãã5.å¨ eclipse ä¸éæ c/c++ å¼åç¯å¢
ããaï¼è£ Eclipse ç C/C++ ç¯å¢æä»¶ï¼ CDT ï¼è¿ééæ©å¨çº¿å®è£ ãããé¦å ç»å½ http://www.eclipse.org/cdt/downloads.php ï¼æ¾å°å¯¹åºä½ Eclipse çæ¬ç CDT æ件 çå¨çº¿å®è£ å°åã
ããbï¼ç¶åç¹ Help èåï¼æ¾å° Install New Software èå
ããcï¼ç¹å» Add æé®ï¼æåçå°åå¡«è¿å»ï¼åºæ¥æ件å表åï¼é Select All ï¼ç¶åéæ©ä¸ä¸æ¥å³å¯å®æå®è£ ã
ããdï¼å®è£ å®æåï¼å¨ eclispe ä¸å³å»æ°å»ºä¸ä¸ªé¡¹ç®ï¼å¦æåºç°äº c/c++ 项ç®ï¼å表æä½ ç CDT æ件å®è£ æåå¦ï¼
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-06-14
有什么问题啊?