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

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

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

تصف الأقسام التالية أدوات التطوير لـ LiteRT التي تستخدم لغتا Kotlin وJava.

مكتبة LiteRT

استخدِم مكتبة LiteRT في تطبيق Android من خلال إضافة "التطبيق التلقائي للاقتراحات" المستضاف على MavenCentral لمشروع التطوير لديك.

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

dependencies {
    ...
    implementation 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

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

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

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

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

لمعرفة مزيد من المعلومات حول "abiFilters"، يُرجى الاطّلاع على Android. واجهات التطبيق الثنائية (ABI) في Android NDK التوثيق.

مكتبة دعم LiteRT

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

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

استخدِم "مكتبة الدعم" في تطبيق Android من خلال تضمين LiteRT. مكتبة الدعم بميزة "الاقتراحات المطبّقة تلقائيًا" المستضافة على MavenCentral.

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

dependencies {
    implementation 'com.google.ai.edge.litert:litert-support:+'
}

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

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

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

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

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

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

لاستيراد نموذج LiteRT:

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

  2. حدد موقع ملف LiteRT. لاحظ أن الأدوات يضبط تبعية الوحدة من خلال ربط نموذج تعلُّم الآلة لإضافة جميع التبعيات المطلوبة إلى ملف build.gradle في وحدة Android الخاصة بك.

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

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

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

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

مكتبات C وC++ لـ LiteRT الغرض منها بشكل أساسي مطوّري البرامج الذين يستخدمون "حزمة تطوير البرامج (NDK) الأصلية لنظام Android" لإنشاء تطبيقاتهم هناك طريقتان لاستخدام LiteRT من خلال C++ إذا كنت تنشئ تطبيقك باستخدام NDK:

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

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

يحتوي ملف العنوان c_api.h على مستندات أساسية حول استخدام LiteRT C واجهة برمجة التطبيقات.

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

إذا كنت ترغب في استخدام LiteRT من خلال واجهة برمجة تطبيقات C++، فيمكنك إنشاء ملف CSV مشترك المكتبات:

32bit armeabi-v7a:

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

64 بت arm64-v8a:

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

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