انتقال برنامه‌ها به کارت حافظه در اندروید؛ حل خاموش بودن Move

آموزش گام‌به‌گام انتقال برنامه و بازی به کارت حافظه MicroSD در سامسونگ و شیائومی، فعال‌سازی دکمه در Developer Options، فعال‌سازی Adoptable Storage با ADB و…

انتقال برنامه‌ها به کارت حافظه در اندروید؛ حل خاموش بودن Move

پر شدن حافظه ذخیره‌سازی داخلی در تلفن‌های هوشمند اندرویدی یکی از متداول‌ترین و کلافه‌کننده‌ترین چالش‌های کاربران است. با افزایش کیفیت سنسورهای دوربین و ضبط ویدیوهای 4K، حجیم‌تر شدن پکیج‌های به‌روزرسانی سیستم‌عامل و عرضه بازی‌های مدرنی مانند Call of Duty Mobile یا Genshin Impact که به تنهایی بیش از ۱۵ الی ۳۰ گیگابایت فضا می‌طلبند، دستگاه‌های مجهز به حافظه ۶۴ یا ۱۲۸ گیگابایتی به سرعت در برابر اخطار دهشتناک «Storage space running out» زانو می‌زنند.

در چنین شرایطی، افزودن یک کارت حافظه جانبی MicroSD اقتصادی‌ترین و منطقی‌ترین تصمیم به نظر می‌رسد. اما اغلب کاربران پس از جا انداختن کارت حافظه، با سدی غیرمنتظره روبرو می‌شوند: دکمه انتقال برنامه به حافظه جانبی (Move to SD Card) برای ۹۰ درصد نرم‌افزارها و بازی‌ها به رنگ خاکستری درآمده، خاموش است یا به کلی در منوی تنظیمات وجود ندارد!

بسیاری از کاربران تصور می‌کنند این موضوع ناشی از نقص گوشی، تحریم نرم‌افزاری یا خرابی رم است. واقعیت این است که شرکت گوگل و سازندگان تلفن همراه از نسخه اندروید ۶ به بعد، به دلیل حفظ عملکرد سخت‌افزار، استانداردهای معماری جدیدی برای ذخیره‌سازی وضع کرده‌اند.

در این راهنمای جامع و مرجع از وب‌سایت پیشگامیت، ضمن تشریح علمی دلایل این محدودیت در اکوسیستم اندروید، ترفندهای مهندسی شکستن این قفل در منوی گزینه‌های توسعه‌دهنده (Developer Options)، دستورات خط فرمان ADB برای فعال‌سازی حافظه یکپارچه (Adoptable Storage) و راهنمای انتخاب کارت‌های حافظه پرسرعت استاندارد A1 و A2 را گام‌به‌گام بررسی می‌کنیم.

پاسخ سریع (Quick Answer)؛ باز کردن قفل دکمه انتقال در ۲ دقیقه

اگر دکمه Move to SD Card در تنظیمات برنامه‌های گوشی شما ناپدید شده یا خاکستری است:

  1. فعال‌سازی منوی توسعه‌دهنده: وارد Settings › About phone شوید و بر روی گزینه Build number هفت بار متوالی ضربه بزنید تا پیام «You are now a developer» ظاهر شود.
  2. اجبار به انتقال: به منوی اصلی تنظیمات برگشته و وارد Developer options شوید.
  3. به انتهای منو اسکرول کرده و سوییچ گزینه Force allow apps on external (اجبار به اجازه ذخیره برنامه‌ها روی حافظه خارجی) را روشن (On) کنید.
  4. گوشی را یک بار ری‌استارت نمایید.
  5. اکنون به مسیر Settings › Apps رفته، برنامه مورد نظر را باز کنید و وارد بخش Storage شوید. اکنون کلید تعویض با عنوان Change فعال شده است؛ آن را بزنید، گزینه SD Card را انتخاب کرده و دکمه Move را لمس فرمایید!

کالبدشکافی فنی: چرا گوگل و توسعه‌دهندگان انتقال مستقیم را محدود کردند؟

