انجمن گروه موج سازان
برنامه نویسی با Android NDK - نسخه قابل چاپ

+- انجمن گروه موج سازان (http://www.mojsazan.com/forum)
+-- انجمن: لینوکس و سیستم های متن باز (http://www.mojsazan.com/forum/forumdisplay.php?fid=23)
+--- انجمن: لینوکس (برنامه نویسی) (http://www.mojsazan.com/forum/forumdisplay.php?fid=121)
+--- موضوع: برنامه نویسی با Android NDK (/showthread.php?tid=1889)



برنامه نویسی با Android NDK - مهرداد عباسی - 12-10-2011

برنامه نویسی با Android NDK

NDK شامل ابزاری است که کد های c/c++ را در لینوکس یا ویندوز برای پردازنده های ARM کامپایل می کند.
برای استفاده از NDK در محیط ویندوز به Cygwin نیاز داریم. Cygwin حجمی نزدیک دو برابر سیستم عامل ابونتو 11 (بیشتر از 1GB) دارد و ابزار های لینوکس را در ویندوز شبیه سازی می کند.
بنابرین استفاده از NDK در محیط لینوکسی مثل ابونتو منطقی تر به نظر می رسد. قبلا نرم افزار C4droid را معرفی کردیم و گفتیم که کدهای زبان c/c++ را درون سیستم عامل اندروید کامپایل می کند.
NDK همانند c4droid کد های c/c++ را برای اندروید کامپایل می کند و استفاده از آن به دلایل زیر بهتر است:
NDK شامل ابزار های مفیدی مانند دیباگر است.
NDK کد ها در کامپیوتر دسکتاپ کامپایل می کند و می تواند همراه با SDK استفاده شود.

ایجاد بستر لازم برای نوشتن اولین برنامه با NDK[یک فایل باینری ساده]
گوشی شما باید روت شده باشد.
این آموزش برای ubuntu 11 است.
ابتدا NDK را دانلود کنید.
محتویات NDK را در هارد کامپیوتر خود کپی کنید.
نوع معماری سیستم مقصد یکی از موارد زیر خواهد بود:

کد:

* arm-linux-androideabi-4.4.3 => targetting ARM-based Android devices * x86-4.4.3 => targetting x86-based Android devices

فرض کنید می خواهیم برای فرویو (2.2) کامپایل کنیم.
terminal را باز می کنیم و متغیر محیطی SYSROOT را مانند زیر مقداردهی می کنیم:

کد:

export NDK=[your ndk root directory]
export SYSROOT=$NDK/platforms/android-8/arch-arm


کامپایلر مورد نیازمان را در متغیر محیطی CC قرار می دهیم:

کد:

export CC="$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT"

برای کامپایل کردن برنامه از دستور زیر استفاده کنید:

کد:

CC -o NDKDemo NDKDemo.c

اگر برنامه بالا بدون اشتباه باشد در دایرکتوری جاری یک باینری به نام NDKDemo ایجاد می شود.

فایل را به گوشی انقال دهید و آن را اجرا کنید:


کد:

adb kill-server
adb start-server
adb root
adb push NDKDemo /sdcard
adb shell
cd /sdcard
chmod +x NDKDemo
./NDKDemo
Hello NDK world!

منبع