একটি প্রকল্প কনফিগার করুন

Android গেম ডেভেলপমেন্ট এক্সটেনশন ব্যবহার করার জন্য একটি প্রকল্প কনফিগার করুন।

অ্যান্ড্রয়েড গেম ডেভেলপমেন্ট এক্সটেনশন MSBuild-কে C/C++ সোর্স কোড শেয়ার করা লাইব্রেরি ( .so ) এবং স্ট্যাটিক লাইব্রেরি ( .a ) তৈরি করতে আহ্বান করে। বিল্ড প্রক্রিয়ার অংশ হিসাবে, একটি কাস্টম MSBuild টাস্ক Gradle কে জাভা এবং কোটলিন সোর্স কোড, প্যাকেজ সম্পদ, এবং স্থাপনার জন্য একটি APK ফাইল তৈরি করতে আহ্বান করে। আপনি যখন আপনার প্রোজেক্ট কনফিগার করবেন, তখন আপনাকে অবশ্যই নিশ্চিত করতে হবে যে MSBuild এর কাছে Android প্ল্যাটফর্মের জন্য তৈরি করার জন্য প্রয়োজনীয় তথ্য রয়েছে।

MSBuild দিয়ে C/C++ তৈরি করুন

একটি সাধারণ অ্যান্ড্রয়েড প্রজেক্ট Gradle দিয়ে তৈরি করা হয়েছে, যেখানে প্রোজেক্টের অভ্যন্তরে নেটিভ কোড একটি Gradle পাস দ্বারা তৈরি করা হয় যা CMake বা ndk-build চালায়। ভিজ্যুয়াল স্টুডিওর জন্য অ্যান্ড্রয়েড গেম ডেভেলপমেন্ট এক্সটেনশনের সাথে, বিল্ড প্রক্রিয়াটি উল্টানো হয়। এখন MSBuild বিল্ড প্রক্রিয়ার সূচনা বিন্দু। সমস্ত C/C++ সোর্স কোড MSBuild দ্বারা প্রথমে এক্সটেনশনের অংশ হিসাবে আপনার সিস্টেমে ইনস্টল করা নতুন Android প্ল্যাটফর্মগুলির জন্য তৈরি করা হয়েছে (উদাহরণস্বরূপ, "Android-x86_64")। MSBuild তারপর একটি APK-তে আপনার C/C++ লজিক ধারণকারী শেয়ার করা লাইব্রেরি ফাইলগুলিকে প্যাকেজ করার জন্য Gradleকে আহ্বান করে।

আপনাকে প্রথমে আপনার প্রজেক্টের বিদ্যমান বিল্ড লজিক CMake বা MSBuild-এ ndk-build-এ প্রতিলিপি করতে হবে। নিম্নলিখিত লক্ষ্য প্ল্যাটফর্ম সেট করুন:

  • Android-x86
  • Android-x86_64
  • Android-armeabi-v7a
  • Android-arm64-v8a

এই প্ল্যাটফর্মগুলি সমস্ত Android গেম ডেভেলপমেন্ট এক্সটেনশন দ্বারা সরবরাহ করা হয়।

একটি অ্যান্ড্রয়েড প্ল্যাটফর্ম যোগ করুন

টিপট নমুনা প্রকল্পে Android প্ল্যাটফর্মগুলি অন্তর্ভুক্ত থাকলেও, আপনাকে অবশ্যই একটি বিদ্যমান প্রকল্পে একটি Android প্ল্যাটফর্ম যোগ করতে হবে। একটি নতুন প্ল্যাটফর্ম যোগ করতে, ভিজ্যুয়াল স্টুডিওতে নিম্নলিখিতগুলি করুন:

  1. বিল্ড > কনফিগারেশন ম্যানেজার নির্বাচন করুন।
  2. সক্রিয় সমাধান প্ল্যাটফর্মের অধীনে, <নতুন> নির্বাচন করুন।
  3. নতুন প্ল্যাটফর্মের জন্য নিম্নলিখিতগুলির মধ্যে একটি টাইপ করুন:

    • Android-armeabi-v7a
    • Android-arm64-v8a
    • Android-x86
    • Android-x86_64
  4. কপি সেটিংস থেকে বক্সে, অন্য একটি বিদ্যমান অ্যান্ড্রয়েড প্ল্যাটফর্ম নির্বাচন করুন, অথবা আপনার যদি এখনও কোনো অ্যান্ড্রয়েড প্ল্যাটফর্ম না থাকে তাহলে <Empty> । নিশ্চিত করুন যে আপনি নতুন প্রকল্প প্ল্যাটফর্ম তৈরি করুন সক্ষম করেছেন।

একটি Android APK আইটেম যোগ করুন

