অ্যান্ড্রয়েডে কাঁচামালগুলির বিপরীতে সম্পত্তিগুলি কখন ব্যবহার করব?


151

আমি আমার অ্যান্ড্রয়েড অধ্যয়নের মাঝামাঝি সময়ে এসেছি এবং আমি সবেমাত্র সম্পদ এবং কাঁচা সংস্থানগুলি .েকে রেখেছি। আমি কাঁচা সংস্থান বনাম সম্পদ ব্যবহারের কারণটি বোঝার চেষ্টা করছি।

  1. তারা উভয়ই একটি অসম্পূর্ণ উত্স ইনপুট স্ট্রিম সরবরাহ করে।

  2. দেখে মনে হচ্ছে সম্পদগুলি কাঁচা সংস্থার চেয়ে অনেক বেশি নমনীয়তা এবং কার্যকারিতা সরবরাহ করে।

    ক। আপনি অধীন assetsনয় তবে ফোল্ডারের কাঠামো তৈরি করতে পারেনraw

    খ। আপনি assetsফোল্ডারে নয় তবে সমস্ত সংস্থান ফোল্ডারে তালিকাভুক্ত করতে পারেন raw

সুতরাং, আমি অ্যান্ড্রয়েডে কেন কাঁচা সংস্থান ব্যবহার করব?


উত্তর:


182

rawফোল্ডার এবং ফোল্ডারের মধ্যে প্রধান পার্থক্য assets

  • যেহেতু কাঁচা রিসোর্সগুলির একটি সাবফোল্ডার (পুনরায়), অ্যান্ড্রয়েড স্বয়ংক্রিয়ভাবে এর IDঅভ্যন্তরে অবস্থিত যে কোনও ফাইলের জন্য একটি উত্পন্ন করবে। এটি IDতখন সংরক্ষণ করা হয় R classযা কোনও ফাইলের রেফারেন্স হিসাবে কাজ করবে, এর অর্থ এটি অন্যান্য অ্যান্ড্রয়েড ক্লাস এবং পদ্ধতি এবং এমনকি অ্যান্ড্রয়েড এক্সএমএল ফাইলগুলিতে সহজেই অ্যাক্সেস করা যায়। অ্যান্ড্রয়েডে কোনও ফাইল অ্যাক্সেস করার দ্রুততম উপায় স্বয়ংক্রিয়ভাবে উত্পন্ন আইডি ব্যবহার করা ID

  • assetsফোল্ডারের একটি হল "পরিশিষ্ট" নির্দেশিকা। আর বর্গ ID- র উৎপন্ন না সেখানে স্থাপন ফাইল, যা কিছু Android শ্রেণীর ও পদ্ধতি কম সামঞ্জস্যপূর্ণ জন্য। assetsফোল্ডারে ফাইল অ্যাক্সেস ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে স্ট্রিংয়ের উপর ভিত্তি করে আপনার এতে হ্যান্ডেল নেওয়া দরকার । তবে কিছু অপারেশন খুব সহজেই এই ফোল্ডারে ফাইল স্থাপন করে যেমন সিস্টেমের স্মৃতিতে একটি ডাটাবেস ফাইল অনুলিপি করা যায়। সম্পদ ফোল্ডারের ভিতরে থাকা ফাইলগুলির জন্য অ্যান্ড্রয়েড এক্সএমএল রেফারেন্স তৈরি করার কোনও (সহজ) উপায় নেই।


4
@ user370305 হাই, নতুন অ্যান্ড্রয়েড ওএসের জন্য এখনও 1MB সীমাবদ্ধতা রয়েছে? আমি এই বিষয়ে যে কোনও ডকুমেন্টেশন পাই না find আমি কোথায় এটি পেতে পারেন আপনার কোন ধারণা আছে?
জিএমএসএফ

