كيف تتم برمجة التطبيقات التي تتحكم في وظائف الجهاز

السلام عليكم

يوجد في الويب شروحات تهم برمجة تطبيقات المواقع او فقط شروحات عمل العاب لكن لم اجد انه هناك اهتمام بكيفية عمل تطبيقات لها علاقة بالتحكم بالجهاز او نظامه بالاحرى اعتقد عبر الروم

مثال تطبيقات getsures يعني كيف ان مبرمج استطاع عمل تطبيق تجاوز التطبيق نفسه ودخل الجهاز وجعل gesture يخضع لتطبيقه (مثلا عند تحريك اليد ينطفئ) مثال اخر تطبيق الروت لهاتف . مثال اخر تطبيق اظهار كود الويفيات مسجلة يعني هذا دخل حتى logs الموجودة في الهاتف واضهرها يعني هنا تجاوز البرمجة وربط الكود مع الروم بطريقة ما وعذرا اذا اصغت الامر بطريقة خاطئة فكلما ذكرت هو فقط تخليته يعني الله اعلم كيف يقومون بذلك واوذ ان اعرف كيف تتم هاته التقنية لو ارذت البحث عنها وهل تتطلب اشياء اكثر من لجافا وانا اؤمن ان اي شخص قادر علي عمل شيء مماثل هو القادر على عمل تطبيقات ناجحة لان اعتبر تطبيقات المواقع او تطبيقات القصص او الالعاب المعدلة هي فاشلة ولن يتعلم المرء منها شيء ولن تدفع بنا للمقدمة وسنبقى متأخرين وراء المطورين الاجانب

وعذرا على الاطالة واتمنى ردودا شافية بارك الله فيكم ^^

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

mohammadalbanna أضف ردا

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

هو فعلياً لم يتجاوز شيئاً ولا يعتبر اختراق لشيء! مطوروا نظام آندرويد يتيحون للمطورين الآخرين استخدام أدوات تُسمى Android SDK واختصار لـ Software Development Kit ومن هنا البداية [1].

عبر هذه الأدوات الموجهة لنظام آندرويد، يتيح لي الوصول لموارد الجهاز، كالكاميراً، البلوتوث أو حتى حركة Gestures التي تفضلت بها عبر بناء تطبيقات تستخدم الأدوات التي وفرّها مؤسسي آندرويد التي تتيح للمطورين العديد من المميزات لاستخدام موارد الجهاز.

[1]

جواب شاف بارك الله فيك

بالنسبة للتطبيقات التي تتحكم في أي نظام (وليس فقط أندرويد) فإن الجهة المسؤولة عن تطوير هذا النظام ستزودك بمكتبات مليئة بالكلاسات والدوال (android sdk على سبيل المثال) وكل كلاس يحوي دوال تقوم بوظائف معينة في النظام ، مثلا ستجد كلاس للتعامل مع البلوتوث ، ربما تجد في داخله دوال مثل on \ off \ connect وغيرها (هذه ليست دوال التعامل مع البلوتوث إنما أضرب لك مثالا فقط) .

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

بالعودة إلى الأندرويد ، برأيك هل سيكون مستوى المبرمج الذي يعرف بالضبط ما هو الروت كمستوى المبرمج الذي لا يعرف إلا طريقة تركيبه على الجهاز واستخدام البرامج التي تحتاجه ؟ طبعا لا ، فالمبرمج الثاني لن يستطيع أن يقوم بعمل برنامج يحتاج إلى صلاحيات الروت لأنه لا يعرف مبدأه ولا كيف يعمل (إلا إن قام بنسخ الأكواد دون أن يفهمها فهذه حالة أخرى لكنه لن يقوم بعمل ناجح بالتأكيد) .

فمثلا المبرمج الأول يعرف أن الأندرويد يعتمد على نواة لينكس ، ويعرف أن لينكس يتعامل مع ما يسمى بالصدفة أو shell عن طريق برنامج يسمى terminal emulator ، ويعرف أن الروت هو الوصول إلى كافة الصلاحيات في استخدام النظام ، لذلك بمجرد أن يبدأ هذا المبرمج بالبحث عن طريقة إيصال أوامر النظام إلى shell إن كان يعرف كيف يتعامل مع هذه الأوامر يفترض أنه سيعرف كيف يحصل على صلاحيات الروت والقيام بالعديد من الأشياء بسبب معرفته بذلك .

الكلام في هذا الموضوع يطول لذلك بدلا من أن ازيد في كلام لا داعي له سأعطيك مثالا بسيطا ، هل خطر ببالك يوما كيف تعمل برامج تصوير شاشة الجهاز الذي يعمل بنظام أندرويد بالفيديو ؟ يوجد عدة طرق بالتأكيد لكن بدءا من إصدار كيت كات أضافت جوجل ملفا باسم screenrecord إلى المسار system/bin (وهو المسار الذي يحتوي على البرامج التي يتم التعامل معها من الـ terminal) فأصبح بالإمكان أن تقوم بتصوير الشاشة بدون برامج من الأساس بسبب معرفتك بالنظام ويمكنك فيما بعد تطبيق هذه الأمور عن طريق البرمجة .

إليك شرحا عن طريقة تصوير الشاشة بدون برامج حتى تفهم ما أعنيه (شرحتها من منظور غير برمجي لكن يمكن تطبيقها بالبرمجة)

جواب احترافي بمعنى الكلمة يتميز بالبساطة فهمت الموضوع كاملا الان بتغطيتك لجميع الجوانب الان اعرف ما علي فعله جزاك الله خيرا