Add > New Item > Visual C++ > Android > Android APK নির্বাচন করুন এবং Add এ ক্লিক করুন। নিম্নলিখিত ডায়ালগে অ্যান্ড্রয়েড অ্যাপ্লিকেশন কনফিগার করুন।

  • অ্যাপ্লিকেশনের নাম : আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটির মানুষের-পাঠযোগ্য নাম।
  • অ্যাপ্লিকেশন আইডি : আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনের জন্য অনন্য শনাক্তকারী
  • সমাধান এক্সপ্লোরার অবস্থান : ভার্চুয়াল ফোল্ডারের অবস্থান যেখানে যোগ করা Android প্যাকেজিং সমর্থন ফাইল রয়েছে। ডিফল্টরূপে, এই ফাইলগুলি একই নামের একটি ফোল্ডারে প্রকল্পে অবস্থিত। আপনি একটি কাস্টম অবস্থান চেকবক্সে সমর্থন ফাইল রাখুন নির্বাচন করে এবং একটি কাস্টম অবস্থান নির্দিষ্ট করে অবস্থানটি কাস্টমাইজ করতে পারেন৷ ভার্চুয়াল ফোল্ডারটি এখনও সলিউশন এক্সপ্লোরারে বর্তমান প্রকল্পের অধীনে থাকবে।

একটি APK তৈরি করতে MSBuild invoke Gradle করুন

MSBuild গ্র্যাডলকে ডাকতে পারে না যদি না এটি গ্রেডল প্রকল্পের অবস্থান না জানে। Gradle Build Directory প্রপার্টি ব্যবহার করে এই অবস্থানটি সেট করুন, যেমন চিত্র 1 এ দেখানো হয়েছে।


চিত্র 1Gradle বিল্ড ডিরেক্টরি সম্পত্তি

উপরন্তু, MSBuild কি তৈরি করতে হবে তা জানার জন্য অ্যাপ্লিকেশন মডিউল , অ্যাপ্লিকেশন ভেরিয়েন্ট , এবং APK নামের বৈশিষ্ট্য (আগের ছবিতে দেখানো হয়েছে) সেট করুন।

  • অ্যাপ্লিকেশন মডিউল : গ্রেডল সাবপ্রজেক্টের নাম। এটি settings.gradle ফাইলে সেট করা মূল প্রকল্প। এটিকে সাধারণত অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে সরাসরি তৈরি করা প্রকল্পগুলির জন্য app বলা হয়।
  • অ্যাপ্লিকেশন ভেরিয়েন্ট : তৈরি করার জন্য Android ভেরিয়েন্ট। এই মানটি MSBuild কনফিগারেশন অনুযায়ী সেট করা উচিত। উদাহরণস্বরূপ, একটি ডিবাগ বিল্ডের ডিবাগ ভেরিয়েন্টে একটি মান সেট করা উচিত। যদি আপনার প্রজেক্টের MSBuild কনফিগারেশনের নাম Gradle ভেরিয়েন্ট নামের সাথে মেলে, তাহলে শুধুমাত্র $(Configuration) এর ডিফল্ট মান ব্যবহার করুন।
  • APK নাম : আপনার ডেভেলপমেন্ট কম্পিউটারে ডিবাগিং এবং প্রোফাইলিংয়ের জন্য ব্যবহৃত জেনারেট করা APK ফাইলের নাম। এই নামটি Gradle-এ পাস করা হয়েছে এবং আপনার Gradle বিল্ড স্ক্রিপ্টের এটিকে সম্মান করা উচিত (নিম্নলিখিত বিভাগে MSBUILD_ANDROID_OUTPUT_APK_NAME সম্পত্তি দেখুন)।

আপনার Gradle বিল্ড স্ক্রিপ্ট পরিবর্তন করুন