برای درک اینکه چرا این گزینه به صورت پیش‌فرض در اندرویدهای جدید خاموش است، باید تفاوت‌های بنیادین حافظه داخلی با رم MicroSD را بررسی کنیم:

۱. شکاف سرعت ورودی/خروجی (IOPS Gap):

تراشه‌های حافظه داخلی موبایل‌های امروزی از استاندارد فوق‌العاده سریع UFS 3.1 یا UFS 4.0 بهره می‌برند که سرعت خواندن ترتیبی آن‌ها به فراتر از ۲۰۰۰ تا ۴۰۰۰ مگابایت بر ثانیه می‌رسد. در نقطه مقابل، کارت‌های حافظه معمولی MicroSD بازار (مانند Class 10 یا UHS-I عادی) به ندرت سرعتی فراتر از ۳۰ الی ۸۰ مگابایت بر ثانیه ارائه می‌دهند!

  • اگر یک بازی آنلاین پرگرافیک بر روی کارت حافظه کند نصب شود، با هر بار لود شدن تکسچرها، نرخ فریم به شدت افت کرده، بازی دچار تیک‌های ثانیه‌ای شده و گوشی به دلیل کار مداوم کنترلر حافظه داغ می‌کند.

۲. فلگ کنترلی در مانیفست اپلیکیشن (AndroidManifest.xml):

توسعه‌دهندگان در کدهای برنامه خود از متغیری به نام android:installLocation استفاده می‌کنند. مقادیر این متغیر شامل:

  • internalOnly: فقط در حافظه داخلی نصب شود (پیش‌فرض اکثر برنامه‌ها).
  • auto: اجازه نصب در کارت حافظه در صورت کمبود فضا.
  • preferExternal: ترجیح نصب روی کارت حافظه.

از آنجا که توسعه‌دهندگان تمایلی ندارند امتیاز اپلیکیشن آن‌ها در گوگل پلی به دلیل استفاده کاربر از رم‌های ارزان و بی‌کیفیت کاهش یابد، این فلگ را به طور پیش‌فرض روی internalOnly قفل می‌کنند. روشن کردن گزینه Force allow apps on external در حقیقت این فلگ را در سطح سیستم‌عامل نادیده می‌گیرد (Override).

جدول مقایسه‌ای: راهنمای انتخاب کارت حافظه مناسب برای نصب برنامه (A1 در برابر A2)

اگر قصد دارید برنامه‌ها را به کارت حافظه ببرید، خرید رم‌های متفرقه معمولی بدترین اشتباه ممکن است! باید به نشان Application Performance Class دقت کنید:

استاندارد کلاس رمسرعت خواندن تصادفی (Read IOPS)سرعت نوشتن تصادفی (Write IOPS)حداقل سرعت متوالیمناسب برای چه کاربری؟
کارت‌های عادی (Class 10 / U1)کمتر از ۳۰۰ IOPSکمتر از ۱۰۰ IOPS۱۰ مگابایت بر ثانیهصرفاً ذخیره عکس و پخش موسیقی معمولی (باعث کرش برنامه)
استاندارد کلاس A1۱۵۰۰ IOPS۵۰۰ IOPS۱۰ مگابایت بر ثانیهمناسب اجرای برنامه‌های سبک، پی‌دی‌اف‌خوان و پخش ویدیو
استاندارد کلاس A2 (پیشنهادی)۴۰۰۰ IOPS۲۰۰۰ IOPS۱۰ تا ۳۰ مگابایت (V30)ایده‌آل برای بازی‌های ۳D سنگین و برنامه‌های ادیت عکس

نکته کاربردی: کارت‌های مجهز به استاندارد A2 علاوه بر سرعت بالاتر، از قابلیت صف‌بندی دستورات (Command Queuing - CQ) و کش سخت‌افزاری پشتیبانی می‌کنند که مانع از فریز شدن سیستم در زمان نوشتن همزمان داده‌ها می‌شود.

تغییر محل ذخیره‌سازی برنامه به کارت حافظه جانبی در گوشی سامسونگ
انتخاب کلید Change در تنظیمات Storage به کاربر اجازه انتقال کدهای نصبی به کارت حافظه را می‌دهد.

