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

উপরের চিত্রে চিত্রিত হিসাবে, GameActivity নিম্নলিখিত ফাংশনগুলি সম্পাদন করে:
- জাভা-সাইড কম্পোনেন্টের মাধ্যমে অ্যান্ড্রয়েড ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্ট করা।
- অ্যাপ সাইকেল কমান্ড, ইনপুট ইভেন্ট এবং নেটিভ সাইডে ইনপুট টেক্সট পাস করা।
- তিনটি যৌক্তিক উপাদানে C/C++ সোর্স কোডের মডেলিং:
- GameActivity-এর JNI ফাংশন, যা সরাসরি GameActivity-এর Java কার্যকারিতা সমর্থন করে এবং ঘটনাগুলিকে
native_app_glueসারিবদ্ধ করে। -
native_app_glue, যা বেশিরভাগই তার নিজস্ব নেটিভ থ্রেডে চলে (অ্যাপ্লিকেশনের মূল থ্রেড থেকে আলাদা), এবং এর লুপারের সাহায্যে কাজগুলি চালায়। - অ্যাপ্লিকেশানের গেম কোড, যা
native_app_glueমধ্যে সারিবদ্ধ ইভেন্টগুলি পোল করে এবং প্রক্রিয়া করে এবংnative_app_glueথ্রেডের মধ্যে গেম কোড কার্যকর করে।
- GameActivity-এর JNI ফাংশন, যা সরাসরি GameActivity-এর Java কার্যকারিতা সমর্থন করে এবং ঘটনাগুলিকে
GameActivity মাধ্যমে, আপনি আপনার মূল গেম ডেভেলপমেন্টে ফোকাস করতে পারেন এবং JNI কোডের সাথে কাজ করার জন্য অতিরিক্ত সময় ব্যয় করা এড়াতে পারেন।
আপনি যদি ইতিমধ্যেই NativeActivity এর সাথে পরিচিত হন, তাহলে GameActivity এবং NativeActivity মধ্যে প্রধান পার্থক্যগুলি নিম্নরূপ:
-
GameActivityএকটিSurfaceViewরেন্ডার করে, যা গেমগুলির জন্য অন্যান্য UI উপাদানগুলির সাথে যোগাযোগ করা আরও সহজ করে তোলে। - স্পর্শ এবং মূল ইনপুট ইভেন্টের জন্য,
NativeActivityব্যবহার করেInputQueueথেকে আলাদা,android_input_bufferইন্টারফেসের সাথেGameActivityসম্পূর্ণ নতুন প্রয়োগ রয়েছে। -
GameActivityহলAppCompatActivityএর একটি প্রাপ্ত শ্রেণী, যা আপনাকে নির্বিঘ্নে অন্যান্য Jetpack উপাদান ব্যবহার করতে দেয়।ActionBar,Fragmentএবং অন্যান্য সমস্ত উপলব্ধ। -
GameActivityGameTextInput লাইব্রেরি সংহত করে পাঠ্য ইনপুট কার্যকারিতা যোগ করে। -
GameActivityথেকে প্রাপ্ত অ্যাপগুলি একটি লাইব্রেরিতে C/C++ কোডের তিনটি অংশ তৈরি করবে বলে আশা করা হচ্ছে। অন্যদিকে,NativeActivityএর JNI ফাংশনগুলি ফ্রেমওয়ার্কের একটি অংশ (সর্বদা OS দ্বারা লোড করা হয়)৷ তাই, শুধুমাত্রnative_app_glueএবং অ্যাপ্লিকেশনের C/C++ কোড একটি লাইব্রেরিতে নির্মিত হবে বলে আশা করা হচ্ছে। -
NativeActivityঅ্যান্ড্রয়েড ফ্রেমওয়ার্কের একটি অংশ এবং এটির রিলিজ চক্র (সাধারণত বার্ষিক) অনুসরণ করে।GameActivityহল জেটপ্যাক লাইব্রেরির একটি অংশ, যার অনেক বেশি ঘন ঘন রিলিজ চক্র রয়েছে (সাধারণত দ্বি-সাপ্তাহিক); নতুন বৈশিষ্ট্য এবং বাগ সংশোধন অনেক দ্রুত আসতে পারে.
রিলিজ অবস্থান
GameActivity লাইব্রেরি নিম্নলিখিত চ্যানেলগুলিতে উপলব্ধ:
- অ্যান্ড্রয়েড জেটপ্যাক লাইব্রেরির একটি অংশ হিসাবে (প্রস্তাবিত)
- AOSP সোর্স কোড হিসাবে
প্রিফ্যাব ফরম্যাট ব্যবহার করে সমস্ত রিলিজ চ্যানেলে C/C++ কোড সোর্স কোড হিসেবে দেওয়া হয়। গেমঅ্যাক্টিভিটি সংস্করণ 1.2.2 বিতরণে একটি স্ট্যাটিক লাইব্রেরি যোগ করে। এই সংস্করণ থেকে শুরু করে এবং পরে, আমরা আপনাকে সোর্স কোডের পরিবর্তে স্ট্যাটিক লাইব্রেরি ব্যবহার করার পরামর্শ দিই।
জেটপ্যাক লাইব্রেরির বিষয়বস্তু
জেটপ্যাক লাইব্রেরির সাথে, গেমঅ্যাক্টিভিটি একটি 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 এর সাথে শুরু করুন দেখুন।
AOSP সোর্স কোডের বিষয়বস্তু
AOSP সর্বদা সাম্প্রতিক সোর্স কোড ধারণ করে। আপনার নিজস্ব রিলিজ তৈরি করতে বা আপনার বিল্ড এনভায়রনমেন্টে সোর্সকে সরাসরি সংহত করতে [বিল্ড নির্দেশাবলী][গেম অ্যাক্টিভিটি বাস্তবায়ন]{: .external} অনুসরণ করুন। C/C++ সোর্স কোড জেটপ্যাক লাইব্রেরির মতো ফাইল কাঠামোতে সংরক্ষিত হয়।
ইন্টিগ্রেশন গাইড
আপনার অ্যাপ্লিকেশনগুলিতে GameActivity সংহত করতে এই নির্দেশিকাগুলি অনুসরণ করুন:
অতিরিক্ত সম্পদ
GameActivity সম্পর্কে আরও জানতে, নিম্নলিখিতগুলি দেখুন:
- গেমঅ্যাক্টিভিটি এবং AGDK রিলিজ নোট ।
- GameActivity-এ GameTextInput ব্যবহার করুন ।
- নেটিভ অ্যাক্টিভিটি মাইগ্রেশন গাইড ।
- গেম অ্যাক্টিভিটি রেফারেন্স ডকুমেন্টেশন ।
- গেমঅ্যাক্টিভিটি বাস্তবায়ন ।
প্রতিক্রিয়া
বাগ রিপোর্ট করতে বা GameActivity-তে নতুন বৈশিষ্ট্যের অনুরোধ করতে, GameActivity সমস্যা ট্র্যাকার ব্যবহার করুন।