अपने प्रोजेक्ट में C और C++ कोड जोड़ना

कोड को cpp डायरेक्ट्री, आपके प्रोजेक्ट मॉड्यूल में है. प्रोजेक्ट बनाते समय, कोड को एक नेटिव लाइब्रेरी में कंपाइल किया जाता है, जिसे Gradle आपके ऐप्लिकेशन के साथ पैकेज कर सकता है. इसके बाद, आपका Java या Kotlin कोड, आपकी नेटिव लाइब्रेरी में फ़ंक्शन को कॉल कर सकता है का इस्तेमाल किया जा सकता है. JNI फ़्रेमवर्क, नीचे दिए गए लिंक के लिए JNI Android.

Android Studio, CMake के साथ काम करता है, जो क्रॉस-प्लैटफ़ॉर्म प्रोजेक्ट के लिए काम आता है. Android Studio ndk-build के साथ भी काम करता है, जो CMake से तेज़ हो सकता है, लेकिन यह केवल Android पर ही काम करता है. CMake और Google, दोनों का इस्तेमाल करना इसी मॉड्यूल में, ndk-build फ़िलहाल काम नहीं करता.

Android Studio में किसी मौजूदा ndk-build लाइब्रेरी को इंपोर्ट करने के लिए प्रोजेक्ट के लिए, Gradle को अपनी नेटिव लाइब्रेरी प्रोजेक्ट से लिंक करें.

इस पेज में बताया गया है कि कैसे Android Studio सेट अप किया जाए ज़रूरी बिल्ड टूल, C/C++ के साथ नया प्रोजेक्ट बनाएं सहायता मिलेगी और आपके प्रोजेक्ट में नई C/C++ फ़ाइलें जुड़ जाएंगी.

अगर इसके बजाय आपको किसी मौजूदा प्रोजेक्ट में नेटिव कोड जोड़ना है, तो यह तरीका अपनाएं:

  1. नई नेटिव सोर्स फ़ाइलें बनाएं और नए वर्शन में फ़ाइलें आपके Android Studio प्रोजेक्ट में भेजी जा सकती हैं.
    • अगर आपके पास पहले से नेटिव कोड है या आपको पहले से बनी नेटिव लाइब्रेरी को इंपोर्ट करें.
  2. CMake कॉन्फ़िगर करें लाइब्रेरी में अपना नेटिव सोर्स कोड बनाएं. यह बिल्ड स्क्रिप्ट ज़रूरी है अगर पहले से बने प्लैटफ़ॉर्म या प्लैटफ़ॉर्म से इंपोर्ट और लिंक किया जा रहा है, लाइब्रेरी.
    • अगर आपके पास कोई ऐसी नेटिव लाइब्रेरी है जिसमें पहले से CMakeLists.txt बिल्ड स्क्रिप्ट या ndk-build का इस्तेमाल करता है और इसमें शामिल है Android.mk बिल्ड स्क्रिप्ट के लिए, यह चरण छोड़ें.
  3. कॉन्फ़िगर करें अपने CMake या ndk-build का पाथ देकर Gradle स्क्रिप्ट फ़ाइल. Gradle, बिल्ड स्क्रिप्ट का इस्तेमाल करके, Android Studio प्रोजेक्ट करना और अपनी स्थानीय लाइब्रेरी को ऐप्लिकेशन में पैकेज करना.

प्रोजेक्ट कॉन्फ़िगर करने के बाद, अपने नेटिव फ़ंक्शन को यहां से ऐक्सेस करें JNI फ़्रेमवर्क का इस्तेमाल करने वाला Java या Kotlin कोड. अपना ऐप्लिकेशन बनाने और चलाने के लिए, Run चलाएं फिर मेन्यू बार से ऐप चलाएं पर क्लिक करें.

ध्यान दें: अगर आपका मौजूदा प्रोजेक्ट, 'अब काम नहीं करता' के तौर पर मार्क किया गया है, तो ndkCompile टूल, CMake का इस्तेमाल करने पर माइग्रेट करें या ndk-build.

NDK डाउनलोड करें और टूल बनाएं

अपने ऐप्लिकेशन के नेटिव कोड को कंपाइल और डीबग करने के लिए, आपको इनकी ज़रूरत होगी कॉम्पोनेंट:

  • Android नेटिव डेवलपमेंट किट (NDK): इस टूलसेट की मदद से, C और C++ कोड का इस्तेमाल किया जा सकता है Android. NDK, प्लैटफ़ॉर्म लाइब्रेरी उपलब्ध कराता है. इससे, आपको नेटिव एपीआई को मैनेज करने में मदद मिलती है गतिविधियों को ट्रैक करें और सेंसर और टच जैसे फ़िज़िकल डिवाइसों को ऐक्सेस करें इनपुट.
  • सीमेक: एक बाहरी बिल्ड टूल जो Gradle के साथ काम करता है, ताकि आपके नेटिव लाइब्रेरी. अगर आपको इस कॉम्पोनेंट का इस्तेमाल करना है, तो आपको इसकी ज़रूरत नहीं है ndk-build.
  • एलएलडीबी: Android Studio में डीबगर जो नेटिव कोड को डीबग करता है.