6
@ জিএমএসএফ - এটির জন্য কোনও নির্দিষ্ট দলিল নেই document তবে আপনার জন্য আমার কিছু দরকারী লিঙ্ক রয়েছে। 1. blog.rossgreenhalf.com/2010/12/13/android-file-size-limits 2. stackoverflow.com/questions/11276112/... 3. stackoverflow.com/questions/6809651/... 4. elinux.org/Android_aapt এবং ৫. android-developers.blogspot.in/2012/03/… শুধু শ্রী নং অনুসারে যান।
ব্যবহারকারী370305

2
@ জিএমএসএফ - ফাইলের আকার 1 এমবি এর চেয়ে বড় /assetডিরেক্টরিতে রাখার জন্য অনেক কৌশল রয়েছে ।
ব্যবহারকারী370305

10
সম্পদ ফোল্ডারের জন্য আমার কাছে কখনও ফাইল আকারের সীমাবদ্ধতা ছিল না। আপনি কি নিশ্চিত যে এমন একটি জিনিস আছে?
অ্যান্ড্রয়েড বিকাশকারী

2
হ্যাঁ, অ্যানড্রয়েড ২.২ বা ২.৩ এর আগে, 1 এমবি-র চেয়ে বেশি সংকোচিত আকারের যে কোনও সংকোচিত সম্পদ ফাইলটি এপিপি থেকে পড়া যায় না। যা এখানে গোষ্ঠীগুলি google.com/forum/#!topic/android-developers/lguGFJD-JRs
user370305

33

থেকে অ্যান্ড্রয়েড ডকুমেন্টেশন , raw/ডিরেক্টরির জন্য ব্যবহার করা হয়:

তাদের কাঁচা ফর্ম সংরক্ষণ করতে ইচ্ছামত ফাইল। কাঁচা ইনপুটস্ট্রিম দিয়ে এই সংস্থানগুলি খোলার জন্য , রিসোর্স.ওপেনআরউআরসোর্স () রিসোর্স আইডি সহ কল করুন , এটি আর.আরও.ফাইলনাম

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


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


1
আপনি যদি স্টোরেজ ফোল্ডারে কোনও বড় ফাইল অনুলিপি করতে চান তবে কাঁচা ফাইলগুলি কি সেরা বিকল্প?
লাইভ-

@ 40-লাভ আপনি পূর্ববর্তী সংস্করণগুলি সমর্থন না করে অ্যানড্রয়েড 2.3 এবং তারপরের জন্য ফাইলের আকারের কোনও বিধিনিষেধ নেই আপনার প্রয়োজনীয়তার উপর নির্ভর করে আপনি কোনও স্টোরেজ ফোল্ডার চয়ন করতে পারেন। একটি বড় পার্থক্য হল এই ফাইলগুলি অ্যাক্সেস করার উপায়।
যুবরাজ

1

উপরের উত্তরগুলিতে যুক্ত করা হচ্ছে ...

/ res / স্ট্রিং, / রেজ / লেআউট, / রেজ / এক্সএমএল ফাইল ইত্যাদি সমস্ত বাইনারি ফর্ম্যাটে সংকলিত হয়ে যায়। তবে আপনি যদি এর পরিবর্তে XML ফাইলগুলি সহ ফাইলগুলিকে / res / কাঁচা / ডিরেক্টরিতে রাখেন তবে সেগুলি বাইনারি বিন্যাসে সংকলিত হয় না।

কাঁচা সংস্থানগুলির উপর সম্পদ ব্যবহার করার একটি বড় সুবিধা হ'ল file:///android_asset/ উরির উপসর্গ his এটি কোনও ওয়েবভিউতে একটি সম্পদ লোড করার জন্য দরকারী। উদাহরণস্বরূপ, আপনার প্রকল্পের মধ্যে সম্পদ / foo / index.html এ অবস্থিত কোনও সম্পদ অ্যাক্সেসের জন্য, আপনি ওয়েব loadUrl("file:///android_asset/foo/index.html")ভিউতে এইচটিএমএল লোডিং কল করতে পারেন ।


আপনি file:///android_res/কাঁচা সংস্থানতে নির্দেশ করতে উপসর্গ ব্যবহার করতে পারেন ।
অ্যান্ড্রয়েডজি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.