با NDK شروع کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Native Development Kit (NDK) مجموعه ای از ابزارها است که به شما امکان می دهد از کدهای C و C++ با اندروید استفاده کنید و کتابخانه های پلتفرمی را فراهم می کند که می توانید از آنها برای مدیریت فعالیت های بومی و دسترسی به اجزای فیزیکی دستگاه مانند حسگرها و ورودی لمسی استفاده کنید. ممکن است NDK برای اکثر برنامه نویسان مبتدی اندروید که نیاز به استفاده از کد جاوا و APIهای فریمورک برای توسعه برنامه های خود دارند، مناسب نباشد. با این حال، NDK می تواند برای مواردی مفید باشد که در آن شما باید یک یا چند مورد از موارد زیر را انجام دهید:
- برای دستیابی به تأخیر کم یا اجرای برنامههای فشرده محاسباتی، مانند بازیها یا شبیهسازیهای فیزیک، عملکرد اضافی دستگاه را کاهش دهید.
- استفاده مجدد از کتابخانه های C یا C++ خود یا سایر توسعه دهندگان.
با استفاده از Android Studio 2.2 و بالاتر ، می توانید از NDK برای کامپایل کدهای C و C++ در یک کتابخانه بومی و بسته بندی آن در APK خود با استفاده از Gradle، سیستم ساخت یکپارچه IDE استفاده کنید. کد جاوا شما سپس می تواند توابع موجود در کتابخانه بومی شما را از طریق چارچوب Java Native Interface (JNI) فراخوانی کند. برای اطلاعات بیشتر در مورد Gradle و سیستم ساخت اندروید، Configure Your Build را بخوانید.
ابزار ساخت پیش فرض اندروید استودیو برای کامپایل کتابخانه های بومی CMake است. اندروید استودیو همچنین به دلیل تعداد زیاد پروژه های موجود که از جعبه ابزار ساخت استفاده می کنند، از ndk-build پشتیبانی می کند. با این حال، اگر در حال ایجاد یک کتابخانه بومی جدید هستید، باید از CMake استفاده کنید.
این راهنما اطلاعاتی را که برای راهاندازی و اجرای NDK در Android Studio نیاز دارید در اختیار شما قرار میدهد. اگر آخرین نسخه اندروید استودیو را ندارید، هم اکنون آن را دانلود و نصب کنید .
توجه کاربران آزمایشی Gradle: مهاجرت به افزونه نسخه 2.2.0 یا بالاتر و استفاده از CMake یا ndk-build را برای ساخت کتابخانه های بومی خود در صورت اعمال هر یک از موارد زیر در نظر بگیرید: پروژه بومی شما قبلاً از CMake یا ndk-build استفاده می کند. شما ترجیح می دهید از یک نسخه پایدار از سیستم ساخت Gradle استفاده کنید. یا می خواهید از ابزارهای جانبی مانند CCache پشتیبانی کنید. در غیر این صورت، می توانید به استفاده از نسخه آزمایشی Gradle و افزونه اندروید ادامه دهید.
NDK و ابزارها را دانلود کنید
برای کامپایل و اشکال زدایی کد بومی برای برنامه خود، به اجزای زیر نیاز دارید:
- Android Native Development Kit (NDK): مجموعه ای از ابزارهایی که به شما امکان می دهد از کدهای C و C++ با اندروید استفاده کنید.
- CMake: یک ابزار ساخت خارجی که در کنار Gradle برای ساخت کتابخانه بومی شما کار می کند. اگر فقط قصد استفاده از ndk-build را دارید، به این مؤلفه نیازی ندارید.
- LLDB : دیباگر Android Studio برای اشکال زدایی کدهای بومی استفاده می کند.
برای اطلاعات در مورد نصب این مؤلفه ها، به نصب و پیکربندی NDK و CMake مراجعه کنید.
یک پروژه بومی ایجاد یا وارد کنید
پس از راهاندازی Android Studio، میتوانید به سادگی یک پروژه جدید با پشتیبانی C/C++ ایجاد کنید . با این حال، اگر میخواهید کد بومی را به یک پروژه Android Studio موجود اضافه یا وارد کنید، باید این روند اساسی را دنبال کنید:
- فایل های منبع بومی جدید ایجاد کنید و آنها را به پروژه Android Studio خود اضافه کنید.
- اگر از قبل کد بومی دارید یا می خواهید یک کتابخانه بومی از پیش ساخته شده وارد کنید، می توانید از این مرحله بگذرید.
- یک اسکریپت ساخت CMake ایجاد کنید تا به CMake بگویید چگونه منابع بومی خود را در یک کتابخانه بسازد. همچنین اگر در حال وارد کردن و پیوند دادن با کتابخانه های از پیش ساخته شده یا پلت فرم هستید، به این اسکریپت ساخت نیاز دارید.
- اگر کتابخانه بومی موجود شما از قبل دارای اسکریپت ساخت
CMakeLists.txt
است یا از ndk-build استفاده می کند و شامل یک اسکریپت ساخت Android.mk
می باشد، می توانید از این مرحله بگذرید.
- با ارائه مسیری به فایل اسکریپت CMake یا ndk-build خود ، Gradle را به کتابخانه بومی خود پیوند دهید . Gradle از اسکریپت ساخت برای وارد کردن کد منبع به پروژه Android Studio شما و بسته بندی کتابخانه بومی شما (فایل SO) در APK استفاده می کند.
توجه: اگر پروژه موجود شما از ابزار منسوخ ndkCompile
استفاده می کند، باید فایل build.properties
خود را باز کنید و قبل از پیکربندی Gradle برای استفاده از CMake یا ndk-build خط کد زیر را حذف کنید:
// Remove this line
android.useDeprecatedNdk = true
- با کلیک روی Run اپلیکیشن خود را بسازید و اجرا کنید
. Gradle فرآیند CMake یا ndk-build شما را به عنوان یک وابستگی برای کامپایل، ساخت و بسته بندی کتابخانه بومی شما با APK اضافه می کند.
هنگامی که برنامه شما روی یک دستگاه فیزیکی یا شبیه ساز اجرا می شود، می توانید از Android Studio برای اشکال زدایی برنامه خود استفاده کنید. در غیر این صورت، برای کسب اطلاعات بیشتر در مورد NDK و اجزای آن، صفحه مفاهیم را مطالعه کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Get started with the NDK\n\nThe Native Development Kit (NDK) is a set of tools that allows you to use C\nand C++ code with Android, and provides [platform libraries](/ndk/guides/stable_apis) you can use to manage\nnative activities and access physical device components, such as sensors and\ntouch input. The NDK may not be appropriate for most novice Android\nprogrammers who need to use only Java code and framework APIs to develop\ntheir apps. However, the NDK can be useful for cases in which you need to do\none or more of the following:\n\n- Squeeze extra performance out of a device to achieve low latency or run computationally intensive applications, such as games or physics simulations.\n- Reuse your own or other developers' C or C++ libraries.\n\n\nUsing [Android Studio 2.2 and higher](/studio), you can\nuse the NDK to compile C and C++ code into a native library and package it\ninto your APK using Gradle, the IDE's integrated build system. Your Java code\ncan then call functions in your native library through the [Java Native Interface (JNI)](http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html) framework. To learn\nmore about Gradle and the Android build system, read [Configure Your Build](/studio/build).\n\n\nAndroid Studio's default build tool to compile native libraries is [CMake](https://cmake.org/). Android Studio also\nsupports [ndk-build](/ndk/guides/ndk-build) due to the large\nnumber of existing projects that use the build toolkit. However, if you are\ncreating a new native library, you should use CMake.\n\n\nThis guide gives you the information you need to get up and running with the\nNDK on Android Studio. If you don't have the latest version of Android\nStudio, [download and install it now](/studio).\n\n\n**Attention experimental Gradle users:** Consider [migrating to plugin version 2.2.0 or higher](http://tools.android.com/tech-docs/new-build-system/gradle-experimental/migrate-to-stable), and using CMake or ndk-build\nto build your native libraries if any of the following apply to you: Your\nnative project already uses CMake or ndk-build; you would rather use a stable\nversion of the Gradle build system; or you want support for add-on tools,\nsuch as [CCache](https://ccache.samba.org/).\nOtherwise, you can continue to [use\nthe experimental version of Gradle and the Android plugin](http://tools.android.com/tech-docs/new-build-system/gradle-experimental).\n\nDownload the NDK and tools\n--------------------------\n\n\nTo compile and debug native code for your app, you need the following\ncomponents:\n\n- The Android Native Development Kit (NDK): a set of tools that allows you to use C and C++ code with Android.\n- CMake: an external build tool that works alongside Gradle to build your native library. You do not need this component if you only plan to use ndk-build.\n- *LLDB*: the debugger Android Studio uses to debug native code.\n\n\nFor information on installing these components, see [Install and configure the NDK and CMake](/studio/projects/install-ndk).\n\nCreate or import a native project\n---------------------------------\n\n\nOnce you set up Android Studio, you can simply [Create a New Project with\nC/C++ Support](/studio/projects/add-native-code#new-project). However, if you want to add or import native code to an\nexisting Android Studio project, you need to follow this basic process:\n\n1. [Create new\n native source files](/studio/projects/add-native-code#create-sources) and add them to your Android Studio project.\n - You can skip this step if you already have native code or want to import a prebuilt native library.\n2. [Create\n a CMake build script](/studio/projects/configure-cmake#create_script) to tell CMake how to build your native sources into a library. You also require this build script if you are importing and linking against prebuilt or platform libraries.\n - You can skip this step if your existing native library already has a `CMakeLists.txt` build script, or uses ndk-build and includes an [`Android.mk`](/ndk/guides/android_mk) build script.\n3. [Link Gradle to\n your native library](/studio/projects/gradle-external-native-builds) by providing a path to your CMake or ndk-build script file. Gradle uses the build script to import source code into your Android Studio project and package your native library (the SO file) into the APK.\n\n\n **Note:** If your existing project uses the deprecated\n `ndkCompile` tool, you should open your\n `build.properties` file and remove the following line of code\n before configuring Gradle to use CMake or ndk-build: \n\n ```\n // Remove this line\n android.useDeprecatedNdk = true\n ```\n4. [Build and run your app](/studio/run) by clicking **Run** . Gradle adds your CMake or ndk-build process as a dependency to compile, build, and package your native library with your APK.\n\n\nOnce your app is running on a physical device or the emulator, you can use\nAndroid Studio to [Debug your app](/studio/debug).\nOtherwise, to learn more about the NDK and its components, read the [Concepts](/ndk/guides/concepts) page."]]