অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP)-এর মৌলিক পরিভাষাগুলো জানতে নিচের তালিকাটি দেখুন। গুরুত্বপূর্ণ পরিভাষাগুলোর সংজ্ঞার জন্য এখানে অন্যান্য উৎস দেওয়া হলো:
- অ্যান্ড্রয়েড সামঞ্জস্য সংজ্ঞা নথি (CDD) বিল্ড প্যারামিটার বিভাগ
- অডিও পরিভাষা
- ইউএসবি-র প্রাথমিক ধারণা ও পরিভাষা
- মোটরগাড়ির পরিভাষা
- অটোমোটিভ ডায়ালার পরিভাষা
- অটোমোটিভ ইন্সট্রুমেন্ট ক্লাস্টার এপিআই পরিভাষা
- অ্যাপ ডেভেলপার পরিভাষাকোষ
- ক্যামেরা সংস্করণ পরিভাষা
- ডিভাইস ট্রি ওভারলে (DTO) পরিভাষা
- ফ্রেমওয়ার্ক সামঞ্জস্য ম্যাট্রিক্স (FCM) জীবনচক্র পরিভাষা
- স্বাস্থ্য পরিভাষা
- HIDL পরিভাষা
- হার্ডওয়্যার-সমর্থিত কীস্টোর পরিভাষা
- মাল্টি-ডিসপ্লে পরিভাষা
আরও অন্তর্ভুক্তিমূলক একটি ইকোসিস্টেমের জন্য কোন পরিভাষা ব্যবহার করতে হবে এবং কোনটি পরিহার করতে হবে, তার উদাহরণের জন্য কোডটি দেখুন।
অ্যাপস
- এপিকে (.apk) ফাইল
-
.apkএক্সটেনশন সহ অ্যান্ড্রয়েড অ্যাপ প্যাকেজ ফাইল। প্রতিটি অ্যান্ড্রয়েড অ্যাপ একটি একক ফাইলে কম্পাইল এবং প্যাকেজ করা হয়, যার মধ্যে অ্যাপটির সমস্ত কোড (.dexএক্সটেনশন সহ DEX ফাইল), রিসোর্স, অ্যাসেট এবং ম্যানিফেস্ট ফাইল অন্তর্ভুক্ত থাকে। অ্যাপ প্যাকেজ ফাইলের যেকোনো নাম থাকতে পারে, তবে এতে অবশ্যই.apkএক্সটেনশন ব্যবহার করতে হবে, যেমন,myExampleAppname.apk। সুবিধার জন্য, অ্যাপ প্যাকেজ ফাইলকে প্রায়শই APK বলা হয়।সম্পর্কিত: অ্যাপ
- পদক্ষেপ
- ইন্টেন্ট প্রেরক যা করাতে চান, তার একটি বর্ণনা। অ্যাকশন হলো একটি স্ট্রিং ভ্যালু যা একটি ইন্টেন্টে অ্যাসাইন করা হয়। অ্যাকশন স্ট্রিংগুলো অ্যান্ড্রয়েড অথবা কোনো থার্ড-পার্টি ডেভেলপার দ্বারা সংজ্ঞায়িত করা যেতে পারে। উদাহরণস্বরূপ, একটি ওয়েব ইউআরএল-এর জন্য
android.intent.action.VIEW, অথবা ফোন ভাইব্রেট করার জন্য কোনো কাস্টম অ্যাপের ক্ষেত্রেcom.example.rumbler.SHAKE_PHONE।সম্পর্কিত: অভিপ্রায়
- কার্যকলাপ
- অ্যাপের একটি একক স্ক্রিন, যা
Activityক্লাস থেকে উদ্ভূত এবং এতে সহায়ক জাভা কোড থাকে। সাধারণত, একটি অ্যাক্টিভিটি একটি পূর্ণ-স্ক্রিন উইন্ডো দ্বারা দৃশ্যমানভাবে উপস্থাপিত হয়, যা UI ইভেন্ট গ্রহণ ও পরিচালনা করতে এবং জটিল কাজ সম্পাদন করতে পারে, কারণ এটি তার উইন্ডো রেন্ডার করার জন্য একটি নির্দিষ্ট উইন্ডো ব্যবহার করে। একটি অ্যাক্টিভিটি সাধারণত পূর্ণ-স্ক্রিন হয়, তবে এটি ভাসমান বা স্বচ্ছও হতে পারে। - অ্যাপ
- কম্পোনেন্টের দৃষ্টিকোণ থেকে, একটি অ্যান্ড্রয়েড অ্যাপ এক বা একাধিক অ্যাক্টিভিটি, সার্ভিস, লিসেনার এবং ইন্টেন্ট রিসিভার নিয়ে গঠিত। সোর্স ফাইলের দৃষ্টিকোণ থেকে, একটি অ্যান্ড্রয়েড অ্যাপ কোড, রিসোর্স, অ্যাসেট এবং একটিমাত্র ম্যানিফেস্ট নিয়ে গঠিত। কম্পাইলেশনের সময়, এই ফাইলগুলোকে অ্যাপ প্যাকেজ ফাইল (APK) নামক একটি একক ফাইলে প্যাকেজ করা হয়।
সম্পর্কিত: এপিকে (.apk) ফাইল , কার্যকলাপ
- সম্প্রচার রিসিভার
-
BroadcastReceiverক্লাসের উপর ভিত্তি করে তৈরি একটি অবজেক্ট, যা এমন ইন্টেন্টগুলো শোনে যেগুলো কোনো একটি নির্দিষ্ট টার্গেট অ্যাপ বা অ্যাক্টিভিটিতে না পাঠিয়ে ব্রডকাস্ট করা হয়। সিস্টেমটি সমস্ত আগ্রহী ব্রডকাস্ট রিসিভারদের কাছে একটি ব্রডকাস্ট ইন্টেন্ট পৌঁছে দেয়, যারা ক্রমানুসারে ইন্টেন্টগুলো পরিচালনা করে।সম্পর্কিত: অভিপ্রায় , অভিপ্রায় ফিল্টার
- বিষয়বস্তু প্রদানকারী
- একটি ডেটা-অ্যাবস্ট্রাকশন লেয়ার যা ব্যবহার করে আপনি আপনার অ্যাপের ডেটা নিরাপদে অন্যান্য অ্যাপের কাছে প্রকাশ করতে পারেন। একটি কন্টেন্ট প্রোভাইডার
ContentProviderক্লাসের উপর ভিত্তি করে তৈরি, যা একটি নির্দিষ্ট ফরম্যাটের ডেটা ফেরত দেওয়ার জন্য নির্দিষ্ট ফরম্যাটের কন্টেন্ট কোয়েরি স্ট্রিংগুলো পরিচালনা করে। আরও তথ্যের জন্য কন্টেন্ট প্রোভাইডার্স দেখুন।সম্পর্কিত: অ্যান্ড্রয়েডে ইউআরআই
- সংলাপ
- একটি ভাসমান উইন্ডো যা একটি হালকা কাঠামো হিসেবে কাজ করে। একটি ডায়ালগে শুধুমাত্র বাটন কন্ট্রোল থাকতে পারে এবং এর উদ্দেশ্য হলো একটি সাধারণ কাজ (যেমন বাটন নির্বাচন) করা এবং সম্ভবত একটি মান ফেরত দেওয়া। একটি ডায়ালগ হিস্ট্রি স্ট্যাকে স্থায়ী থাকা, জটিল লেআউট ধারণ করা বা জটিল কাজ সম্পাদন করার জন্য তৈরি করা হয়নি। অ্যান্ড্রয়েড ঐচ্ছিক বাটনসহ একটি ডিফল্ট সাধারণ ডায়ালগ প্রদান করে, অথবা আপনি আপনার নিজস্ব ডায়ালগ লেআউট সংজ্ঞায়িত করতে পারেন। ডায়ালগের বেস ক্লাস হলো
Dialog।সম্পর্কিত: কার্যকলাপ
- উদ্দেশ্য
- একটি মেসেজ অবজেক্ট যা আপনি অ্যাসিঙ্ক্রোনাসভাবে অন্যান্য অ্যাপ বা অ্যাক্টিভিটি চালু করতে বা তাদের সাথে যোগাযোগ করতে ব্যবহার করতে পারেন। একটি ইন্টেন্ট অবজেক্ট হলো
Intentক্লাসের একটি ইনস্ট্যান্স। এতে বেশ কয়েকটি ক্রাইটেরিয়া ফিল্ড থাকে যা আপনি সরবরাহ করে নির্ধারণ করতে পারেন কোন অ্যাপ বা অ্যাক্টিভিটি ইন্টেন্টটি গ্রহণ করবে এবং ইন্টেন্টটি হ্যান্ডেল করার সময় রিসিভার কী করবে। উপলব্ধ ক্রাইটেরিয়াগুলোর মধ্যে রয়েছে কাঙ্ক্ষিত অ্যাকশন, একটি ক্যাটাগরি, একটি ডেটা স্ট্রিং, ডেটার MIME টাইপ এবং একটি হ্যান্ডলিং ক্লাস। একটি অ্যাপ সরাসরি অন্য কোনো অ্যাপ বা অ্যাক্টিভিটিতে না পাঠিয়ে, অ্যান্ড্রয়েড সিস্টেমে একটি ইন্টেন্ট পাঠায়। অ্যাপটি একটি একক টার্গেট অ্যাপে ইন্টেন্টটি পাঠাতে পারে অথবা এটি একটি ব্রডকাস্ট হিসাবে পাঠাতে পারে, যা পরবর্তীতে একাধিক অ্যাপ দ্বারা ক্রমানুসারে হ্যান্ডেল করা যেতে পারে। ইন্টেন্টে সরবরাহ করা ক্রাইটেরিয়া এবং অন্যান্য অ্যাপ দ্বারা সংজ্ঞায়িত ইন্টেন্ট ফিল্টারগুলোর উপর ভিত্তি করে, প্রতিটি ইন্টেন্টের জন্য সেরা-উপলব্ধ রিসিভার নির্ধারণের দায়িত্ব অ্যান্ড্রয়েড সিস্টেমের। আরও তথ্যের জন্য, ইন্টেন্ট এবং ইন্টেন্ট ফিল্টার দেখুন।সম্পর্কিত: ইন্টেন্ট ফিল্টার , ব্রডকাস্ট রিসিভার
- অভিপ্রায় ফিল্টার
- একটি ফিল্টার অবজেক্ট যা একটি অ্যাপ তার ম্যানিফেস্ট ফাইলে ঘোষণা করে, সিস্টেমকে জানানোর জন্য যে এর প্রতিটি কম্পোনেন্ট কী ধরনের ইন্টেন্ট এবং কী কী শর্ত সাপেক্ষে গ্রহণ করতে ইচ্ছুক। একটি ইন্টেন্ট ফিল্টারের মাধ্যমে, একটি অ্যাপ নির্দিষ্ট ডেটা টাইপ, ইন্টেন্ট অ্যাকশন, URI ফরম্যাট ইত্যাদির প্রতি আগ্রহ প্রকাশ করতে পারে। একটি ইন্টেন্ট রিজলভ করার সময়, সিস্টেম সমস্ত অ্যাপে উপলব্ধ সমস্ত ইন্টেন্ট ফিল্টার মূল্যায়ন করে এবং ইন্টেন্টটিকে সেই অ্যাপ বা অ্যাক্টিভিটিতে পাঠায় যা ইন্টেন্ট এবং শর্তগুলোর সাথে সবচেয়ে ভালোভাবে মেলে। আরও তথ্যের জন্য, ইন্টেন্ট এবং ইন্টেন্ট ফিল্টার দেখুন।
সম্পর্কিত: অভিপ্রায় , সম্প্রচার গ্রাহক
- সম্পদ
- ননপ্রোগ্রামেটিক অ্যাপ কম্পোনেন্ট হলো এমন উপাদান যা কম্পাইল করা অ্যাপ কোডের বাইরে থাকে, কিন্তু একটি সুপরিচিত রেফারেন্স ফরম্যাট ব্যবহার করে অ্যাপ কোড থেকে লোড করা যায়। অ্যান্ড্রয়েড বিভিন্ন ধরণের রিসোর্স সমর্থন করে, তবে একটি সাধারণ অ্যাপের রিসোর্সের মধ্যে UI স্ট্রিং, UI লেআউট কম্পোনেন্ট, গ্রাফিক্স বা অন্যান্য মিডিয়া ফাইল ইত্যাদি থাকে। একটি অ্যাপ স্থানীয়করণ এবং বিভিন্ন ডিভাইস প্রোফাইল ও স্টেটকে দক্ষতার সাথে সমর্থন করার জন্য রিসোর্স ব্যবহার করে। উদাহরণস্বরূপ, একটি অ্যাপে প্রতিটি সমর্থিত স্থানীয় বা ডিভাইসের ধরণের জন্য আলাদা রিসোর্স সেট থাকতে পারে এবং এতে বর্তমান স্ক্রিন ওরিয়েন্টেশনের (ল্যান্ডস্কেপ বা পোর্ট্রেট) জন্য নির্দিষ্ট লেআউট রিসোর্সও অন্তর্ভুক্ত থাকতে পারে। রিসোর্স সম্পর্কে আরও তথ্যের জন্য, 'অ্যাপ রিসোর্স ওভারভিউ' দেখুন। একটি অ্যাপের রিসোর্স সর্বদা প্রজেক্টের
res/*সাবফোল্ডারে সংরক্ষিত থাকে। - পরিষেবা
-
Serviceক্লাসের একটি অবজেক্ট যা ব্যাকগ্রাউন্ডে (কোনো UI উপস্থিতি ছাড়াই) চলে এবং বিভিন্ন স্থায়ী কাজ সম্পাদন করে, যেমন গান চালানো বা নেটওয়ার্ক কার্যকলাপ পর্যবেক্ষণ করা।সম্পর্কিত: কার্যকলাপ
- অ্যান্ড্রয়েডে ইউআরআই
- অ্যান্ড্রয়েড একটি কন্টেন্ট প্রোভাইডারে ডেটা অনুরোধ করার (যেমন পরিচিতির তালিকা পুনরুদ্ধার করা) এবং একটি ইন্টেন্টে অ্যাকশন অনুরোধ করার (যেমন ব্রাউজারে একটি ওয়েব পেজ খোলা) ভিত্তি হিসাবে ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) স্ট্রিং ব্যবহার করে। ব্যবহারের ধরন অনুযায়ী URI স্কিম এবং ফরম্যাট বিশেষায়িত হয়, এবং একটি অ্যাপ তার পছন্দের যেকোনো উপায়ে নির্দিষ্ট URI স্কিম এবং স্ট্রিং পরিচালনা করতে পারে। কিছু URI স্কিম সিস্টেম কম্পোনেন্ট দ্বারা সংরক্ষিত থাকে। উদাহরণস্বরূপ, একটি কন্টেন্ট প্রোভাইডার থেকে ডেটার অনুরোধের জন্য অবশ্যই
content://ব্যবহার করতে হবে। একটি ইন্টেন্টে,http://স্কিম ব্যবহার করে এমন একটি URI ব্রাউজার দ্বারা পরিচালিত হয়।
নির্মাণ করুন
- এডিবি
- অ্যান্ড্রয়েড ডিবাগ ব্রিজ (adb) হলো SDK-এর সাথে অন্তর্ভুক্ত একটি কমান্ড-লাইন ডিবাগিং অ্যাপ। adb ডিভাইস ব্রাউজ করতে, ডিভাইসে টুলস কপি করতে এবং ডিবাগিংয়ের জন্য পোর্ট ফরওয়ার্ড করার টুল সরবরাহ করে। আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে ডেভেলপ করেন, তাহলে adb আপনার ডেভেলপমেন্ট এনভায়রনমেন্টের সাথে ইন্টিগ্রেটেড থাকে। সাধারণ টেক্সটে এই সংক্ষিপ্ত রূপটি সম্পূর্ণ ছোট হাতের অক্ষরে লেখা হয়। যখন বিশেষভাবে কমান্ডটির কথা বলা হয়, তখন এটি
adbহিসেবে লেখা হয়। আরও তথ্যের জন্য "আপনার fastboot এবং adb আছে কিনা যাচাই করুন" দেখুন। - অ্যান্ড্রয়েড প্রজেক্ট
- অ্যান্ড্রয়েড গেরিট হোস্টে থাকা একটি গিট রিপোজিটরি। গিট কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য গিট সোর্স এডিটর দেখুন।
সম্পর্কিত: গিট রিপোজিটরি
- আঙুলের ছাপ তৈরি করুন
- প্রতিটি বিল্ডের জন্য প্রস্তুতকারকের তথ্য সম্বলিত একটি অনন্য, পাঠযোগ্য স্ট্রিং প্রদান করা হয়। আরও তথ্যের জন্য 'বিল্ড ওটিএ প্যাকেজ' দেখুন।
- গিট শাখা - ক্যানোনিকাল
- প্রতিটি গিট রিপোজিটরির স্বতন্ত্র সংস্করণ রয়েছে, যেমন
android-11.0.0_r1, যা cs.android.com/android/platform/superproject/+/android-11.0.0_r1 -এ পাওয়া যায়। আরও তথ্যের জন্য "Git Branching - Branches in a Nutshell" দেখুন। - গিট শাখা - স্থানীয়
- কোডে পরিবর্তন আনার জন্য বর্তমান রিপো ক্লায়েন্টের একটি অস্থায়ী ব্রাঞ্চ, যা
repo start branch-name .কমান্ডের মাধ্যমে শুরু করা হয়। এটি উন্নয়নের একটি সক্রিয় ধারা। একটি ব্রাঞ্চের সর্বশেষ কমিটকে সেই ব্রাঞ্চের ` tip` বলা হয়। - গিট রিপোজিটরি
- কখনও কখনও প্রজেক্ট নামেও পরিচিত, এটি কোডবেসের একটি অংশ যা কোনো নির্দিষ্ট কম্পোনেন্ট বা ডিভাইসের ধরনকে প্রতিনিধিত্ব করে, যেমন
frameworks/baseবাplatform/packages/apps/Car/Media।সম্পর্কিত: অ্যান্ড্রয়েড প্রজেক্ট
- ম্যানিফেস্ট ফাইল
- একটি XML ফাইল যা প্রতি ব্রাঞ্চ অনুযায়ী গিট রিপোজিটরিগুলোর গ্রুপিং, যে গিট রিভিশনগুলোতে সেই রিপোজিটরিগুলো চেক আউট করতে হবে, এবং একটি ফাইল সিস্টেমে সেগুলোর বিন্যাস বর্ণনা করে। এই XML ফাইলটি, যার নাম সাধারণত
default.xmlহয়, একটি রিপো ব্রাঞ্চের সাথে যুক্ত থাকে এবং রিপো ব্রাঞ্চটি ইনিশিয়ালাইজ ও সিঙ্ক করার সময় চেক আউট করা গিট রিপোজিটরি ও গিট ব্রাঞ্চগুলোর বর্ণনা দেয়। এই ফাইলটি বিভিন্ন গিট রিপোজিটরিগুলোকে সংজ্ঞায়িত করে, যেগুলো একটি প্রোডাক্ট (যেমন অ্যান্ড্রয়েড অটোমোটিভ ওএস) তৈরি করার জন্য রিপো টুলকে একটি রিপো ক্লায়েন্ট চেকআউটে ফেচ করতে হবে। android.googlesource.com/platform/manifest/+refs- এ সমস্ত ম্যানিফেস্ট দেখুন। অ্যান্ড্রয়েড প্ল্যাটফর্ম (AOSP) ফাইলগুলো পুল করার জন্য ম্যানিফেস্ট ফাইলগুলোতে অন্তর্ভুক্ত ডিফল্ট ম্যানিফেস্টটি android.googlesource.com/platform/manifest/+/refs/heads/android17-release/default.xml- এ দেখুন। অ্যাপের তথ্যের জন্য অ্যাপ ম্যানিফেস্ট ওভারভিউ এবং প্ল্যাটফর্ম ডেভেলপমেন্টের জন্য রিপো ম্যানিফেস্ট ফরম্যাট দেখুন। - ওভার-দ্য-এয়ার (OTA) আপডেট
- মাঠপর্যায়ে থাকা অ্যান্ড্রয়েড ডিভাইসগুলো সিস্টেম, অ্যাপ সফটওয়্যার এবং টাইম জোন নিয়মের জন্য ওভার-দ্য-এয়ার (OTA) আপডেট গ্রহণ ও ইনস্টল করতে পারে। আরও তথ্যের জন্য OTA আপডেট দেখুন।
- রেপো শাখা
- একটি ম্যানিফেস্ট ফাইলে ধারণ করা গিট রিপোজিটরিগুলোর একটি সংগ্রহ, যা অ্যান্ড্রয়েড কোডবেসের একটি সংস্করণ (বিল্ড) উপস্থাপন করে, যেমন
android11-gsiবাaosp-android-games-sdk, যাrepo initএবংrepo syncকমান্ডের মাধ্যমে ডাউনলোড করা হয়। সমস্ত ম্যানিফেস্ট ফাইলের লিঙ্কের জন্য ম্যানিফেস্ট ফাইলের বিবরণ দেখুন এবং সেগুলোর বিল্ড খুঁজতে অ্যান্ড্রয়েড কোড সার্চ ব্যবহার করুন। - আপরেভ
- সাধারণত, uprev একটি বৃহত্তর প্রোজেক্টের অন্তর্ভুক্ত কোনো সাবপ্রোজেক্টকে একটি নতুন সংস্করণে আপডেট করে। একটি uprev রিভিশন লেভেলকে হয় পরবর্তী বর্ধিত সংস্করণে অথবা সর্বশেষ উপলব্ধ সংস্করণে পরিবর্তন করে। একটি HIDL প্যাকেজের ক্ষেত্রে, প্যাকেজ-স্তরের পশ্চাৎ-সামঞ্জস্যপূর্ণ প্রসারণযোগ্যতা বজায় রাখার জন্য, একটি মাইনর-ভার্সন uprev নতুন প্যাকেজটিকে একটি উচ্চতর মাইনর ভার্সনে আপডেট করে, যেখানে পুরোনো প্যাকেজের নাম এবং মেজর ভার্সন অপরিবর্তিত থাকে। বুটলোডার কনফিগারেশনের ক্ষেত্রে, একটি uprev বুট হেডার ভার্সন সাপোর্টকে সর্বশেষ সংস্করণে আপডেট করে।
প্ল্যাটফর্ম
- অ্যান্ড্রয়েড রানটাইম (ART) এবং ডালভিক
- অ্যান্ড্রয়েড রানটাইম (ART) হলো একটি পরিচালিত রানটাইম যা অ্যান্ড্রয়েডের অ্যাপ এবং কিছু সিস্টেম পরিষেবা ব্যবহার করে। অ্যান্ড্রয়েড ৫.০ (এপিআই লেভেল ২১) এবং তার উচ্চতর সংস্করণে চালিত ডিভাইসগুলোর জন্য ART হলো ডিফল্ট রানটাইম। ART এবং এর পূর্বসূরি ডালভিক মূলত অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্টের জন্য বিশেষভাবে তৈরি করা হয়েছিল। রানটাইম হিসেবে ART, ডালভিক এক্সিকিউটেবল ফরম্যাট এবং ডেক্স বাইটকোড স্পেসিফিকেশন কার্যকর করে। ART এবং ডালভিক হলো ডেক্স বাইটকোড চালনায় সামঞ্জস্যপূর্ণ রানটাইম, তাই ডালভিকের জন্য তৈরি অ্যাপগুলো ART-এর সাথে চালালেও কাজ করা উচিত।
- DEX (.dex) ফাইল
- কম্পাইল করা অ্যান্ড্রয়েড অ্যাপ কোড ফাইল। অ্যান্ড্রয়েড প্রোগ্রামগুলো
.dexএক্সটেনশনসহ ডালভিক এক্সিকিউটেবল (DEX) ফাইলে কম্পাইল করা হয়, যা পরবর্তীতে ডিভাইসে একটি একক APK ফাইলে জিপ করা হয়। জাভা প্রোগ্রামিং ভাষায় লেখা কম্পাইল করা অ্যাপগুলোকে স্বয়ংক্রিয়ভাবে অনুবাদ করে DEX ফাইল তৈরি করা যায়।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2026-06-18 UTC-তে শেষবার আপডেট করা হয়েছে।