GameActivity بخشی از کیت توسعه بازی اندروید .

GameActivity یک کتابخانه Jetpack است که برای کمک به بازی های اندروید در پردازش دستورات چرخه برنامه، رویدادهای ورودی و ورودی متن در کد C/C++ برنامه طراحی شده است. GameActivity از نسل مستقیم NativeActivity است و معماری مشابهی دارد:

alt_text

همانطور که در نمودار بالا نشان داده شده است، GameActivity عملکردهای زیر را انجام می دهد:

  • تعامل با فریم ورک اندروید از طریق کامپوننت جاوا.
  • ارسال دستورات چرخه برنامه، رویدادهای ورودی و متن ورودی به سمت اصلی.
  • مدل سازی کد منبع C/C++ به سه جزء منطقی:
    • توابع JNI GameActivity که مستقیماً از عملکرد جاوا GameActivity پشتیبانی می کند و رویدادها را در native_app_glue قرار می دهد.
    • native_app_glue ، که بیشتر در رشته اصلی خود (متفاوت از رشته اصلی برنامه) اجرا می شود و وظایف را با حلقه خود اجرا می کند.
    • کد بازی برنامه، که رویدادهای ردیف شده در داخل native_app_glue را نظرسنجی و پردازش می کند و کد بازی را در رشته native_app_glue اجرا می کند.

با GameActivity ، می توانید بر روی توسعه بازی اصلی خود تمرکز کنید و از صرف زمان زیاد برای مقابله با کد JNI خودداری کنید.

اگر قبلاً با NativeActivity آشنا هستید، تفاوت های عمده بین GameActivity و NativeActivity به شرح زیر است:

  • GameActivity به SurfaceView تبدیل می شود و تعامل بازی ها با سایر اجزای رابط کاربری را بسیار آسان تر می کند.
  • برای رویدادهای ورودی لمسی و کلیدی، GameActivity یک پیاده سازی کاملاً جدید با رابط android_input_buffer دارد، جدا از InputQueue که NativeActivity استفاده می کند.
  • GameActivity یک کلاس مشتق شده از AppCompatActivity است که به شما امکان می دهد به طور یکپارچه از سایر اجزای Jetpack استفاده کنید. ActionBar ، Fragment و موارد دیگر همگی در دسترس هستند.
  • GameActivity عملکرد ورودی متن را با ادغام کتابخانه GameTextInput اضافه می کند.
  • برنامه های مشتق شده از GameActivity انتظار می رود هر سه بخش کد C/C++ را در یک کتابخانه بسازند. از سوی دیگر، توابع JNI NativeActivity بخشی از چارچوب هستند (همیشه توسط سیستم عامل بارگذاری می شوند). از این رو، انتظار می رود که فقط native_app_glue و کد C/C++ برنامه در یک کتابخانه ساخته شوند.
  • NativeActivity بخشی از چارچوب اندروید است و از چرخه انتشار آن (معمولا سالانه) پیروی می کند. GameActivity بخشی از کتابخانه Jetpack است که چرخه انتشار بسیار بیشتری دارد (معمولاً هر دو هفته). ویژگی‌های جدید و رفع اشکال می‌توانند خیلی سریع‌تر وارد شوند.

مکان‌های انتشار

کتابخانه GameActivity در کانال های زیر موجود است:

کد C/C++ به عنوان کد منبع در همه کانال‌های انتشار با استفاده از قالب Prefab ارائه می‌شود. GameActivity نسخه 1.2.2 یک کتابخانه ثابت به توزیع اضافه می کند. با شروع با این نسخه و نسخه های بعدی، توصیه می کنیم به جای کد منبع از کتابخانه ایستا استفاده کنید.

محتویات کتابخانه Jetpack و بسته فشرده AGDK

با کتابخانه Jetpack و کانال های بسته فشرده AGDK، GameActivity با AAR منتشر می شود. این AAR شامل اجزای اصلی زیر است:

  • یک فایل JAR برای کد جاوا
  • کتابخانه استاتیک C/C++ game-activity_static همراه با GameActivity نسخه 1.2.2 و جدیدتر موجود است.
  • کد منبع C/C++ (در زیر پوشه /prefab )

