মাল্টি-উইন্ডো সমর্থন করে

অ্যান্ড্রয়েড ৭.০ এবং এর পরবর্তী সংস্করণগুলোতে, ডিভাইসগুলো মাল্টি-উইন্ডো ব্যবহার করে একই সাথে একাধিক অ্যাপ প্রদর্শন করতে পারে। অ্যান্ড্রয়েড তিনটি মাল্টি-উইন্ডো কনফিগারেশন সমর্থন করে:

  • ফ্রিফর্ম : ব্যবহারকারীদের অ্যাক্টিভিটি পেনের আকার গতিশীলভাবে পরিবর্তন করতে এবং তাদের স্ক্রিনে দুইটির বেশি অ্যাপ দৃশ্যমান রাখতে দেয়। ডেস্কটপ উইন্ডোইং- এর জন্য, ব্যবহারকারীরা ডেস্কটপে ফ্রিফর্ম উইন্ডো তৈরি করতে পারেন যা ডেস্কটপ-শৈলীর ইন্টারঅ্যাকশন প্রদান করে।
  • স্প্লিট স্ক্রিন : এটি একাধিক উইন্ডোর ডিফল্ট বাস্তবায়ন, যা দুটি অ্যাক্টিভিটি পেইন প্রদান করে যেখানে ব্যবহারকারীরা অ্যাপ রাখতে পারেন।
  • পিকচার-ইন-পিকচার (পিআইপি) : এর মাধ্যমে অ্যান্ড্রয়েড চালিত ডিভাইসগুলো একটি ছোট উইন্ডোতে ভিডিও কন্টেন্ট চালাতে পারে, যখন ব্যবহারকারী অন্যান্য অ্যাপ ব্যবহার করেন।

একাধিক উইন্ডো ডিভাইসের প্রয়োজনীয়তা

অ্যান্ড্রয়েড ৭.০ এবং এর পরবর্তী সংস্করণগুলোতে মাল্টি-উইন্ডো সাপোর্ট ডিফল্টভাবে চালু থাকে। এটি বন্ধ করতে, আপনার ডিভাইসের config.xml ফাইলে config_supportsMultiWindow ফ্ল্যাগটির মান false সেট করুন।

সমস্ত কম-র‍্যাম ডিভাইসে (যেসব ডিভাইস ActivityManager.isLowRam ডিক্লেয়ার করে) মাল্টি-উইন্ডো ডিফল্টরূপে নিষ্ক্রিয় থাকে। কম-র‍্যাম ডিভাইসগুলো config_supportsMultiWindow ফ্ল্যাগের মান উপেক্ষা করে।

ফ্রিফর্ম

ফ্রিফর্ম উইন্ডোইং ব্যবহারকারীকে ইচ্ছামতো আকার পরিবর্তনযোগ্য উইন্ডো তৈরি করার সুযোগ দেয়। ডেস্কটপ উইন্ডোইং- এর জন্য ফ্রিফর্ম উইন্ডোইং একটি পূর্বশর্ত। ফ্রিফর্ম উইন্ডোইং সক্রিয় করার জন্য ডিভাইসের প্রয়োজনীয়তাগুলো নিম্নরূপ:

  • config_supportsMultiWindow ফ্ল্যাগটি সক্রিয় করুন।
  • নিম্নলিখিত উপায়গুলির মধ্যে যেকোনো একটি ব্যবহার করে ফ্রিফর্ম উইন্ডো ম্যানেজমেন্ট সক্রিয় করুন:
    • config.xml ফাইলে config_freeformWindowManagement ফ্ল্যাগটি সক্রিয় করুন:
      <feature name="android.software.freeform_window_management" />
    • ডিভাইস মেকফাইলে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত করুন:
      PRODUCT_COPY_FILES += \
      frameworks/native/data/etc/android.software.freeform_window_management.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/android.software.freeform_window_management.xml

অ্যান্ড্রয়েড ১৬-এ, OEM-রা ‘Enable desktop windowing’ অপশনটি ব্যবহার করে তাদের ডিভাইসে একটি অবাধ বহু-উইন্ডো কনফিগারেশনের জন্য ডেস্কটপ উইন্ডোয়িং সমর্থন করতে পারে।

ডেস্কটপ উইন্ডোইং