इन कॉम्पोनेंट को इंस्टॉल करने के बारे में जानकारी पाने के लिए, एनडीके और सीमेकिंग टूल को इंस्टॉल और कॉन्फ़िगर करना देखें.

C/C++ सहायता के साथ नया प्रोजेक्ट बनाएं

नेटिव कोड के साथ काम करने वाला नया प्रोजेक्ट बनाने की प्रोसेस, किसी भी अन्य Android डिवाइस में Studio प्रोजेक्ट में साइन इन करने के लिए, आपको एक और चरण जोड़ना होगा:

  1. विज़र्ड के अपना प्रोजेक्ट चुनें सेक्शन में, नेटिव C++ प्रोजेक्ट टाइप चुनें.
  2. आगे बढ़ें पर क्लिक करें.
  3. विज़र्ड के अगले सेक्शन में दिए गए अन्य सभी फ़ील्ड भरें.
  4. आगे बढ़ें पर क्लिक करें.
  5. विज़र्ड के C++ सहायता को पसंद के मुताबिक बनाएं सेक्शन में, C++ Standard फ़ील्ड के साथ अपने प्रोजेक्ट में बदलाव करें.
    • ड्रॉप-डाउन सूची का इस्तेमाल करके, चुनें कि आपको C++ के किस स्टैंडर्ड का इस्तेमाल करना है. टूलचेन का चुनाव डिफ़ॉल्ट के लिए, डिफ़ॉल्ट CMake सेटिंग इस्तेमाल की जाती है.
  6. पूरा करें पर क्लिक करें.

Android Studio से अपना नया प्रोजेक्ट बनाने के बाद, IDE की बाईं ओर से प्रोजेक्ट पैनल और फिर Android व्यू पर क्लिक करें. जैसा कि पहली इमेज में दिखाया गया है, Android स्टूडियो cpp ग्रुप को जोड़ता है:

पहला डायग्राम. आपके स्थानीय सोर्स के लिए Android व्यू ग्रुप और एक्सटर्नल बिल्ड स्क्रिप्ट शामिल करें.

ध्यान दें: यह व्यू, फ़ाइल की हैरारकी को नहीं दिखाता है लेकिन आपके प्रोजेक्ट को नेविगेट करना आसान बनाने के लिए मिलती-जुलती फ़ाइलों को एक साथ ग्रुप कर देता है.

cpp ग्रुप में सभी नेटिव देखें सोर्स फ़ाइलें, हेडर, CMake या ndk-build के लिए स्क्रिप्ट बिल्ड, और पहले से तैयार किया गया लाइब्रेरी जैसी सभी लाइब्रेरी शामिल होनी चाहिए जो आपके प्रोजेक्ट का हिस्सा हैं. नए प्रोजेक्ट के लिए, Android Studio C++ सोर्स फ़ाइल का सैंपल, native-lib.cpp बनाता है और उसे को अपने ऐप्लिकेशन मॉड्यूल की src/main/cpp/ डायरेक्ट्री में डालें. यह सैंपल कोड एक आसान C++ फ़ंक्शन उपलब्ध कराता है, stringFromJNI(), जो "Hello from C++" स्ट्रिंग दिखाता है. अतिरिक्त जानकारी जोड़ने का तरीका जानें सोर्स फ़ाइलों को जोड़ने का तरीका जानने के लिए, नई नेटिव सोर्स फ़ाइलें बनाएं.

जिस तरह build.gradle फ़ाइलें, Gradle को बनाने का तरीका बताती हैं आपके ऐप्लिकेशन, CMake और ndk-build को बनाने का तरीका जानने के लिए बिल्ड स्क्रिप्ट की ज़रूरत होती है आपकी स्थानीय लाइब्रेरी. नए प्रोजेक्ट के लिए, Android Studio एक CMake बिल्ड बनाता है स्क्रिप्ट,CMakeLists.txt, और उसे आपके मॉड्यूल की रूट डायरेक्ट्री में रख देता है. इस बिल्ड स्क्रिप्ट के कॉन्टेंट के बारे में ज़्यादा जानने के लिए, पढ़ें C Maker को कॉन्फ़िगर करें.

सैंपल ऐप्लिकेशन बनाएं और चलाएं

