আপনার ঘড়ির মুখের জন্য মেমরি ব্যবহার অপ্টিমাইজ করুন

Wear OS মেমোরি ব্যবহার ট্র্যাক করে ব্যাটারির আয়ু উন্নত করে। Wear OS অ্যাপের মানের নির্দেশিকা অনুসারে, ওয়াচ ফেস ফর্ম্যাট ব্যবহার করে ওয়াচ ফেসগুলির মেমোরি সীমা রয়েছে:

  • অ্যাম্বিয়েন্ট মোড: সর্বোচ্চ ১০ এমবি মেমরি ব্যবহার।
  • ইন্টারেক্টিভ মোড: সর্বোচ্চ ১০০ এমবি মেমরি ব্যবহার।

মেমরি ব্যবহারের হিসাব

ওয়াচ ফেস ফরম্যাট ব্যবহার করে ওয়াচ ফেসে একটি ছবি বা বিটম্যাপ ফন্টের মেমরি ব্যবহার গণনা করতে, সিস্টেমটি নিম্নলিখিত কাজগুলি করে:

  1. ছবি বা ফন্ট ডিকম্প্রেস করুন।
  2. নিম্নলিখিত অপ্টিমাইজেশনগুলি প্রযোজ্য কিনা তা পরীক্ষা করুন:
    • স্ক্রিনের সাথে আরও ভালোভাবে মানানসই করার জন্য আকার পরিবর্তন করা হচ্ছে
    • স্বচ্ছ পিক্সেল কাটছাঁট করা হচ্ছে
    • RGB565 তে ডাউনস্যাম্পলিং, বিশ্বস্ততা নষ্ট না করেই

ফলাফল প্রাপ্ত বাউন্ডিং বাক্সের উপর ভিত্তি করে, আকারটি নিম্নরূপ গণনা করা হয়:

  • RGBA8888 ব্যবহার করে ছবি এবং ফন্টের জন্য: 4 x প্রস্থ x উচ্চতা
  • RGB565 ব্যবহার করে ছবি এবং ফন্টের জন্য: 2 x প্রস্থ x উচ্চতা
  • ALPHA_8 বিটম্যাপ কনফিগারেশন ব্যবহার করে ছবি এবং ফন্টের জন্য: প্রস্থ x উচ্চতা

ইন্টারেক্টিভ মোড

ইন্টারেক্টিভ মোডের জন্য মেমরির ব্যবহার গণনা করতে, সিস্টেমটি নিম্নলিখিত মানগুলি যোগ করে:

  1. যেকোনো ভেক্টর ফন্টের অপ্রক্রিয়াজাত আকার
  2. সিস্টেমের ডিফল্ট ফন্টের আনুমানিক ব্যবহার
  3. ক্রপ, রিসাইজ এবং রিফর্ম্যাট করার পর ছবি এবং বিটম্যাপ ফন্টের মোট আকার প্রয়োগ করা হয়

কনফিগারেশন

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

অ্যাম্বিয়েন্ট মোড এবং স্তরগুলি

সিস্টেমটি ধরে নেয় যে অ্যাম্বিয়েন্ট মোডে তিনটি পূর্ণ-স্ক্রিন স্তর ব্যবহার করা হয়, যার মধ্যে দুটি স্থির। স্তরগুলির মধ্যে রয়েছে:

  1. ঘড়ির মুখের পটভূমি। সিস্টেমটি এটিকে একটি চিত্র হিসাবে বিবেচনা করে, পটভূমিতে কতগুলি চিত্র থাকুক না কেন।
  2. হাত, ডিজিটাল ডিসপ্লে, অথবা গতিশীল উপাদানের মতো চলমান অংশ।
  3. উৎস XML ফাইল থেকে অবশিষ্ট উপাদান।

বড় বিটম্যাপ ফন্টগুলি প্রায়শই অ্যাম্বিয়েন্ট মোডে সবচেয়ে বেশি মেমরি ব্যবহার করে।

মেমোরির ব্যবহার কমানোর পদ্ধতি

মেমোরির ব্যবহার কমাতে নিম্নলিখিত অপ্টিমাইজেশনগুলি ব্যবহার করুন।

বিটম্যাপ ফন্ট ক্রপ এবং রিসাইজ করুন

