بعض الشروحات حول كيفية عمل الأندرويد:
إذا اختارت Google Java، فهذا يعني أنه يمكن تنفيذ التطبيقات بشكل مستقل عن النظام الأساسي!
الواقع مختلف قليلاً لأنه في الواقع كان بإمكان Google اختيار أي لغة برمجة أخرى لتكون مستقلة عن النظام الأساسي (بما في ذلك لغة C) نظرًا لما يفعله Android مع كود Java... والذي يسمح بتنفيذ التعليمات البرمجية بطريقة مستقلة عن النظام الأساسي يعنيباستخدام آلة افتراضية.
على وجه التحديد، تستخدم Java جهازًا افتراضيًا، لذا يمكننا القول أن Google تستخدم Java لتكون مستقلة عن بنية الجهاز، أليس كذلك؟
لا... لا لأنهلا تستخدم Google جهاز Java الظاهري... أنشأت Google جهازًا افتراضيًا خاصًا بها لنظام Android، وهوآلة دالفيك الافتراضية.
عادةً، عند البرمجة بلغة Java، يتم تحويل الكود المصدري إلىbytecodeجافا. هذا ليس ما يحدث عند تطوير تطبيق لنظام Android.
نعم، يتم تجميع التعليمات البرمجية المصدر الخاصة بك إلى bytecode، ولكن ليس إلى Java bytecode. هذا هو الرمز الثانوي الخاص بـ Google. بعد ذلك، يتم تنفيذ هذا الرمز الثانوي بواسطة Dalvik Virtual Machine، وهو جهاز افتراضي مُحسّن للمنصات منخفضة الطاقة. أداة –dx- الموجود في Android SDK يحول فئات جافا القياسية إلى فئات خاصة.dex.
كل هذا يعني أنه كان بإمكاننا البرمجة بلغة C أو .Net، على سبيل المثال، طالما تم تجميع هذه اللغة في شكل كود بايت.
ولكن لماذا إذن نستخدم جافا؟
إن استخدام Java لإطار عمل Android له اهتمام بالغ الأهمية: وهوجذب المجتمع بأكمله من مطوري تطبيقات الهاتف المحمول، وقبل كل شيء خبرتهم في هذا المجال. في الواقع، هذه الأخيرة تعمل بالفعل في Java، وقد اعتدت على هذه اللغة، وبناء الجملة هذا، وطريقة التفكير هذه (لأن اللغة المنطوقة أو المشفرة تؤثر على طريقة تفكيرك)، وما إلى ذلك. من الأفضل ألا تتعجلهم وتثير غضبهم، بل من الأفضل أن تفعل كل شيء لإرضائهم.
وأخيراً بالنسبة للرخصة:
على الرغم من أن Java مجانية، إلا أن مصطلح "java" يظل خاضعًا للعديد من الشروط التي تفرضها اللجنة التي تدير تطويرها (أساسًا احترام معيار Java)، علاوة على ذلك، فإن "java" هي علامة تجارية. ولذلك فإن جوجل ليس لديها مصلحة في نشر الكثير حول هذا المصطلح. وسنقوم بالتفصيل باختيارات Google فيما يتعلق بالترخيص وعلاقتها بهشمسفي مقال مستقبلي.