Android على Lazarus FPC بالطريقة المبسطة
#1
السلام عليكم ورحمة الله،

يبدو أن تطوير تطبيقات 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 فيمكنك استخدامها)

سنحتاج لذلك إلى:
  • نسخة جافا للتطوير JDK (في هذا المثال v1.8) مثبتة ومعرفة على الـ PATH
  • Android SDK مثبت ومعرف في الـ PATH
  • أيضا سنحتاج إلى تثبيت حزم التطوير من خلال Android SDK Manager (اختر ما يناسبك بحسب المنصات التي تستدفها 15، 16، 17...26...)
  • أيضا حزمة Android Native Development Kit المعروفة باسم Android NDK
قم بتثبيت الحزمة Laz4Android (وما هي إلا نسخة من Lazarus تم إعدادها خصيصا لتطوير تطبيقات Android بإضافة حزمة Android Packages)، يمكن تحميلها وتثبيتها بنفس الطريقة:
كود :
https://sourceforge.net/projects/laz4android/
مع حزمة التطوير والمكونات "Lazarus Android Module Wizard" للمطور البرازيلي jmpessoa يمكن تحمليها منها (سبقت الإشارة إليها):
كود :
https://github.com/jmpessoa/lazandroidmodulewizard
بعد تثبيت مكونات هذه الحزمة الثلاث بهذا الترتيب (وقم بإعادة (Rebuild) بناء Lazarus بعد تثبيت كل مكوّن):
PHP كود :
tfpandroidbridge_pack.lpk [..../android_bridges]
lazandroidwizardpack.lpk [..../android_wizard]
amw_ide_tools.lpk [..../ide_tools

وسيتم بذلك إضافة:
  • قائمة مكونات Android Bridges وAndroid Bridges Extra
  • عناصر في القائمة Tools (تحت اسم LAMW Android Module Wizard) وأخرى لإنتاج وتشغيل ملف التطبيق APK تحت القائمة Run (باسم  LAMW Build Android APK and Run)
  • وعناصر أخرى في خيارات المشروع Project -> Project Options -> Android Project Options ومن هذه الأخيرة يمكن التحكم في خيارات التطبيق (العنوان، الأيقونة، الصلاحيات Permissions، وMin/Target SDK، Theme...)
الإعدادات:

بعد تثبيت حزمة التطوير الآن نأتي إلى الإعدادات من القائمة الرئيسية Tools -> Android Module Wizard

[صورة: attachment.php?aid=3669]
كود :
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
[صورة: lamw_create_new_project.png]
ثم اختر الإعدادات بحسب نسخ Android SDK التي قمت بتثبيها (أو المتوفرة لديك)
أما بخصوص Architecture/Instructions فاختر ARMv7a + Soft (هذه هي التي اشتغت معي بنجاح)
[صورة: attachment.php?aid=3670]
لاحظ أني غيرت في "Build Automated System" إلى الأداة Gradle عوضا عن Ant كما ذكرت
ضع على النموذج AndroidModule1 مكون jDialogYN من القائمة Android Bridges Extra (اعطه اسم confirmDialog) ثم أضف زر jButton واكتب عند النقر عليه:
PHP كود :
procedure TAndroidModule1.jButton1Click(SenderTObject);
begin
  confirmDialog
.Show('Laz4Android''Do you really want to quit?''نعم''لا');
end;     
أضف الإجراء الآتي للحدث OnClickYN للمكون confirmDialog :
PHP كود :
procedure TAndroidModule1.confirmDialogClickYN(SenderTObjectYNTClickYN);
begin
  if YN 
TClickYN.ClickYes then
     Close
;
end

التشغيل:
الآن قم بتوصيل هاتف أندرويد في وضع التنقيح Debug Mode (كما يمكنك استخدام آلة افتراضية Android VM)
تأكد أن الجهاز موصل في وضع تنقيح باستخدام adb
كود :
adb devices

من المفروض أن يتم الاتصال بشكل تلقائي، إلا إذا كنت تستخدم أدوات/حلول خاصة حينها يتوجب عليك استخدام التطبيق adb كالآتي:
للاتصال وقطع الاتصال بالجهاز:
كود :
adb connect IP_ADDRESS:PORT
adb disconnect
استبدل IP_ADDRESS بما يناسب جهازك، وPORT بـ 5555 كرقم افتراضي إن لم تغيره.
لتشغيل وتعطل خدمة التنقيح:
كود :
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 ستبدو لك الطريقة سهلة، فقط انظر إلى رسالة الخطأ ثم ابحث عن الملف/السطر المسؤول عنه.
[صورة: attachment.php?aid=3671]

الجميل أن حجم التطبيق APK الناتج فارغا لا يتعدى 300Kb دون تقليص ProGuard، الناتج تجده في المسار:
كود :
(Project)\build\outputs\apk


يبدو أن مكون قواعد البيانات SQLite جاهز للعمل فهناك مكونات جاهزة وأمثلة مرفقة في المسار:
كود :
C:\laz4android\examples

ملاحظات:
  • هذه المكونات والإضافات لاتزال قيد التطوير وقد يحدث لها تغيير في أي وقت.
  • يمكن استخدام الإضافات أو إعادة بناءها لاستخدام أحدث إصدار
  • التجربة على Windows (وهناك توثيق Linux من المصدر)
  • كل شيء مجاني ومفتوح المصدر.
بالتوفيق.


الملفات المرفقة
.png   config.png (الحجم : 46.17 ك ب / التحميلات : 147)
.png   newproject.png (الحجم : 51.04 ك ب / التحميلات : 146)
.png   example.png (الحجم : 79.88 ك ب / التحميلات : 151)
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
[-] كل من 11 users say قال شكرا ل kachwahed على المشاركة المفيدة
  • Agmcz, AX302, bassem_43, delphi17, invocker, merouane, mobile, rahiche, أبو معاذ, العيد1403, محمد عبد العزيز
الرد
#2
بارك الله فيك لو تعمل لنا شرح فيديو من بداية التحميل الى تشغيل التطبيق ااكون شاكر جدا
الرد
#3
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم