المحتوى عن 'اندرويد'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML5
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 2 نتائج

  1. سنبدأ في هذا الدرس من سلسلة تعلّم برمجة تطبيقات أندرويد باستخدام Xamarin.Forms ببناء تطبيق عملي بمعايير تقنيّة عالية. حيث سنستخدم المعارف التي حصلنا عليها من الدروس السابقة في بناء تطبيق جهات اتصال بسيط لكنّه يستخدم تقنيّات ومفاهيم متقدّمة نسبيًّا. سنتناول هذا التطبيق على ثلاثة أجزاء متتالية، إليك وصف مختصر لمحتوى كلّ منها: الجزء الأوّل: شرح الغاية من التطبيق، وتوضيح فكرة نموذج المستودع Repository في بناء التطبيقات، مع بناء الهيكل العام للتطبيق، وهذا هو محتوى هذا الدرس. الجزء الثاني: تجهيز النواحي الوظيفيّة للمستودع وجعله قابلًا للاستخدام. الجزء الثالث: تنفيذ واجهتي التطبيق الرئيسية والفرعيّة الخاصّة بعرض التفاصيل. وتنفيذ عمليّة التنقّل بين الواجهتين الغاية من التطبيق وكيف يعمل فكرة التطبيق بسيطة للغاية، تتلخّص بعرض جهات اتصال موجودة مسبقًا وإمكانية البحث ضمنها، مع إمكانيّة إضافة جهات اتصال جديدة وتحريرها وحذفها. يعتمد التطبيق على وجود واجهتين. الواجهة الأولى هي الواجهة الرئيسيّة وتحتوي على قسم خاص بالبحث حسب الاسم أو الكنية عن أيّ جهة اتصال موجودة مسبقًا، بالإضافة إلى قائمة لعرض جهات الاتصال الناتجة عن عمليّة البحث، وأخيرًا زر خاص بإضافة جهات اتصال جديدة. انظر الشكل التالي الذي ينتج عند ضغط زر البحث FIND عند عدم تحديد أي معيار للبحث: عندما يقوم المستخدم بنقر زر البحث FIND دون أن يحدّد أي معيار، سيقوم التطبيق بعرض جميع جهات الاتصال الموجودة لديه، والتي ستكون في هذه النسخة من البرنامج عبارة عن بيانات وهمية موجودة ضمن ذاكرة التطبيق. أمّا عند تحديد المستخدم للاسم أو الكنيّة فسيعمل التطبيق على البحث مستخدمًا منطق AND. أمّا الواجهة الثانية، فتظهر عندما يلمس المستخدم إحدى جهات الاتصال من القائمة السابقة، حيث تعرض هذه الواجهة بيانات تفصيليّة حول جهة الاتصال هذه: الاسم والكنية ورقم الهاتف وعنوان البريد الإلكتروني والهوايات. انظر إلى الشكل التالي: من الممكن تعديل أيّ من هذه البيانات ثم ينقر المستخدم زر الحفظ لحفظها، أو أن ينقر زر الرجوع إلى الواجهة السابقة الموجود في الأعلى بجانب أيقونة البرنامج في حال لم يرغب بتعديل البيانات. كما يمكن للمستخدم أن يحذف جهة الاتصال هذه بنقره على زر الحذف Delete كما يظهر من الشكل السابق. وهذه ببساطة فكرة التطبيق. نموذج المستودع Repository عندما تكبر التطبيقات وتتنوّع المهام المطلوبة منها تبرز الحاجة لوسيلة لتنظيم العمل داخل التطبيق. في الحقيقة توجد العديد من النماذج التي تدعمها Xamarin لهذه الغاية مثل نموذج MVVM الذي يستخدم بفعالية ضمن Xamarin لتنظيم وفصل الأجزاء المسؤولة عن الواجهات عن الأجزاء المسؤولة عن منطق العمل عن تلك المسؤولة عن التعامل مع مزودات البيانات البعيدة أو المحلية باختلاف أنواعها. من النماذج التي أفضلها شخصيًّا هو نموذج المستودع Repository الذي أستخدمه على نحو واسع في جميع أنواع التطبيقات التي أعمل عليها. فهو أسلوب جميل ومنطقي ويسمح بتطوير التطبيق بشكل سلس وسريع للعمل في مختلف أنواع البيئات، وهو متوافق للعمل مع نموذج MVVM. يسمح نموذج المستودع بعزل الشيفرة البرمجيّة المسؤولة عن التعامل مع البيانات عن منطق البرنامج business logic. وفي هذا الأمر عدة فوائد من أهمّها: تنظيم البرنامج، وجعله أكثر قابليّة للفهم والتطوير. إجراء تطوير على أسلوب التعامل مع البيانات دون إجراء أي تغيير في منطق عمل البرنامج. إمكانيّة إجراء تغيير جذري لنوع الخدمة التي نستخدمها لتخزين البيانات دون تغيير يُذكر في منطق العمل. سأخوض مباشرةً في كيفية اعتماد هذا النموذج في تطبيقنا هذا. حيث سنحتاج إلى استخدام واجهة واحدة Interface مع صنف واحد يُحقّقها. لتنعش ذاكرتك حول الواجهات انظر هذا الدرس. لنبدأ الآن في بناء هذا التطبيق وذلك في الفقرة التالية. بناء التطبيق ابدأ بإنشاء مشروع جديد من النوع Blank App (Xamarin.Forms Portable) وسمّه ContactsApp ثم أبق فقط على المشروعين ContactsApp (Portable) و ContactsApp.Droid كما وسبق أن فعلنا في هذا الدرس. من نافذة مستكشف الحل Solution Explorer انقر بزر الفأرة الأيمن على المشروع ContactsApp واختر من القائمة التي ستظهر الخيار Add ثم من القائمة الفرعية الخيار New Folder لإضافة مجلّد جديد. سمّ هذا المجلّد بالاسم Entities، وبعد أن يظهر في نافذة الحل Solution Explore انقر عليه بزر الفأرة الأيمن واختر الخيار Add ومن القائمة الفرعية اختر Class. ستظهر نافذة تسمح لك بتعيين اسم لهذا الصنف. اختر الاسم Contact له. هذا الصنف هو حجر البناء الأساسي لهذا البرنامج والذي يمثّل منطق العمل فيه. احرص على جعل محتويات الملف Contact.cs كما يلي: namespace ContactsApp.Entities { public class Contact { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Tel { get; set; } public string EMail { get; set; } public string Hobbies { get; set; } public override string ToString() { return string.Concat(FirstName, " ", LastName); } } } يحتوي الصنف Contact كما يظهر من الشكل السابق على البيانات الأساسيّة التي تحتاجها أيّة جهة اتصال، بالإضافة إلى خاصيّة الهوايات Hobbies التي قد تبدو غريبة قليلًا بالنسبة لجهة اتصال. انقر مرّة أخرى بزر الفأرة الأيمن على المشروع ContactsApp ثم اختر من القائمة التي ستظهر الخيار Add ثم من القائمة الفرعية الخيار New Folder لإضافة مجلّد جديد. سمّ هذا المجلّد بالاسم Abstract، وبعد أن يظهر في نافذة الحل Solution Explore انقر عليه بزر الفأرة الأيمن واختر الخيار Add ومن القائمة الفرعية اختر New Item. ستظهر نافذة تسمح لك بتعيين نوع العنصر المراد إضافته. اختر واجهة Interface وعيّن الاسم IContactsRepository لها. واحرص على أن تكون محتويات الملف IContactsRepository.cs كما يلي: using System.Threading.Tasks; using System.Collections.ObjectModel; using ContactsApp.Entities; namespace ContactsApp.Abstract { public interface IContactsRepository { Task<ObservableCollection<Contact>> GetContactsAsync(string firstName, string lastName); Task<bool> AddContactAsync(Contact contactToAdd); Task<bool> UpdateContactAsync(Contact contactToUpdate); Task<bool> DeleteContactAsync(Contact contactToDelete); } } تُستَخدَم الواجهات عمومًا عندما نرغب بتجريد Abstraction الأمور وجعلها عموميّةً وفي ذلك فائدة كبيرة في جعل الشيفرة البرمجيّة أكثر قابليّة للفهم ولإعادة الاستخدام. وهذا سبب إضافة هذه الواجهة إلى المجلّد Abstract. لا تحتوي الواجهات على أيّة شيفرة برمجيّة كما نعلم، فكل ما تحتويه هو عبارة عن تصاريح لتوابع يجب تحقيقها ضمن أيّ صنف يرغب بتحقيق هذه الواجهة. تحتوي هذه الواجهة باختصار على العمليّات الأساسيّة التي يحتاجها تطبيقنا لإنجاز المهام المنوطة به وهي: الحصول على جهات الاتصال حسب الاسم والكنية GetContactsAsync، وإضافة جهة اتصال جديدة AddContactAsync، وتحديث جهة اتصال موجودة مسبقًا UpdateContactAsync، وحذف جهة اتصال DeleteContactAsync. أمّا سبب وجود الكلمة Async في كلّ من هذه التوابع فهو للإشارة إلى أنّه يُفترض بها أن تستخدم تقنيّة البرمجة غير المتزامنة Asynchronous Programming التي تحدثنا عنها في هذا الدرس. المثير في الأمر أنّ هذه الواجهة لا تهتم بمكان وجود البيانات أو كيفيّة الحصول عليها والتعامل معها. إنّما تهتم فقط بما يحتاجه التطبيق وبشكل مجرّد. سنكرّر الآن نفس العمليّة لإضافة مجلّد جديد ضمن المشروع ContactsApp.cs واسمه Concrete وهو الذي سيحتوي على الصنف الذي سيحقّق الواجهة IContactsRepository السابقة. انقر بزر الفأرة الأيمن على هذا المجلّد واختر Add. ومن القائمة الفرعية اختر Class. سمّ هذا الصنف بالاسم MemoryContactsRepository واحرص على أن تكون محتوياته كما يلي: using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Collections.ObjectModel; using ContactsApp.Abstract; using ContactsApp.Entities; namespace ContactsApp.Concrete { public class MemoryContactsRepository : IContactsRepository { private ObservableCollection<Contact> contacts; public MemoryContactsRepository() { contacts = new ObservableCollection<Contact>() { new Contact() { Id=1, FirstName = "Ahmad", LastName="Saeed", Tel="123456", EMail="admin@example.com", Hobbies="Swimming" }, new Contact() { Id=2, FirstName = "Mahmood", LastName="Maktabi", Tel="852136", EMail="info@example.com", Hobbies="Reading" }, new Contact() { Id=3, FirstName = "Mazen", LastName="Najem", Tel="987456", EMail="it@example.com", Hobbies="Swimming" }, new Contact() { Id=4, FirstName = "Sawsan", LastName="Hilal", Tel="741258", EMail="sales@example.com", Hobbies="Writing, Reading" }, new Contact() { Id=5, FirstName = "Musab", LastName="Aga", Tel="357159", EMail="admin@example.com", Hobbies="Sport" } }; } public async Task<ObservableCollection<Contact>> GetContactsAsync(string firstName, string lastName) { throw new System.NotImplementedException(); } public async Task<bool> AddContactAsync(Contact contactToAdd) { throw new System.NotImplementedException(); } public async Task<bool> UpdateContactAsync(Contact contactToUpdate) { throw new System.NotImplementedException(); } public async Task<bool> DeleteContactAsync(Contact contactToDelete) { throw new System.NotImplementedException(); } } } الأمر الملفت للنظر هنا أنّ بيانات جهات الاتصال موجودة ضمن هذا الصنف بالفعل وتحديدًا ضمن بانيته. وهي مخزّنة ضمن المتغيّر contacts وهو معرّف على مستوى الصنف ومن النوع العمومي ObservableCollection الذي سنتحدّث عنه في الدرس التالي. يكفي الآن أن تعرف أنّه عبارة عن مجموعة عناصرها كائنات من النوع Contact وهي تُفيد في التطبيقات التي تُستخدَم فيها البرمجة غير المتزامنة. من غير الواقعي بكل تأكيد وجود البيانات مخزّنة في الصنف بهذه الطريقة، فالمفترض أن تكون ضمن قاعدة بيانات محليّة أو بعيدة أو حتى ضمن ملف عادي. في الواقع تبرز هنا قوّة نموذج المستودع Repository في عزل أسلوب الحصول على البيانات عن البرنامج الفعلي. من الواضح أيضًا أنّ التوابع الموجودة هنا تحتوي في الحقيقة على شيفرة برمجيّة تؤدّي إلى رمي الاستثناء NotImplementedException وذلك لتذكرينا بعدم جاهزيتها بعد. سيبدو مستكشف الحل في نهاية المطاف شبيهًا بالشكل التالي: الخلاصة هذا الدرس هو المقدّمة لتطبيق جهات الاتصال الذي سنتابع بناءه على مدى الدرسين التاليين. تناولنا في هذا الدرس فكرة التطبيق الأساسيّة، وتوضيح فكرة نموذج المستودع Repository من خلال بناء واجهة تمثّله بالإضافة إلى صنف يحقّقها. سيمكننا من خلال هذا الصنف (صنف المستودع) التعامل مع بيانات موجودة ضمن ذاكرة التطبيق فقط. ورغم كون هذا الأسلوب غير واقعي، إلَّا أنّه ضروري في تبسيط الأمور وجعلها أسهل للفهم. كما أنشأنا صنف يمثّل جهة الاتصال في التطبيق. ورأينا ماهية العلاقة بينه وبين صنف المستودع، من خلال الاستدعاءات إلى التوابع الموجودة ضمن الصنف الأخير. حقوق الصورة البارزة محفوظة لـ Freepik
  2. عملية تشفير الهاتف الذي يعمل بنظام الأندرويد عملية مهمة لحماية بياناتك من السرقة والاستغلال، ويمكن القيام بهذه العملية على الهواتف التي تحوي نظام الأندرويد الإصدار 2.3 فما فوق، بينما في العديد من الهواتف التي تعمل بالإصدار 5.0 فما فوق يُفترض أن لن تحتاج للقيام بهذه العملية لأنه يُفترض أن تكون مشفّرة تلقائيًّا. وعلى الرغم من أن جوجل قد أعلنت بأن جميع الهواتف التي ستعمل بنظام الأندرويد 5 ستكون مشفّرة تلقائيًّا بشكل أساسي منذ اللحظة الأولى لتشغيل الهاتف، وذلك في معرض إعلانها عن إطلاق نظام الأندرويد 5، إلا أنها تراجعت عن هذه السياسة بعد بضعة شهور، وادّعت الشركة بأن السبب هو أن عددًا من الهواتف التي أنتجتها مجموعة من الشركات المختلفة تتضمن مواصفات منخفضة وغير قادرة على تقديم أداء لائق في وجود التشفير. لكن عددًا من مواقع الإنترنت العالمية المختصة بمتابعة الأمور التقنية للهواتف وأنظمتها أكّدت أن السبب الحقيقي وراء تراجع جوجل عن هذه السياسة هو الأداء الهزيل الذي ظهر عليه هاتف Nexus 6 والذي افتتحت به الشركة نظام الأندرويد 5، حيث كان أداء هذا الهاتف أقل من هاتف Nexus 5 الأقدم، وذلك بسبب وجود التشفير التلقائي الكامل للبيانات، ما أجبر الشركة على التراجع وجعل وجود تقنية التشفير الكامل التلقائي للبيانات اختياريًّا لدى الشركات المنتجة للهواتف التي تعمل بهذا النظام، وذلك بحسب مواصفات كل هاتف. إن خوارزمية التشفير في أنظمة الأندرويد هي (Advanced Encryption Standard (AES بمفتاح 128 بت مبنية على نواة لينكس الأساس لنظام الأندرويد ما يجعل فك تشفير البيانات أمرًا مستبعدًا في الوقت الراهن في ظل السرعات الحالية للحواسيب وذلك لأن عدد العمليات اللازمة لكسر مفتاح بطول 128 بت هو 8 وبجانبه 37 صفرًا ، وهو ما يُطمئن مالكي الهواتف المشفرة بالنسبة لحماية بياناتهم من احتمالية الاستعادة وفك التشفير. يمكن لباقي الشركات المُصنّعة لهواتف الأندرويد أن تستخدم مفتاح تشفير 128 بت أو أعلى. ويقول Dan Schiappa المدير العام في شركة Sophos الأمنية: لم قد ترغب بتشفير هاتفك تعلّمنا في الدرس السابق طرق وأساليب قفل شاشة الهواتف التي تعمل بنظام الأندرويد، ولكن هذه الأساليب غير كافية لحماية البيانات الموجودة على الهاتف بصورة ممتازة، حيث يستطيع أي شخص لديه حاسوب وبعض الإلمام بالبرامج الخاصة بفتح الهواتف المقفلة أن يفتح قفل هذا الهاتف، ولو قام أحدهم بسرقة الهاتف فلن يشكّل قفل الهاتف أي عائق أمامه للوصول إلى كافة البيانات على الهاتف، وقد يحوي الهاتف بيانات مهمّة تتعلّق بالعمل كالحسابات المصرفية وحسابات أرباح الشركة والمراسلات الخاصة مع الشركات والزبائن وغيرها. وحتى إن كان هاتفك شخصيًّا ولا علاقة له بالعمل، فهو بالتأكيد يحوي على بريدك الإلكتروني وصورك الشخصية الخاصة جدًّا، بالإضافة إلى أي بيانات خاصة لا تريدها أن تقع بأيدي أحد حتى وإن كانت مجرّد أرقام هواتف. لذلك فمن الأفضل لك أن تقوم بتشفير الهاتف وهو ما يمنحه الحماية القصوى بحيث لن يتمكن اللص أو أي شخص تمّكن من الحصول على الهاتف بأي طريقة من الحصول على أي بيانات أو معلومات حتى ولو نجح في نسخ جميع محتويات الهاتف على حاسوبه بأي طريقة، فلن يتمكن من الاستفادة منها لأنها مشفّرة ومحمية وبحاجة إلى كلمة المرور الخاصة بك ليتمكّن من فك الشيفرة والحصول على البيانات. أيضًا أمر آخر مهم، فلو كنتَ تريد بيع الهاتف لأي سبب كان، فعليك أن تعلم بأن هناك برامج عديدة على الحاسوب وحتى على الهاتف يمكنها استعادة بياناتك كلّها حتى ولو قمت بإعادة تعيين بيانات المصنع للهاتف أو أدخلت رمز تهيئة الهاتف، فهذا لن يردع تلك البرامج من استعادة ملفاتك وبياناتك بسهولة، لذلك فإن الحل الأفضل في هذه الحالة هو تشفير الهاتف ثم تنفيذ عملية إعادة تعيين بيانات المصنع، وبذلك لن تتمكن تلك البرامج من الحصول على بياناتك، وحتى لو تمكّنت من ذلك فستكون بياناتك مشفّرة ولن يتمكّن مالك الهاتف الجديد من فك الشيفرة والاستفادة منها بأي شكل كان. أمور يجب معرفتها قبل البدء بتشفير الهاتف إن عملية تشفير الهاتف هي عملية باتجاه واحد، أي أنه لن تتمكن من العودة عن هذه العملية إلا بإعادة تعيين بيانات المصنع، وهذا سيتسبب بضياع البيانات على الهاتف ومحوها. إن عملية التشفير ستجعل الهاتف يقوم بفك تشفير البيانات التي ترغب في العمل عليها وإعادة تشفيرها بعد الانتهاء وقفل الهاتف، وهذا ما يتطلب عملًا إضافيًّا من المعالج، ما سيؤدّي إلى زيادة حرارة الهاتف وستلاحظ بعض البطء في أدائه أيضًا، وهذا ينطبق فقط على الهواتف ذات المواصفات الضعيفة بينما لن تشعر بأي تغيير في الهواتف ذات الإمكانات الجيدة. يجب التأكّد من أن البطارية ممتلئة ويُفضّل وصل الهاتف بقابس الشاحن أثناء العملية، لأنها قد تستغرق أكثر من ساعة، وذلك بحسب حجم البيانات على الهاتف. سيتوّجب عليك تحديد قفل الشاشة إمّا بكلمة المرور أو برمز PIN فقط عند اتخاذ قرار التشفير، وفي حال لم تقم بذلك ستظهر لك رسالة أثناء السير بخطوات التشفير تبلغك بضرورة القيام بذلك للمتابعة. إذا كنت قد قمت بعمل روت Root لهاتفك فيجب عليك إزالة الروت مؤقتًا لتشفير الهاتف ثم العودة مجدّدًا وعمل الروت من جديد بعد الانتهاء من عملية التشفير، لأن الروت قد يتسبب بفشل تشفير الهاتف ومحو البيانات التي عليه وقد يتسبب بمشاكل كبيرة في النظام أيضًا. لا يجب أن تتم مقاطعة العملية لأي سبب كان، وإلا فإن البيانات على الهاتف وإلا فإن البيانات على الهاتف قد تتعرض للتلف والضياع. كيفية تشفير الهاتف أولًا يجب أن نفهم بأن قائمة الضبط (الإعدادات) في هواتف الأندرويد تختلف قليلًا من إصدار لآخر وكذلك قد تختلف من نوع هاتف لآخر بحيث قد نجد خيار التشفير في بعض هواتف LG ضمن قائمة التخزين بينما قد نجدها في هواتف Samsung ضمن قائمة الحماية، لذلك يجب البحث قليلًا في هاتفك في حال لم يتطابق مع الصورة المُوّضحة في هذا الدرس. وحتى نتجنب الدخول إلى قائمة التشفير والعودة مجدّدًا بسبب عدم وضع كلمة مرور، قم بمتابعة الدرس السابق وضع كلمة مرور قبل البدء بالعملية. الآن قم الضغط على أيقونة الدخول إلى قائمة التطبيقات في الهاتف. ثم أدخل إلى أيقونة (الضبط) كما في الصورة. ثم أدخل إلى قائمة الحماية. (في بعض الهواتف قد تكون عملية التشفير موجودة ضمن قائمة التخزين). ثم اختر خيار تشفير الهاتف. في بعض الهواتف قد يكون هناك المزيد من الخيارات للتشفير كتشفير الهاتف وبطاقة التخزين معًا أو كلٌّ على حدة، هذا الأمر عائد إليك ولكننا هنا بصدد تشفير الهاتف فقط. ستظهر لك التعليمات العامة الخاصة بالتشفير. وفي حال لم تضع كلمة المرور بعد ستظهر لك رسالة تفيد بوجوب وضعها قبل البدء كما في هذه الصورة. ثم اضغط على خيار تشفير الجهاز ولا تنسَ أن تتأكّد من أن الهاتف مشحون بالكامل وموصول بقابس شحن البطارية. سيقوم الهاتف بإعادة التشغيل والبدء بعملية التشفير، قد تستغرق العملية وقتًا طويلًا. بعد الانتهاء سيقوم الهاتف بإعادة التشغيل مجدّدًا وهذه المرة سيطلب منك كلمة المرور لتتمكن من الدخول إلى الهاتف، وبهذا يكون الهاتف مشفّرًا. الأسئلة الأكثر شيوعا هل يمكن إلغاء ميزة التشفير والعودة إلى وضعية الهاتف بدون تشفير؟ في بعض الهواتف يمكن القيام بالعملية بسهولة من ذات القائمة ضمن ضبط الهاتف بحيث ستجد زر إلغاء التشفير ببساطة ولكن في هواتف أخرى لن تتمكن من إلغاء التشفير إلا بإعادة تعيين بيانات المصنع (ضبط المصنع) وهذا سيؤّدي إلى ضياع البيانات على الهاتف. إلا أن هذه الطريقة لن تنفع مع الهواتف التي تأتي مشفرة تلقائيًّا تشفير بيانات كامل والتي لا تحوي ضمن قوائم إعداداتها على خيار إلغاء التشفير لأن إعادة ضبط المصنع للهاتف ستبقي على وجود التشفير بطبيعة الحال لذلك لا يمكن إلغاء ميزة التشفير بالطرق الرسمية في هذه الحالة ولكن من الممكن القيام بذلك بطرق غير رسمية. هل يمكنني تغيير كلمة المرور أو رمز PIN بعد القيام بعملية التشفير بدون إلغاء تشفير الهاتف؟ نعم من خلال الدخول إلى قائمة قفل الشاشة وتغيير كلمة المرور بعد إدخال الكلمة القديمة أولًا وسيبقى الهاتف مشفرًا. هل يمكنني نقل الملفات بين هاتفي وحاسوبي بعد تشفير الهاتف؟ أم أن البيانات ستكون مشفرة ولن أستطيع الاستفادة منها؟ عندما ستحاول وصل الهاتف بالحاسوب سيكون عليك فتح قفل الهاتف لإتمام عملية الوصل وهذا سيؤدي إلى فك التشفير وبالتالي تستطيع أن تنقل بياناتك من الهاتف للحاسوب بسهولة ولن تكون مشفرة ما هو التشفير الكامل للقرص المستخدم في الأندرويد؟ هو تشفير جميع بيانات المستخدم الموجودة ضمن هاتف الأندرويد باستخدام مفتاح التشفير بناء على dm-crypt المستخدمة في تشفير البيانات المبينة على نواة لينوكس القوية أمنيًّا. ماذا لو نسيت كلمة المرور هل يمكنني استعادتها؟ في حالة التشفير لن تستطيع استعادة كلمة المرور بكل أسف وخصوصًا في الإصدار 5 فما فوق ولن يكون أمامك سوى إعادة الهاتف إلى ضبط المصنع وهذا سيؤدي إلى مسح بيانات الهاتف بالكامل، وقد تعمّدت جوجل ذلك لتأمين الحماية القصوى للبيانات من السرقة، ويبقى عليك تأمين حماية البيانات من الضياع وذلك عبر النسخ المتزامن للبيانات على الحاسوب أو بطاقة ذاكرة خارجية أو عبر أحد مواقع السحب الإلكترونية على الإنترنت ومن أهمّها سحابة جوجل. المصادر Google quietly backs away from encrypting new Lollipop devices by default من موقع ARS Technica Full Disk Encryption من موقع Android Are Android phones more easily hacked than iPhones من موقع USA Today How to disable encryption in Android Lollipop من موقع Android Central