الثلاثاء، 3 فبراير 2015

عن تطبيقات أندرويد


بأكثر من 850 ألف تطبيق على سوق جوجل Play -أغلبها بدون فائدة بنظري- ومثلها ك تطبيقات غير رسمية أو خاصة كان علينا أن نتعرف أكثر على طبيعة برامج أندرويد وتركيبها وكيف يتعامل معها النظام.

ما بعد الترجمة!

تأتي تطبيقات أندرويد بصيغة apk بملف واحد يحوي التطبيق مع مصادره من صور ومعلومات ووسائط أخرى, يمكن تثبيتها على أجهزة أندرويد بعد تمكين”تثبيت من مصادر مجهولة” بشكل عادي كفتح أي ملف ليتولى النظام تثبيت الملف بعد التحقق من شهادته وعدم وجود نسخة سابقة.
تطبيق أندرويد في الأصل عبارة عن ملف أرشيف يحوي عدة مجلدات وملفات أهمها:
  • مجلد META-INF: يحوي توقيع البرنامج بالإضافة إلى لقائمة بكافة الملفات المرفقة وتوقيع كل ملف.
  • مجلد res: يحتوي بعض مصادر التطبيق بدون ضغط لسرعة الوصول لها, مثل اسم التطبيق باللغات المختلفة وإيقونته وغيرها.
  • AndroidManifest.xml: ملف الوصف الرئيسي, يحتوي الأذونات التي يطلبها البرنامج والعديد من المعلومات الأخرى.
  • classes.dex: أكواد التطبيق التنفيذية.
  • resources.arsc: باقي مصادر التطبيق بشكل مضغوط.
  • العديد من المجلدات الأخرى المساعدة مثل مجلد lib الذي يحوي المكتبات الـnative الخاصة بكل معالج…

التثبيت!

يتم نسخ كامل الملف أثناء التثبيت إلى المسار data/app/ ويعاد تسميته إلى اسم مكوّن التطبيق الذي لا يمكن أن يتكرر + رقم. com.path-1.apk ك مثال
برامج النظام السابقة مثل Google Play وغيرها يتم تركيبها في مسار system/app الذي لا يمكن الوصول إليه بدون صلاحية root ولا يمكن إلغاء تثبيتها أو مسحها, لكن يمكن تعطيلها فقط. وعند تحديثها يتم تركيب التحديث في المسار data/app مع بقاء النسخة الأصلية.

بيانات التطبيقات!

يتم إنشاء مجلد خاص بكل تطبيق حتى لو كان تطبيق نظام يحمل اسم مكوّن التطبيق وصلاحياته متاحة للتطبيق فقط على المسار data/data.
يحتوي المجلد على مجلدات فرعية أهمها:
  • shared_prefs: يحتوي ملفات xml فيها إعدادات البرنامج التي تم حفظها عن طريق SharedPreferences.
  • databases: تحوي قواعد بيانات sqlite التي تستخدمها بعض التطبيقات لتخزين البيانات.
  • files, cache, lib الخاصة بالملفات الإضافية والمكتبات والكاش وغيرها..
قائمة متابعاتي في تمبلر مستخرجة من قاعدة بيانات التطبيق
قائمة متابعاتي في تمبلر مستخرجة من قاعدة بيانات التطبيق

0 التعليقات :

إرسال تعليق