البرمجة بلغة Java على أجهزة الأندرويد

سنتحدث في هذا المقال عن كيفية كتابة وتنفيذ أكواد بلغة Java مباشرة على نظام الأندرويد دون الحاجة إلى حاسوب، و كنا قد تحدثنا في مقالات سابقة عن :
البرمجة بلغة C# على أجهزة الأندرويد
البرمجة بلغة C++ و C على أجهزة الأندرويد
البرمجة المنطقية Prolog على أجهزة الأندرويد

سيقسم المقال إلى قسمين، يعتمد ذلك على إصدار نظام الأندرويد في الهاتف النقال ، وقبل أن نبدأ .. لنذكر بكيفية التعرف على إصدار نظام الأندرويد في هاتف ما :
1- فتح الإعدادات Settings
2- اختيار عن الهاتف About phone
3- اختيار إصدار الأندرويد Android version
اذا كان رقم الإصدار 2.3 (Gingerbread) ومادون ، فيجب اتباع القسم الأول من المقال فقط.
أما اذا كان رقم الإصدار 4.0 (Ice Cream Sandwich) وما أعلى ، لنا الحرية في اتباع أي من قسمي المقال، لكني أفضل القسم الثاني للسهولة.

القسم الأول : لأنظمة 2.3 ومادون:
تطبيق Terminal IDE :
تطبيق واسع جدا يحوي على مترجم لعدة لغات ، كـ Java , C , C++ , HTML .
مايهمنا منه هو لغة Java فهو ينفذ الكود المصدري للغة الجافا اعتماداً على آلة Dalvik الافتراضية (Dalvik Virtual Machine) الموجودة مسبقا في كل نظام أندرويد، والتي تقابل JVM : Java Virtual Machine.
مايميز التطبيق كونه مفتوح المصدر، يمكن الاطلاع على كوده المصدري من Google Code .
لايحوي التطبيق واجهة رسومية كباقي التطبيقات، بل هو عبارة عن موجه أوامر يجب كتابة بعض الأوامر لاستعماله بشكل صحيح.

– متطلبات التطبيق :
لايحتاج التطبيق صلاحية Root ، يجب توفر 150 ميغا بايت كحد أدنى من الذاكرة الداخلية للهاتف (Internal Memory) ، يعود سبب هذا الحجم الكبير لوجود مكتبات عدة لغات.
سأحاول في الأيام القادمة إنشاء نسخة مخففة من التطبيق للأجهزة الضعيفة.

– خطوات تنصيب التطبيق :
1- تحميل ملف التطبيق (apk) من الرابط التالي :
DropBox (الحجم 48 ميغابايت)
2- بعد تنصيب التطبيق وفتحه سيتظهر لنا الشاشة الرئيسية:

screenshot-1383757633542

نضغط على Install System ، فتظهر لنا الشاشة المسؤولة عن تثبيت المكتبات اللازمة لعمل التطبيق :

screenshot-1383938518695

وأيضا سنضغط Install System فيبدأ بعملية التثبيت ( بعد التأكد من توفر 150 ميغابايت خالية من الذاكرة الداخلية للهاتف (Internal Memory) ، وليس كرت الذاكرة (Memory Card) ).
3- بعد الإنتهاء من عملية التثبيت أصبح التطبيق جاهزا للعمل، نعود للشاشة الرئيسية ونضغط Terminal IDE ليبدأ موجه الأوامر بالعمل كما في الصورة :

screenshot-1383938644066
– كيفية استخدام التطبيق لتنفيذ أكواد بلغة Java :
1- يجب أولاً كتابة الكود المصدري بلغة الجافا باستخدام تطبيق Droid Edit الذي تحدثنا عنه في المقال السابق، كما قمت هنا في الصورة :

screenshot-1383930118494 (1)

يجب حفظ الملف المصدري بامتداد .java في مجلد ما في كرت الذاكرة Memory Card ، على سبيل المثال قمت بحفظ الملف المصدري hello.java الذي كتبته في مجلد ADM الموجود في كرت الذاكرة.
2- يجب علينا تغيير المسار في تطبيق Terminal IDE إلى مسار المجلد الذي يحوي على ملف الكود المصدري الذي كتبناه ، للقيام بذلك يجب كتابة cd ثم sdcard ثم نضغط Enter، وبذلك نقوم بالتوجه إلى كرت الذاكرة :

screenshot-1383752702221

ثم التوجه إلى مجلد ADM بنفس الطريقة :

screenshot-1383752715422