নির্মাণের সময়, MSBuild নিম্নলিখিত তথ্যগুলিকে গ্রেডল স্ক্রিপ্টে প্রকল্পের বৈশিষ্ট্য হিসাবে প্রেরণ করে। এই বৈশিষ্ট্যগুলি পড়ার জন্য আপনার প্রকল্পের বিদ্যমান বিল্ড স্ক্রিপ্টগুলি (সাধারণত নাম করা হয় build.gradle ) পরিবর্তন করুন।

  • MSBUILD_MIN_SDK_VERSION : APK তৈরির জন্য সর্বনিম্ন SDK সংস্করণ৷ চিত্র 2-এ দেখানো প্রকল্প সম্পত্তি পৃষ্ঠায় ন্যূনতম Android SDK সংস্করণ বাক্সে এই মানটি সেট করুন।


    চিত্র ২ন্যূনতম Android SDK সংস্করণ সম্পত্তি

    Gradle বিল্ড স্ক্রিপ্টটি এই মানটিতে minSdkVersion সেট করা উচিত, যেমনটি নীচে দেখানো হয়েছে।

    গ্রোভি

    android {
      // ...
    
      defaultConfig {
          applicationId "com.yourcompany.yourapp"
          minSdkVersion MSBUILD_MIN_SDK_VERSION
          // ...
      }
    
      // ...
    }
    

    কোটলিন

    android {
      // ...
    
      defaultConfig {
          applicationId = "com.yourcompany.yourapp"
          minSdkVersion(MSBUILD_MIN_SDK_VERSION)
          // ...
      }
    
      // ...
    }
    
  • MSBUILD_ANDROID_OUTPUT_APK_NAME : Gradle তৈরি করা APK-এর প্রত্যাশিত নাম। অ্যান্ড্রয়েড গেম ডেভেলপমেন্ট এক্সটেনশন এই নামের সাথে মিলে যায় এমন একটি APK খুঁজবে এবং তারপর এটি সংযুক্ত ডিভাইসগুলিতে স্থাপন করবে (ডিবাগিং এবং প্রোফাইলিংয়ের জন্য)। চিত্র 3-এ দেখানো প্রকল্প সম্পত্তি পৃষ্ঠায় APK নাম বাক্সে এই মানটি সেট করুন।


    চিত্র 3APK নামের সম্পত্তি

    Gradle বিল্ড স্ক্রিপ্ট এই সম্পত্তি সম্মান করা আবশ্যক. উদাহরণস্বরূপ, নিম্নলিখিত উদাহরণটি MSBuild দ্বারা নির্বাচিত নামের সাথে সমস্ত রূপের জন্য আউটপুট APK নাম সেট করে।

    গ্রোভি

    android {
      // ...
    
      applicationVariants.all { variant ->
          variant.outputs.all {
              outputFileName = MSBUILD_ANDROID_OUTPUT_APK_NAME
          }
      }
    
      // ...
    }
    

    কোটলিন

    android {
      // ...
    
      applicationVariants.all { variant ->
          variant.outputs.all {
              outputFileName = MSBUILD_ANDROID_OUTPUT_APK_NAME
          }
      }
    
      // ...
    }
    
  • MSBUILD_JNI_LIBS_SRC_DIR : MSBuild দ্বারা নির্মিত শেয়ার্ড লাইব্রেরি ( .so ফাইল) ধারণকারী ডিরেক্টরি। নীচে দেখানো প্রকল্প সম্পত্তি পৃষ্ঠায় আউটপুট ডিরেক্টরি বাক্সে এই মান সেট করুন। ডিফল্টরূপে, এই মানটি ভিজ্যুয়াল স্টুডিও প্রকল্পের জন্য আউটপুট ডিরেক্টরি বৈশিষ্ট্য, যেমন চিত্র 4 এ দেখানো হয়েছে।


    চিত্র 4আউটপুট ডিরেক্টরি সম্পত্তি

    Gradle-এর উচিত শেয়ার করা লাইব্রেরি ফাইলগুলিকে APK-এর ভিতরে এই ফোল্ডারে প্যাকেজ করা যাতে Android অ্যাপ্লিকেশন রানটাইমে লোড করতে পারে।

    গ্রোভি

    android {
      // ...
    
      sourceSets {
          main {
              jniLibs.srcDirs += [MSBUILD_JNI_LIBS_SRC_DIR]
          }
      }
    
      // ...
    }
    

    কোটলিন

    android {
      // ...
    
      sourceSets.getByName("main") {
          jniLibs.srcDir(MSBUILD_JNI_LIBS_SRC_DIR)
      }
    
      // ...
    }
    

    উপরন্তু, যেহেতু যেকোন C/C++ কোড এখন MSBuild দ্বারা তৈরি করা হয়েছে, তাই আপনার Gradle বিল্ড স্ক্রিপ্টে externalNativeBuild বিভাগগুলি সরিয়ে দিন। এই বিভাগগুলি আপনার C/C++ কোড কম্পাইল করার জন্য CMake বা ndk-build আহ্বান করতে ব্যবহৃত হয়েছিল, কিন্তু আর প্রয়োজন নেই।

  • MSBUILD_NDK_VERSION : আপনার প্রোজেক্ট তৈরি করতে ব্যবহার করার জন্য NDK-এর সংস্করণ। চিত্র 5-এ দেখানো প্রকল্প সম্পত্তি পৃষ্ঠায় Android NDK সংস্করণ বাক্সে এই মানটি সেট করুন।


    চিত্র 5অ্যান্ড্রয়েড এনডিকে সংস্করণ সম্পত্তি

    Gradle বিল্ড স্ক্রিপ্টটি এই মানটিতে ndkVersion সেট করা উচিত, যেমন দেখানো হয়েছে:

    গ্রোভি

    android {
      // ...
    
      ndkVersion MSBUILD_NDK_VERSION
    
      // ...
    }
    

    কোটলিন

    android {
      // ...
    
      ndkVersion = MSBUILD_NDK_VERSION
    
      // ...
    }
    

    আরও তথ্যের জন্য, Android Studio বিষয় দেখুন NDK এবং CMake ইনস্টল এবং কনফিগার করুন