অ্যান্ড্রয়েড গেম ডেভেলপমেন্ট কিটের গেম অ্যাক্টিভিটি অংশ।

GameActivity হল একটি জেটপ্যাক লাইব্রেরি যা অ্যাপ সাইকেল কমান্ড, ইনপুট ইভেন্ট এবং অ্যাপ্লিকেশনের C/C++ কোডে টেক্সট ইনপুট প্রক্রিয়াকরণে Android গেমগুলিকে সহায়তা করার জন্য ডিজাইন করা হয়েছে। GameActivity NativeActivity সরাসরি বংশধর এবং একই ধরনের আর্কিটেকচার শেয়ার করে:

alt_text

উপরের চিত্রে চিত্রিত হিসাবে, GameActivity নিম্নলিখিত ফাংশনগুলি সম্পাদন করে:

  • জাভা-সাইড কম্পোনেন্টের মাধ্যমে অ্যান্ড্রয়েড ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্ট করা।
  • অ্যাপ সাইকেল কমান্ড, ইনপুট ইভেন্ট এবং নেটিভ সাইডে ইনপুট টেক্সট পাস করা।
  • তিনটি যৌক্তিক উপাদানে C/C++ সোর্স কোডের মডেলিং:
    • GameActivity-এর JNI ফাংশন, যা সরাসরি GameActivity-এর Java কার্যকারিতা সমর্থন করে এবং ঘটনাগুলিকে native_app_glue সারিবদ্ধ করে।
    • native_app_glue , যা বেশিরভাগই তার নিজস্ব নেটিভ থ্রেডে চলে (অ্যাপ্লিকেশনের মূল থ্রেড থেকে আলাদা), এবং এর লুপারের সাহায্যে কাজগুলি চালায়।
    • অ্যাপ্লিকেশানের গেম কোড, যা native_app_glue মধ্যে সারিবদ্ধ ইভেন্টগুলি পোল করে এবং প্রক্রিয়া করে এবং native_app_glue থ্রেডের মধ্যে গেম কোড কার্যকর করে।

GameActivity মাধ্যমে, আপনি আপনার মূল গেম ডেভেলপমেন্টে ফোকাস করতে পারেন এবং JNI কোডের সাথে কাজ করার জন্য অতিরিক্ত সময় ব্যয় করা এড়াতে পারেন।

আপনি যদি ইতিমধ্যেই NativeActivity সাথে পরিচিত হন, তাহলে GameActivity এবং NativeActivity এর মধ্যে প্রধান পার্থক্যগুলি নিম্নরূপ:

  • GameActivity একটি SurfaceView রেন্ডার করে, যা গেমগুলির জন্য অন্যান্য UI উপাদানগুলির সাথে যোগাযোগ করা আরও সহজ করে তোলে।
  • স্পর্শ এবং মূল ইনপুট ইভেন্টের জন্য, NativeActivity ব্যবহার করে InputQueue থেকে আলাদা, android_input_buffer ইন্টারফেসের সাথে GameActivity সম্পূর্ণ নতুন প্রয়োগ রয়েছে।
  • GameActivity হল AppCompatActivity এর একটি প্রাপ্ত শ্রেণী, যা আপনাকে নির্বিঘ্নে অন্যান্য Jetpack উপাদান ব্যবহার করতে দেয়। ActionBar , Fragment এবং অন্যান্য সমস্ত উপলব্ধ।
  • GameActivity GameTextInput লাইব্রেরি সংহত করে পাঠ্য ইনপুট কার্যকারিতা যোগ করে।
  • GameActivity থেকে প্রাপ্ত অ্যাপগুলি একটি লাইব্রেরিতে C/C++ কোডের তিনটি অংশ তৈরি করবে বলে আশা করা হচ্ছে। অন্যদিকে, NativeActivity এর JNI ফাংশনগুলি ফ্রেমওয়ার্কের একটি অংশ (সর্বদা OS দ্বারা লোড করা হয়)৷ তাই, শুধুমাত্র native_app_glue এবং অ্যাপ্লিকেশনের C/C++ কোড একটি লাইব্রেরিতে নির্মিত হবে বলে আশা করা হচ্ছে।
  • NativeActivity অ্যান্ড্রয়েড ফ্রেমওয়ার্কের একটি অংশ এবং এটির রিলিজ চক্র (সাধারণত বার্ষিক) অনুসরণ করে। GameActivity হল জেটপ্যাক লাইব্রেরির একটি অংশ, যার অনেক বেশি ঘন ঘন রিলিজ চক্র রয়েছে (সাধারণত দ্বি-সাপ্তাহিক); নতুন বৈশিষ্ট্য এবং বাগ সংশোধন অনেক দ্রুত আসতে পারে.

রিলিজ অবস্থান