3- بعد الذهاب إلى مسار الكود المصدري، نأتي الآن إلى مرحلة ترجمة الكود المصدري وتنفيذه على الهاتف.
كما نعلم فإن لغة Java تتطلب كمرحلة أولى ترجمة الكود المصدري إلى Bytecode ، عندها نحصل على ملف ذو امتداد .class ، ثم كمرحلة ثانية تفسير ملف ملف الـ Bytecode الذي حصلنا عليه إلى لغة الآلة Machine code .
لكي نقوم بالمرحلة الأولى ندخل الأمر التالي ونضغط Enter :

javac hello.java

طبعاً هنا قد قمت بوضع اسم الملف المصدري الذي كتبته وهو hello.java ، في حالتكم يجب وضع اسم الملف الذي قمتم بكتابته.
وبذلك قمنا بترجمة الملف المصدري إلى Bytecode.
4- قبل البدء بالمرحلة الثانية من تنفيذ التطبيق، وهي تحويل ملف الـ Bytecode الذي حصلنا عليه إلى لغة الآلة، ينبغي علينا الانتباه إلى أمر هام،
فالآلة الافتراضية لنظام الأندرويد Dalvik تتطلب صيغة خاصة من الـ Bytecode وهي DEX، فيجب قبل تنفيذ التطبيق تحويل الـ Bytecode إلى صيغة DEX
عبر الأمر التالي :

dx --dex --output=hello.jar hello.class

(يجب تبديل كل كلمة hello باسم الملف المصدري الخاص بكم)

كما قمت هنا :

screenshot-1383752294180

هنا يجب التنويه إلى شيئ وهو الانتباه إلى الفراغات في هذا الأمر، فيجب وضع الفراغات كماهي تماماً.

معلومة جانبية :
كل ملف apk لتطبيق ما يحوي بداخله ملف dex ، وعملية ترجمة التطبيق إلى dex تتم أثناء بناء تطبيق الأندرويد عبر حزمة Android SDK والتي أيضاً تقوم باستخدام أداة dx التي استعملناها في الأمر السابق ،بعد تنصيب التطبيق على هواتفنا تقوم آلة Dalvik الافتراضية بتنفيذ التطبيق، وذلك عبر تنفيذ الملف .dex الموجود داخل ملف الـ apk لذلك التطبيق

5- الآن نأتي إلى المرحلة الأخيرة وهي تنفيذ الكود المصدري، للقيام بذلك ندخل الأمر التالي :

java -jar hello.jar hello

نلاحظ هنا تنفيذ الكود بنجاح (إدخال اسم، ثم طبع Hello لذلك الاسم):

screenshot-1383942988752

ملاحظات:
1- لعرض قائمة الملفات الموجودة في ملف ما يمكن استعمال الأمر ls .
2- يوفر تطبيق Terminal IDE ميزة الإكمال التلقائي في لغة Java وميزة تلوين السياق Syntax Highlighting ، لن يتاح لنا الوقت لعرضها في هذا المقال، لذا سنقوم بعرضها في المقال القادم بإذن الله.
3- بعد الانتهاء من العمل على التطبيق يجب اختيار Shutdown من شاشة التطبيق الرئيسية، وإلّا فإن التطبيق سوف يستمر في العمل ويستنزف طاقة الهاتف.
4- بإمكانكم تحميل الدليل الرسمي لاستخدام تطبيق Terminal IDE من الرابط التالي :
Drop Box (حجم الملف 122 كيلوبايت)

 

القسم الثاني : لأنظمة 4.0 ومافوق :
تطبيق Sand IDE :

sand

بيئة مخصصة لتطوير تطبيقات بلغة Java على هواتف الأندرويد، يحوي ميزة تلوين السياق Syntax Highlighting ، إضافة إلى ميزة إغلاق الأقواس التلقائية (يمكن تفعيلها من إعدادات التطبيق) ، لكن لايحوي التطبيق ميزة الإكمال التلقائي حتى الآن على عكس تطبيق Terminal IDE السابق.

– متطلبات التطبيق :
لايحتاج التطبيق صلاحية Root.
يتطلب ذاكرة داخلية (Internal Memory) خالية بمقدار 10 ميغابايت.
و ذاكرة خارجية (Memory Card) خالية بمقدار 60 ميغابايت.

– خطوات تنصيب التطبيق :
1- تحميل ملف التطبيق (apk) من الرابط التالي :
DropBox (نسخة مجانية)
هذا المقال كُتب باستخدام النسخة المدفوعة، لافرق بين النسخة المجانية والمدفوعة إلا من حيث وجود الإعلانات.
يمكن شراء النسخة الكاملة من GooglePlay
2- تحميل بيئة تشغيل لغة الجافا (Java Runtime Environment) من الرابط التالي :
rt.jar (حجم الملف 50 ميغابايت)
ونقلها على الذاكرة الخارجية للهاتف (Memory Card).

