NDK ºôµå - À¯´ÏƼ
À̹øÀå¿¡¼´Â À¯´ÏƼ¿¡¼ ³×ÀÌƼºê C/C++ Ç÷¯±×ÀÎÀ¸·Î »ç¿ë¿¡ ´ëÇؼ ¾Ë¾Æº»´Ù. ¾ÕÀåÀÇ ¾Èµå·ÎÀ̵忡¼ ³×ÀÌƼºê C/C++ Ç÷¯±×ÀÎÀ¸·Î »ç¿ëÇÏ´Â ³»¿ë°ú ºñ½ÁÇÏ´Ù. ¾Èµå·ÎÀ̵忡¼´Â jni¸¦ »ç¿ëÇؼ ³×ÀÌƼºê C/C++À» »ç¿ëÇÏÁö¸¸ À¯´ÏƼ¿¡¼´Â jni°¡ ÇÊ¿ä ¾ø´Ù. * ¾Èµå·ÎÀ̵忡¼ ÀÎÅÍÆäÀ̽º ½Ã±×´ÏÃÄ JNIEXPORT jstring JNICALL Java_com_example_ndktest_JniTest_stringFromJNI (JNIEnv *env, jobject) { return (env)->NewStringUTF("Hello NDK!"); } * À¯´ÏƼ¿¡¼ ÀÎÅÍÆäÀ̽º ½Ã±×´ÏÃÄ extern "C" { int addInt(int a, int b) { return a + b; } } À¯´ÏƼ¿ë Ç÷¯±×ÀÎÀ» ÀÛ¼ºÇغ¸ÀÚ. cygwin ¾øÀÌ ndk¸¦ ºôµåÇغ¸ÀÚ. ndk-build¸¦ »ç¿ëÇؼ so ÆÄÀÏ·Î ºôµåÇϴ°ÍÀÌ´Ù. ¾Èµå·ÎÀ̵å¿Í ÀÚ¹Ù¿Í CÀÇ È¥ÇÕ ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇؼ ¾Ë¾Æ º»´Ù. http://huammmm1.tistory.com/459 ³»¿ëÀÌ ÁÁ¾Æ¼ °¡Á®¿Ô´Ù. ÀÌ »çÀÌÆ®ÀÇ ³»¿ëÀ» Á¶±Ý¸¸ ¼öÁ¤Çß´Ù. 1. NDK¸¦ ´Ù¿î·Îµå ¹Þ¾Æ Àû´çÇÑ °÷¿¡ Ǭ´Ù. ÆíÇÏ°Ô »ç¿ëÇϱâ À§ÇØ È¯°æ º¯¼ö¿¡ µî·ÏÇÑ´Ù. ( ¿¹ d:\ndk\android-ndk-r10e ) http://developer.android.com/tools/sdk/ndk/index.html ¼³Á¤ÀÌ Àß µÇ¾ú´ÂÁö È®ÀÎÇϱâ À§ÇØ ndk-build¸¦ ½ÇÇàÇÑ´Ù. 2. so ¶óÀ̺귯¸® Å×½ºÆ® ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç´Ù. (¿©±â¼´Â NDKTest) File / New / Project / Android Application Project¸¦ Ŭ¸¯ÇÏ°í Next ½ÇÇà NDKTest¸¦ ÀÔ·ÂÇÑ´Ù. 3. Eclipse¿¡¼ Window / Preferences / Android / NDK¿¡¼ NDK ¼³Ä¡ Æú´õ¸¦ ¼³Á¤ÇÑ´Ù. 4. ÇÁ·ÎÁ§Æ® ¿ìŬ¸¯ / Android Tools / Add Native Support¿¡¼ so ¶óÀ̺귯¸® À̸§À» Àû´Â´Ù. Finish ¹öÆ°À» ´©¸£¸é ÇÁ·ÎÁ§Æ®¿¡ jni Æú´õ°¡ »ý±â°í, ±× ¾È¿¡ cpp ÆÄÀÏ°ú mk ÆÄÀÏÀÌ »ý±ä´Ù. cpp ÆÄÀÏ¿¡ ½ÇÇà ÇÒ·Á´Â ÇÔ¼öµéÀ» ÀÛ¼ºÇÏ¸é µÈ´Ù. mk ÆÄÀÏ¿¡´Â ndk-build¸¦ ÀÌ¿ëÇÒ¶§ ±ÔÄ¢À» Àû´Â´Ù. Add Native Support¸¦ »ç¿ëÇÏÁö ¾Ê°í jni Æú´õ¸¦ Á÷Á¢ ¸¸µé°í cpp, mk ÆÄÀϸ¦ Ãß°¡Çصµ µÈ´Ù. »ç¿ëÇÏ´Â ¸ñÀû¿¡ µû¶ó cpp ÆÄÀÏ´ë½Å cÆÄÀÏÀ» »ç¿ëÇصµ ÁÁ´Ù. 5. ³Ã¹« 6. ³Ã¹« 7. ³Ã¹« 8. ³Ã¹« 9. À¯´ÏƼ¿¡¼ »ç¿ëÇÒ ÇÔ¼ö¸¦ NDKTest.cpp¿¡ Ãß°¡ÇÑ´Ù. À¯´ÏƼ¿¡¼ DllImport·Î ºÎ¸£±â À§ÇØ extern "C"·Î °¨½Ñ´Ù.
10. 4¹ø¿¡¼ Add Native Support¸¦ ÀÌ¿ëÇß´Ù¸é ÇÁ·ÎÁ§Æ® ¿ìŬ¸¯ -> Build Configurations -> Build AllÀ» ´©¸£¸é ¾Ë¾Æ¼ ndk-build ¸í·ÉÀÌ ½ÇÇàµÇ¾î ´ÙÀ½°ú °°ÀÌ ºôµå°¡ µÉ °ÍÀÌ´Ù. Äĸǵå ȯ°æ¿¡¼ ºôµå ÇÒ·Á¸é ·çÆ® Æú´õ·Î À̵¿Çؼ ndk-build ÇÏ¸é µÈ´Ù. so ÆÄÀÏÀÌ »ý¼º µÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù. 11. ¸¸µé¾îÁø libNDKTest.so ÆÄÀÏÀ» À¯´ÏƼ Æú´õ¿¡ º¹»çÇÑ´Ù. Æú´õ°¡ ¾øÀ¸¸é Æú´õ¸¦ »ý¼ºÇÑ´Ù. Assets/Plugins/Android 12. À¯´ÏƼ¿¡¼ *.so µ¿Àû ¶óÀ̺귯¸® CÇÔ¼ö¸¦ È£ÃâÇÏ´Â Äڵ带 Ãß°¡ÇÑ´Ù.
|