روش اول: انتقال استاندارد در گوشی‌های سامسونگ (One UI)

در گوشی‌های سامسونگ، پس از فعال کردن کلید مربوطه در دولوپر آپشن، مراحل به ترتیب زیر انجام می‌شود:

  1. وارد بخش Settings (تنظیمات) شوید.
  2. گزینه Apps (برنامه‌ها) را پیدا کرده و لمس کنید.
  3. در لیست برنامه‌ها، اپلیکیشن حجیم مورد نظر (نظیر بازی‌های مسابقه‌ای یا نرم‌افزارهای آفیس) را لمس کنید.
  4. وارد بخش Storage (محل ذخیره) شوید.
  5. در بالای صفحه زیر تیتر Storage used، روی دکمه خاکستری Change کلیک کنید.
  6. در پنجره کوچک ظاهر شده، گزینه SD card را علامت بزنید.
  7. در صفحه باز شده، روی کلید قرمز/آبی Move (انتقال) در گوشه پایین سمت راست ضربه بزنید.
  8. در طول فرآیند انتقال (که بسته به حجم بین ۳۰ ثانیه تا ۲ دقیقه طول می‌کشد)، به هیچ عنوان کارت حافظه را خارج نکرده و از گوشی استفاده نکنید تا فرآیند ۱۰۰٪ تکمیل شود.

روش دوم: انتقال در گوشی‌های شیائومی (HyperOS / MIUI)

رابط کاربری اختصاصی شیائومی به طور سخت‌گیرانه‌تری گزینه‌های اندروید خام را پنهان می‌کند. برای دور زدن این محدودیت در شیائومی:

گام اول: تنظیم دولوپر آپشن شیائومی

  1. به مسیر Settings › Additional settings › Developer options بروید.
  2. سوییچ گزینه Force allow apps on external را فعال کنید.
  3. به انتهای صفحه بروید؛ اگر گزینه Turn on MIUI/HyperOS optimization فعال است، در صورت عدم نمایش دکمه انتقال، یک بار آن را موقتاً خاموش کنید و گوشی را ری‌استارت نمایید.

گام دوم: استفاده از ابزار دسترسی Activity Launcher

اگر رابط شیائومی همچنان دکمه Change را مخفی نگه داشت:

  1. نرم‌افزار رایگان Activity Launcher را از گوگل پلی نصب کنید.
  2. در کادر جستجوی بالای برنامه، عبارت Manage Applications یا All Applications را جستجو کنید.
  3. وارد بخش مدیریت برنامه‌های اندروید خام (AOSP) شوید.
  4. از این طریق وارد صفحه اپلیکیشن شده و گزینه تعویض به SD Card را به سادگی فعال کنید.
فعال کردن گزینه Force allow apps on external در منوی تنظیمات توسعه‌دهنده اندروید
فعال‌سازی گزینه Force allow apps on external به سیستم‌عامل دستور می‌دهد محدودیت‌های برنامه‌نویس را برای کارت حافظه نادیده بگیرد.

روش سوم: روش فوق‌پیشرفته و بدون روت Adoptable Storage از طریق ADB

قابلیت Adoptable Storage قابلیتی انقلابی در هسته لینوکسی اندروید است که کارت حافظه جانبی را با حافظه داخلی ادغام کرده و یک فضای ذخیره‌سازی واحد با رمزنگاری سخت‌افزاری پدید می‌آورد. شرکت‌هایی نظیر سامسونگ این منو را از تنظیمات گرافیکی حذف کرده‌اند، اما با خط فرمان ADB می‌توان آن را فعال ساخت!

احتیاط: این عملیات کارت حافظه را کاملاً فرمت و رمزنگاری می‌کند؛ بنابراین پیش از اجرا، تمامی اطلاعات موجود روی کارت حافظه را در کامپیوتر بکاپ بگیرید.

