এসডি-কার্ড কেন "/ এসডিকার্ড" / বহিরাগত_এসডি "" / এসডিকার্ড "(বা" / এমএনটি / এসডিকার্ড ") এর পরিবর্তে মাউন্ট করা হবে?


18

আমি সম্প্রতি আমার ফোনটি একটি এলজি মোশন 4 জি (অ্যান্ড্রয়েড 4 আইসিএস) এ আপগ্রেড করেছি। আমি দেখতে পাই যে এসডিকার্ডটি মাউন্ট করা আছে /sdcard/external_sd। আমি আরও খেয়াল করেছিলাম যে এটি আরও কয়েকটি নতুন মডেলের সাথে একই বলে মনে হচ্ছে। অ্যাপ্লিকেশনগুলি এসডকার্ডটি আশা করবে /sdcard। আমি ধরে নিই যে উত্পাদনকারীরা প্রচুর অভ্যন্তরীণ স্টোরেজ অন্তর্ভুক্ত করতে চান তবে কেন অভ্যন্তরীণ স্টোরেজ মাউন্ট করবেন /sdcard? এটি কি কোনও রূপের অ্যান্ড্রয়েড স্পেসিফিকেশন স্ট্যান্ডার্ডের বিরুদ্ধে হওয়া উচিত নয়?


4
"স্পেসিফিকেশন স্ট্যান্ডার্ড" হিসাবে, এটি কোনও সমস্যা বাড়িয়ে তুলতে পারে: আপনি বহিরাগত স্টোরেজে ডেভেলপারদের ডকুমেন্টেশনে যেমন পড়তে পারেন , অ্যাপ্লিকেশনগুলিতে এপিআই কলগুলি (এখানে: এক্সটার্নাল স্টোরেজ স্টেট () পান ) হার্ড-কোডড পাথ ব্যবহার না করে অবস্থান / উপলব্ধতা নির্ধারণ করা উচিত ।
ইজি

ভাল পয়েন্ট ইজজি, তবে দৃশ্যত কিছু নির্মাতারা ভুলভাবে অ্যাপ্লিকেশনটিকে অভ্যন্তরীণ স্থানটিতে getExternStorageDirectory () এর মাধ্যমে পুনঃনির্দেশ করছে। stackoverflow.com/questions/11281010/...
Sepero

আহ, ভাল পয়েন্ট পাশাপাশি - একটি অ-বিকাশকারী হিসাবে আমি এটি সম্পর্কে অবগত ছিল না। তবে আমি ফ্লোটি খুব ভাল ব্যাখ্যা দিয়েছি - আবার এমন পয়েন্টগুলির সাথে আমি অবগত ছিলাম না ...
Izzy

উত্তর:


26

কারণটি অ্যান্ড্রয়েডের ইতিহাস: অ্যান্ড্রয়েড ডিভাইসের প্রথম প্রজন্মের মধ্যে কেবলমাত্র সামান্য পরিমাণে অভ্যন্তরীণ স্টোরেজ ছিল (প্রায় 100-400MiB) যা মাউন্ট করা হয়েছিল /data

এরপরে, এর সাথে ডিভাইসগুলি, সেই সময়টিতে বাহ্যিক, এসডি-কার্ড বেরিয়ে এসেছিল। এসডি কার্ডটি মাউন্ট করা হয়েছিল /mnt/sdcard

এর পরে, বড় অভ্যন্তরীণ স্টোরেজ সহ ডিভাইসগুলি বাজারে এসেছিল। এই স্টোরেজটি ভাগ করা হয়েছিল, কারণ /mnt/sdcardঅ্যাপ্লিকেশন, ছবি এবং এগুলি থেকে বড় ডেটা অংশগুলির জন্য এটি ডিফল্ট জায়গা হয়ে গিয়েছিল। সুতরাং অ্যান্ড্রয়েড পরিবেশে একটি /dataএবং /mnt/sdcardডিরেক্টরি থাকতে হয়েছিল। সুতরাং একটি বিভাজন ছিল /data, অন্যটি ছিল /mnt/sdcard। এই কারণেই /dataযদি আপনার প্রচুর জায়গা থাকে তবে আপনার সঞ্চয়স্থান কম ( পার্টিশন) কমতে পারে /mnt/sdcard

এই পরিস্থিতি অ্যান্ড্রয়েড 3.0 এর মাধ্যমে উন্নত হয়েছিল: /dataএবং /mnt/sdcardএখন একই বিভাজনের দিকে ইশারা করছে। গুড জব গুগল, এটি সংস্করণগুলি আগে করা যেতে পারে। এন্ড্রয়েড 3.0.০ বা তার চেয়ে বেশি এর জন্য অ্যাপ্লিকেশনটির আর প্রয়োজন হয় না বলেও কারণ রয়েছে: আপনি কেবল একই ভলিউমের মধ্যে ডেটা সরাবেন।