GameActivity লাইব্রেরি নিম্নলিখিত চ্যানেলগুলিতে উপলব্ধ:

প্রিফ্যাব ফরম্যাট ব্যবহার করে সমস্ত রিলিজ চ্যানেলে C/C++ কোড সোর্স কোড হিসেবে দেওয়া হয়। গেমঅ্যাক্টিভিটি সংস্করণ 1.2.2 বিতরণে একটি স্ট্যাটিক লাইব্রেরি যোগ করে। এই সংস্করণ থেকে শুরু করে এবং পরে, আমরা আপনাকে সোর্স কোডের পরিবর্তে স্ট্যাটিক লাইব্রেরি ব্যবহার করার পরামর্শ দিই।

জেটপ্যাক লাইব্রেরি এবং AGDK জিপ প্যাকেজের বিষয়বস্তু

জেটপ্যাক লাইব্রেরি এবং AGDK জিপ প্যাকেজ চ্যানেলগুলির সাথে, গেমঅ্যাক্টিভিটি একটি AAR সহ প্রকাশ করা হয়। এই AAR নিম্নলিখিত প্রধান উপাদান ধারণ করে:

  • জাভা কোডের জন্য একটি JAR ফাইল
  • C/C++ স্ট্যাটিক লাইব্রেরি game-activity_static গেম অ্যাক্টিভিটি সংস্করণ 1.2.2 এবং পরবর্তীতে অন্তর্ভুক্ত।
  • C/C++ সোর্স কোড ( /prefab ফোল্ডারের অধীনে)

এই পৃষ্ঠা থেকে সংযুক্ত ইন্টিগ্রেশন নির্দেশাবলী অনুমান করে যে আপনি আপনার বিল্ড সিস্টেমে Prefab ব্যবহার করতে পারেন; অন্যথায়, আপনি আপনার বিল্ড সিস্টেমে prefab/modules/game-activity/include ফোল্ডারের অধীনে প্যাক করা সোর্স কোডটি কপি করতে পারেন এবং প্রয়োজনীয় ইন্টিগ্রেশন পদক্ষেপগুলি সম্পাদন করতে পারেন। অ্যান্ড্রয়েড জেটপ্যাক লাইব্রেরির জন্য androidx অধীনে রিলিজের জন্য অনুরূপ ফাইল কাঠামো বিদ্যমান; ডিফল্টরূপে, gradle এর ক্যাশে ডিরেক্টরিতে AARs আনপ্যাক করে (~/.gradle/caches/...)। আপনি prefab/modules/game-activity/include অনুসন্ধান করে এবং আপনার উদ্দিষ্ট রিলিজ সংস্করণের অধীনে অবস্থান বাছাই করে C/C++ সোর্স কোড খুঁজে পেতে পারেন।

Jetpack লাইব্রেরি ব্যবহার করে একীভূত করার নির্দেশাবলীর জন্য, GameActivity এর সাথে শুরু করুন দেখুন।

AGDK লাইব্রেরি জিপ প্যাকেজের জন্য, C/C++ কোড পেতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ডাউনলোড করা প্যাকেজটি আনজিপ করুন।
  2. আনজিপ করা প্যাকেজে, GameActivity-release.aar আনজিপ করুন।
  3. prefab/modules/game-activity/include অধীনে সমস্ত C/C++ সোর্স কোড খুঁজুন এবং অনুলিপি করুন, নিম্নলিখিতগুলি অন্তর্ভুক্ত করে:
    • GameActivity সম্পর্কিত C/C++ কোডের জন্য game-activity
    • GameTextInput সম্পর্কিত C/C++ কোডের জন্য game-text-input

AOSP সোর্স কোডের বিষয়বস্তু

AOSP সর্বদা সাম্প্রতিক সোর্স কোড ধারণ করে। আপনার নিজস্ব রিলিজ তৈরি করতে বা আপনার বিল্ড এনভায়রনমেন্টে সোর্সকে সরাসরি সংহত করতে বিল্ড নির্দেশাবলী অনুসরণ করুন। C/C++ সোর্স কোড জেটপ্যাক লাইব্রেরি এবং AGDK জিপ প্যাকেজের মতো ফাইল কাঠামোতে সংরক্ষিত হয়।

ইন্টিগ্রেশন গাইড

আপনার অ্যাপ্লিকেশনগুলিতে GameActivity সংহত করতে এই নির্দেশিকাগুলি অনুসরণ করুন:

অতিরিক্ত সম্পদ

GameActivity সম্পর্কে আরও জানতে, নিম্নলিখিতগুলি দেখুন:

প্রতিক্রিয়া

বাগ রিপোর্ট করতে বা GameActivity-তে নতুন বৈশিষ্ট্যের অনুরোধ করতে, GameActivity সমস্যা ট্র্যাকার ব্যবহার করুন।