Run चलाएं फिर मेन्यू बार से ऐप चलाएं पर क्लिक करने पर, Android Studio एक ऐप्लिकेशन बनाता और लॉन्च करता है, जिस पर "C++ का हैलो" टेक्स्ट दिखता है अपने Android डिवाइस या एम्युलेटर. यहां दिए गए खास जानकारी में ऐसे इवेंट के बारे में बताया गया है सैंपल ऐप्लिकेशन बनाने और चलाने के लिए:

  1. बाहरी बिल्ड स्क्रिप्ट पर Gradle कॉल, CMakeLists.txt.
  2. CMake की मदद से C++ सोर्स को कंपाइल करने के लिए, बिल्ड स्क्रिप्ट में कमांड का इस्तेमाल किया जाता है native-lib.cpp फ़ाइल को, शेयर किए गए ऑब्जेक्ट की लाइब्रेरी और नामों में libnative-lib.so. इसके बाद, Gradle, इसे ऐप्लिकेशन में पैकेज कर देता है.
  3. रनटाइम के दौरान, ऐप्लिकेशन का MainActivity नेटिव का इस्तेमाल करने वाली लाइब्रेरी System.loadLibrary(). लाइब्रेरी का नेटिव फ़ंक्शन, stringFromJNI(), अब ऐप्लिकेशन के लिए उपलब्ध है.
  4. MainActivity.onCreate() ने stringFromJNI() को कॉल किया, जो "Hello from C++" दिखाता है और TextView को अपडेट करने के लिए इसका इस्तेमाल करता है.

यह पुष्टि करने के लिए कि Gradle, ऐप्लिकेशन में मौजूद मूल लाइब्रेरी को पैकेज करता है, APK ऐनालाइज़र:

  1. बिल्ड > चुनें बंडल / APK बनाएं > APK बनाएं.
  2. बिल्ड > चुनें APK का विश्लेषण करें.
  3. app/build/outputs/ डायरेक्ट्री से APK या एएबी चुनें और ठीक है पर क्लिक करें.
  4. जैसा कि दूसरी इमेज में दिखाया गया है, libnative-lib.so को lib/<ABI>/ में APK ऐनालाइज़र विंडो.

    दूसरा डायग्राम. APK का इस्तेमाल करके स्थानीय लाइब्रेरी ढूंढना ऐनालाइज़र.

सलाह: अगर आपको ऐसे दूसरे Android ऐप्लिकेशन के साथ एक्सपेरिमेंट करना है जिन्हें नेटिव कोड का इस्तेमाल करने के लिए, फ़ाइल > नया > इंपोर्ट का सैंपल और Ndk सूची से कोई सैंपल प्रोजेक्ट चुनें.

नई C/C++ सोर्स फ़ाइलें बनाएं

किसी मौजूदा प्रोजेक्ट में नई C/C++ सोर्स फ़ाइलें जोड़ने के लिए, यह तरीका अपनाएं:

  1. अगर मुख्य सोर्स में, आपके पास पहले से cpp/ डायरेक्ट्री नहीं है अपने ऐप्लिकेशन का सेट, इस तरह से एक बनाएं:
    1. IDE की बाईं ओर मौजूद प्रोजेक्ट पैनल खोलें और मेन्यू से प्रोजेक्ट व्यू चुनें.
    2. your-module पर जाएं > src पर क्लिक करें.
    3. मुख्य डायरेक्ट्री पर राइट क्लिक करें और New > डायरेक्ट्री.
    4. cpp को डायरेक्ट्री के नाम के तौर पर डालें और OK पर क्लिक करें.

  2. cpp/ डायरेक्ट्री पर राइट क्लिक करें और New > को चुनें C/C++ सोर्स फ़ाइल.
  3. अपनी सोर्स फ़ाइल के लिए कोई नाम डालें, जैसे कि native-lib.
  4. टाइप मेन्यू से, फ़ाइल एक्सटेंशन चुनें जैसे कि .cpp.
    • फ़ाइल टाइप में बदलाव करें पर क्लिक करें मेन्यू में अन्य फ़ाइल टाइप जोड़ने के लिए .cxx या .hxx. नए फ़ाइल एक्सटेंशन में इसके बाद, पॉप-अप होने वाले डायलॉग बॉक्स में से कोई दूसरा फ़ाइल एक्सटेंशन चुनें सोर्स एक्सटेंशन और हेडर एक्सटेंशन मेन्यू और ठीक है पर क्लिक करें.
  5. हेडर फ़ाइल बनाने के लिए, एक कॉलम में हेडर चेकबॉक्स का इस्तेमाल करें.
  6. ठीक है पर क्लिक करें.

अपने प्रोजेक्ट में नई C/C++ फ़ाइलें जोड़ने के बाद भी आपको फ़ाइलों को शामिल करने के लिए CMake को कॉन्फ़िगर करें आपकी स्थानीय लाइब्रेरी.

अन्य संसाधन

अपने ऐप्लिकेशन में C/C++ कोड के साथ काम करने के बारे में ज़्यादा जानने के लिए, नीचे दिया गया तरीका आज़माएं संसाधन.

कोड लैब

  • Android Studio की मदद से Hello-CMake बनाएं यह कोडलैब आपको शुरुआत करने के लिए, Android Studio CMake टेंप्लेट इस्तेमाल करने का तरीका बताता है Android एनडीके प्रोजेक्ट डेवलपमेंट.