এখন আমরা আপনার প্রশ্নের উত্তরটি নিয়ে আসছি: যেহেতু /mnt/sdcardইতিমধ্যে অভ্যন্তরীণ স্টোরেজে মাউন্ট করা হয়েছে, তাই একটি বাহ্যিক এসডি-কার্ডকে আলাদা মাউন্ট পয়েন্ট ব্যবহার করতে হবে। এবং এই মাউন্ট পয়েন্টটি গুগল দ্বারা নির্দিষ্ট করা হয়নি। এটা হতে পারে

  • /mnt/sdcard/ext_sd
  • /mnt/external
  • /mnt/extSdCard
  • /mnt/sdcard/external_sd
  • প্রভৃতি

এপিআই কলটি getExternalStorageDirectory()সাধারণত অভ্যন্তরীণ স্টোরেজ ডিরেক্টরিকে নির্দেশ করে। এই আচরণ নথিভুক্ত করা হয়। এমন ওপেন সোর্স প্রকল্প রয়েছে যেগুলি বাহ্যিক এসডি-কার্ড ডিরেক্টরিটি সাধারণভাবে অনুসন্ধান করার জন্য সরঞ্জাম সরবরাহ করে।


এর অর্থ কি এসডি কার্ড নির্ধারণের জন্য অ্যাপসের কোনও "স্বচ্ছ উপায়" নেই? অবশ্যই, isExternalStorageRemovable()"বাহ্যিক" স্টোরেজটি অপসারণযোগ্য কিনা তা দেখতে পারা যায়, এরপরে কেউ মাউন্ট পয়েন্টগুলি নির্ধারণ করতে পারে ( mountকমান্ডটি ব্যবহার করে ) এবং মাউন্ট ফ্ল্যাগ ইত্যাদির জন্য পরীক্ষা করতে পারে তবে এখানে যদি আমার ভুল না নেওয়া হয় তবে এর অর্থ প্রতিটি বিকাশকারীকে প্রয়োজন তার অ্যাপটি নিজেই খুঁজে বের করার জন্য, এবং তার জন্য এটি করার জন্য কোনও সাধারণ এপিআই কল নেই?
ইজি

এটাই সঠিক. এখানে যে লাইব্রেরিগুলি আমি সংযুক্ত করেছি সেগুলি সেই বৈশিষ্ট্যটি যুক্ত করার চেষ্টা করে, তবে এটি করার জন্য কোনও আনুষ্ঠানিক এপিআই কল নেই।
ফ্লো

যদি বাহ্যিক স্টোরেজ এবং /dataপার্টিশন উভয়ই একত্রিত হয় তবে আমি কীভাবে নিরাপদভাবে আমার এসডি কার্ডটিকে প্লাগ করতে মাউন্ট / আনমাউন্ট করতে পারি, বলুন, আমার পিসিতে? আমার কাছে মনে হয় যে পৃথক পার্টিশন থাকা যৌক্তিক এবং আমি কেন দেখতে পেলাম না যে কেন এটি ঘটেছে।
jadkik94

এটি বাহ্যিক স্টোরেজ নয়, এটি তথাকথিত, "অভ্যন্তরীণ এসডি" এবং /dataপার্টিশন যা মার্জ হয়ে যায়।
ফ্লো

This situation was improved with Android 3.0: /data and /mnt/sdcard are now pointing to the same parition। শুধু এফওয়াইআই, এটি অ্যান্ড্রয়েড running.০ (প্যানটেক বারস্ট) চলমান কমপক্ষে একটি ফোনে সত্য নয়, যেখানে /data1 জিবি এক্সট 4 পার্টিশন এবং /mnt/sdcardএটি একটি 12 জিবি FAT32 পার্টিশন।
নেটভোপ

3

বাহ্যিক এসডি মাউন্ট থেকে দূরে জোর করার /mnt/sdcardকোনও প্রযুক্তিগত যোগ্যতা নেই, এটি আরও অভ্যন্তরীণ মেমরির ফোনের জন্য হার্ডওয়্যার বিক্রেতাদের একটি পৃথকীকরণ পয়েন্ট তৈরি করতে সহায়তা করার Google এর উপায়।