ডেস্কটপ উইন্ডোয়িং বড় স্ক্রিনে মাল্টিটাস্কিংয়ের জন্য একটি ওয়ার্কস্পেস প্রদান করে, যা ফ্রিফর্ম উইন্ডোর উপর ভিত্তি করে নির্মিত। এই ওয়ার্কস্পেসটি ফুলস্ক্রিনের পাশাপাশি বিদ্যমান থাকে এবং এতে অতিরিক্ত UI সুবিধা ও বৈশিষ্ট্য রয়েছে যা ব্যবহারকারীকে আরও নমনীয় মাল্টিটাস্কিং অভিজ্ঞতা দেয়:

  • কিবোর্ড বা মাউস ইন্টারঅ্যাকশন: টাচ-ফার্স্ট এবং কিবোর্ড বা মাউস-ফার্স্ট উভয় প্রকার ইন্টারঅ্যাকশন সমর্থন করে।
  • ফ্রিফর্ম উইন্ডো: অ্যাপগুলোকে রিসাইজযোগ্য ও স্থানান্তরযোগ্য উইন্ডোতে চালায়, যেগুলোতে উইন্ডো ক্যাপশন বার এবং কন্ট্রোল থাকে।
  • উন্নত টাস্কবার: চলমান এবং পিন করা অ্যাপগুলোতে সহজে প্রবেশাধিকার দেয়।
  • বাহ্যিক ডিসপ্লের অপ্টিমাইজেশন: সংযুক্ত মনিটরগুলোকে সমর্থিত ডিভাইসগুলোর জন্য ডেস্কটপ পরিবেশে রূপান্তরিত করে।
  • ভার্চুয়াল ডেস্ক: ব্যবহারকারীদের একাধিক ওয়ার্কস্পেসে অ্যাপগুলো সাজিয়ে রাখতে সাহায্য করে।

ডেস্কটপ উইন্ডোইং-এর জন্য একটি ডিভাইস কনফিগার করতে নিম্নলিখিত পূর্বশর্তগুলি পূরণ করুন:

  • নিম্নলিখিত ফ্ল্যাগগুলি সক্রিয় করুন:
  • সিস্টেম UI-এর জন্য কমপক্ষে ৬০০ ডিপি চওড়া একটি ডিসপ্লে প্রয়োজন। এর চেয়ে ছোট স্ক্রিনে ডেস্কটপ উইন্ডোইং প্রত্যাশিতভাবে কাজ নাও করতে পারে।
  • ডিভাইসটি অবশ্যই কম-র‍্যামের ডিভাইস হওয়া যাবে না। ActivityManager.isLowRam অবশ্যই false রিটার্ন করতে হবে, কারণ কম-র‍্যামের ডিভাইসগুলো কোনো মাল্টি-উইন্ডোয়িং ফিচারের জন্য যোগ্য নয়।

স্ক্রিনের আকার এবং ডিভাইসটি কীভাবে ব্যবহার করার উদ্দেশ্যে তৈরি, তার উপর নির্ভর করে ডেস্কটপ উইন্ডোইং-এর জন্য একটি ডিভাইসকে যে যে কনফিগারেশনে সাজানো যেতে পারে, তা নিম্নলিখিত সারণিতে তালিকাভুক্ত করা হলো:

মোড শুধুমাত্র পূর্ণস্ক্রিন হ্যান্ডহেল্ড সংযুক্ত ডিসপ্লেতে ফুলস্ক্রিন-ফার্স্ট হ্যান্ডহেল্ড প্রজেক্টিং ফুলস্ক্রিন-প্রথম বড় স্ক্রিন যা সংযুক্ত ডিসপ্লে পর্যন্ত প্রসারিত হয় ডেস্কটপ উইন্ডোইং-প্রথম বড় স্ক্রিন
উদাহরণ ফর্ম ফ্যাক্টর হ্যান্ডহেল্ড ফোন হ্যান্ডহেল্ড ফোন যা বাহ্যিক ডিসপ্লেতে HDMI সমর্থন করে যে ট্যাবলেটটি বাহ্যিক ডিসপ্লেতে HDMI সংযোগ সমর্থন করে কিবোর্ডসহ ট্যাবলেট যা বাহ্যিক ডিসপ্লেতে HDMI সমর্থন করে
অভ্যন্তরীণ ডিসপ্লে অভিজ্ঞতা ফুলস্ক্রিন, স্প্লিট স্ক্রিন, পিআইপি, নন-ডেস্কটপ ফ্রিফর্ম সমর্থিত ফুলস্ক্রিন, স্প্লিট স্ক্রিন, পিআইপি সমর্থিত আলাদা ডেস্কের মাধ্যমে ফুলস্ক্রিন, স্প্লিট স্ক্রিন, পিআইপি সমর্থিত ডেস্কটপ উইন্ডোইং ডেস্কটপ উইন্ডোইং হলো ডিফল্ট উইন্ডোইং মোড (পৃথক ডেস্ক সমর্থিত); ব্যবহারকারীরা পৃথক ডেস্কের মাধ্যমে ফুলস্ক্রিন বা টাচ মোড ডেস্কটপ উইন্ডোইং-এ প্রবেশ করতে পারেন।
সংযুক্ত ডিসপ্লে অভিজ্ঞতা শুধুমাত্র অভ্যন্তরীণ ডিসপ্লে মিরর করা হচ্ছে শুধুমাত্র সংযুক্ত ডিসপ্লেগুলিতে ডেস্কটপ উইন্ডোইং ডেস্কটপ উইন্ডোইং ডেস্কের পরিসর বাড়ায়; অভ্যন্তরীণ ডিসপ্লেতে উপলব্ধ। ডেস্কটপ উইন্ডোইং ডেস্কের পরিসর বাড়ায়; অভ্যন্তরীণ ডিসপ্লেতে উপলব্ধ।
কনফিগারেশন সেটিংস
config_supportsMultiWindow true true true true
config_freeformWindowManagement true true true true
config_isDesktopModeSupported false true true true
config_canInternalDisplayHostDesktops উপেক্ষা করা হয়েছে false true true
config_enterDesktopByDefaultOnFreeformDisplay উপেক্ষা করা হয়েছে false false true

