হাই আমি ভাবছি কীভাবে অ্যান্ড্রয়েড মেমরি পরিচালনা করছে এবং আমি কোথাও সুনির্দিষ্ট উত্তর খুঁজে পাচ্ছি না। ধরে নেওয়া যাক বর্তমান ক্রিয়াকলাপের স্ট্যাকের 5 টি ক্রিয়াকলাপের সাথে আমার একটি অ্যাপ্লিকেশন রয়েছে (4 টি বন্ধ হয়ে যায় এবং 1 আবার চালু করা হয়), কোনও পরিষেবা সংযুক্ত নেই। আমি হোম বোতাম টিপুন যাতে আমার সমস্ত ক্রিয়াকলাপ বন্ধ হয়ে যায়। আমি অন্য কিছু মেমরি গ্রাসকারী অ্যাপ্লিকেশন শুরু করি এবং সামগ্রিক ডিভাইস মেমরিটি কম হতে শুরু করে। এবং প্রশ্ন হল
... আমার আবেদনের কি হবে?
- সিস্টেম কি স্মৃতি পুনরুদ্ধার করতে আমার এক বা কিছু ক্রিয়াকলাপ ধ্বংস করতে পারে?
- সিস্টেম কি আমার আবেদনের পুরো প্রক্রিয়াটি মেরে ফেলবে? সমস্ত কার্যক্রম সুন্দরভাবে ধ্বংস করা হবে?
- আমার আবেদনটি পুরোপুরি খুন হয়ে গেলে আমি ফিরে আসিলে কী ঘটবে? এটি ভিক্ষাবৃত্তি থেকে শুরু হবে (প্রথম শুরুর মতো) বা এটি প্রচলিত রাজ্যে / যদি হ্যাঁ - তবে এটি কেবল স্ট্যাকের শীর্ষে বা তাদের সমস্তগুলিতে পুনরুদ্ধার করার চেষ্টা করবে?
হালনাগাদ:
এই প্রশ্নটি জিজ্ঞাসা করার আগে আমি কয়েকবার কার্যকলাপের জীবনচক্র দেখেছি কিন্তু এতে আমার প্রশ্নের উত্তর নেই। আমি কিছু পরীক্ষা করেছি এবং আমার কিছু উত্তর আছে। ডিডিএমএসে "স্টপ প্রসেস" টেস্টিংয়ের ক্লু ছিল।
আমি প্রশ্ন 1 এর উত্তর পরীক্ষা করিনি, তবে গাইড হিসাবে বলেছেন:
যদি কোনও ক্রিয়াকলাপ বিরতি দেওয়া হয় বা বন্ধ হয়ে যায়, সিস্টেমটি ক্রিয়াকলাপটি শেষ করতে বলার মাধ্যমে, বা কেবল তার প্রক্রিয়াটি মেরে মেমরি থেকে কার্যকলাপটি বাদ দিতে পারে drop
মনে হচ্ছে এক বা একাধিক ক্রিয়াকলাপটি প্রক্রিয়াটি না মেরে আলতোভাবে (অনডেট্রয়ে পদ্ধতি সহ) ধ্বংস করা যেতে পারে। তাদের কাছে ফিরে আসার সময় আপনি কেবলমাত্র (অনক্রিট + বান্ডেল) পাবেন।
প্রশ্ন 2 উত্তর:
হ্যাঁ. সাধারণত সিস্টেম পুরো প্রক্রিয়াটিকে হত্যা করে যার অর্থ ক্রিয়াকলাপ এবং স্থির ক্ষেত্রগুলি সহ সমস্ত ডেটা নষ্ট হয়ে যায়। এটি দুর্দান্তভাবে করা হয় না - আপনি আপনার বিরতি দেওয়া / বন্ধ হওয়া ক্রিয়াকলাপগুলির জন্য অনডাস্ট্রয়ে বা ফাইনালাইজড () পাবেন না। এই কারণেই সেভ ইনস্ট্যান্সস্টেট () কে অনপজ পদ্ধতির ঠিক আগে বলা হয়। অনপজ মূলত শেষ পদ্ধতি যেখানে আপনার কিছু সংরক্ষণ করা উচিত কারণ এই পদ্ধতির পরে আপনি কখনই অনপ্লেট বা অনডাস্ট্রয়ে দেখতে পেতেন না। সিস্টেম কেবলমাত্র আপনার সমস্ত বস্তু যা তারা ধারণ করে এবং যা করছে তা ধ্বংস করে দেওয়ার প্রক্রিয়াটি কেবল ধ্বংস করতে পারে।
প্রশ্ন 3 উত্তর:
আপনি যখন খুন হওয়া আবেদনে ফিরে আসবেন তখন কি হবে?
- অ্যানড্রয়েড ২.২ এর আগে - অ্যাপ্লিকেশন শুরু হবে লঞ্চের ক্রিয়াকলাপ সহ, ভিক্ষা থেকে।
- ২.২ থেকে শুরু করে - সিস্টেমটি পূর্বের প্রয়োগের স্থিতি পুনরুদ্ধার করবে। এর মানে কী? এর অর্থ হ'ল শেষ দৃশ্যমান কার্যকলাপটি পুনরায় তৈরি করা হবে (অনক্রিট + বান্ডেল)। ক্রিয়াকলাপের স্ট্যাক দিয়ে কী হবে? স্ট্যাক ঠিক আছে তবে এতে সমস্ত ক্রিয়াকলাপ মৃত। আপনি যখন পিছনে বোতামটি দিয়ে ফিরে আসবেন তখন তাদের প্রত্যেককেই পুনরায় তৈরি করা হবে (অনক্রিট + বান্ডেল)। সে সম্পর্কে আরও একটি বিষয় রয়েছে:
সাধারণত যখন ব্যবহারকারী হোম স্ক্রীন থেকে সেই কাজটি পুনরায় নির্বাচিত করেন তখন সিস্টেম কিছু নির্দিষ্ট পরিস্থিতিতে সিস্টেমটি একটি টাস্ক (মূল ক্রিয়াকলাপের উপরের স্ট্যাক থেকে সমস্ত ক্রিয়াকলাপ সরিয়ে দেয়) পরিষ্কার করে দেয়। সাধারণত, যদি ব্যবহারকারী নির্দিষ্ট সময়, যেমন 30 মিনিটের জন্য টাস্কটি না দেখে থাকে তবে এটি করা হয়।
উপসংহার?
- ভাববেন না যে হ্যান্ডলিং ক্রিয়াকলাপ ঘোরানোর সমস্যাগুলি Android এর দ্বারা সমাধান করা যেতে পারে: কনফিগারেশন = "ওরিয়েন্টেশন"। আপনি যখন এটি করেন তখন আপনি আরও অনেক সমস্যা পাবেন যা সম্পর্কে আপনি অবগত নন।
- আপনার অ্যাপ্লিকেশনটি ডিডিএমএস দিয়ে পরীক্ষা করুন - প্রক্রিয়া বোতাম বন্ধ করুন। এটা দেখ
- স্ট্যাটিক ভেরিয়েবলগুলি ব্যবহার করার সময় সতর্কতা অবলম্বন করুন। ভাববেন না যে আপনি যখন তাদের 1 টি ক্রিয়াকলাপে সূচনা করেছিলেন - আপনি তাদের ক্রিয়াকলাপে সূচনা করেছিলেন ২. বিশ্বব্যাপী স্ট্যাটিক্সের আরম্ভ করার একমাত্র নিরাপদ জায়গাটি হবে অ্যাপ্লিকেশন ক্লাস।
- মনে রাখবেন আপনি কখনও স্টপ বা অনডাস্ট্রয়ে দেখতে পাবেন না। ফাইল / ডাটাবেস বন্ধ করুন, অনপেজ এ ডাউনলোডারদের থামান। আপনি যখন বিজি তে অ্যাপটি কিছু করতে চান - অগ্রভাগ পরিষেবাটি ব্যবহার করুন।
এটাই হবে ... আশা করি আমি আমার প্রবন্ধকে সাহায্য করেছি :)