![]() |
|
Android على Lazarus FPC بالطريقة المبسطة - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : متتديات باسكال Pascal (https://delphi4arab.net/forum/forumdisplay.php?fid=7) +--- قسم : Lazarus - Free Pascal - CrossKylix - Kylix - CrossVCL (https://delphi4arab.net/forum/forumdisplay.php?fid=34) +--- الموضوع : Android على Lazarus FPC بالطريقة المبسطة (/showthread.php?tid=9103) |
Android على Lazarus FPC بالطريقة المبسطة - kachwahed - 12-01-2018 السلام عليكم ورحمة الله، يبدو أن تطوير تطبيقات Android باستخدام Lazarus ليس بالأمر السهل خاصة عند البداية، رغم أن FPC يدعم -من أيامه الأولى- الترجمة (Compile) على جميع المنصات بما فيها ARM بمختلف النكهات (ARMv6, ARMv7...) والتي يعتمد عليها Android. الأمر يرجع إلى عدة أسباب، لعل أهمها التوثيق المشوش نوعا ما في مجتمع Lazarus وهذا بسبب سياسة جوجل في تغيير أدوات التطوير وسرعة التحديثات في كل مرة (من أداة البناء Ant إلى Gradle، ثم اشتراط نسخة Gradle أحدث في كل إصدار...) كيف يدعم FPC تطوير تطبيقات Android ؟ في الواقع هناك عدة طرق لتطوير تطبيقات Android باستخدام Lazarus وFPC كما يمكن بناء تطبيقات Native أيضا، غير أن بعضها ليست فعليا عملية وتحتاج إلى خبرة كافية، لعل أول من شرح ذلك بالتفصيل مطور ألماني Michael Van Canneyt في مدونته: كود : https://www.freepascal.org/~michael/articles/ماهي أسهل طريقة لإنتاج تطبيق Android بملف APK؟ أسهل طريقة (إلى حد الساعة) وجدتها لبناء تطبيقات Android هي باستخدام الجسر نحو Android SDK مرورا على Android NDK مستخدما JNI لماذا كل هذا؟ لأن هناك حزم جاهزة تقوم بكل ذلك عوضا عنك. كيف يتم ذلك؟ أحدث شرح مفصّل وجدته هنا: كود : http://wiki.freepascal.org/LAMWغير أنه لازال يستخدم Ant للبناء ومن المعلوم لدى مطوري Android أن جوجل غيرت أداة البناء للحزم الحديثة إلى Gradle منذ التخلي عن Eclipse/Ant واستبداله ببيئة Android Studio. كما أن هناك تحديثات منذ كتابة الشرح. لذلك سنستخدم Gradle (جربت الإصدار v3.3 بنجاح ويمكن استخدام نسخة أحدث منه) عوضا عن Ant (إذا كنت لا تزال تستخدم (أو تحتفظ بـ) بنسخة Eclipse/Ant فيمكنك استخدامها) سنحتاج لذلك إلى:
كود : https://sourceforge.net/projects/laz4android/كود : https://github.com/jmpessoa/lazandroidmodulewizardPHP كود : tfpandroidbridge_pack.lpk [..../android_bridges]وسيتم بذلك إضافة:
بعد تثبيت حزمة التطوير الآن نأتي إلى الإعدادات من القائمة الرئيسية Tools -> Android Module Wizard كود : Path to Java JDK: c:\Program Files\Java\jdk1.8.0_101
Path to Ant bin: c:\laz4android\ant\bin
Path to Gradle: c:\gradle
Path to Android SDK: c:\android-sdk\sdk
Path to Android NDK: c:\android-sdk\sdk\ndk-bundle
Path to [LAMW] Java Templates: c:\laz4android\lazandroidmodulewizard\javaاخترت نسخة أحدث لـ NDK Version (في المثال 11c) لن نستخدم Ant للبناء في هذا المثال لذلك يمكنك تجاهل المسار. كل هذه المسارات يمكنك إيجادها/تغييرها من الملف: كود : (Laz4android)\JNIAndroidProject.iniإذا لم تواجه أية رسالة خطأ فهنيئا لك الآن، لقد تحصلت على بيئة تطوير متكاملة (RAD) لتطوير تطبيقات Android باستخدام Lazarus-FPC مع إمكانية استخدام مجموعة لا بأس بها من المكونات من خلال السحب والإفلات! خطوات إنشاء مشروع: أنشئ مشروع جديد واختر Project -> New Project -> Android GUI JNI Module ![]() ثم اختر الإعدادات بحسب نسخ Android SDK التي قمت بتثبيها (أو المتوفرة لديك) أما بخصوص Architecture/Instructions فاختر ARMv7a + Soft (هذه هي التي اشتغت معي بنجاح) لاحظ أني غيرت في "Build Automated System" إلى الأداة Gradle عوضا عن Ant كما ذكرت ضع على النموذج AndroidModule1 مكون jDialogYN من القائمة Android Bridges Extra (اعطه اسم confirmDialog) ثم أضف زر jButton واكتب عند النقر عليه: PHP كود : procedure TAndroidModule1.jButton1Click(Sender: TObject);PHP كود : procedure TAndroidModule1.confirmDialogClickYN(Sender: TObject; YN: TClickYN);التشغيل: الآن قم بتوصيل هاتف أندرويد في وضع التنقيح Debug Mode (كما يمكنك استخدام آلة افتراضية Android VM) تأكد أن الجهاز موصل في وضع تنقيح باستخدام adb كود : adb devicesمن المفروض أن يتم الاتصال بشكل تلقائي، إلا إذا كنت تستخدم أدوات/حلول خاصة حينها يتوجب عليك استخدام التطبيق adb كالآتي: للاتصال وقطع الاتصال بالجهاز: كود : adb connect IP_ADDRESS:PORT
adb disconnectلتشغيل وتعطل خدمة التنقيح: كود : adb start-server
adb kill-serverسيتكفل Gradle ببناء وتشغيل المشروع، في جهازي قمت بتعطيل الإضافة google() واستخدمت الإصدار 2.3.3 عوضا عن 3.0.0، بالتعديل ملف البناء Build.gradle كالآتي: كود : buildscript {
repositories {
jcenter()
//android plugin version >= 3.0.0 [in classpath] need gradle version >= 4.1 and google() method
//google()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
}
}إذا جربت تطوير تطبيقات Android دون استخدام Android Studio ستبدو لك الطريقة سهلة، فقط انظر إلى رسالة الخطأ ثم ابحث عن الملف/السطر المسؤول عنه. الجميل أن حجم التطبيق APK الناتج فارغا لا يتعدى 300Kb دون تقليص ProGuard، الناتج تجده في المسار: كود : (Project)\build\outputs\apkيبدو أن مكون قواعد البيانات SQLite جاهز للعمل فهناك مكونات جاهزة وأمثلة مرفقة في المسار: كود : C:\laz4android\examplesملاحظات:
RE: Android على Lazarus FPC بالطريقة المبسطة - invocker - 07-01-2022 بارك الله فيك لو تعمل لنا شرح فيديو من بداية التحميل الى تشغيل التطبيق ااكون شاكر جدا RE: Android على Lazarus FPC بالطريقة المبسطة - I3CT - 07-01-2022 |