مراحل اجرای دستورات:

  1. قابلیت USB Debugging را در منوی Developer Options گوشی روشن کنید.
  2. گوشی را با کابل به کامپیوتر وصل کرده و ابزار Platform Tools (ADB) را در کامپیوتر اجرا کنید.
  3. ترمینال را باز کرده و با دستور زیر از اتصال گوشی مطمئن شوید: ``bash adb devices ``
  4. دستور زیر را بزنید تا شناسه دیسک کارت حافظه شناسایی شود: ``bash adb shell sm list-disks ` (خروجی چیزی شبیه به disk:179,64` خواهد بود).
  5. اکنون می‌توانید کارت حافظه را به صورت یکپارچه یا ترکیبی فرمت کنید: اگر می‌خواهید ۵۰٪ کارت به عنوان حافظه داخلی و ۵۰٪ به عنوان رم پرتابل عادی باشد: ``bash adb shell sm partition disk:179,64 mixed 50 ` اگر می‌خواهید تمام کارت حافظه به حافظه داخلی تبدیل شود: `bash adb shell sm partition disk:179,64 private ``
  6. پس از چند لحظه، گوشی کارت حافظه را به عنوان بخشی از رم داخلی شناسایی کرده و تمام برنامه‌ها و دیتای آینده به طور مستقیم روی کارت حافظه ذخیره خواهند شد!

کدام اپلیکیشن‌ها را هرگز نباید به کارت حافظه منتقل کرد؟

انتقال غیرمسئولانه و کورکورانه برنامه‌ها می‌تواند سیستم را با اختلال جدی مواجه کند:

  • برنامه‌های غیرمجاز برای انتقال:
  • برنامه‌های دارای ویجت دسکتاپ و لانچرها: با هر بار بالا آمدن گوشی تا زمان مانت شدن کارت حافظه، تمام آیکون‌ها و ویجت‌ها از صفحه هوم ناپدید می‌شوند.
  • همراه بانک‌ها و کیف‌پول‌های کریپتو: به دلیل تفاوت در لایه‌های رمزنگاری سخت‌افزاری KeyStore، برنامه‌های مالی ممکن است از کار بیفتند.
  • سرویس‌های مقیم سیستمی و پیام‌رسان‌های فعال: واتساپ، تلگرام و سرویس‌های اعلان گوگل اگر به رم منتقل شوند، اعلانات پیام‌ها با تاخیرهای چند دقیقه‌ای دریافت خواهند شد.
  • برنامه‌های عالی و بدون ریسک برای انتقال:
  • بازی‌های سنگین آفلاین تک‌نفره (Asphalt، GTA، Minecraft).
  • نرم‌افزارهای نمایش اسناد، دیکشنری‌های حجیم و کتاب‌خوان‌ها.
  • برنامه‌های پخش ویدیوی آفلاین و ویرایشگرهای عکس.

تشخیص کارت‌های حافظه تقلبی و نامرغوب در بازار

یکی از خطرات بزرگ در خرید کارت حافظه MicroSD، فروش رم‌های تقلبی چینی است که ظرفیت‌های جعلی نشان می‌دهند (مثلاً رم ۱۶ گیگابایت ارزان را با دستکاری فریم‌ویر با برچسب ۵۱۲ گیگابایت می‌فروشند!). پس از نوشتن ۱۶ گیگ، فایل‌های بعدی روی داده‌های قبلی بازنویسی شده و کلیه اپلیکیشن‌های شما خراب می‌شوند:

  • نرم‌افزار راستی‌آزمایی: رم را به کامپیوتر وصل کرده و نرم‌افزار رایگان H2testw را اجرا کنید. این برنامه کل حجم رم را با داده‌های صفر و یک پر کرده و سرعت واقعی خواندن/نوشتن و سلامت سکتورها را گزارش می‌کند.
  • همیشه از برندهای معتبر با گارانتی اصلی نظیر SanDisk Extreme، Samsung EVO Plus یا Kingston Canvas تهیه فرمایید. همچنین جهت مدیریت کامل و پاکسازی بخش‌های پنهان حافظه، راهنمای تخصصی بهینه‌سازی و آزادسازی حافظه گوشی اندروید را مطالعه فرمایید.

مطالب مرتبط در پیشگامیت

جمع‌بندی تحریریه پیشگامیت

