تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
توضّح الأقسام التالية كيفية دمج مكتبة Tuning Fork في سلسلة أدواتك وكيفية استخدام الدوال التي توفّرها المكتبة. تتوفّر المكتبة كمكتبة ثابتة أو مشترَكة في "مكتبات AGDK".
بعد تنزيل حزمة SDK على جهازك وتسجيلها في نظام التحكّم بالمصادر، عليك إجراء التغييرات المدرَجة في الأقسام التالية على إعدادات الإصدار في مشروعك.
قبل البدء
يجب دمج مكتبة Android Frame Pacing
قبل دمج مكتبة Tuning Fork. وفي حال إجراء ذلك، يمكن لمكتبة Tuning Fork تسجيل وقت عرض اللقطة تلقائيًا، ولن تحتاج إلى استدعاء دوال القياس بنفسك.
يُرجى الاطّلاع على أدلة الدمج التالية للحصول على مزيد من المعلومات:
تربط الخطوات الواردة في قسم المكتبة الثابتة بشكل ثابت إصدارًا من مكتبة Tuning Fork تم تجميعه لواجهة التطبيق الثنائية (ABI) ومستوى واجهة برمجة التطبيقات وNDK وSTL المحدّدة. إذا لم يكن هذا الخيار متاحًا لإعداداتك، يمكنك بدلاً من ذلك الربط بالمكتبة المشتركة:
أضِف gamesdk/include إلى مسارات التضمين في برنامج التجميع.
يمنحك الربط الثابت مساحة أصغر بكثير للرمز البرمجي لأنّك لن تحتاج إلى تجميع المكتبة المشتركة libtuningfork.so.
استخدام CMake (مكتبة ثابتة فقط)
إذا كنت تستخدم CMake، اطّلِع على ملف
gamesdk/samples/tuningfork/insightsdemo/app/CMakeLists.txt للحصول على مثال
لإعداد CMake. ويتضمّن ملف أداة مساعدة،
gamesdk/samples/gamesdk.cmake، ينفّذ عمليات التحقّق النهائية، ويضيف مسارات التضمين المناسبة للمترجم، وينشئ هدفًا يمكنك استخدامه لربط المكتبة.
لاستخدام هذه الأداة، اتّبِع الخطوات التالية:
أدرِج هذا الملف في ملف CMakeLists.txt:
include("path/to/gamesdk/samples/gamesdk.cmake")
استدعِ الدالة add_gamesdk_target مع المجلد الذي يحتوي على
gamesdk: add_gamesdk_target(PACKAGE_DIR
path/to/gamesdk)
في ملف target_link_libraries الخاص بالمكتبة الأصلية، أضِف tuningfork كعنصر تابع (وswappy إذا كنت قد أضفت مكتبة Android Frame Pacing):
target_link_libraries(native-lib swappy tuningfork ...)
للحصول على معلومات حول الاستخدام المتقدّم لـ CMake، يُرجى الاطّلاع على ملف المصدر gamesdk.cmake.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["The following sections describe how to integrate the Tuning Fork library\ninto your toolchain and how to use the functions that the library provides. The\nlibrary is available as a static or shared library in the AGDK Libraries.\n\nAfter you've [downloaded the SDK](/games/sdk#download) to your machine and\nchecked it into your source control system, make the changes listed in the\nfollowing sections to your project's build settings.\n\nBefore you begin\n\nYou should integrate the [Android Frame Pacing library](/games/sdk/frame-pacing)\nbefore integrating the Tuning Fork library. If you do this, the\nTuning Fork library can automatically record frame time; there is no\nneed to explicitly call the tick functions yourself.\n\nSee the following integration guides for more information:\n\n- [Integrate Android Frame Pacing into your OpenGL renderer](/games/sdk/frame-pacing/opengl)\n- [Integrate Android Frame Pacing into your Vulkan renderer](/games/sdk/frame-pacing/vulkan)\n\nStatic library\n\nTo link your project to the static library, do the following:\n\n1. Add `gamesdk/include` to your compiler include paths.\n2. Add a path of the following form in your linker library paths:\n\n ```\n gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release\n ```\n\n Look in `gamesdk/libs` and pick the one that best suits your toolchain (for\n example, `gamesdk/libs/arm64-v8a_API24_NDK17_cpp_static_Release`).\n3. Add `-ltuningfork_static` to your linker command (and `-lswappy_static` if\n you integrated the Android Frame Pacing library).\n\n4. Add the `INTERNET` permission to your `AndroidManifest.xml` file:\n\n \u003cuses-permission android:name=\"android.permission.INTERNET\" /\u003e\n\nShared library\n\nThe steps in the [static library](#static-library) section statically link\nagainst a version of the Tuning Fork library compiled for the given ABI,\nAPI level, NDK, and STL combination. If the combination is not available for\nyour settings, you can instead link against the shared library:\n\n1. Add `gamesdk/include` to your compiler include paths.\n2. Add a path of the following form in your linker library paths:\n\n ```\n gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release/lib/tuningfork\n ```\n3. Add `-ltuningfork` to your linker command (and `-lswappy` if you integrated\n the Android Frame Pacing library).\n\n4. Add the `INTERNET` permission to your `AndroidManifest.xml` file:\n\n \u003cuses-permission android:name=\"android.permission.INTERNET\" /\u003e\n\nStatic linking gives you a much smaller code footprint as you don't need to\nbundle the `libtuningfork.so` shared library.\n\nUsing CMake (static library only)\n\nIf you are using CMake, see the\n`gamesdk/samples/tuningfork/insightsdemo/app/CMakeLists.txt` file for an example\nCMake configuration. It includes a utility file,\n`gamesdk/samples/gamesdk.cmake`, which performs final checks, adds the proper\ncompiler include paths, and generates a target that you can use to link the\nlibrary.\n\nTo use this utility, do the following:\n\n1. Include this file in your `CMakeLists.txt` file: `include(\"`\u003cvar translate=\"no\"\u003epath/to/gamesdk\u003c/var\u003e`/samples/gamesdk.cmake\")`\n2. Call the `add_gamesdk_target` function with the folder containing the gamesdk: `add_gamesdk_target(PACKAGE_DIR\n `\u003cvar translate=\"no\"\u003epath/to/gamesdk\u003c/var\u003e`)`\n3. In your `target_link_libraries` for your native library, add `tuningfork` as a dependency (and `swappy` if you integrated the Android Frame Pacing library): ` target_link_libraries(native-lib swappy tuningfork ...) `\n\n| **Note:** The path to the gamesdk used for `include` and `add_gamesdk_target` can either be absolute (for example, `/home/yourusername/gamesdk` or `C:\\Android\\gamesdk`) or relative to the `CMakeLists.txt` file.\n\nFor advanced usage of CMake, see the [`gamesdk.cmake` source file](https://android.googlesource.com/platform/frameworks/opt/gamesdk/+/refs/heads/master/samples/gamesdk.cmake)."]]