অ্যান্ড্রয়েড গেম ডেভেলপমেন্ট কিটের গেম অ্যাক্টিভিটি অংশ।
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
এবং অন্যান্য সমস্ত উপলব্ধ। -
GameActivity
GameTextInput লাইব্রেরি সংহত করে পাঠ্য ইনপুট কার্যকারিতা যোগ করে। -
GameActivity
থেকে প্রাপ্ত অ্যাপগুলি একটি লাইব্রেরিতে C/C++ কোডের তিনটি অংশ তৈরি করবে বলে আশা করা হচ্ছে। অন্যদিকে,NativeActivity
এর JNI ফাংশনগুলি ফ্রেমওয়ার্কের একটি অংশ (সর্বদা OS দ্বারা লোড করা হয়)৷ তাই, শুধুমাত্রnative_app_glue
এবং অ্যাপ্লিকেশনের C/C++ কোড একটি লাইব্রেরিতে নির্মিত হবে বলে আশা করা হচ্ছে। -
NativeActivity
অ্যান্ড্রয়েড ফ্রেমওয়ার্কের একটি অংশ এবং এটির রিলিজ চক্র (সাধারণত বার্ষিক) অনুসরণ করে।GameActivity
হল জেটপ্যাক লাইব্রেরির একটি অংশ, যার অনেক বেশি ঘন ঘন রিলিজ চক্র রয়েছে (সাধারণত দ্বি-সাপ্তাহিক); নতুন বৈশিষ্ট্য এবং বাগ সংশোধন অনেক দ্রুত আসতে পারে.
রিলিজ অবস্থান
GameActivity
লাইব্রেরি নিম্নলিখিত চ্যানেলগুলিতে উপলব্ধ:
- অ্যান্ড্রয়েড জেটপ্যাক লাইব্রেরির একটি অংশ হিসাবে (প্রস্তাবিত)
- একটি জিপ প্যাকেজ হিসাবে, AGDK ডাউনলোড পৃষ্ঠা থেকে ডাউনলোডযোগ্য
- AOSP সোর্স কোড হিসাবে
প্রিফ্যাব ফরম্যাট ব্যবহার করে সমস্ত রিলিজ চ্যানেলে 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++ কোড পেতে এই পদক্ষেপগুলি অনুসরণ করুন:
- ডাউনলোড করা প্যাকেজটি আনজিপ করুন।
- আনজিপ করা প্যাকেজে, GameActivity-release.aar আনজিপ করুন।
-
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
সম্পর্কে আরও জানতে, নিম্নলিখিতগুলি দেখুন:
- গেমঅ্যাক্টিভিটি এবং AGDK রিলিজ নোট ।
- GameActivity-এ GameTextInput ব্যবহার করুন ।
- নেটিভ অ্যাক্টিভিটি মাইগ্রেশন গাইড ।
- গেম অ্যাক্টিভিটি রেফারেন্স ডকুমেন্টেশন ।
- গেমঅ্যাক্টিভিটি বাস্তবায়ন ।
প্রতিক্রিয়া
বাগ রিপোর্ট করতে বা GameActivity-তে নতুন বৈশিষ্ট্যের অনুরোধ করতে, GameActivity সমস্যা ট্র্যাকার ব্যবহার করুন।