دستورالعمل‌های یکپارچه‌سازی مرتبط با این صفحه فرض می‌کنند که می‌توانید از Prefab در سیستم ساخت خود استفاده کنید. در غیر این صورت، می توانید کد منبع بسته بندی شده در پوشه prefab/modules/game-activity/include در سیستم ساخت خود کپی کنید و مراحل یکپارچه سازی لازم را انجام دهید. ساختار فایل مشابهی برای نسخه های تحت androidx برای کتابخانه Android Jetpack وجود دارد. به طور پیش فرض، gradle AAR ها را در فهرست کش خود باز می کند (~/.gradle/caches/...). می توانید کد منبع C/C++ را با جستجوی prefab/modules/game-activity/include و انتخاب مکان تحت نسخه نسخه مورد نظر خود بیابید.

برای دستورالعمل‌های مربوط به ادغام با استفاده از کتابخانه Jetpack، به شروع با GameActivity مراجعه کنید.

برای بسته فشرده کتابخانه AGDK ، این مراحل را دنبال کنید تا کد C/C++ را دریافت کنید:

  1. بسته دانلود شده را از حالت فشرده خارج کنید.
  2. در بسته زیپ نشده، GameActivity-release.aar را از حالت فشرده خارج کنید.
  3. همه کد منبع C/C++ را در prefab/modules/game-activity/include پیدا و کپی کنید، شامل موارد زیر است:
    • game-activity برای کد C/C++ مربوط به GameActivity
    • game-text-input برای کد C/C++ مربوط به GameTextInput

محتوای کد منبع AOSP

AOSP همیشه حاوی جدیدترین کد منبع است. دستورالعمل های ساخت را دنبال کنید تا نسخه های خود را ایجاد کنید یا منبع را مستقیماً در محیط ساخت خود ادغام کنید. کد منبع C/C++ در یک ساختار فایل شبیه به آنهایی که برای کتابخانه Jetpack و بسته فشرده AGDK ذخیره می شود.

راهنمای ادغام

برای ادغام GameActivity در برنامه های خود این راهنماها را دنبال کنید:

منابع اضافی

برای کسب اطلاعات بیشتر در مورد GameActivity ، به موارد زیر مراجعه کنید:

بازخورد

برای گزارش اشکال یا درخواست ویژگی‌های جدید به GameActivity، از ردیاب مشکل GameActivity استفاده کنید.

،

GameActivity بخشی از کیت توسعه بازی اندروید .

GameActivity یک کتابخانه Jetpack است که برای کمک به بازی های اندروید در پردازش دستورات چرخه برنامه، رویدادهای ورودی و ورودی متن در کد C/C++ برنامه طراحی شده است. GameActivity از نسل مستقیم NativeActivity است و معماری مشابهی دارد:

alt_text

همانطور که در نمودار بالا نشان داده شده است، GameActivity عملکردهای زیر را انجام می دهد:

  • تعامل با فریم ورک اندروید از طریق کامپوننت جاوا.
  • ارسال دستورات چرخه برنامه، رویدادهای ورودی و متن ورودی به سمت اصلی.
  • مدل سازی کد منبع C/C++ به سه جزء منطقی:
    • توابع JNI GameActivity که مستقیماً از عملکرد جاوا GameActivity پشتیبانی می کند و رویدادها را در native_app_glue قرار می دهد.
    • native_app_glue ، که بیشتر در رشته اصلی خود (متفاوت از رشته اصلی برنامه) اجرا می شود و وظایف را با حلقه خود اجرا می کند.
    • کد بازی برنامه، که رویدادهای ردیف شده در داخل native_app_glue را نظرسنجی و پردازش می کند و کد بازی را در رشته native_app_glue اجرا می کند.

با GameActivity ، می توانید بر روی توسعه بازی اصلی خود تمرکز کنید و از صرف زمان زیاد برای مقابله با کد JNI خودداری کنید.