আপনার ছবি এবং BitmapFont অবজেক্টগুলি ডিসপ্লের আকারের সাথে মেলানোর জন্য ক্রপ করুন।

Wear OS সমস্ত ছবি ডিকম্প্রেস করে ঘড়ির মুখ আঁকে। একটি বেশিরভাগ ফাঁকা পূর্ণ-স্ক্রিন ছবি ডিস্কে 3 KB খরচ করতে পারে, কিন্তু 450-পিক্সেল x 450-পিক্সেল স্ক্রিনে 750 KB বা তার বেশি খরচ করে।

সামঞ্জস্যপূর্ণ বিটম্যাপ ফন্ট উচ্চতা ব্যবহার করুন

BitmapFont ব্যবহার করার সময়, নিশ্চিত করুন যে একটি অক্ষরের জন্য সমস্ত ছবির উচ্চতা একই। একইভাবে, নিশ্চিত করুন যে শব্দের জন্য সমস্ত ছবির উচ্চতা একই।

অ্যানিমেশনে সামঞ্জস্যপূর্ণ ফ্রেমের আকার ব্যবহার করুন

একটি ওয়াচফেসের উপর একটি ছবি সরানোর পরিবর্তে, ছবির উপাদানগুলি আপডেট করুন এবং বাউন্ডিং বক্সের অবস্থান স্থির রাখুন। উদাহরণস্বরূপ, আপনার ওয়াচফেসের উপর একটি বৃত্ত অ্যানিমেট করতে, এটিকে ঘূর্ণায়মান করার পরিবর্তে এর রঙ পরিবর্তন করুন।

এই কৌশলটি অ্যানিমেশনের গণনাকৃত বাউন্ডিং বক্সের আকার সঙ্কুচিত করে।

ছবিগুলো ডিডুপ্লিকেট করুন

একটি ছবি একাধিকবার প্রদর্শন করতে, শুধুমাত্র একটি ছবির রিসোর্স অন্তর্ভুক্ত করুন এবং এটি একাধিকবার উল্লেখ করুন।

আর্ক ব্যবহার করে অগ্রগতি দেখান

১ মিনিট বা ১ ঘন্টা পরে একটি প্রগতি বার শেষ করার জন্য, ৬০টি ছবি ব্যবহার করবেন না। এখানে দেখানো হয়েছে, একটি Arc অবজেক্ট ব্যবহার করুন যার দৈর্ঘ্য নিয়ন্ত্রণকারী একটি এক্সপ্রেশন রয়েছে:

<PartDraw angle="0" width="400" height="400" name="ProgressBar"
    pivotX="0.5" pivotY="0.5" x="25" y="25">
    <Arc centerX="200" centerY="200" width="400" height="400"
        startAngle="0" endAngle="360">
        <!-- Completes a "progress loop" every minute. -->
        <Transform target="endAngle"
            value="0 + (clamp([SECOND], 0, 60) - 0) * 6" />
        <Stroke cap="ROUND" color="#654456" thickness="10" />
    </Arc>
</PartDraw>

একটি অবিচ্ছিন্ন লাইন প্রদর্শনের জন্য, উদাহরণস্বরূপ একটি রেট্রো ডিজিটাল ওয়াচ স্টাইল লুক অর্জনের জন্য, একটি Stroke অবজেক্ট বা একটি সেমিট্রান্সপারেন্ট মাস্ক ইমেজ ওভারলে-এর জন্য একটি ড্যাশ প্রোপার্টি ব্যবহার করুন।

সোর্স ফাইলের শেষে ওয়াচ হ্যান্ডস এবং জটিলতা রাখুন

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

আপনার ওয়াচফেসের মেমরি ব্যবহার মূল্যায়ন করুন

আপনার ওয়াচফেসের মেমরি ব্যবহার পরিমাপ করতে, GitHub-এর watchface রিপোজিটরিতে উপলব্ধ মেমরি ফুটপ্রিন্ট মূল্যায়নকারী টুলটি ব্যবহার করুন।

{% অক্ষরে অক্ষরে %} {% এন্ডভারব্যাটিম %} {% অক্ষরে অক্ষরে %} {% এন্ডভারব্যাটিম %}