معلومة جانبية :
Java Runtime Environment أو اختصاراً JRE، هي جزء من حزمة تطوير لغة الجافا (Java Development Kit (JDK ، تحوي الحد الأدنى من المكتبات المطلوبة لتشغيل لغة الجافا، تحوي على سبيل التحديد آلة جافا الافتراضية (Java Virtual Machine (JVM ، كما تحوي على الأصناف الرئيسية للغة، وكذلك بعض الملفات المساعدة

3- بعد تنصيب التطبيق وفتحه، يجب الذهاب إلى إعدادات التطبيق وإرشاده إلى مكان ملف rt.jar (بيئة تشغيل لغة الجافا) الذي قمنا بتحميله سابقاً:
Preferences -> Java -> JRE Path -> Select

كما فعلت على سبيل المثال :

screenshot_2013-11-05-15-04-28الآن التطبيق جاهز للعمل.

بعض الصور :

screenshot_2013-11-05-15-02-03

screenshot_2013-11-05-15-03-30

ملاحظات:
1- يمكن تحديد إصدار الجافا من إعدادات التطبيق (يدعم من 1.3 حتى 1.6)، كما يمكن إيقاف التحذيرات عند تنفيذ البرنامج من Compiler options.
2- قبل كتابة ملف الكود المصدري java. الذي نريد تنفيذه، يجب إنشاء مشروع ثم إنشاء Class لوضع الكود المصدري.

screenshot_2013-11-04-15-13-42

من القائمة File نختار New ثم Create a project
بعد ذلك File نختار New ثم Create a class
كما في الصورة :

screenshot_2013-11-05-15-07-59

3- لأن لغة جافا غرضية التوجه، يجب دائما إنشاء صنف محدد وصوله public ثم إنشاء الطريقة main (في الصورة السابقة يتم إنشاؤها تلقائياً) ثم كتابة الكود داخل الطريقة main.

4- لايمكن استخدام المكتبات المتعلقة بـ Swing على أجهزة الأندرويد، وذلك بسبب اختلاف بنية واجهته الرسومية عن الأنظمة المكتبية، لذلك إذا أردنا استعمال الواجهات الرسومية لابد لنا من الإستعانة بـ Android SDK ، سنتحدث بإذن الله في مقالات قادمة عن إنشاء تطبيق أندرويد مع واجهة رسومية وذلك على الأندرويد مباشرة ودون الحاجة للحاسوب.

5- يعطي التطبيق أحياناً تحذيرات (وليست أخطاء) مثل تحذير Resource leak الذي تم سؤالي عنه كثيراً:

screenshot_2013-11-10-11-56-43
هذا النوع من التحذيرات تظهر عند استخدام أصناف الإدخال والإخراج (I/O classes)، حيث عند الانتهاء من استخدامها يجب استخدام الأمر التالي لإغلاقها :

y.close();

( استخدمت هنا اسم الكائن الذي ولدته كمثال وهو y )

7 أفكار عن “البرمجة بلغة Java على أجهزة الأندرويد”

    1. في هذا المقال نركز على البرمجة الخام للجافا، وهي ضرورية لكل متعلم جديد في هذا المجال
      أما AIDE فإنه يُستخدم في بناء تطبيقات الأندرويد، وذلك يتطلب نوعاً ما اتقان للجافا،
      تطبيق AIDE جيد لكنه ليس بالطبع بديلاً عن Eclipse، فيمكن التمرن عليه.. لكن بكل تأكيد لا يمكن استخدامه لبناء مشاريع حقيقية.
      ان شاء الله سوف نتكلم عنه لاحقاً 🙂

  1. الله يجزيك الخير…بس سؤالي شو ممكن استفيد انه ابرمج جافا من جهازي (تلفوني ) الاندرويد…مش ق ادرة اتخيل

    1. في الحقيقة يستخدمهم متعلمي لغة الجافا في البدايات، فليس من الضروري الجلوس على الحاسوب ساعات طويلة،
      يمكن البرمجة داخل قاعة الدراسة، والتجريب عملياً أثناء إعطاء الدرس،
      أما المحترفون فيستخدمون الحاسوب.

  2. محمد الصالح

    السلام عليكم ورحمة الله وبركاته ،،،

    هناك برنامج روسي مجاني إسمه Anjedi
    لعمل برامج على أجهزة الجوالات ولقد جربته وهو يعمل باللغة الإنجليزية
    فما رأيك بهذا البرنامج
    وهذا هو موقع البرنامج http://anjedi.com/
    وشكراً
    شرحك رائع

    1. برنامج جيد لكن هو مخصص لبرمجة تطبيقات أندرويد، أما ماتحدثنا عنه في المقال فهو برمجة لغة الجافا فقط.
      لكن اذا ماقارنته مع تطبيق AIDE أجده أفضل.

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

اترك تعليقًا

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *