কেন অ্যান্ড্রয়েডের কন্টেন্টপ্রোভাডার তৈরি করা হয়েছিল?


11

শিরোনামটি আমার প্রশ্নের জবাব দেয় তবে মূলত যা আমি বুঝতে চাই তা হল Android ডিজাইনাররা কেন সরাসরি এসকিউএল ডাটাবেস অ্যাক্সেস না করে কনটেন্ট সরবরাহকারী ব্যবহারের জন্য ভাগ করা ডেটা নিয়ে কাজ করা অ্যাপ্লিকেশনগুলি চান?

আমি কেবলমাত্র সুরক্ষা হ'ল তার কারণ বলতে পারি কারণ নির্দিষ্ট ফাইলগুলি কেবলমাত্র কিছু নির্দিষ্ট প্রক্রিয়াগুলিতে অ্যাক্সেস করতে পারে এবং সেই উপায়ে কন্টেন্ট সরবরাহকারী হ'ল দ্বাররক্ষক যা প্রতিটি অ্যাপ্লিকেশনকে ডাটাবেস ফাইলটিতে পড়ার এবং / অথবা লেখার অ্যাক্সেসের অনুমতি দেওয়ার আগে উপযুক্ত সুযোগ-সুবিধাগুলি নিশ্চিত করে। কনটেন্টপ্রাইডার তৈরি হওয়ার কারণেই কি এটিই প্রাথমিক কারণ?

উত্তর:


6

এটি ডেটা গ্রাহক এবং ডেটা সরবরাহকারীদের অন্তরক করার সমস্ত উপায়ে .র্ধ্বে। আপনি যদি নিজের কিছু ডেটা প্রকাশ্যে বা অন্য অ্যাপ্লিকেশনটিতে কমপক্ষে উপলব্ধ করতে চান তবে আপনি নিজের সামগ্রী সরবরাহকারীর বিকাশ বা বিদ্যমান একটিকে প্রসারিত করুন।

সত্য এটি সুরক্ষার দৃষ্টিকোণ থেকে অ্যাক্সেসগুলি নিয়ন্ত্রণ করতে সার্ভার করতে পারে তবে এটি যখনই আপনি চান আপনার ডেটার দৈহিক বাস্তবায়ন পুনরায় কাজ করার অনুমতি দেয়। আপনাকে যা করতে হবে তা হ'ল সেই ক্ষেত্রে আপনার সামগ্রী সরবরাহকারীর ব্যাক-এন্ড মানিয়ে নেওয়া। ডেটা ভোক্তা অ্যাপ্লিকেশনগুলিতে নতুন করে লিখতে হবে না। প্রকৃত অন্তর্নিহিত বাস্তবায়নের কোনও পরিবর্তন সম্পর্কে অজানা তারা তাদের সামগ্রী সমাধানের মাধ্যমে আপনার ডেটা অ্যাক্সেস চালিয়ে যাবে।

এছাড়াও, অ্যান্ড্রয়েড আপনার কন্টেন্ট সরবরাহকারীর কেবলমাত্র একটি উদাহরণ ইনস্ট্যান্ট করবে এমনকি ডেটা একাধিক ক্লায়েন্টের দ্বারা অ্যাক্সেস করা থাকলেও এটি আপনার যত্ন না করেই একযোগে প্রবেশের যত্ন নেবে care

পরিশেষে, আমি বিশ্বাস করি এটি ক্লিন স্টার্ট আপ এবং শাট ডাউনের কৌতুকও পরিচালনা করবে।


1
আমি মনে করি নিরোধক সম্ভবত সেরা উত্তর। একযোগে অ্যাক্সেস, এসকিউএলাইট এবং অ্যান্ড্রয়েড জাভা ইন্টারফেস সামঞ্জস্য পরিচালনা সম্পর্কে আপনার মতামতের সাথে আমি একমত নই, কন্টেন্টপ্রোভাইডার নিজেই একাধিক যুগপত থ্রেডকে ক্যোয়ারী / সন্নিবেশ / আপডেট করার অনুমতি দেয় যাতে এটি আপনার জন্য সত্যিই কিছু করছে না।
satur9nine

3

ContentProviderএছাড়াও আন্তঃ প্রসেস যোগাযোগ ব্যবস্থার যাতে অন্যান্য তৃতীয় পক্ষের অ্যাপ্লিকেশন সঙ্গে যোগাযোগ করার জন্য প্রয়োজন হয় অল আউট বিমূর্ত। এই কোডটি নিজের হাতে লেখার জন্য একটি বিশাল ব্যথা হবে।


তৃতীয় পক্ষগুলি সর্বদা সরাসরি ডাটাবেস ফাইলটিতে সরাসরি প্রবেশ করতে পারে, সেখানে কোনও আন্তঃ প্রক্রিয়া যোগাযোগের প্রয়োজন নেই।
satur9nine

আপনি কী বলতে চাইছেন তা আমি নিশ্চিত নই ... যদি কোনও অ্যাপ্লিকেশনটি "তৃতীয় পক্ষ" হয় তবে সংজ্ঞা অনুসারে এটি অবশ্যই আলাদা প্রক্রিয়াতে উপস্থিত থাকতে পারে (যেহেতু প্রতিটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনটির নিজস্ব মূল প্রক্রিয়া থাকে)। এছাড়াও যদি অ্যান্ড্রয়েড ওএস আপনাকে অন্য অ্যাপ্লিকেশনের কাঁচা ডেটা স্টোরগুলিতে সরাসরি অ্যাক্সেসের অনুমতি দেয় তবে এটি বেশ কয়েকটি বড় সুরক্ষার সমস্যা উত্থাপন করবে।
অ্যালেক্স লকউড

1

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

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