حافظه جانبی گوشی چیست؟
حافظه جانبی گوشی چیست؟
در سیستم عامل Android، حافظه جانبی گوشی به دو قسمت تقسیم میشود: حافظه داخلی و فضای ذخیره سازی خارجی.
غالباً حافظه جانبی مانند کارت SD از نظر فیزیکی قابل جابجایی است اما نیازی به آن نیست. تمایز بین حافظه داخلی و خارجی در واقع در مورد نحوه کنترل دسترسی به فایلها است.
- حافظه جانبی داخلی
به طور پیش فرض، هر فایلی که برنامه شما در حافظه جانبی داخلی گوشی Android مینویسد، فقط توسط برنامه شما قابل دسترسی است. این محافظت توسط هسته لینوکس از طریق sandbox برنامه اعمال میشود، و شامل هر فایلی است که به طور غیرمستقیم توسط پایگاههای داده SQLite ایجاد شده است.
مقاله پیشنهادی : نحوه ساخت اپل آیدی
- حافظه جانبی خارجی
پروندههای ایجاد شده در حافظه خارجی قابل خواندن و نوشتن در جهان هستند، یعنی هر برنامه ای میتواند برای آنها بخواند یا بنویسد. در واقع، از آنجا که حافظه خارجی (اغلب) میتواند از دستگاه برداشته شود و به هر رایانه دیگری متصل شود، اجرای کنترل دسترسی برای پروندههای موجود در حافظه خارجی امکان پذیر نیست. این بدان معنی است که هر برنامه ای که از فضای ذخیره سازی خارجی استفاده میکند باید:
- هر داده حساس را که در حافظه خارجی مینویسد رمزگذاری کند.
- اعتبار سنجی ورودی را روی هر داده ای که از حافظه خارجی میخواند انجام دهد.
بنابراین از نظر امنیتی، بهترین سیاست این است که برنامه شما از فضای ذخیره سازی خارجی استفاده نکند، مگر اینکه واقعاً به آن حافظه جانبی گوشی احتیاج داشته باشد. اکثریت قریب به اتفاق برنامهها به نوعی مدیریت داده را انجام میدهند.
خواه فقط بارگیری یک تصویر نمایه باشد، یا به اشتراک گذاری تصاویر یا فایلهای صوتی / تصویری از طریق پیام رسانی یا ذخیره اطلاعات ساده. کار با فایلها در Android میتواند دلهره آور باشد. به خصوص اگر در Android تازه کار هستید، یا مدتی است که با آن کار نکرده اید.
وقتی نوبت به ذخیره اطلاعات در Android میرسد، میتوانیم از بین چند گزینه یکی را انتخاب کنیم:
- SharedPreferences : معمولاً برای ذخیره تنظیمات برگزیده برنامه، به عنوان مقدار کلیدی استفاده میشود.
- پایگاه داده : برای ذخیره دادههای ساخت یافته در یک پایگاه داده خصوصی
- ذخیره سازی پرونده : برای ذخیره انواع رسانهها / اسناد در سیستم فایل
اگر دارید فکر میکنید کدام یک از این گزینهها برای شما مناسب است، ادامه مطالب درباره حافظه جانبی گوشی را مطالعه کنید.
حافظه داخلی در مقابل حافظه خارجی
سیستم Android دو نوع مکان ذخیره فیزیکی برای حافظه جانبی گوشی فراهم میکند: حافظه داخلی و خارجی.
مهمترین تفاوت بین آنها این است که فضای ذخیره سازی داخلی نسبت به حافظه خارجی اکثر دستگاهها کوچکتر است. همچنین، حافظه خارجی ممکن است همیشه در دسترس نباشد، برخلاف حافظه داخلی که همیشه در همه دستگاهها موجود است.
با توجه به اینکه حافظه داخلی همیشه در دسترس است، این امر آن را به مکانی مطمئن برای ذخیره دادههایی که برنامه شما به آن وابسته است تبدیل میکند. علاوه بر این، اگر شما نیاز به ذخیره اطلاعات حساس یا دادههایی دارید که فقط برنامه شما میتواند به آن ها دسترسی داشته باشد، به دنبال حافظه داخلی بروید.
هنگام کار با حافظه داخلی باید به دو نکته توجه کرد:
- کاربر نمیتواند از طریق مدیریت فایل به این پروندهها دسترسی پیدا کند.
- با حذف نصب برنامه، پروندههای موجود در این پوشه حذف میشوند.
چه زمانی باید از فضای ذخیره سازی خارجی استفاده کرد؟
خوب، همانطور که قبلاً اشاره شد، فضای ذخیره سازی خارجی معمولاً از حافظه داخلی بزرگتر است. بنابراین، اولین چیزی که به ذهن شما خطور میکند استفاده از آن حافظه جانبی گوشی برای ذخیرهسازی پروندهها یا برنامههای بزرگتر است. و این دقیقاً رایجترین کاربرد ذخیره سازی خارجی است.
از آنجا که فضای ذخیره سازی داخلی برای دادههای خاص برنامه محدود است، به طور کلی استفاده از حافظه خارجی برای همه دادههای غیر حساس برنامه شما کار میکند. حتی اگر خیلی بزرگ نباشند. به طور کلی، دادههایی که در این حافظه ذخیره میکنید از طریق حذف برنامه نیز همچنان پایدار است.
هرچند یک مورد وجود دارد که در هنگام حذف برنامه، پروندهها حذف میشوند. اگر با استفاده ازgetExternalFilesDir پروندههای خاص برنامه را در فضای ذخیره سازی خارجی ذخیره کنید، هنگام نصب برنامه، پروندهها را از دست خواهید داد، بنابراین از آن آگاه باشید و به دقت عمل کنید. علاوه بر این، سایر برنامهها در صورت داشتن مجوز مناسب میتوانند به دادههای ذخیره شده در این فهرست دسترسی داشته باشند.
مقاله پیشنهادی : بررسی ایفون se2 اپل
هشدارها :
در مورد کار با ذخیره سازی خارجی، موارد کمی وجود دارد که باید قبل از ذخیره اطلاعات در آن حافظه جانبی گوشی انجام دهید:
تأیید کنید که فضای ذخیره سازی در دسترس است. مواردی وجود دارد که کاربر میتواند حجم فیزیکی محل ذخیرهسازی خارجی را حذف کند. در صورت وجود تعداد بیشتری از حافظه، تصمیم بگیرید که کدام حافظه را انتخاب کنید.
بعضی اوقات دستگاهها میتوانند چندین حجم فیزیکی داشته باشند که میتواند شامل فضای ذخیرهسازی خارجی باشد. به عنوان مثال، یک دستگاه میتواند بخشی از حافظه داخلی خود را به عنوان حافظه خارجی اختصاص دهد، اما همچنین میتواند فضای ذخیره سازی خارجی را روی کارت SD فراهم کند.
مجوزهای ذخیره سازی
Android دو مجوز مربوط به فضای ذخیرهسازی حافظه جانبی گوشی تعریف میکند: READ_EXTERNAL_STORAGE و WRITE_EXTERNAL_STORAGE
همانطور که مشاهده میکنید، مجوزها فقط برای دسترسی به فضای ذخیره سازی خارجی تعریف شده اند. این بدان معناست که هر برنامه، به طور پیش فرض، مجوز دسترسی به حافظه داخلی خود را دارد.
از طرف دیگر، اگر برنامه شما مجبور است به حافظه خارجی دسترسی پیدا کند، شما موظف هستید برای آن مجوز درخواست کنید. این بدان معنی است که اگر میخواهید با استفاده از MediaStore API به رسانههای حافظه خارجی دسترسی پیدا کنید، باید مجوز READ_EXTERNAL_STORAGE را درخواست کنید.
با این حال، چند مورد استثنا در این قانون وجود دارد:
- هنگام دسترسی به پروندههای خاص برنامه در فضای ذخیره سازی خارجی، نیازی به درخواست مجوز ندارید (در Android 4.4 و بالاتر)
- با استفاده از فضای ذخیره سازی محدود شده در Android 10، دیگر نیازی به درخواست مجوز هنگام کار با پروندههای رسانه ای ایجاد شده توسط برنامه خود در حافظه جانبی گوشی ندارید.
- اگر میخواهید در هنگام استفاده از Storage Access Framework، اسناد یا سایر انواع محتوا را بدست آورید، به هیچگونه مجوزی نیاز ندارید. این به این دلیل است که یک کاربر در فرآیند انتخاب محتوای واقعی برای کار درگیر است.
تفاوت حافظه داخلی و حافظه خارجی
وقتی برنامه ای را روی تلفن خود نصب میکنید، یک پوشه خصوصی منحصر به فرد ایجاد میکند که فقط برنامه نصب شده میتواند به آن دسترسی پیدا کند. این پروندهها در حافظه جانبی داخلی گوشی ذخیره میشوند، برنامههای دیگر یا کاربران نمیتوانند به آنها دسترسی پیدا کنند.
فایلهای سیستم Android نیز در حافظه داخلی ذخیره میشوند که برای کاربر قابل دسترسی نیستند. یا برنامه ای را بارگیری میکنید یا میتوانید تلفن هوشمند خود را روت کنید تا به این پروندهها دسترسی پیدا کنید.
دو نوع ذخیره سازی خارجی وجود دارد. یکی حافظه یا کارتهای SD است که ما به صورت دستی در آن قرار میدهیم. این محبوبترین شکل حافظه خارجی است که اکثر کاربران گوشیهای هوشمند از آن استفاده می کنند.
با این تعریف، فضای ذخیره سازی ابری مانند Dropbox نیز ذخیره سازی خارجی است که ذخیره سازی ثانویه خارجی نامیده میشود. ذخیره سازی اولیه یکی از مواردی است که توسط کاربر قابل دسترسی است اما هنوز بخشی از حافظه داخلی است.
در اینجا عکسها، اسناد و سایر دادههای خود را ذخیره میکنید حتی اگر کارت SD نصب نکنید. به طور خلاصه، حافظه داخلی تلفن شما به دو قسمت تقسیم شده است. داخلی و خارجی. کارت SD را که نصب کرده اید میتوان حافظه خارجی قابل جابجایی نیز نامید.
علت استفاده از حافظه جانبی گوشی
حافظه داخلی بیشتر توسط Android OEM و توسعه دهندگان برنامه برای ذخیره پروندهها و دادههای حساس در حافظه جانبی گوشی استفاده میشود که هدف محافظت از آنها در برابر آسیبهای ناخواسته یا تصادفی است. اما، موارد بیشتری وجود دارد.
فایلهای ذخیره شده در داخل فهرستهای ایجاد شده در حافظه داخلی توسط سایر برنامهها قابل دسترسی نیستند. این یک لایه امنیتی و حریم خصوصی مورد نیاز دادههای شما را فراهم میکند.
فایلهای ذخیره شده در فضای ذخیره سازی اولیه مستقیماً با استفاده از برنامه داخلی فایل کاوشگر قابل دسترسی هستند. برنامههای دیگر نیز قادر به دسترسی به این دادهها هستند. این جا زمانی است که مجوزها وارد میشوند. وقتی برنامه ای میخواهد به این دادهها دسترسی پیدا کند، از وی اجازه دسترسی به حافظه اصلی یا ثانویه خارجی را میخواهد.
برنامه نمیتواند به پروندههای ذخیره شده در حافظه داخلی دسترسی داشته باشد مگر اینکه به برنامه مربوطه تعلق داشته باشد. اما همه برنامهها این کار را نمیکنند. اکوسیستم اندروید به دلیل بسیاری از موارد شناخته شده است و به نوعی حریم خصوصی مهمترین نگرانی آن نیست.
موارد متعددی وجود داشته است که برنامهها به جرم سرقت دادههای کاربر بدون اجازه یا حتی دانش کاربران مقصر شناخته شده اند. در چنین مواردی، اهمیت حافظه داخلی اصلی که توسط سایر برنامهها قابل دسترسی نیست، از اهمیت بیشتری برخوردار میشود.