أدوات التطوير لنظام Android

يوفر TensorFlow Lite عددًا من الأدوات لدمج النماذج في تطبيقات Android. توضّح هذه الصفحة أدوات التطوير المستخدمة في إنشاء التطبيقات باستخدام Kotlin وJava وC++ ، بالإضافة إلى دعم تطوير TensorFlow Lite في "استوديو Android".

أدوات للإنشاء باستخدام لغتَي Kotlin وJava

توضّح الأقسام التالية أدوات التطوير في TensorFlow Lite التي تستخدم لغتَي Kotlin وJava.

مكتبة TensorFlow Lite

استخدِم مكتبة TensorFlow Lite في تطبيق Android عن طريق إضافة AAR المستضاف في MavenCentral إلى مشروع التطوير.

يمكنك تحديد ذلك في تبعيات build.gradle على النحو التالي:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:+'
}

إذا كنت تستخدم لقطات ليلية، فتأكد من إضافة مستودع لقطات Sonatype إلى مشروعك.

يتضمّن تطبيق AAR هذا برامج ثنائية لجميع Android ABIs. يمكنك تقليل حجم البرنامج الثنائي لتطبيقك من خلال تضمين واجهات التطبيق الثنائية (ABI) التي تحتاج إلى دعمها فقط.

يجب حذف واجهات التطبيق الثنائية (ABI) الخاصة بـ x86 وx86_64 وarm32 في معظم الحالات ما لم تكن تستهدف أجهزة معيّنة. يمكنك ضبط ذلك باستخدام إعدادات Gradle التالية. ويشمل ذلك على وجه التحديد armeabi-v7a وarm64-v8a فقط، ويجب أن يشمل معظم أجهزة Android الحديثة.

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

لمزيد من المعلومات حول abiFilters، يمكنك الاطّلاع على Android ABIs في مستندات NDK على Android.

مكتبة دعم TensorFlow Lite

تُسهل مكتبة دعم Android TensorFlow Lite دمج النماذج في تطبيقك. توفّر واجهات برمجة تطبيقات عالية المستوى تساعد في تحويل بيانات الإدخال الأوليّة إلى النموذج الذي يتطلبه النموذج، وتفسير ناتج النموذج، ما يقلّل من مقدار الرمز النموذجي المطلوب.

وهي تدعم تنسيقات البيانات الشائعة للمدخلات والمخرجات، بما في ذلك الصور والمصفوفات. كما توفر هذه التقنية وحدات قبل وما بعد المعالجة تؤدي مهام مثل تغيير حجم الصور واقتصاصها.

استخدِم مكتبة الدعم في تطبيق Android من خلال تضمين TensorFlow Lite لمكتبة الدعم AAR المستضافة في MavenCentral.

يمكنك تحديد ذلك في تبعيات build.gradle على النحو التالي:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-support:+'
}

إذا كنت تستخدم لقطات ليلية، فتأكد من إضافة مستودع لقطات Sonatype إلى مشروعك.

للحصول على تعليمات حول كيفية البدء، يُرجى الاطّلاع على مكتبة دعم TensorFlow Lite Android.

الحد الأدنى لإصدارات حزمة تطوير البرامج (SDK) لنظام التشغيل Android للمكتبات

المكتبة minSdkVersion متطلبات الجهاز
tensorflow-lite 21 -
tensorflow-lite-gpu 21 GLES 3.1 أو OpenCL (متاحان فقط فقط على واجهة برمجة التطبيقات 21 والإصدارات الأحدث)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

استخدام "استوديو Android"

بالإضافة إلى مكتبات التطوير الموضّحة أعلاه، يوفّر "استوديو Android" أيضًا دعمًا لدمج نماذج TensorFlow Lite، كما هو موضَّح أدناه.

ربط نموذج تعلُّم الآلة في Android Studio

تتيح لك ميزة "ربط نماذج تعلُّم الآلة" في الإصدار 4.1 من "استوديو Android" والإصدارات الأحدث استيراد ملفات نماذج .tflite إلى تطبيق Android الحالي وإنشاء فئات للواجهة لتسهيل دمج الرمز البرمجي مع نموذج.

لاستيراد نموذج TensorFlow Lite (TFLite):

  1. انقر بزر الماوس الأيمن على الوحدة التي تريد استخدام نموذج TFLite عليها أو انقر على ملف > جديد > غير ذلك > نموذج TensorFlow Lite.

  2. اختَر موقع ملف TensorFlow Lite. يُرجى العِلم أنّ هذه الأداة تضبط تبعية الوحدة باستخدام ربط نموذج تعلُّم الآلة وتضيف تلقائيًا جميع التبعيات المطلوبة إلى ملف build.gradle في وحدة Android.

  3. انقر على Finish لبدء عملية الاستيراد. عند انتهاء عملية الاستيراد، تعرض الأداة شاشة تصف النموذج، بما في ذلك مولدات المدخلات والمخرجات.

  4. لبدء استخدام النموذج، اختَر Kotlin أو Java، وانسخ الرمز والصقه في القسم عيّنة التعليمة البرمجية.

يمكنك الرجوع إلى شاشة معلومات النموذج من خلال النقر مرّتين على النموذج TensorFlow Lite ضمن دليل ml في "استوديو Android". لمزيد من المعلومات حول استخدام ميزة "ربط مودل" في "استوديو Android"، يمكنك الاطّلاع على ملاحظات الإصدار في "استوديو Android". للحصول على نظرة عامة حول استخدام ربط النماذج في "استوديو Android"، يُرجى الاطّلاع على مثال الرمز البرمجي instructions.

أدوات للإنشاء باستخدام C وC++

صُممت مكتبات C وC++ في TensorFlow Lite بشكل أساسي للمطوِّرين الذين يستخدمون Android Native Development Kit لإنشاء تطبيقاتهم. هناك طريقتان لاستخدام TFLite من خلال C++ إذا أنشأت تطبيقك باستخدام NDK:

واجهة برمجة تطبيقات TFLite C

ويُعد استخدام واجهة برمجة التطبيقات هذه الطريقة المقترحة للمطوّرين الذين يستخدمون NDK. نزِّل ملف TensorFlow Lite AAR الذي تمت استضافته في ملف MavenCentral، وأعِد تسميته إلى tensorflow-lite-*.zip، وفك ضغطه. يجب تضمين ملفات العناوين الأربعة في المجلدَين headers/tensorflow/lite/ وheaders/tensorflow/lite/c/ والمكتبة الديناميكية libtensorflowlite_jni.so ذات الصلة في المجلد jni/ ضِمن مشروع NDK.

يحتوي ملف العنوان c_api.h على مستندات أساسية حول استخدام TFLite C API.

واجهة برمجة تطبيقات TFLite C++

إذا كنت ترغب في استخدام TFLite من خلال C++ API، يمكنك إنشاء المكتبات المشتركة في C++:

32bit armeabi-v7a:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

64bit Arm64-v8a:

bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so

ولا تتوفّر حاليًا طريقة مباشرة لاستخراج جميع ملفات العناوين المطلوبة، لذا يجب تضمين جميع ملفات العناوين في tensorflow/lite/ من مستودع TensorFlow. بالإضافة إلى ذلك، ستحتاج إلى ملفات العناوين من FlatBuffers وAbseil.