انتقال اپلیکیشن‌ها و بازی‌های حجیم به کارت حافظه جانبی در اندرویدهای مدرن همچنان میسر است، به شرطی که اصول مهندسی سیستم‌عامل رعایت شود. با استفاده از ترفند Force allow apps on external در منوی توسعه‌دهنده یا بهره‌گیری از جادوی دستورات ADB، می‌توانید حافظه داخلی گوشی را از بحران پر شدن نجات دهید. با این حال، سرمایه‌گذاری بر روی یک کارت حافظه پرسرعت استاندارد Class A2 تضمین‌کننده این است که ارتقای فضای ذخیره‌سازی هرگز به بهای افت سرعت و لگ گوشی شما تمام نشود.

سوالات متداول

سیستم‌عامل اندروید به دلایل امنیتی، دایرکتوری پایگاه داده اصلی (/data/data/)، کلیدهای دسترسی و بخش‌های حساس کد اجرایی را همواره در حافظه داخلی نگه می‌دارد؛ تنها فایل‌های حجیم مدیا، تکسچرهای سنگین بازی و فایل‌های APK به کارت حافظه منتقل می‌شوند.
تمام برنامه‌هایی که به کارت منتقل شده‌اند بلافاصله کرش کرده و آیکون آن‌ها روی صفحه خاکستری و غیرقابل کلیک می‌شود. در صورت قطع ناگهانی جریان نوشتن، ممکن است فایل‌سیستم کارت حافظه خراب شده و نیازمند اسکن Chkdsk شود.
خیر؛ برنامه‌ها و اطلاعات ذخیره‌شده باقی می‌مانند، اما در برخی مواقع ممکن است با آپدیت نسخه اندروید، سیستم‌عامل به صورت خودکار برخی اپ‌ها را به حافظه داخلی بازگرداند که در این صورت باید فرآیند انتقال را مجدداً تکرار فرمایید.
نیازی به انتقال کل برنامه تلگرام نیست! بهتر است خود اپلیکیشن در حافظه داخلی بماند و فقط از طریق منوی داخلی برنامه به مسیر Settings › Data and Storage › Storage Path بروید و محل ذخیره کش ویدیوها و فایل‌ها را مستقیماً روی SD Card تنظیم کنید.
کلاس A1 برای انجام ۱۵۰۰ دستور خواندن تصادفی در ثانیه طراحی شده و برای برنامه‌های متنی و سبک عالی است؛ در حالی که کلاس A2 به ۴۰۰۰ واحد IOPS مجهز بوده و با پشتیبانی از صف‌بندی فرمان‌ها (Command Queuing) اجرای بازی‌های ۳ بعدی پرسرعت را بدون تیک و لگ تضمین می‌نماید.
در برخی تبلت‌ها یا گوشی‌های خاص که از نظر سخت‌افزاری فاقد شیار اسلات کارت حافظه هستند، سیستم‌عامل به طور خودکار این گزینه را از تنظیمات حذف می‌کند.
بله، به مقدار بسیار نامحسوس (کمتر از ۳ تا ۵ درصد). کنترلر کارت حافظه برای خواندن و نوشتن داده‌ها نیازمند تامین ولتاژ از درگاه سخت‌افزاری گوشی است؛ اما با استفاده از کارت‌های حافظه نسل جدید A2، زمان تبادل دیتا کوتاه‌تر شده و مصرف انرژی به حداقل می‌رسد.
مطلب قبلی آموزش کامل گرفتن اسکرین شات در اندروید 9 (Android P) مطلب بعدی راهنمای جامع بلاک کردن تماس‌های اسپم و ناشناس در اندروید

عضویت در خبرنامه

جدیدترین مطالب و آموزش‌ها را مستقیماً در ایمیل خود دریافت کنید

نظرات

1
سیما
سیما تازه‌وارد
۱۳۹۹/۰۲/۰۶ ۱۵:۴۴
سلام. من روش اول رو انجام دادم ولی برنامه ای که انتقال دادم کلا نامرئی شد. یعنی به جاش یه ایکون شبیه اندروید اومد که شفاف نبود و وقتی هم تو لیست اپلیکیشنها میرم، پیداش نمیکنم. حالا دارم برنامه دوم رو نصب میکنم، امیدوارم به لطف شما جواب بده این روش