ملفات البرنامج لنظام Android تكون بصيغة APK، وملف APK هو البرنامج التنفيذي النهائي لنظام Android، وAPK هي اختصار لـ Android Package، مشابه لملفات sis في نظام التشغيل Symbian، وملفات JAR في منصة J2ME. في الواقع، ملف APK هو تنسيق ملف ZIP، لكن تم تغيير الامتداد إلى APK. عند فك الضغط باستخدام RAR، يمكن رؤية ملفات Dex، وDex هي اختصار لـ Dalvik VM executes، أي برنامج تنفيذ Dalvik لنظام Android، وليس رمز جافا البايت بل كود بايت Dalvik.
تركيب ملف APK هو كالتالي:
res/ مجلد لتخزين ملفات الموارد
META-INF/ عادة يمكن رؤية ملفات Jar فيه
resources.arsc ملف الموارد المجمّع الثنائي، يستخدم بشكل رئيسي لتخزين السلاسل النصية في البرنامج
AndroidManifest.xml ملف تكوين البرنامج العام
classes.dex ملف كود بايت Dalvik، الملفات JAVA التي نكتبها يتم تجميعها إلى كود بايت بصيغة DEX
خلاصة: عندما يشغّل Android برنامجًا، أولاً يحتاج إلى فك الضغط UnZip، ثم يعمل مباشرة مثل Symbian، ويختلف عن ملفات PE في Windows Mobile. هذا الأسلوب لا يوفر حماية عالية أو موثوقية للبرنامج، لكن يمكن فك التجميع باستخدام أمر dexdump. ومع ذلك، هذا يتوافق مع مسار التطور؛ حيث أن Windows Gadgets أو WPF من مايكروسوفت اعتمدت على هذا النوع من البنية.
1. ملفات Java ------ ملفات مصدر تطبيق
أظن أن هذا هو الملف الذي يسمعه الجميع عند سماع كلمة Android، جزء كبير من Android مكتوب بلغة Java (تقريبًا الجزء الأزرق في مخطط الهيكل مكتوب بلغة Java)، وتطبيقات Android يجب أن تُطور باستخدام Java.
2. ملفات Class ------ ملفات الهدف بعد تجميع Java
على عكس J2SE، حيث يمكن تشغيل ملف class مباشرة بعد تجميعه، في منصة Android لا يمكن تشغيل ملفات class مباشرة على Android. نظرًا لأن Google استخدمت Dalvik لتشغيل التطبيقات، فإن ملفات class هنا لا يمكن تشغيلها في بيئة Java من Sun. أشعر أن ملفات class في Android هي فقط ملفات وسيطة خلال عملية التجميع، ويجب ربطها لتصبح ملفات DEX لكي تعمل على Dalvik.٣. ملف Dex-----ملفات قابلة للتنفيذ على منصة أندرويد
ملف بتنسيق البايت كود المدعوم من آلة أندرويد الافتراضية Dalvik
في منصة أندرويد الجديدة التي أصدرتها Google، استخدمت Google آلة Dalvik الافتراضية الخاصة بها لتعريف ذلك، هذه الآلة لا تنفذ كود جافا البايت، بل نوع آخر من البايت كود: بايت كود بتنسيق dex. بعد ترجمة كود Java، يمكن تحويل بايت كود Java إلى بايت كود Dex باستخدام أدوات على منصة أندرويد. على الرغم من أن Google تقول إن Dalvik مخصص للأجهزة المحمولة، إلا أن الكثير في الصناعة يعتقدون أن هذا لتجنب طلب ترخيص Java من Sun. نظرًا لعدم الكشف عن الكثير من التفاصيل، لم يتم العثور بعد على التنفيذ الفعلي لـ Dalvik، ويمكن فقط القيام ببعض التحليلات البسيطة استنادًا إلى SDK.
تم تحسين Dalvik VM لتطبيقات الهواتف/CPU، ويمكنه تشغيل العديد من الآلات الافتراضية في نفس الوقت دون استهلاك الكثير من الموارد، ولم يتم بعد إتاحة كود مصدر Dalvik للتنزيل (وسيتم فتح النظام بأكمله مستقبلًا)، ومن منظور Google حاليًا، الهدف هو السماح للجميع باستخدام هذا SDK لبدء تطوير التطبيقات، وسيتم إصدار الطبقات الأساسية بمرور الوقت.
٤. ملف Apk-------ملفات التثبيت على أندرويد
Apk هو امتداد لحزمة تثبيت أندرويد، وتحتوي حزمة تثبيت أندرويد على جميع الملفات المتعلقة بتطبيق أندرويد معين. يقوم ملف apk بضغط ملف AndroidManifest.xml، كود التطبيق (ملف .dex)، ملفات الموارد وملفات أخرى في حزمة مضغوطة واحدة. يمكن للمشروع فتح ملف .apk واحد فقط.
أما بالنسبة لكيفية كسره، فهذا يعتمد على الشخص.