একটি Wear OS ঘড়ির মুখ ক্রমাগত চলে, তাই এটিকে অবশ্যই দক্ষতার সাথে শক্তি ব্যবহার করতে হবে।
ঘড়ির মুখের কার্যক্ষমতা যতটা সম্ভব অপ্টিমাইজ করুন। এই পৃষ্ঠাটি সামগ্রিক ঘড়ির মুখের অপ্টিমাইজেশনের জন্য সেরা অনুশীলনের পাশাপাশি অ্যানিমেশন এবং চিত্রগুলিকে লক্ষ্য করে সেরা অনুশীলনগুলি সরবরাহ করে৷
মৌলিক অপ্টিমাইজেশান
এই বিভাগে আপনার ঘড়ির মুখের সামগ্রিক দক্ষতা উন্নত করার জন্য সেরা অনুশীলনগুলি রয়েছে৷
মুখের রঙ এবং উজ্জ্বলতা দেখুন
আপনার ঘড়ির মুখে গাঢ় রং ব্যবহার করলে ব্যবহারকারীর ঘড়ি থেকে কম শক্তি পাওয়া যায়। ঘড়ির মুখের ব্যাটারি ব্যবহার অপ্টিমাইজ করতে ঘড়ির মুখের পটভূমি সেট করার জন্য নিম্নলিখিত সুপারিশগুলি রয়েছে:
- রঙ: যখনই সম্ভব, একটি কালো ব্যাকগ্রাউন্ড ব্যবহার করুন।
- উজ্জ্বলতা: যখন একটি কালো ব্যাকগ্রাউন্ড সম্ভব না হয়, তখন রঙ, স্যাচুরেশন, মান (HSV) বা hue, saturation, brightness (HSB) স্কেলে পটভূমির রঙের উজ্জ্বলতা 25% বা তার নিচে রাখুন। উদাহরণস্বরূপ, আপনি যদি HSV স্কেলের সাথে সংজ্ঞায়িত একটি ব্যাকগ্রাউন্ডের রঙ সেট করতে
Color
ক্লাস ব্যবহার করেন, তাহলে মান সেটিং এর জন্য 25 বা কম ব্যবহার করুন, যা উজ্জ্বলতা নিয়ন্ত্রণ করে।
ফোনের সাথে যোগাযোগ করতে গতিশীল ক্ষমতা ব্যবহার করুন
যখন একটি ঘড়ির মুখ ফোনে চালানোর জন্য একটি অপারেশনের প্রয়োজন হয়, শুধুমাত্র ঘড়ির মুখ সক্রিয় থাকে তখনই কোডটি কার্যকর করুন৷ সংশ্লিষ্ট ঘড়ির মুখটি সক্রিয় রয়েছে তা ফোনে অ্যাপটিকে শিখতে দেওয়ার জন্য প্রস্তাবিত পদ্ধতি হল CapabilityClient API ।
শক্তি খরচ নিরীক্ষণ
Wear OS কম্প্যানিয়ন অ্যাপটি ডেভেলপার এবং ব্যবহারকারীদের পরিধানযোগ্য ডিভাইসে বিভিন্ন প্রক্রিয়ার মাধ্যমে কতটা ব্যাটারি খরচ হয় তা দেখতে দেয়। এটি দেখতে, সেটিংস > ওয়াচ ব্যাটারিতে নেভিগেট করুন।
এনক্রিপশন-সচেতন ঘড়ির মুখগুলি নিবন্ধন করুন৷
অ্যান্ড্রয়েড 7.0 এবং উচ্চতর ফাইল-ভিত্তিক এনক্রিপশনের জন্য সমর্থন অন্তর্ভুক্ত করে এবং ব্যবহারকারী বুটআপে ডিক্রিপশন পাসকোড প্রদান করার আগে এনক্রিপশন-সচেতন অ্যাপ্লিকেশনগুলিকে চলতে দেয়। এটি বুট অ্যানিমেশন থেকে ঘড়ির মুখে রূপান্তরের সময়কাল 30 সেকেন্ড পর্যন্ত কমাতে পারে।
দ্রুত বুটআপ সক্ষম করতে, ঘড়ির মুখের ম্যানিফেস্টে android:directBootAware="true"
যোগ করুন।
দ্রষ্টব্য: এই বৈশিষ্ট্যটি ঘড়ির মুখগুলির সাথে ব্যবহার করুন যা শংসাপত্র-এনক্রিপ্ট করা স্টোরেজ ব্যবহার করে না।
অ্যানিমেশনের জন্য সেরা অনুশীলন
এই বিভাগের সর্বোত্তম অনুশীলনগুলি অ্যানিমেশনগুলির সাথে যুক্ত পাওয়ার খরচ কমাতে সহায়তা করে।
অ্যানিমেশনের ফ্রেম রেট কমিয়ে দিন
অ্যানিমেশনগুলি প্রায়শই গণনাগতভাবে ব্যয়বহুল এবং উল্লেখযোগ্য পরিমাণে শক্তি ব্যবহার করে। বেশিরভাগ অ্যানিমেশনগুলি প্রতি সেকেন্ডে 30 ফ্রেমে তরল দেখায়, তাই উচ্চ ফ্রেম হারে আপনার অ্যানিমেশনগুলি চালানো এড়িয়ে চলুন। পরিবর্তে, আপনি গতিশীল ফ্রেম হার ব্যবহার করতে পারেন। আরও তথ্যের জন্য, ক্যানভাস ওয়াচ ফেসের উদাহরণ দেখুন।
অ্যানিমেশনের মধ্যে CPU-কে ঘুমাতে দিন
ব্যাটারি লাইফ বাড়াতে, অ্যানিমেশনগুলি অল্প ব্যবহার করুন৷ এমনকি একটি ব্লিঙ্কিং কোলন প্রতিটি পলকের সাথে ব্যাটারি শক্তি ব্যবহার করে।
অ্যানিমেশন এবং ঘড়ির মুখের বিষয়বস্তুর ছোট পরিবর্তন সিপিইউকে জাগিয়ে তোলে। CPU-কে অ্যানিমেশনগুলির মধ্যে ঘুমাতে দিন, উদাহরণস্বরূপ, ইন্টারেক্টিভ মোডে প্রতি সেকেন্ডে অ্যানিমেশনের সংক্ষিপ্ত বিস্ফোরণ ব্যবহার করে এবং তারপরে CPU-কে পরের সেকেন্ড পর্যন্ত ঘুমাতে দেওয়া। CPU-কে প্রায়ই ঘুমাতে দেওয়া, এমনকি সংক্ষিপ্তভাবে, উল্লেখযোগ্যভাবে বিদ্যুৎ খরচ কমাতে পারে।
ছবির জন্য সেরা অনুশীলন
এই বিভাগের সর্বোত্তম অনুশীলনগুলি চিত্রগুলির সাথে যুক্ত পাওয়ার খরচ কমাতে সহায়তা করে৷
আপনার বিটম্যাপ সম্পদের আকার কমিয়ে দিন
অনেক ঘড়ির মুখের মধ্যে একটি পটভূমি চিত্র এবং অন্যান্য গ্রাফিক সম্পদ থাকে যা রূপান্তরিত হয় এবং ব্যাকগ্রাউন্ড চিত্রের উপর ওভারলেড হয়, যেমন ঘড়ির হাত এবং সময়ের সাথে সাথে সরানো অন্যান্য উপাদান। এই গ্রাফিক সম্পদগুলি যত বড়, তাদের রূপান্তর করা তত বেশি গণনামূলকভাবে ব্যয়বহুল। সাধারণত, এই গ্রাফিক উপাদানগুলিকে ঘোরানো হয়, এবং কখনও কখনও Render.CanvasRenderer.render()
পদ্ধতির মধ্যে স্কেল করা হয়, সিস্টেম যখনই ঘড়ির মুখটি পুনরায় আঁকেন, যেমনটি Draw a watch face এ বর্ণিত হয়েছে।
![](https://developer.android.com/static/training/wearables/watch-faces/images/ClockHandFull.png?authuser=0&hl=bn)
![](https://developer.android.com/static/training/wearables/watch-faces/images/ClockHandCropped.png?authuser=0&hl=bn)
চিত্র 1. অতিরিক্ত পিক্সেল সরাতে ঘড়ির হাত কাটুন।
আপনার বিটম্যাপ সম্পদের আকার হ্রাস করা আপনার অ্যানিমেশনের কর্মক্ষমতা উন্নত করে এবং শক্তি সঞ্চয় করে। আপনার ঘড়ির মুখের কর্মক্ষমতা উন্নত করতে এই টিপস অনুসরণ করুন:
- আপনার প্রয়োজনের চেয়ে বড় গ্রাফিক উপাদান ব্যবহার করবেন না।
- প্রান্তের চারপাশে অতিরিক্ত স্বচ্ছ পিক্সেল সরান।
উদাহরণস্বরূপ, চিত্র 1-এ বাম দিকের ঘড়ির হাতের চিত্রের আকার অতিরিক্ত স্বচ্ছ পিক্সেলগুলি সরিয়ে 97% কমানো যেতে পারে, যেমন চিত্রের ডানদিকে দেখানো হয়েছে।
বিটম্যাপ সম্পদ একত্রিত করুন
আপনার যদি বিটম্যাপ থাকে যা প্রায়শই একসাথে আঁকা হয়, তাহলে সেগুলিকে একটি একক গ্রাফিক সম্পদে একত্রিত করার কথা বিবেচনা করুন। উদাহরণস্বরূপ, প্রতিবার সিস্টেম ঘড়ির মুখটি পুনরায় আঁকলে দুটি পূর্ণ-স্ক্রীন বিটম্যাপ এড়াতে আপনি প্রায়শই ইন্টারেক্টিভ মোডে ব্যাকগ্রাউন্ড ইমেজটিকে টিক চিহ্নের সাথে একত্রিত করতে পারেন।
স্কেল করা বিটম্যাপ আঁকার সময় অ্যান্টি-আলিয়াসিং অক্ষম করুন
যখন আপনি Canvas.drawBitmap()
পদ্ধতি ব্যবহার করে Canvas
অবজেক্টে একটি স্কেল করা বিটম্যাপ আঁকেন, তখন আপনি বিভিন্ন বিকল্প কনফিগার করার জন্য একটি Paint
উদাহরণ প্রদান করতে পারেন। কর্মক্ষমতা উন্নত করতে, setAntiAlias()
পদ্ধতি ব্যবহার করে অ্যান্টি-আলিয়াসিং নিষ্ক্রিয় করুন, যেহেতু এই বিকল্পটি বিটম্যাপের উপর কোন প্রভাব ফেলবে না।
![](https://developer.android.com/static/training/wearables/watch-faces/images/BitmapFilterDisabled.png?authuser=0&hl=bn)
![](https://developer.android.com/static/training/wearables/watch-faces/images/BitmapFilterEnabled.png?authuser=0&hl=bn)
চিত্র 2. বিটম্যাপ ফিল্টারিং নিষ্ক্রিয় (বাম) এবং সক্রিয় (ডান) এর উদাহরণ।
বিটম্যাপ ফিল্টারিং ব্যবহার করুন
বিটম্যাপ সম্পদের জন্য যা আপনি অন্যান্য উপাদানের উপরে আঁকেন, setFilterBitmap()
পদ্ধতি ব্যবহার করে একই Paint
ইনস্ট্যান্সে বিটম্যাপ ফিল্টারিং সক্ষম করুন। চিত্র 2 বিটম্যাপ ফিল্টারিং সহ এবং ছাড়া ঘড়ির হাতের একটি বিবর্ধিত দৃশ্য দেখায়।
দ্রষ্টব্য: যখন পরিবেষ্টিত মোড সক্রিয় থাকে, তখন বিটম্যাপ ফিল্টারিং অক্ষম করুন। লো-বিট অ্যাম্বিয়েন্ট মোডে, সিস্টেমটি বিটম্যাপ ফিল্টারিং সফলভাবে প্রক্রিয়া করার জন্য ইমেজে রঙগুলিকে নির্ভরযোগ্যভাবে রেন্ডার করে না।
অঙ্কন পদ্ধতির বাইরে ব্যয়বহুল অপারেশন সরান
সিস্টেমটি প্রতিবার আপনার ঘড়ির মুখ পুনরায় আঁকার সময় Render.CanvasRenderer.render()
পদ্ধতিটিকে কল করে৷ কর্মক্ষমতা উন্নত করতে, শুধুমাত্র এই পদ্ধতির মধ্যে অপারেশনগুলি অন্তর্ভুক্ত করুন যা ঘড়ির মুখ আপডেট করার জন্য কঠোরভাবে প্রয়োজন৷
যখন সম্ভব, Render.CanvasRenderer.render()
পদ্ধতিতে নিম্নলিখিত ক্রিয়াকলাপগুলি সম্পাদন করা এড়িয়ে চলুন:
- ছবি এবং অন্যান্য সম্পদ লোড হচ্ছে
- ইমেজ রিসাইজ করা
- বস্তু বরাদ্দ
- কম্পিউটেশন যার ফলাফল ফ্রেমের মধ্যে পরিবর্তিত হয় না
আপনার ঘড়ির মুখের কার্যক্ষমতা বিশ্লেষণ করতে, CPU প্রোফাইলার ব্যবহার করুন। বিশেষ করে, নিশ্চিত করুন যে আপনার Render.CanvasRenderer.render()
বাস্তবায়নের জন্য সঞ্চালনের সময় সংক্ষিপ্ত এবং আমন্ত্রণ জুড়ে সামঞ্জস্যপূর্ণ। আরও তথ্যের জন্য, CPU প্রোফাইলারের সাথে CPU কার্যকলাপ পরিদর্শন দেখুন।
সম্পর্কিত সম্পদ
ঘড়ির মুখের নমুনা অ্যাপটি ঘড়ির মুখ কনফিগার করার জন্য সর্বোত্তম অনুশীলনগুলি প্রদর্শন করে৷