/mnt/sdcardএসডকার্ডটি যে জায়গাটিতে হওয়া উচিত ছিল এবং স্পষ্টতই বাহ্যিক এসডি কার্ড লোড করার Google এর অপরিজ্ঞাত পদ্ধতিতে বাহ্যিক এসডি কার্ডকে কম কার্যকর করার জন্য গ্রাহক বান্ধব চক্রান্তের তুলনায় আর একটি কম কারণ অ্যাপ্লিকেশনগুলিকে বাহ্যিক কার্ড সনাক্ত করার জন্য কোনও উপায় খুঁজে বের করার কোনও কারণ নেই আরও নতুন অ্যান্ড্রয়েড ডিভাইস। কোন কারন কেন /dataএবং /mnt/sdcardছিল কম অভ্যন্তরীণ মেমরি সঙ্গে কম দাম ইউনিট থেকে বৃহত্তর অভ্যন্তরীণ মেমরি সঙ্গে পার্থক্য ফোনে নির্মাতার জন্য ব্যতীত Android এর নতুন সংস্করণ একই পার্টিশন মধ্যে মিশে গিয়ে তৈরি করা হবে। এমনকি যদি মার্জটি করতে হয়, তবে গুগল একটি স্ট্যান্ডার্ডকে স্পষ্টভাবে সংজ্ঞায়িত করতে পারেবাহ্যিক এসডি কার্ডগুলিকে সম্পূর্ণ অস্পষ্ট না রেখে নতুন মাউন্টিং পয়েন্ট। এটি স্বল্প দামের ইউনিটগুলির সাথে স্বল্প দামের ইউনিটগুলির তুলনায় উচ্চতর প্রান্তের ফোনগুলির বিক্রেতাকে সহায়তা করার জন্য একটি আনাড়ি নকশার দ্বারা অ্যান্ড্রয়েড ইকো-সিস্টেমটির আরও "বিভাজন" প্রতিরোধের বিরুদ্ধে সম্পূর্ণরূপে কাজ করছে।

অ্যান্ড্রয়েড অ্যাপ্লিকেশন বাইনারিগুলি ক্ষুদ্রতর, অভ্যন্তরীণ মেমরির 1-2 গিগ সহ ফোনগুলি কয়েকশ অ্যাপ্লিকেশনগুলির জন্য পর্যাপ্ত জায়গার চেয়ে আরও বেশি পরিমাণে থাকা উচিত এবং সমস্ত বৃহত ডেটা একটি বাহ্যিক এসডি কার্ডে নিরাপদে টেক করা যেতে পারে। তবে বিক্রেতারা বুঝতে পেরেছিলেন যে তাদের উচ্চতর প্রান্তের পণ্যটি আলাদা করার একটি উপায় আছে এবং উচ্চতর অভ্যন্তরীণ মেমরির দাবি সেই পরিকল্পনার অংশ হয়ে গেছে এবং বহিরাগত মেমরির উপযোগকে পঙ্গু করে দেওয়া এই স্কিমটি সম্পূর্ণরূপে কাজ করার জন্য প্রয়োজনীয় অন্যান্য সংহত অংশ বাহ্যিক এসডি কার্ড এবং আনস্ট্যান্ডার্ডযুক্ত মাউন্টিং পয়েন্টগুলি সন্ধান করতে কম সহায়ক এপিআই।

সুতরাং: না, /mnt/sdcardঅ্যান্ড্রয়েডের নতুন সংস্করণে আরও দামের নতুন ফোন বিক্রির ব্যবসায়ের কৌশল ছাড়া আর কোনও জায়গায় এসডি কার্ড স্থাপন করা কিছুই নয় is একবার কল্পনা করুন, যদি Nexus 4 8GB এবং Nexus 16GB উভয়ই অ্যাপ্লিকেশন এবং মিডিয়াতে 64GB বাহ্যিক এসডি কার্ড ব্যবহার করতে পারে, তবে কি কেউ 16 গিগাবাইট সংস্করণ কেনার কারণ আছে? বাহ্যিক এসডি কার্ডগুলি জড়িত থাকলে অতিরিক্ত 8 গিগাবাইট ন্যানড মেমরিটি অবশ্যই 50 ডলারের দামের তাত্পর্য নয়। যেহেতু একটি স্মার্ট ফোনের বেশিরভাগ উপাদান একই রকম হতে পারে (র‌্যাম, প্রসেসর, রেডিও), অধিক মুনাফার মার্জিনের একমাত্র ক্ষেত্রটি হ'ল অভ্যন্তরীণ মেমরির স্থান এবং তাই অদ্ভুত বাহ্যিক স্মৃতি মাউন্টিং পয়েন্ট।