config_isDesktopModeSupported

config_isDesktopModeSupported কনফিগারেশন ওভারলে ফ্ল্যাগটি হলো ডেস্কটপ উইন্ডোইং চালু করার জন্য শীর্ষ-স্তরের ফ্ল্যাগ। এটি চালু না থাকলে, অন্য সব কনফিগারেশন সেটিংস উপেক্ষা করা হয়। config.xml ফাইলে এটিকে true তে সেট করুন:

<!-- Globally enable Desktop windowing logic -->
    <bool name="config_isDesktopModeSupported">true</bool>

যখন config_isDesktopModeSupported true হয়, তখন সিস্টেম স্বয়ংক্রিয়ভাবে যোগ্য বাহ্যিক ডিসপ্লেগুলোকে (যেমন DisplayPort বা HDMI দ্বারা সংযুক্ত ডিসপ্লে) ডেস্কটপ উইন্ডোইং-এর জন্য প্রার্থী হিসেবে বিবেচনা করে। ডিসপ্লেটিকে অবশ্যই উইন্ডো ম্যানেজার দ্বারা যোগ্য বলে বিবেচিত হতে হবে (অন্তত পাবলিক এবং বিশ্বস্ত, ডেস্কটপ উইন্ডোইং দেখুন)। সিস্টেম ডিফল্টরূপে এই ডিসপ্লেগুলোতে ফ্রিফর্ম মোডে টাস্ক চালু করার চেষ্টা করে।

config_canInternalDisplayHostDesktops

config_canInternalDisplayHostDesktops নামক কনফিগ ওভারলে ফ্ল্যাগটি ডিভাইসের অভ্যন্তরীণ ডিসপ্লেতে ডেস্কটপ উইন্ডোয়িং সক্ষম করে। config.xml ফাইলে এটিকে true তে সেট করুন:

<!-- Allow the primary internal display to host desktop sessions -->
    <bool name="config_canInternalDisplayHostDesktops">true</bool>

ছোট হ্যান্ডহেল্ড ফোনের তুলনায় ট্যাবলেটের মতো বড় স্ক্রিনের ডিভাইসে ডেস্কটপ উইন্ডোইং সবচেয়ে ভালো কাজ করে। যদি এটি সক্রিয় করা না থাকে, তবে ডেস্কটপ উইন্ডোইং শুধুমাত্র একটি এক্সটার্নাল ডিসপ্লেতে সমর্থিত হয় (যদি ডিভাইসটি HDMI সমর্থন করে)।

config_enterDesktopByDefaultOnFreeformDisplay

