অ্যান্ড্রয়েড 15 কীভাবে একটি স্ন্যাপশট নিতে হয় এবং একটি কাটলফিশ ভার্চুয়াল ডিভাইসের একটি স্ন্যাপশট পুনরুদ্ধার করতে হয় তার পরিচয় দেয়। একটি Cuttlefish ডিভাইসের একটি স্ন্যাপশট নেওয়া আপনাকে ডিস্কের একটি ছবিতে ডিভাইসের অবস্থা সংরক্ষণ করতে দেয়। তারপরে আপনি একটি কাটলফিশ ডিভাইসকে পূর্বে সংরক্ষিত অবস্থায় আনতে স্ন্যাপশটটি পুনরুদ্ধার করতে পারেন।
আপনি বিভিন্ন স্বয়ংক্রিয় বা ম্যানুয়াল ওয়ার্কফ্লোতে স্ন্যাপশট ব্যবহার করতে পারেন। ডিভাইসটিকে পরিবর্তন করে এমন একটি পদ্ধতি সম্পাদন করার সময়, আপনি ডিভাইসটিকে একটি নির্দিষ্ট অবস্থায় ফিরিয়ে আনতে পারেন তা নিশ্চিত করতে আপনি ডিভাইসটির একটি স্ন্যাপশট নিতে পারেন। উদাহরণস্বরূপ, যখন টেস্ট স্যুটগুলি চালানো হয় যা ডিভাইসের অবস্থা পরিবর্তন করে এবং নিম্নলিখিত পরীক্ষাগুলিতে সম্ভাব্য সমস্যা বা অস্থিরতার কারণ হতে পারে, আপনি একটি স্ন্যাপশট নিতে পারেন যাতে আপনি একটি পরীক্ষার পরে ডিভাইসটিকে একটি সংরক্ষিত অবস্থায় পুনরুদ্ধার করতে পারেন, যাতে পরবর্তী পরীক্ষাগুলি চালানো হয় তা নিশ্চিত করে পরিষ্কারভাবে
আরেকটি উদাহরণ ওয়ার্কফ্লো যেখানে স্ন্যাপশটগুলি কার্যকর হয় যখন একটি অ্যাপের আচরণ পরীক্ষা করা হয়। ক্রিয়াগুলির একটি সেটের উপর ভিত্তি করে একটি অ্যাপের আচরণ পরীক্ষা করার সময়, আপনি শুরু থেকে পুনরায় আরম্ভ না করেই সেই স্ন্যাপশটে পুনরুদ্ধার করতে দেওয়ার জন্য অ্যাপটি চলমান থাকায় ক্রিয়াগুলির মধ্যে একটি স্ন্যাপশট নিতে পারেন। উদাহরণ স্বরূপ, যদি একটি গেম লঞ্চ করার সময় অনেক লম্বা হয়, তাহলে আপনি মূল মেনুতে পৌঁছানোর পর একটি স্ন্যাপশট নিতে পারেন যাতে আপনি ডিভাইসটিকে সেই অবস্থায় পুনরুদ্ধার করতে পারেন, আনার সময় এড়িয়ে যান।
একটি কাটলফিশ ডিভাইসের স্ন্যাপশট নিন
একটি ডিভাইসের একটি স্ন্যাপশট নেওয়ার সময়, Cuttlefish ডিভাইসটি একটি স্থিতিশীল অবস্থায় আছে তা নিশ্চিত করার জন্য Cuttlefish ডিভাইসটিকে সাসপেন্ড করতে হবে। যখন ডিভাইসটি স্থগিত করা হয়, তখন সমস্ত vCPU এবং ডিভাইস বন্ধ হয়ে যায় এবং সমস্ত বাফার তাদের অবস্থাকে VM-এ ঠেলে দেয়। স্ন্যাপশট তারপর একটি নির্দিষ্ট গন্তব্য ফোল্ডারে ডিস্কে vCPU অবস্থা, মেমরি এবং ডিভাইসের অবস্থা সংরক্ষণ করে।
VirtiosFS সমর্থিত নয় এবং একটি স্ন্যাপশট নেওয়ার সময় অবশ্যই অক্ষম করতে হবে। VirtioFS নিষ্ক্রিয় করতে, cvd create
বা cvd start
চালানোর সময় যুক্তিটি পাস করুন --enable_virtiofs=false
।
স্ন্যাপশটের জন্য শুধুমাত্র SwiftShader ( guest_swiftshader
) GPU মোড সমর্থিত। অন্যান্য ত্বরিত গ্রাফিক্স মোড সমর্থিত নয়।
নিম্নলিখিত পদক্ষেপগুলি একটি কাটলফিশ ডিভাইস চালু করার এবং একটি স্ন্যাপশট নেওয়ার প্রক্রিয়া বর্ণনা করে।
VirtioFS নিষ্ক্রিয় করার সময় একটি ডিভাইস চালু করুন। (তখন আপনি ডিভাইসটি ব্যবহার করতে পারেন।)
cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshader
নিম্নলিখিত পতাকাগুলির সাথে
cvd snapshot_take
চালিয়ে একটি স্ন্যাপশট নিন:--force
: নির্দিষ্ট স্ন্যাপশট পাথে একটি ফোল্ডার বিদ্যমান থাকলে, এই পতাকাটি নিশ্চিত করে যে বিদ্যমান ফোল্ডারটি মুছে ফেলা হয়েছে, এবং স্ন্যাপশট ধারণকারী স্ন্যাপশট পাথে একটি নতুন ফোল্ডার তৈরি করা হয়েছে।--auto_suspend
: স্ন্যাপশট নেওয়ার আগে ডিভাইসটিকে সাসপেন্ড করে এবং স্ন্যাপশট নেওয়ার পরে ডিভাইসটি পুনরায় চালু করে।--snapshot_path
: নির্দিষ্ট পথ যেখানে স্ন্যাপশট দিয়ে একটি নতুন ফোল্ডার তৈরি করা হয়।
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
একটি কাটলফিশ ডিভাইস পুনরুদ্ধার করুন
একটি Cuttlefish ডিভাইস স্ন্যাপশট পুনরুদ্ধার করার সময়, Cuttlefish দৃষ্টান্ত যার জন্য স্ন্যাপশট নেওয়া হয়েছিল তা বন্ধ করতে হবে। যদি দৃষ্টান্তটি ইতিমধ্যেই বন্ধ হয়ে যায়, তাহলে আর কোনো পদক্ষেপের প্রয়োজন নেই এবং স্ন্যাপশটটি পুনরুদ্ধার করা যেতে পারে।
একটি কাটলফিশ ডিভাইসের একটি স্ন্যাপশট পুনরুদ্ধার করতে, cvd create
সহ একটি ডিভাইস চালু করুন এবং স্ন্যাপশট পাথ অন্তর্ভুক্ত করুন। যদি কাটলফিশ ডিভাইসের বেস ইনস্ট্যান্স নম্বর যেটিতে স্ন্যাপশট নেওয়া হয়েছিল তা বর্তমান কাটলফিশ ইনস্ট্যান্সের বেস ইনস্ট্যান্স নম্বর থেকে আলাদা হয়, তাহলে --base_instance_num
পতাকা ব্যবহার করে সেই বেস ইনস্ট্যান্স নম্বরটি পাস করুন।
cvd create --snapshot_path=PATH \
--base_instance_num=ID
একটি Cuttlefish ডিভাইস স্থগিত
আপনি একটি স্ন্যাপশট না নিয়ে একটি Cuttlefish ডিভাইস স্থগিত করতে পারেন (রাজ্য সংরক্ষণের জন্য কোন ডিস্ক স্থান ব্যবহার করা হয় না)। একটি Cuttlefish ডিভাইস স্থগিত করতে, চালান:
cvd suspend
একটি Cuttlefish ডিভাইস পুনরায় শুরু করুন
একটি স্থগিত কাটলফিশ ডিভাইস পুনরায় শুরু করতে, চালান:
cvd resume
স্ন্যাপশট/পুনরুদ্ধার বৈশিষ্ট্য যাচাই করুন
স্ন্যাপশট/পুনরুদ্ধার বৈশিষ্ট্যটি নিম্নলিখিত পরীক্ষা চালিয়ে যাচাই করা যেতে পারে:
atest SnapshotTest