এছাড়াও "গুগল" ব্র্যান্ডযুক্ত অ্যান্ড্রয়েড ডিভাইসগুলির বর্তমান ক্রপ থেকেও কী সবার বাহ্যিক এসডি সহায়তার অনুপস্থিতি লক্ষ্য করা গেছে? এই প্রবণতাটি "শীর্ষ স্তরের" অ্যান্ড্রয়েড ডিভাইসে প্রসারিত রাখতে থাকবে। মোবাইল বাজারে আইফোনের আধিপত্যকে ছাড়িয়ে যাওয়ার জন্য অ্যান্ড্রয়েড ডিভাইসগুলির জন্য বাহ্যিক এসডি কার্ড সমর্থন একটি মূল পার্থক্য। সংখ্যার খেলায় এখন অ্যান্ড্রয়েডের সর্বোচ্চ নিয়ম রয়েছে, এই লাভের স্যাপিং অনুশীলনটি আরও দীর্ঘকাল ধরে রাখার দরকার নেই।

অ্যান্ড্রয়েড 5.0 দ্বারা আমি অবাক হব না, বাহ্যিক এসডি কার্ড সমর্থনটি অতীতের একটি বিষয় হবে। কারণ যদি অ্যাপ্লিকেশনগুলিকে বাহ্যিক এসডি কার্ড সন্ধান করা শক্ত হয়, তবে বেশিরভাগ প্রোগ্রাম কেবল পরিচিত /dataএবং /mnt/sdcardঅবস্থানগুলি ব্যবহার করবে , বেশিরভাগ অ্যাপ্লিকেশন তার ক্রিয়াকলাপের জন্য আরও বেশি সঞ্চিত ডেটা ব্যবহার করে, "পাতলা বাতাসের বাইরে একটি প্রাণবন্ত পণ্য চিহ্নিতকরণ কৌশল তৈরি করা হয়" "কেবলমাত্র বাহ্যিক এসডি কার্ড এ মাউন্ট না করে /mnt/sdcard


1
এখন, আমি এটিকেই পাঠ্যের প্রাচীর বলি । কিছুটা র্যান্টিও মনে হচ্ছে। আপনার উত্তরে দয়া করে কিছু অনুচ্ছেদ যুক্ত করুন। "মার্জ করার কোনও কারণ নেই /dataএবং কেন" তা আমি পাই না /mnt/sdcard, কারণ আমি স্পষ্টভাবে একটি কারণ দেখতে পাচ্ছি: অভ্যন্তরীণ স্টোরেজের খণ্ডন এড়ানো।
ফ্লো

1
এটি অবশ্যই একটি অভিজাত, ডিসি ছিল, তবে নির্বিশেষে, আমি আপনার ইনপুটটির প্রশংসা করি। চিয়ার্স
সেপিরো

আর এক জিনিস এটা আরো আছে: ডিভাইস xternal SD কার্ড স্থাপন সঙ্গে ভিতরে অভ্যন্তরীণ এক (যেমন /sdcard/external_sd, এলজি P880 দিকে) ব্যাক আপ "ভাগ সঞ্চয়স্থান" উভয় অন্তর্ভুক্ত , এবং একটি বিশাল সংরক্ষণাগার তৈরি করে। কেবল একটি সহজ পদ্ধতির অভ্যন্তরীণ এসডি ব্যাকআপ করার কোনও উপায় নেই। বাহ্যিক কার্ডটি ব্যাকআপ করার অনেক সহজ উপায় আছে বলে এটি কোন তাত্পর্যপূর্ণ নয়। একটি ঘটনা যা আমাকে উন্মাদ করে তোলে, যেমনটি আমার উল্লিখিত ডিভাইসটি রয়েছে ...
Izzy

2

আপনার সচেতন হওয়া উচিত (যদি শিকড় থাকে) আপনি / সিস্টেমে /etc/vold.fstab এ যেতে পারেন এবং / এসডিকার্ড এবং / এমএনটি / এক্সটার্নাল_এসডি / এর জন্য মাউন্ট পয়েন্টগুলি অদলবদল করতে পারেন এটি আপনার এসডকার্ডটিকে / এসডিকার্ডটি আপনার প্রত্যাশার মতো করে রাখতে দেয় এবং অবশিষ্ট "অভ্যন্তরীণ স্টোরেজ" মাউন্ট করা হবে / এমএনটি / বহিরাগত_এসডি বা আপনি যদি পছন্দ করেন / এসডিকার্ড / বহিরাগত_এসডি /


এটি কয়েকটি মডেলের ফোনগুলির সাথে কাজ করে তবে সমস্তটি নয়। এটি আমার এলজি মোশন 4 জি, অ্যান্ড্রয়েড 4.0.4 এর জন্য কাজ করে না। ধন্যবা
Sepero
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.