اگر قبلاً با NativeActivity آشنا هستید، تفاوت های عمده بین GameActivity و NativeActivity به شرح زیر است:

  • GameActivity به SurfaceView تبدیل می‌شود و تعامل بازی‌ها با سایر اجزای رابط کاربری را بسیار آسان‌تر می‌کند.
  • برای رویدادهای ورودی لمسی و کلیدی، GameActivity یک پیاده سازی کاملاً جدید با رابط android_input_buffer دارد، جدا از InputQueue که NativeActivity استفاده می کند.
  • GameActivity یک کلاس مشتق شده از AppCompatActivity است که به شما امکان می دهد به طور یکپارچه از سایر اجزای Jetpack استفاده کنید. ActionBar ، Fragment و موارد دیگر همگی در دسترس هستند.
  • GameActivity عملکرد ورودی متن را با ادغام کتابخانه GameTextInput اضافه می کند.
  • برنامه های مشتق شده از GameActivity انتظار می رود هر سه قسمت کد C/C++ را در یک کتابخانه بسازند. از سوی دیگر، توابع JNI NativeActivity بخشی از چارچوب هستند (همیشه توسط سیستم عامل بارگذاری می شوند). از این رو، انتظار می‌رود که فقط native_app_glue و کد C/C++ برنامه در یک کتابخانه ساخته شوند.
  • NativeActivity بخشی از چارچوب اندروید است و از چرخه انتشار آن (معمولا سالانه) پیروی می کند. GameActivity بخشی از کتابخانه Jetpack است که چرخه انتشار بسیار بیشتری دارد (معمولاً هر دو هفته). ویژگی‌های جدید و رفع اشکال می‌توانند خیلی سریع‌تر وارد شوند.

مکان‌های انتشار

کتابخانه GameActivity در کانال های زیر موجود است:

کد C/C++ به عنوان کد منبع در همه کانال‌های انتشار با استفاده از قالب Prefab ارائه می‌شود. GameActivity نسخه 1.2.2 یک کتابخانه ثابت به توزیع اضافه می کند. با شروع با این نسخه و نسخه های بعدی، توصیه می کنیم به جای کد منبع از کتابخانه ایستا استفاده کنید.

محتویات کتابخانه Jetpack و بسته فشرده AGDK

با کتابخانه Jetpack و کانال های بسته فشرده AGDK، GameActivity با AAR منتشر می شود. این AAR شامل اجزای اصلی زیر است:

  • یک فایل JAR برای کد جاوا
  • کتابخانه استاتیک C/C++ game-activity_static همراه با GameActivity نسخه 1.2.2 و جدیدتر موجود است.
  • کد منبع C/C++ (در زیر پوشه /prefab )

دستورالعمل‌های یکپارچه‌سازی مرتبط با این صفحه فرض می‌کنند که می‌توانید از Prefab در سیستم ساخت خود استفاده کنید. در غیر این صورت، می توانید کد منبع بسته بندی شده در پوشه prefab/modules/game-activity/include در سیستم ساخت خود کپی کنید و مراحل یکپارچه سازی لازم را انجام دهید. ساختار فایل مشابهی برای نسخه های تحت androidx برای کتابخانه Android Jetpack وجود دارد. به طور پیش فرض، gradle AAR ها را در فهرست کش خود باز می کند (~/.gradle/caches/...). می توانید کد منبع C/C++ را با جستجوی prefab/modules/game-activity/include و انتخاب مکان تحت نسخه نسخه مورد نظر خود بیابید.

برای دستورالعمل‌های مربوط به ادغام با استفاده از کتابخانه Jetpack، به شروع با GameActivity مراجعه کنید.

برای بسته فشرده کتابخانه AGDK ، این مراحل را دنبال کنید تا کد C/C++ را دریافت کنید:

  1. بسته دانلود شده را از حالت فشرده خارج کنید.
  2. در بسته زیپ نشده، GameActivity-release.aar را از حالت فشرده خارج کنید.
  3. همه کد منبع C/C++ را در prefab/modules/game-activity/include پیدا و کپی کنید، شامل موارد زیر است:
    • game-activity برای کد C/C++ مربوط به GameActivity
    • game-text-input برای کد C/C++ مربوط به GameTextInput

محتوای کد منبع AOSP

AOSP همیشه حاوی جدیدترین کد منبع است. دستورالعمل های ساخت را دنبال کنید تا نسخه های خود را ایجاد کنید یا منبع را مستقیماً در محیط ساخت خود ادغام کنید. کد منبع C/C++ در یک ساختار فایل شبیه به آنهایی که برای کتابخانه Jetpack و بسته فشرده AGDK ذخیره می شود.

راهنمای ادغام

برای ادغام GameActivity در برنامه های خود این راهنماها را دنبال کنید:

منابع اضافی

برای کسب اطلاعات بیشتر در مورد GameActivity ، به موارد زیر مراجعه کنید:

بازخورد

برای گزارش اشکال یا درخواست ویژگی‌های جدید به GameActivity، از ردیاب مشکل GameActivity استفاده کنید.