config_enterDesktopByDefaultOnFreeformDisplay কনফিগ ওভারলে ফ্ল্যাগটি ডিভাইসের অভ্যন্তরীণ ডিসপ্লেতে ডেস্কটপ উইন্ডোয়িংকে ডিফল্ট উইন্ডোয়িং মোড হিসেবে সেট করে। যদি এটি সক্রিয় না করা হয়, তাহলে ফুলস্ক্রিনই ডিফল্ট উইন্ডোয়িং মোড হয় এবং ডেস্কগুলো একসাথে বিদ্যমান থাকে। config.xml ফাইলে এটিকে ` true সেট করুন।

<!-- Enable Desktop windowing as the default windowing mode on the internal display -->
    <bool name="config_enterDesktopByDefaultOnFreeformDisplay">true</bool>

টাস্ক সীমা সক্রিয় করুন

ডেস্কটপ উইন্ডোয়িং-এ সমর্থিত টাস্কের সর্বোচ্চ সংখ্যা কনফিগার করতে, config.xml ফাইলে থাকা config_maxDesktopWindowingActiveTasks কনফিগ ওভারলে ফ্ল্যাগটিকে সমর্থিত টাস্কের সর্বোচ্চ সংখ্যায় সেট করুন। সীমাহীন সংখ্যক টাস্ক সমর্থন করতে, ফ্ল্যাগের মান 0 -তে সেট করুন।

<!-- Maximum number of tasks supported in desktop windowing -->
      <integer name="config_maxDesktopWindowingActiveTasks">4</integer>

ডেস্কের সীমা সক্রিয় করুন

ডেস্কটপ উইন্ডোয়িং-এ সমর্থিত ভার্চুয়াল ডেস্কের সর্বোচ্চ সংখ্যা কনফিগার করতে, config.xml ফাইলে থাকা config_maxDesktopWindowingDesks কনফিগ ওভারলে ফ্ল্যাগটিকে সমর্থিত ডেস্কের সর্বোচ্চ সংখ্যায় সেট করুন। সীমাহীন সংখ্যক ডেস্ক সমর্থন করতে, ফ্ল্যাগের মান 0 -তে সেট করুন।

<!-- Maximum number of virtual desks supported in desktop windowing -->
      <integer name="config_maxDesktopWindowingDesks">4</integer>

স্প্লিট স্ক্রিন

মাল্টি-উইন্ডোর ডিফল্ট অভিজ্ঞতা হলো স্প্লিট-স্ক্রিন মোড, যেখানে সিস্টেম UI ডিভাইসটির মাঝখান দিয়ে পোর্ট্রেট বা ল্যান্ডস্কেপে বিভক্ত থাকে। ডিভাইসের ওরিয়েন্টেশনের উপর নির্ভর করে, ব্যবহারকারীরা বিভাজন রেখাটিকে পাশাপাশি বা উপর থেকে নিচে টেনে উইন্ডোটির আকার পরিবর্তন করতে পারেন।

স্প্লিট স্ক্রিন চালু করার পর, ডিভাইস নির্মাতারা ফ্রিফর্ম অথবা পিআইপি চালু করার বিকল্প বেছে নিতে পারেন।

অ্যান্ড্রয়েড ৮.০ এবং এর পরবর্তী সংস্করণগুলোতে, ব্যবহারকারী হোম বোতামে ট্যাপ করলে লঞ্চারটি কম্প্রেস হওয়ার মাধ্যমে স্প্লিট স্ক্রিন ব্যবস্থাকে উন্নত করা হয়েছে। এর বাস্তবায়ন সংক্রান্ত বিস্তারিত তথ্যের জন্য, স্প্লিট-স্ক্রিন ইন্টারঅ্যাকশনস দেখুন।

পিকচার-ইন-পিকচার

config_supportsMultiWindow ফ্ল্যাগ ব্যবহার করে মাল্টি-উইন্ডো মোড চালু করার পর, ডিভাইস নির্মাতারা পিকচার-ইন-পিকচার সমর্থন করতে পারে, যা ব্যবহারকারীদের অন্যান্য কাজ করার সময় ভিডিও দেখার সুযোগ দেয়। যদিও এই ফিচারটি মূলত অ্যান্ড্রয়েড টিভি ডিভাইসগুলোর জন্য তৈরি, অন্যান্য ধরনের ডিভাইসেও এটি সমর্থিত হতে পারে।

PiP সমর্থন করার জন্য, /android/frameworks/base/core/java/android/content/pm/PackageManager.java ফাইলে PackageManager#FEATURE_PICTURE_IN_PICTURE সিস্টেম ফিচারটি সক্রিয় করুন।

অ্যান্ড্রয়েড ৮.০ এবং তার পরবর্তী সংস্করণে চালিত ডিভাইসগুলির জন্য PiP বাস্তবায়নের আরও বিশদ বিবরণের জন্য, পিকচার-ইন-পিকচার দেখুন।

সিস্টেম UI

মাল্টি-উইন্ডো মোড যাচাইকরণ অনুযায়ী সকল স্ট্যান্ডার্ড সিস্টেম UI সমর্থিত।

অ্যাপস

প্রি-লোডেড অ্যাপগুলির জন্য মাল্টি-উইন্ডো মোড সমর্থন করতে, মাল্টি-উইন্ডো মোড সমর্থন দেখুন।

বৈধতা

আপনার মাল্টি-উইন্ডো বাস্তবায়ন যাচাই করতে, সংশ্লিষ্ট CTS টেস্টগুলো চালান এবং মাল্টি-উইন্ডো মোড যাচাইকরণ অনুসরণ করুন।

অ্যান্ড্রয়েড সংস্করণ CTS পরীক্ষা
৭.০ /platform/cts/hostsidetests/services/activitymanager/src/android/server/cts
৮.০ /platform/cts/hostsidetests/services/activityandwindowmanager/activitymanager/src/android/server/cts
৯.০ /platform/cts/tests/framework/base/activitymanager/src/android/server/am
অ্যান্ড্রয়েড ১০ এবং উচ্চতর /platform/cts/tests/framework/base/windowmanager/src/android/server/wm