অ্যান্ড্রয়েড 2.1 সামঞ্জস্যের সংজ্ঞা

কপিরাইট © 2010, Google Inc. সর্বস্বত্ব সংরক্ষিত৷
compatibility@android.com

1। পরিচিতি

এই দস্তাবেজটি মোবাইল ফোনগুলিকে Android 2.1 এর সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য প্রয়োজনীয় প্রয়োজনীয়তাগুলিকে গণনা করে৷

"অবশ্যই", "অবশ্যই নয়", "প্রয়োজনীয়", "হবে", "হবে না", "উচিত", "উচিত নয়", "প্রস্তাবিত", "মে" এবং "ঐচ্ছিক" ব্যবহার IETF মান অনুযায়ী RFC2119 [ সম্পদ, 1 ] এ সংজ্ঞায়িত।

এই নথিতে যেমন ব্যবহার করা হয়েছে, একজন "ডিভাইস ইমপ্লিমেন্টার" বা "বাস্তবায়নকারী" হল একজন ব্যক্তি বা সংস্থা যা Android 2.1 চালিত একটি হার্ডওয়্যার/সফ্টওয়্যার সমাধান তৈরি করে। একটি "ডিভাইস বাস্তবায়ন" বা "বাস্তবায়ন" হল হার্ডওয়্যার/সফ্টওয়্যার সমাধান তাই উন্নত।

Android 2.1 এর সাথে সামঞ্জস্যপূর্ণ বলে বিবেচিত হতে, ডিভাইস বাস্তবায়ন:

  • এই সামঞ্জস্যের সংজ্ঞায় উপস্থাপিত প্রয়োজনীয়তা অবশ্যই পূরণ করতে হবে, রেফারেন্সের মাধ্যমে অন্তর্ভুক্ত করা যেকোনো নথি সহ।
  • ডিভাইস বাস্তবায়নের সফ্টওয়্যারটি সম্পূর্ণ হওয়ার সময় উপলব্ধ Android সামঞ্জস্য পরীক্ষা স্যুট (CTS) এর সাম্প্রতিকতম সংস্করণটি পাস করতে হবে৷ (সিটিএস অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্টের অংশ হিসাবে উপলব্ধ [ সম্পদ, 2 ]।) CTS এই নথিতে বর্ণিত উপাদানগুলির অনেকগুলি পরীক্ষা করে, কিন্তু সমস্ত নয়।

যেখানে এই সংজ্ঞা বা CTS নীরব, অস্পষ্ট বা অসম্পূর্ণ, সেখানে বিদ্যমান বাস্তবায়নের সাথে সামঞ্জস্য নিশ্চিত করা ডিভাইস বাস্তবায়নকারীর দায়িত্ব। এই কারণে, অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট [ সম্পদ, 3 ] হল অ্যান্ড্রয়েডের রেফারেন্স এবং পছন্দের বাস্তবায়ন। ডিভাইস ইমপ্লিমেন্টারদের জোরালোভাবে উৎসাহিত করা হচ্ছে তাদের বাস্তবায়নকে Android ওপেন সোর্স প্রজেক্ট থেকে পাওয়া "আপস্ট্রিম" সোর্স কোডের উপর ভিত্তি করে। যদিও কিছু উপাদান অনুমানমূলকভাবে বিকল্প বাস্তবায়নের সাথে প্রতিস্থাপিত হতে পারে এই অনুশীলনটি দৃঢ়ভাবে নিরুৎসাহিত করা হয়, কারণ CTS পরীক্ষায় উত্তীর্ণ হওয়া যথেষ্ট কঠিন হয়ে উঠবে। সামঞ্জস্য পরীক্ষা স্যুট সহ এবং এর বাইরেও আদর্শ Android বাস্তবায়নের সাথে সম্পূর্ণ আচরণগত সামঞ্জস্য নিশ্চিত করা বাস্তবায়নকারীর দায়িত্ব। পরিশেষে, মনে রাখবেন যে কিছু উপাদান প্রতিস্থাপন এবং পরিবর্তনগুলি এই নথি দ্বারা স্পষ্টভাবে নিষিদ্ধ।

2. সম্পদ

  • IETF RFC2119 প্রয়োজনীয় স্তর: http://www.ietf.org/rfc/rfc2119.txt
  • অ্যান্ড্রয়েড সামঞ্জস্যতা প্রোগ্রাম ওভারভিউ: http://source.android.com/compatibility/index.html
  • অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প: http: //source.android.com/
  • API সংজ্ঞা এবং ডকুমেন্টেশন: http://developer.android.com/reference/packages.html
  • Android অনুমতি রেফারেন্স: http://developer.android.com/reference/android/Manifest.permission. html
  • android.os.Build রেফারেন্স: http://developer.android.com/reference/android/os/Build.html
  • Android 2.1 অনুমোদিত সংস্করণ স্ট্রিং: http://source.android.com/docs/compatibility/2.1/versions .html
  • android.webkit.WebView ক্লাস: http://developer.android.com/reference/android/webkit/WebView.html
  • HTML5: http://www.whatwg.org/specs/web-apps/current-work/ মাল্টিপেজ/
  • ডালভিক ভার্চুয়াল মেশিন স্পেসিফিকেশন: অ্যান্ড্রয়েড সোর্স কোডে পাওয়া যায়, ডালভিক/ডক্স
  • অ্যাপউইজেটসে: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
  • বিজ্ঞপ্তি: http://developer.android.com /guide/topics/ui/notifiers/notifications.html
  • অ্যাপ্লিকেশন সংস্থান: http://code.google.com/android/reference/available-resources.html
  • স্ট্যাটাস বার আইকন শৈলী নির্দেশিকা: http://developer.android.com/ guide/practices/ui_guideline /icon_design.html#statusbarstructure
  • সার্চ ম্যানেজার: http://developer.android.com/reference/android/app/SearchManager.html
  • টোস্ট: http://developer.android.com/reference/android/widget /Toast.html
  • লাইভ ওয়ালপেপার: https://android-developers.googleblog.com/2010/02/live-wallpapers.html
  • Android এর জন্য অ্যাপস: http://code.google.com/p/apps-for-android
  • রেফারেন্স টুল ডকুমেন্টেশন (adb, aapt, ddms এর জন্য): http://developer.android.com/guide/developing/tools/index.html
  • Android apk ফাইলের বিবরণ: http://developer.android.com/guide/topics/fundamentals .html
  • ম্যানিফেস্ট ফাইল: http://developer.android.com/guide/topics/manifest/manifest-intro.html
  • বানর পরীক্ষার টুল: https://developer.android.com/studio/test/other-testing-tools/
  • একাধিক স্ক্রীন সমর্থনকারী
  • বানর
  • : http://developer.android.com/guide/practices/screens_support.html
  • android.content.res.Configuration: http://developer.android.com/reference/android/content/res/Configuration। html
  • android.util.DisplayMetrics: http://developer.android.com/reference/android/util/DisplayMetrics.html
  • android.hardware.Camera: http://developer.android.com/reference/android/hardware/Camera। html
  • সেন্সর স্থানাঙ্ক: http://developer.android.com/reference/android/hardware/SensorEvent.html
  • অ্যান্ড্রয়েড নিরাপত্তা এবং অনুমতি রেফারেন্স: http://developer.android.com/guide/topics/security/security.html
  • ব্লুটুথ API: http://developer.android.com/reference/android/bluetooth/package-summary.html
  • এই সম্পদগুলির মধ্যে অনেকগুলি প্রত্যক্ষ বা পরোক্ষভাবে Android 2.1 SDK থেকে প্রাপ্ত, এবং সেই SDK-এর ডকুমেন্টেশনের তথ্যের সাথে কার্যকরীভাবে অভিন্ন হবে . যে কোনো ক্ষেত্রে যেখানে এই সামঞ্জস্যতা সংজ্ঞা বা সামঞ্জস্য পরীক্ষা স্যুট SDK ডকুমেন্টেশনের সাথে একমত নয়, SDK ডকুমেন্টেশনকে প্রামাণিক বলে মনে করা হয়। উপরে অন্তর্ভুক্ত রেফারেন্সে প্রদত্ত যেকোন প্রযুক্তিগত বিশদ এই সামঞ্জস্যতার সংজ্ঞার অংশ হিসাবে অন্তর্ভুক্তির দ্বারা বিবেচনা করা হয়।

    3. সফ্টওয়্যার

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

    3.1। পরিচালিত API সামঞ্জস্যতা

    পরিচালিত (ডালভিক-ভিত্তিক) এক্সিকিউশন এনভায়রনমেন্ট হল অ্যান্ড্রয়েড অ্যাপ্লিকেশনের প্রাথমিক বাহন। অ্যান্ড্রয়েড অ্যাপ্লিকেশান প্রোগ্রামিং ইন্টারফেস (API) হল অ্যান্ড্রয়েড প্ল্যাটফর্ম ইন্টারফেসগুলির একটি সেট যা পরিচালিত VM পরিবেশে চলমান অ্যাপ্লিকেশনগুলির সংস্পর্শে আসে৷ ডিভাইস বাস্তবায়ন অবশ্যই Android 2.1 SDK দ্বারা প্রকাশিত যেকোন নথিভুক্ত API এর সমস্ত নথিভুক্ত আচরণ সহ সম্পূর্ণ বাস্তবায়ন প্রদান করবে [ সম্পদ, 4 ]।

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

    3.2। সফ্ট এপিআই সামঞ্জস্যতা

    বিভাগ 3.1 থেকে পরিচালিত এপিআই ছাড়াও, অ্যান্ড্রয়েডে একটি উল্লেখযোগ্য রানটাইম-শুধুমাত্র "সফ্ট" API অন্তর্ভুক্ত রয়েছে, যেমন উদ্দেশ্য, অনুমতি এবং অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির অনুরূপ দিকগুলির আকারে যা অ্যাপ্লিকেশনে প্রয়োগ করা যায় না। কম্পাইল সময়। এই বিভাগে Android 2.1 এর সাথে সামঞ্জস্যের জন্য প্রয়োজনীয় "নরম" API এবং সিস্টেম আচরণের বিবরণ রয়েছে। ডিভাইস বাস্তবায়ন এই বিভাগে উপস্থাপিত সমস্ত প্রয়োজনীয়তা পূরণ করতে হবে।

    3.2.1। পারমিশন

    ডিভাইস ইমপ্লিমেন্টারদের অবশ্যই অনুমতির রেফারেন্স পৃষ্ঠা [ সম্পদ, 5 ] দ্বারা নথিভুক্ত সমস্ত অনুমতি ধ্রুবক সমর্থন এবং প্রয়োগ করতে হবে। মনে রাখবেন যে বিভাগ 10 এ অ্যান্ড্রয়েড সুরক্ষা মডেল সম্পর্কিত অতিরিক্ত প্রয়োজনীয়তাগুলি তালিকাভুক্ত করে৷

    3.2.2। বিল্ড প্যারামিটার

    অ্যান্ড্রয়েড এপিআই-এ android.os.Build ক্লাসে বেশ কয়েকটি ধ্রুবক রয়েছে [ সম্পদ, 6 ] যা বর্তমান ডিভাইস বর্ণনা করার উদ্দেশ্যে করা হয়েছে। ডিভাইস বাস্তবায়ন জুড়ে সামঞ্জস্যপূর্ণ, অর্থপূর্ণ মান প্রদান করার জন্য, নীচের সারণীতে এই মানগুলির ফর্ম্যাটগুলির উপর অতিরিক্ত বিধিনিষেধ অন্তর্ভুক্ত করা হয়েছে যা ডিভাইস বাস্তবায়নকে অবশ্যই মেনে চলতে হবে।

    প্যারামিটার মন্তব্য
    android.os.Build.VERSION.RELEASE মানব-পাঠযোগ্য বিন্যাসে, বর্তমানে কার্যকর করা Android সিস্টেমের সংস্করণ। এই ক্ষেত্রে অবশ্যই [ সম্পদ, 7 ]-এ সংজ্ঞায়িত স্ট্রিং মানগুলির একটি থাকতে হবে।
    android.os.Build.VERSION.SDK বর্তমানে কার্যকর করা Android সিস্টেমের সংস্করণ, তৃতীয় পক্ষের অ্যাপ্লিকেশন কোডে অ্যাক্সেসযোগ্য একটি বিন্যাসে। অ্যান্ড্রয়েড 2.1-এর জন্য, এই ক্ষেত্রটিতে অবশ্যই পূর্ণসংখ্যার মান 7।
    android.os.Build.VERSION.INCREMENTAL একটি মান যা ডিভাইস বাস্তবায়নকারী দ্বারা নির্বাচিত একটি মান যা মানব-পঠনযোগ্য বিন্যাসে, বর্তমানে-নির্বাহী অ্যান্ড্রয়েড সিস্টেমের নির্দিষ্ট বিল্ডকে মনোনীত করে। শেষ ব্যবহারকারীদের কাছে পাঠানো বিভিন্ন বিল্ডের জন্য এই মানটি পুনরায় ব্যবহার করা উচিত নয়। এই ক্ষেত্রের একটি সাধারণ ব্যবহার হল বিল্ড তৈরি করতে কোন বিল্ড নম্বর বা উৎস-নিয়ন্ত্রণ পরিবর্তন শনাক্তকারী ব্যবহার করা হয়েছে তা নির্দেশ করা। এই ক্ষেত্রের নির্দিষ্ট বিন্যাসে কোন প্রয়োজনীয়তা নেই, এটি শূন্য বা খালি স্ট্রিং ("") হওয়া উচিত নয়।
    android.os.Build.BOARD ডিভাইস বাস্তবায়নকারীর দ্বারা নির্বাচিত একটি মান যা ডিভাইস দ্বারা ব্যবহৃত নির্দিষ্ট অভ্যন্তরীণ হার্ডওয়্যার সনাক্ত করে, মানব-পাঠযোগ্য বিন্যাসে। এই ক্ষেত্রের একটি সম্ভাব্য ব্যবহার হল ডিভাইসটিকে পাওয়ারিং বোর্ডের নির্দিষ্ট সংশোধন নির্দেশ করা। এই ক্ষেত্রের নির্দিষ্ট বিন্যাসে কোন প্রয়োজনীয়তা নেই, এটি শূন্য বা খালি স্ট্রিং ("") হওয়া উচিত নয়।
    android.os.Build.BRAND ডিভাইস বাস্তবায়নকারীর দ্বারা নির্বাচিত একটি মান যা মানব-পাঠযোগ্য বিন্যাসে ডিভাইসটি উৎপাদনকারী কোম্পানি, সংস্থা, ব্যক্তি, ইত্যাদির নাম চিহ্নিত করে। এই ক্ষেত্রের একটি সম্ভাব্য ব্যবহার হল OEM এবং/অথবা বাহককে নির্দেশ করা যে ডিভাইসটি বিক্রি করেছে। এই ক্ষেত্রের নির্দিষ্ট বিন্যাসে কোন প্রয়োজনীয়তা নেই, এটি শূন্য বা খালি স্ট্রিং ("") হওয়া উচিত নয়।
    android.os.Build.DEVICE ডিভাইসের নির্দিষ্ট কনফিগারেশন বা রিভিশন (কখনও কখনও "ইন্ডাস্ট্রিয়াল ডিজাইন" বলা হয়) শনাক্ত করে ডিভাইস বাস্তবায়নকারীর দ্বারা নির্বাচিত একটি মান। এই ক্ষেত্রের নির্দিষ্ট বিন্যাসে কোন প্রয়োজনীয়তা নেই, এটি শূন্য বা খালি স্ট্রিং ("") হওয়া উচিত নয়।
    android.os.Build.FINGERPRINT একটি স্ট্রিং যা এই বিল্ডটিকে অনন্যভাবে সনাক্ত করে৷ এটা যুক্তিসঙ্গতভাবে মানুষের পঠনযোগ্য হওয়া উচিত. এটি অবশ্যই এই টেমপ্লেটটি অনুসরণ করবে:
    $(BRAND)/$(PRODUCT)/$(DEVICE)/$(BOARD):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)
    উদাহরণ স্বরূপ:
    acme/mydevice/generic/generic:2.1-update1/ERC77/3359:userdebug/test-keys
    ফিঙ্গারপ্রিন্টে স্পেস অন্তর্ভুক্ত করা উচিত নয়। যদি উপরের টেমপ্লেটে অন্তর্ভুক্ত অন্যান্য ক্ষেত্রগুলিতে স্পেস থাকে তবে সেগুলিকে আঙুলের ছাপের মধ্যে ASCII আন্ডারস্কোর ("_") অক্ষর দিয়ে প্রতিস্থাপিত করা উচিত।
    android.os.Build.HOST একটি স্ট্রিং যা মানব পাঠযোগ্য বিন্যাসে বিল্ডটি তৈরি করা হোস্টটিকে অনন্যভাবে সনাক্ত করে। এই ক্ষেত্রের নির্দিষ্ট বিন্যাসে কোন প্রয়োজনীয়তা নেই, এটি শূন্য বা খালি স্ট্রিং ("") হওয়া উচিত নয়।
    android.os.Build.ID মানব পাঠযোগ্য বিন্যাসে একটি নির্দিষ্ট রিলিজ উল্লেখ করার জন্য ডিভাইস বাস্তবায়নকারী দ্বারা নির্বাচিত একটি শনাক্তকারী। এই ক্ষেত্রটি android.os.Build.VERSION.INCREMENTAL এর মতোই হতে পারে, তবে সফ্টওয়্যার বিল্ডগুলির মধ্যে পার্থক্য করতে শেষ ব্যবহারকারীদের জন্য যথেষ্ট অর্থবহ একটি মান হওয়া উচিত৷ এই ক্ষেত্রের নির্দিষ্ট বিন্যাসে কোন প্রয়োজনীয়তা নেই, এটি শূন্য বা খালি স্ট্রিং ("") হওয়া উচিত নয়।
    android.os.Build.MODEL ডিভাইস বাস্তবায়নকারীর দ্বারা নির্বাচিত একটি মান যাতে ডিভাইসের নাম থাকে যা শেষ ব্যবহারকারীর কাছে পরিচিত। এটি একই নামে হওয়া উচিত যার অধীনে ডিভাইসটি বাজারজাত করা হয় এবং শেষ ব্যবহারকারীদের কাছে বিক্রি করা হয়। এই ক্ষেত্রের নির্দিষ্ট বিন্যাসে কোন প্রয়োজনীয়তা নেই, এটি শূন্য বা খালি স্ট্রিং ("") হওয়া উচিত নয়।
    android.os.Build.PRODUCT ডিভাইস বাস্তবায়নকারীর দ্বারা নির্বাচিত একটি মান যাতে ডিভাইসের ডেভেলপমেন্ট নাম বা কোড নাম থাকে। মানুষের পঠনযোগ্য হতে হবে, কিন্তু শেষ ব্যবহারকারীদের দেখার জন্য অগত্যা নয়। এই ক্ষেত্রের নির্দিষ্ট বিন্যাসে কোন প্রয়োজনীয়তা নেই, এটি শূন্য বা খালি স্ট্রিং ("") হওয়া উচিত নয়।
    android.os.Build.TAGS ডিভাইস বাস্তবায়নকারী দ্বারা নির্বাচিত ট্যাগগুলির একটি কমা দ্বারা পৃথক করা তালিকা যা বিল্ডটিকে আরও আলাদা করে। উদাহরণস্বরূপ, "আনসাইন করা, ডিবাগ"। এই ক্ষেত্রটি নাল বা খালি স্ট্রিং ("") হওয়া উচিত নয়, তবে একটি একক ট্যাগ (যেমন "রিলিজ") ঠিক আছে৷
    android.os.Build.TIME একটি মান যখন বিল্ডটি ঘটেছিল তার টাইমস্ট্যাম্প উপস্থাপন করে।
    android.os.Build.TYPE বিল্ডের রানটাইম কনফিগারেশন নির্দিষ্ট করে ডিভাইস বাস্তবায়নকারীর দ্বারা নির্বাচিত একটি মান। এই ক্ষেত্রটিতে তিনটি সাধারণ অ্যান্ড্রয়েড রানটাইম কনফিগারেশনের সাথে সম্পর্কিত মানগুলির মধ্যে একটি থাকা উচিত: "ব্যবহারকারী", "ইউজারডেবগ", বা "এনজি"।
    android.os.Build.USER ব্যবহারকারীর (বা স্বয়ংক্রিয় ব্যবহারকারী) একটি নাম বা ব্যবহারকারী আইডি যা বিল্ড তৈরি করেছে। এই ক্ষেত্রের নির্দিষ্ট বিন্যাসে কোন প্রয়োজনীয়তা নেই, এটি শূন্য বা খালি স্ট্রিং ("") হওয়া উচিত নয়।

    3.2.3। ইন্টেন্ট সামঞ্জস্যতা

    অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলির মধ্যে ঢিলেঢালাভাবে সংযুক্ত ইন্টিগ্রেশন অর্জন করতে ইন্টেন্ট ব্যবহার করে। এই বিভাগটি ইন্টেন্ট প্যাটার্নের সাথে সম্পর্কিত প্রয়োজনীয়তাগুলি বর্ণনা করে যা ডিভাইস বাস্তবায়নের দ্বারা সম্মানিত হওয়া আবশ্যক৷ "সম্মানিত" দ্বারা বোঝানো হয়েছে যে ডিভাইস বাস্তবায়নকারীকে অবশ্যই একটি Android কার্যকলাপ বা পরিষেবা প্রদান করতে হবে যা একটি ম্যাচিং ইন্টেন্ট ফিল্টার নির্দিষ্ট করে এবং প্রতিটি নির্দিষ্ট ইন্টেন্ট প্যাটার্নের জন্য সঠিক আচরণের সাথে আবদ্ধ এবং প্রয়োগ করে৷

    3.2.3.1। কোর অ্যাপ্লিকেশান ইন্টেন্টস

    অ্যান্ড্রয়েড আপস্ট্রিম প্রজেক্ট অনেকগুলি মূল অ্যাপ্লিকেশানকে সংজ্ঞায়িত করে, যেমন একটি ফোন ডায়ালার, ক্যালেন্ডার, পরিচিতি বই, মিউজিক প্লেয়ার ইত্যাদি। ডিভাইস বাস্তবায়নকারীরা বিকল্প সংস্করণ দিয়ে এই অ্যাপ্লিকেশনগুলি প্রতিস্থাপন করতে পারে৷

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

    নিম্নলিখিত অ্যাপ্লিকেশনগুলিকে মূল অ্যান্ড্রয়েড সিস্টেম অ্যাপ্লিকেশন হিসাবে বিবেচনা করা হয়:

    • ডেস্ক ক্লক
    • ব্রাউজার ক্যালেন্ডার
    • ক্যালকুলেটর
    • ক্যামেরা
    • পরিচিতি
    • ইমেল
    • গ্যালারি
    • গ্লোবালসার্চ
    • লঞ্চার
    • লাইভপিকার
    • (অর্থাৎ, লাইভ ওয়ালপেপার পিকার অ্যাপ্লিকেশন; 3.8.5 অনুচ্ছেদ অনুসারে ডিভাইসটি লাইভ ওয়ালপেপার সমর্থন না করলে বাদ দেওয়া যেতে পারে৷ )
    • মেসেজিং (একেএ "Mms")
    • মিউজিক
    • ফোন
    • সেটিংস
    • সাউন্ডরেকর্ডার

    মূল অ্যান্ড্রয়েড সিস্টেম অ্যাপ্লিকেশানগুলি বিভিন্ন কার্যকলাপ, বা পরিষেবা উপাদানগুলি অন্তর্ভুক্ত করে যা "পাবলিক" হিসাবে বিবেচিত হয়৷ অর্থাৎ, অ্যাট্রিবিউট "android:exported" অনুপস্থিত হতে পারে, অথবা "true" মান থাকতে পারে।

    মূল Android সিস্টেম অ্যাপগুলির মধ্যে একটিতে সংজ্ঞায়িত প্রতিটি অ্যাক্টিভিটি বা পরিষেবার জন্য যা একটি android:এক্সপোর্টেড অ্যাট্রিবিউটের মাধ্যমে "false" মান সহ অ-পাবলিক হিসাবে চিহ্নিত করা হয়নি, ডিভাইস বাস্তবায়নে একই ধরনের একটি উপাদান অন্তর্ভুক্ত করা আবশ্যক যাতে একই ইন্টেন্ট ফিল্টার প্রয়োগ করা হয় মূল অ্যান্ড্রয়েড সিস্টেম অ্যাপ হিসাবে নিদর্শন।

    অন্য কথায়, একটি ডিভাইস বাস্তবায়ন মূল অ্যান্ড্রয়েড সিস্টেম অ্যাপগুলিকে প্রতিস্থাপন করতে পারে; যাইহোক, যদি এটি হয়ে থাকে, ডিভাইস বাস্তবায়ন অবশ্যই প্রতিটি মূল অ্যান্ড্রয়েড সিস্টেম অ্যাপ দ্বারা সংজ্ঞায়িত সমস্ত ইন্টেন্ট প্যাটার্নকে সমর্থন করবে।

    3.2.3.2। ইন্টেন্ট ওভাররাইডস

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

    দ্রষ্টব্য: এই বিভাগটি Erratum EX6580 দ্বারা পরিবর্তিত হয়েছে।

    3.2.3.3। ইনটেন্ট নেমস্পেস

    ডিভাইস ইমপ্লিমেন্টারদের এমন কোনও অ্যান্ড্রয়েড কম্পোনেন্ট অন্তর্ভুক্ত করা উচিত নয় যা অ্যান্ড্রয়েডের কোনও অ্যাকশন, ক্যাটাগরি বা অন্যান্য কী স্ট্রিং ব্যবহার করে কোনও নতুন ইন্টেন্ট বা ব্রডকাস্ট ইন্টেন্ট প্যাটার্নকে সম্মান করে।* নেমস্পেস। ডিভাইস ইমপ্লিমেন্টারদের এমন কোনও Android উপাদান অন্তর্ভুক্ত করা উচিত নয় যা অন্য সংস্থার অন্তর্গত প্যাকেজ স্পেসে ACTION, CATEGORY, বা অন্যান্য কী স্ট্রিং ব্যবহার করে কোনও নতুন অভিপ্রায় বা সম্প্রচার অভিপ্রায় প্যাটার্নকে সম্মান করে৷ ডিভাইস বাস্তবায়নকারীরা অবশ্যই বিভাগ 3.2.3.1-এ তালিকাভুক্ত মূল অ্যাপগুলির দ্বারা ব্যবহৃত কোনো ইন্টেন্ট প্যাটার্ন পরিবর্তন বা প্রসারিত করবেন না।

    এই নিষেধাজ্ঞাটি বিভাগ 3.6-এ জাভা ভাষার ক্লাসের জন্য নির্দিষ্ট করা অনুরূপ।

    3.2.3.4। ব্রডকাস্ট ইন্টেন্টস

    থার্ড-পার্টি অ্যাপ্লিকেশানগুলি হার্ডওয়্যার বা সফ্টওয়্যার পরিবেশের পরিবর্তন সম্পর্কে তাদের অবহিত করার জন্য নির্দিষ্ট ইন্টেন্টগুলি সম্প্রচার করতে প্ল্যাটফর্মের উপর নির্ভর করে। অ্যান্ড্রয়েড-সামঞ্জস্যপূর্ণ ডিভাইসগুলিকে অবশ্যই উপযুক্ত সিস্টেম ইভেন্টগুলির প্রতিক্রিয়া হিসাবে সর্বজনীন সম্প্রচারের অভিপ্রায়গুলি সম্প্রচার করতে হবে৷ সম্প্রচারের অভিপ্রায় SDK ডকুমেন্টেশনে বর্ণনা করা হয়েছে।

    3.3।

    ডালভিকে চলমান

    নেটিভ এপিআই কম্প্যাটিবিলিটি

    ম্যানেজড কোডটি অ্যাপ্লিকেশন .apk ফাইলে ELF হিসাবে প্রদত্ত নেটিভ কোডে কল করতে পারে। তাই উপযুক্ত ডিভাইস হার্ডওয়্যার আর্কিটেকচারের জন্য কম্পাইল করা ফাইল।

    ডিভাইস ইমপ্লিমেন্টেশনে অবশ্যই স্ট্যান্ডার্ড জাভা নেটিভ ইন্টারফেস (JNI) শব্দার্থবিদ্যা ব্যবহার করে নেটিভ কোডে কল করার জন্য পরিচালিত পরিবেশে চলমান কোডের সমর্থন অন্তর্ভুক্ত করতে হবে। নিম্নলিখিত APIগুলি অবশ্যই নেটিভ কোডের জন্য উপলব্ধ থাকতে হবে:

    • libc (C লাইব্রেরি)
    • libm (গণিতের লাইব্রেরি)
    • JNI ইন্টারফেস
    • libz (Zlib কম্প্রেশন)
    • liblog (Android লগিং)
    • OpenGL-এর জন্য
    • C++
    • সমর্থনের জন্য ন্যূনতম সমর্থন, নীচে বর্ণিত

    ডিভাইস বাস্তবায়নে OpenGL ES 1.0 সমর্থন করা আবশ্যক . যে ডিভাইসগুলিতে হার্ডওয়্যার ত্বরণের অভাব রয়েছে সেগুলিকে অবশ্যই একটি সফ্টওয়্যার রেন্ডারার ব্যবহার করে OpenGL ES 1.0 প্রয়োগ করতে হবে। ডিভাইস বাস্তবায়নে OpenGL ES 1.1 যতটা ডিভাইস হার্ডওয়্যার সমর্থন করে ততটা বাস্তবায়ন করা উচিত। ডিভাইস বাস্তবায়নে OpenGL ES 2.0 এর জন্য একটি বাস্তবায়ন প্রদান করা উচিত, যদি হার্ডওয়্যারটি সেই APIগুলিতে যুক্তিসঙ্গত কার্য সম্পাদন করতে সক্ষম হয়।

    এই লাইব্রেরিগুলি অবশ্যই সোর্স-সামঞ্জস্যপূর্ণ (যেমন হেডার সামঞ্জস্যপূর্ণ) এবং বাইনারি-সামঞ্জস্যপূর্ণ (একটি প্রসেসর আর্কিটেকচারের জন্য) Android ওপেন সোর্স প্রকল্প দ্বারা বায়োনিক-এ দেওয়া সংস্করণগুলির সাথে হতে হবে৷ যেহেতু বায়োনিক বাস্তবায়নগুলি GNU C লাইব্রেরির মতো অন্যান্য বাস্তবায়নের সাথে সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ নয়, তাই ডিভাইস বাস্তবায়নকারীদের Android বাস্তবায়ন ব্যবহার করা উচিত। যদি ডিভাইস বাস্তবায়নকারীরা এই লাইব্রেরিগুলির একটি ভিন্ন বাস্তবায়ন ব্যবহার করে, তাদের অবশ্যই শিরোনাম, বাইনারি এবং আচরণগত সামঞ্জস্য নিশ্চিত করতে হবে।

    ডিভাইস বাস্তবায়নকে অবশ্যই android.os.Build.CPU_ABI API এর মাধ্যমে ডিভাইস দ্বারা সমর্থিত নেটিভ অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) সঠিকভাবে রিপোর্ট করতে হবে। ABI অবশ্যই docs/CPU-ARCH-ABIS.txt ফাইলে Android NDK-এর সর্বশেষ সংস্করণে নথিভুক্ত এন্ট্রিগুলির মধ্যে একটি হতে হবে। মনে রাখবেন যে Android NDK-এর অতিরিক্ত রিলিজ অতিরিক্ত ABI-এর জন্য সমর্থন প্রবর্তন করতে পারে।

    নেটিভ কোড সামঞ্জস্য চ্যালেঞ্জিং. এই কারণে, এটি পুনরাবৃত্তি করা উচিত যে ডিভাইস বাস্তবায়নকারীরা সামঞ্জস্য নিশ্চিত করতে সাহায্য করার জন্য উপরে তালিকাভুক্ত লাইব্রেরিগুলির আপস্ট্রিম প্রয়োগগুলি ব্যবহার করার জন্য অত্যন্ত জোরালোভাবে উত্সাহিত করা হয়।

    3.4। ওয়েব এপিআই সামঞ্জস্যতা

    অনেক ডেভেলপার এবং অ্যাপ্লিকেশন তাদের ব্যবহারকারী ইন্টারফেসের জন্য android.webkit.WebView ক্লাস [ সম্পদ, 8 ] এর আচরণের উপর নির্ভর করে, তাই ওয়েবভিউ বাস্তবায়ন অবশ্যই অ্যান্ড্রয়েড বাস্তবায়ন জুড়ে সামঞ্জস্যপূর্ণ হতে হবে। অ্যান্ড্রয়েড ওপেন সোর্স বাস্তবায়ন ওয়েবভিউ বাস্তবায়নের জন্য ওয়েবকিট রেন্ডারিং ইঞ্জিন ব্যবহার করে।

    যেহেতু একটি ওয়েব ব্রাউজারের জন্য একটি ব্যাপক পরীক্ষার স্যুট তৈরি করা সম্ভব নয়, তাই ডিভাইস বাস্তবায়নকারীদের অবশ্যই WebView বাস্তবায়নে WebKit-এর নির্দিষ্ট আপস্ট্রিম বিল্ড ব্যবহার করতে হবে। বিশেষভাবে:

    • ওয়েবভিউকে অবশ্যই Android 2.1 এর জন্য আপস্ট্রিম অ্যান্ড্রয়েড ওপেন সোর্স ট্রি থেকে 530.17 ওয়েবকিট বিল্ড ব্যবহার করতে হবে। এই বিল্ডটিতে WebView-এর জন্য কার্যকারিতা এবং নিরাপত্তা ফিক্সের একটি নির্দিষ্ট সেট অন্তর্ভুক্ত রয়েছে।
    • WebView দ্বারা রিপোর্ট করা ব্যবহারকারী এজেন্ট স্ট্রিং এই বিন্যাসে হওয়া আবশ্যক:
      Mozilla/5.0 (Linux; U; Android $(VERSION); $(LOCALE); $(MODEL) Build/$(BUILD)) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
      • মান $(VERSION) স্ট্রিং অবশ্যই android.os.Build.VERSION.RELEASE এর মান হিসাবে একই হতে হবে
      • $(LOCALE) স্ট্রিংটির মান দেশের কোড এবং ভাষার জন্য ISO কনভেনশনগুলি অনুসরণ করা উচিত এবং বর্তমান কনফিগার করা লোকেলকে উল্লেখ করা উচিত ডিভাইসের
      • $(MODEL) স্ট্রিংয়ের মান অবশ্যই android.os.Build.MODEL এর মানের সমান হতে হবে
      • $(BUILD) স্ট্রিংয়ের মান অবশ্যই android.os.Build.ID

    বাস্তবায়ন স্বতন্ত্র ব্রাউজার অ্যাপ্লিকেশনে একটি কাস্টম ব্যবহারকারী এজেন্ট স্ট্রিং পাঠাতে পারে। আরও কি, স্বতন্ত্র ব্রাউজারটি একটি বিকল্প ব্রাউজার প্রযুক্তির উপর ভিত্তি করে হতে পারে (যেমন ফায়ারফক্স, অপেরা, ইত্যাদি) যাইহোক, একটি বিকল্প ব্রাউজার অ্যাপ্লিকেশন পাঠানো হলেও, তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলিতে প্রদত্ত ওয়েবভিউ উপাদানটি অবশ্যই ওয়েবকিটের উপর ভিত্তি করে হতে হবে, যেমন উপরে.

    ওয়েবভিউ কনফিগারেশনে অবশ্যই HTML5 ডাটাবেস, অ্যাপ্লিকেশন ক্যাশে এবং জিওলোকেশন API [ সম্পদ, 9 ] এর জন্য সমর্থন অন্তর্ভুক্ত থাকতে হবে। ওয়েবভিউতে অবশ্যই HTML5 <video> ট্যাগের জন্য সমর্থন অন্তর্ভুক্ত করতে হবে। স্বতন্ত্র ব্রাউজার অ্যাপ্লিকেশন (আপস্ট্রিম ওয়েবকিট ব্রাউজার অ্যাপ্লিকেশনের উপর ভিত্তি করে বা তৃতীয় পক্ষের প্রতিস্থাপনের উপর ভিত্তি করে) অবশ্যই WebView-এর জন্য তালিকাভুক্ত একই HTML5 বৈশিষ্ট্যগুলির জন্য সমর্থন অন্তর্ভুক্ত করতে হবে।

    3.5। API আচরণগত সামঞ্জস্যতা

    প্রতিটি API প্রকারের আচরণ (পরিচালিত, নরম, নেটিভ এবং ওয়েব) আপস্ট্রিম অ্যান্ড্রয়েড ওপেন-সোর্স প্রকল্পের পছন্দের বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ হতে হবে [ সম্পদ, 3 ]। সামঞ্জস্যের কিছু নির্দিষ্ট ক্ষেত্র হল:

    • ডিভাইসগুলি অবশ্যই একটি আদর্শ অভিপ্রায়ের আচরণ বা অর্থ পরিবর্তন করবে না
    • ডিভাইসগুলি অবশ্যই একটি নির্দিষ্ট ধরণের সিস্টেম উপাদানের জীবনচক্র বা জীবনচক্রের শব্দার্থ পরিবর্তন করবে না (যেমন পরিষেবা, কার্যকলাপ, সামগ্রী সরবরাহকারী, ইত্যাদি)
    • ডিভাইসগুলি অবশ্যই নয় একটি নির্দিষ্ট অনুমতির শব্দার্থ পরিবর্তন করুন

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

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

    3.6। এপিআই নেমস্পেস

    অ্যান্ড্রয়েড জাভা প্রোগ্রামিং ভাষা দ্বারা সংজ্ঞায়িত প্যাকেজ এবং ক্লাস নেমস্পেস কনভেনশন অনুসরণ করে। তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলির সাথে সামঞ্জস্যতা নিশ্চিত করতে, ডিভাইস বাস্তবায়নকারীদের এই প্যাকেজ নামস্থানগুলিতে কোনও নিষিদ্ধ পরিবর্তন (নীচে দেখুন) করা উচিত নয়:

    • java.*
    • javax.*
    • sun.*
    • android.*
    • com.android.*

    নিষিদ্ধ পরিবর্তনগুলি অন্তর্ভুক্ত:

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

    একটি "পাবলিকলি এক্সপোজড এলিমেন্ট" হল যেকোন কনস্ট্রাক্ট যা আপস্ট্রিম অ্যান্ড্রয়েড সোর্স কোডে "@hide" মার্কার দিয়ে সাজানো হয় না। অন্য কথায়, ডিভাইস বাস্তবায়নকারীরা অবশ্যই নতুন APIs প্রকাশ করবেন না বা উপরে উল্লিখিত নেমস্পেসগুলিতে বিদ্যমান APIগুলিকে পরিবর্তন করবেন না। ডিভাইস বাস্তবায়নকারীরা শুধুমাত্র অভ্যন্তরীণ পরিবর্তনগুলি করতে পারে, তবে সেই পরিবর্তনগুলিকে বিজ্ঞাপন দেওয়া বা অন্যথায় বিকাশকারীদের কাছে প্রকাশ করা উচিত নয়৷

    ডিভাইস বাস্তবায়নকারীরা কাস্টম এপিআই যোগ করতে পারে, কিন্তু এই ধরনের কোনো এপিআই অবশ্যই অন্য প্রতিষ্ঠানের মালিকানাধীন নামস্থানে থাকা উচিত নয়। উদাহরণস্বরূপ, ডিভাইস বাস্তবায়নকারীরা অবশ্যই com.google.* বা অনুরূপ নামস্থানে API যোগ করবেন না; শুধুমাত্র Google তা করতে পারে। একইভাবে, Google অন্য কোম্পানির নামস্থানে API যোগ করবে না।

    যদি কোনও ডিভাইস বাস্তবায়নকারী উপরের প্যাকেজ নেমস্পেসগুলির মধ্যে একটিকে উন্নত করার প্রস্তাব দেয় (যেমন একটি বিদ্যমান API-তে দরকারী নতুন কার্যকারিতা যোগ করে, বা একটি নতুন API যোগ করে), বাস্তবায়নকারীকে source.android.com-এ যেতে হবে এবং পরিবর্তনগুলি অবদান রাখার জন্য প্রক্রিয়া শুরু করতে হবে এবং কোড, সেই সাইটের তথ্য অনুযায়ী।

    উল্লেখ্য যে উপরের বিধিনিষেধগুলি জাভা প্রোগ্রামিং ভাষায় API-এর নামকরণের জন্য আদর্শ নিয়মের সাথে মিলে যায়; এই বিভাগটি কেবল সেই নিয়মগুলিকে শক্তিশালী করা এবং এই সামঞ্জস্যতার সংজ্ঞায় অন্তর্ভুক্তির মাধ্যমে তাদের বাধ্যতামূলক করে তোলার লক্ষ্য রাখে।

    3.7। ভার্চুয়াল মেশিন সামঞ্জস্যপূর্ণ

    ডিভাইস বাস্তবায়ন অবশ্যই সম্পূর্ণ ডালভিক এক্সিকিউটেবল (ডিইএক্স) বাইটকোড স্পেসিফিকেশন এবং ডালভিক ভার্চুয়াল মেশিন শব্দার্থবিদ্যা [ সম্পদ, 10 ] সমর্থন করে।

    মাঝারি- বা নিম্ন-ঘনত্ব হিসাবে শ্রেণীবদ্ধ স্ক্রিন সহ ডিভাইসগুলিতে প্রতিটি অ্যাপ্লিকেশনে কমপক্ষে 16MB মেমরি বরাদ্দ করার জন্য ডিভাইস বাস্তবায়নগুলি অবশ্যই Dalvik-কে কনফিগার করতে হবে। উচ্চ-ঘনত্ব হিসাবে শ্রেণীবদ্ধ স্ক্রিন সহ ডিভাইসগুলিতে প্রতিটি অ্যাপ্লিকেশনে কমপক্ষে 24MB মেমরি বরাদ্দ করার জন্য ডিভাইস বাস্তবায়নগুলি অবশ্যই Dalvik-কে কনফিগার করতে হবে। মনে রাখবেন যে ডিভাইস বাস্তবায়নগুলি এই পরিসংখ্যানগুলির চেয়ে বেশি মেমরি বরাদ্দ করতে পারে, কিন্তু এর প্রয়োজন নেই৷

    3.8। ইউজার ইন্টারফেস সামঞ্জস্যতা

    অ্যান্ড্রয়েড প্ল্যাটফর্মে কিছু ডেভেলপার এপিআই অন্তর্ভুক্ত থাকে যা ডেভেলপারদের সিস্টেম ইউজার ইন্টারফেসে হুক করতে দেয়। ডিভাইস ইমপ্লিমেন্টেশনগুলিকে অবশ্যই এই স্ট্যান্ডার্ড UI APIগুলিকে তাদের বিকাশ করা কাস্টম ইউজার ইন্টারফেসে অন্তর্ভুক্ত করতে হবে, যেমনটি নীচে ব্যাখ্যা করা হয়েছে।

    3.8.1। উইজেট

    অ্যান্ড্রয়েড একটি উপাদানের ধরন এবং সংশ্লিষ্ট API এবং জীবনচক্র সংজ্ঞায়িত করে যা অ্যাপ্লিকেশনগুলিকে শেষ ব্যবহারকারীর কাছে একটি "AppWidget" প্রকাশ করতে দেয় [ সম্পদ, 11 ]৷ অ্যান্ড্রয়েড ওপেন সোর্স রেফারেন্স রিলিজে একটি লঞ্চার অ্যাপ্লিকেশন রয়েছে যাতে ব্যবহারকারীর ইন্টারফেস উপাদানগুলি অন্তর্ভুক্ত থাকে যা ব্যবহারকারীকে হোম স্ক্রীন থেকে অ্যাপউইজেট যোগ করতে, দেখতে এবং সরাতে দেয়।

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

    3.8.2। নোটিফিকেশন

    অ্যান্ড্রয়েড এ API গুলি অন্তর্ভুক্ত করে যা ডেভেলপারদের উল্লেখযোগ্য ইভেন্টগুলির ব্যবহারকারীদেরকে অবহিত করতে দেয় [ সম্পদ, 12 ]। ডিভাইস ইমপ্লিমেন্টারদের অবশ্যই সংজ্ঞায়িত প্রতিটি শ্রেণীর বিজ্ঞপ্তির জন্য সমর্থন প্রদান করতে হবে; বিশেষভাবে: শব্দ, কম্পন, আলো এবং স্ট্যাটাস বার।

    উপরন্তু, এপিআই [ সম্পদ, 13 ], অথবা স্ট্যাটাস বার আইকন স্টাইল নির্দেশিকা [ সম্পদ, 14 ]-এর জন্য প্রদত্ত সমস্ত সংস্থান (আইকন, সাউন্ড ফাইল, ইত্যাদি) বাস্তবায়নের জন্য সঠিকভাবে রেন্ডার করতে হবে। ডিভাইস বাস্তবায়নকারীরা রেফারেন্স অ্যান্ড্রয়েড ওপেন সোর্স বাস্তবায়নের মাধ্যমে প্রদত্ত বিজ্ঞপ্তির জন্য বিকল্প ব্যবহারকারীর অভিজ্ঞতা প্রদান করতে পারে; যাইহোক, এই ধরনের বিকল্প নোটিফিকেশন সিস্টেমগুলি অবশ্যই বিদ্যমান বিজ্ঞপ্তি সংস্থানগুলিকে সমর্থন করে, যেমন উপরে।

    অ্যান্ড্রয়েড এ APIs [ সম্পদ, 15 ] অন্তর্ভুক্ত করে যা ডেভেলপারদের তাদের অ্যাপ্লিকেশনগুলিতে অনুসন্ধান অন্তর্ভুক্ত করতে এবং তাদের অ্যাপ্লিকেশনের ডেটা বিশ্বব্যাপী সিস্টেম অনুসন্ধানে প্রকাশ করতে দেয়৷ সাধারণভাবে বলতে গেলে, এই কার্যকারিতা একটি একক, সিস্টেম-ওয়াইড ইউজার ইন্টারফেস নিয়ে গঠিত যা ব্যবহারকারীদের ক্যোয়ারী প্রবেশ করতে দেয়, ব্যবহারকারীদের টাইপ হিসাবে সাজেশন প্রদর্শন করে এবং ফলাফল প্রদর্শন করে। অ্যান্ড্রয়েড এপিআই ডেভেলপারদের তাদের নিজস্ব অ্যাপের মধ্যে অনুসন্ধান প্রদান করতে এই ইন্টারফেসটি পুনরায় ব্যবহার করার অনুমতি দেয় এবং বিকাশকারীদের সাধারণ বিশ্বব্যাপী অনুসন্ধান ব্যবহারকারী ইন্টারফেসে ফলাফল সরবরাহ করার অনুমতি দেয়।

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

    ডিভাইস বাস্তবায়ন বিকল্প সার্চ ইউজার ইন্টারফেস পাঠাতে পারে, কিন্তু একটি হার্ড বা নরম ডেডিকেটেড সার্চ বোতাম অন্তর্ভুক্ত করা উচিত, যেটি API ডকুমেন্টেশনে দেওয়া আচরণের সাথে সার্চ ফ্রেমওয়ার্ক চালু করার জন্য যেকোনো অ্যাপের মধ্যে ব্যবহার করা যেতে পারে।

    3.8.4। টোস্ট

    অ্যাপ্লিকেশনগুলি শেষ ব্যবহারকারীর কাছে সংক্ষিপ্ত নন-মোডাল স্ট্রিংগুলি প্রদর্শন করতে "টোস্ট" API ([ সম্পদ, 16 ]-এ সংজ্ঞায়িত) ব্যবহার করতে পারে, যা অল্প সময়ের পরে অদৃশ্য হয়ে যায়। ডিভাইস বাস্তবায়ন কিছু উচ্চ-দৃশ্যমান পদ্ধতিতে শেষ ব্যবহারকারীদের জন্য অ্যাপ্লিকেশন থেকে টোস্ট প্রদর্শন করা আবশ্যক।

    3.8.5। লাইভ ওয়ালপেপার

    অ্যান্ড্রয়েড একটি উপাদানের ধরন এবং সংশ্লিষ্ট API এবং জীবনচক্র সংজ্ঞায়িত করে যা অ্যাপ্লিকেশনগুলিকে শেষ ব্যবহারকারীর কাছে এক বা একাধিক "লাইভ ওয়ালপেপার" প্রকাশ করতে দেয় [ সম্পদ, 17 ]৷ লাইভ ওয়ালপেপার হল অ্যানিমেশন, প্যাটার্ন বা সীমিত ইনপুট ক্ষমতা সহ অনুরূপ ছবি যা অন্যান্য অ্যাপ্লিকেশনের পিছনে ওয়ালপেপার হিসাবে প্রদর্শিত হয়।

    হার্ডওয়্যার নির্ভরযোগ্যভাবে লাইভ ওয়ালপেপার চালাতে সক্ষম বলে মনে করা হয় যদি এটি সমস্ত লাইভ ওয়ালপেপার চালাতে পারে, কার্যকারিতার কোনও সীমাবদ্ধতা ছাড়াই, যুক্তিসঙ্গত ফ্রেমরেটে অন্য অ্যাপ্লিকেশনগুলিতে কোনও প্রতিকূল প্রভাব না ফেলে৷ যদি হার্ডওয়্যারের সীমাবদ্ধতার কারণে ওয়ালপেপার এবং/অথবা অ্যাপ্লিকেশনগুলি ক্র্যাশ, ত্রুটিপূর্ণ, অত্যধিক CPU বা ব্যাটারি শক্তি খরচ করে, বা অগ্রহণযোগ্যভাবে কম ফ্রেম রেট চালায়, তাহলে হার্ডওয়্যারটি লাইভ ওয়ালপেপার চালানোর জন্য অক্ষম বলে বিবেচিত হয়। উদাহরণ হিসেবে, কিছু লাইভ ওয়ালপেপার তাদের বিষয়বস্তু রেন্ডার করতে একটি Open GL 1.0 বা 2.0 প্রসঙ্গ ব্যবহার করতে পারে। লাইভ ওয়ালপেপার এমন হার্ডওয়্যারে নির্ভরযোগ্যভাবে চলবে না যা একাধিক OpenGL প্রসঙ্গ সমর্থন করে না কারণ একটি OpenGL প্রসঙ্গের লাইভ ওয়ালপেপার ব্যবহার অন্য অ্যাপ্লিকেশনগুলির সাথে বিরোধ করতে পারে যেগুলি একটি OpenGL প্রসঙ্গ ব্যবহার করে।

    উপরে বর্ণিত হিসাবে নির্ভরযোগ্যভাবে লাইভ ওয়ালপেপার চালাতে সক্ষম ডিভাইস বাস্তবায়ন লাইভ ওয়ালপেপার প্রয়োগ করা উচিত। উপরে বর্ণিত লাইভ ওয়ালপেপারগুলি নির্ভরযোগ্যভাবে না চালানোর জন্য নির্ধারিত ডিভাইস বাস্তবায়নগুলি লাইভ ওয়ালপেপার প্রয়োগ করা উচিত নয়৷

    4. রেফারেন্স সফ্টওয়্যার সামঞ্জস্যতা

    ডিভাইস বাস্তবায়নকারীদের অবশ্যই নিম্নলিখিত ওপেন-সোর্স অ্যাপ্লিকেশনগুলি ব্যবহার করে বাস্তবায়ন সামঞ্জস্যতা পরীক্ষা করতে হবে:

    • ক্যালকুলেটর (SDK-তে অন্তর্ভুক্ত)
    • লুনার ল্যান্ডার (SDK-এ অন্তর্ভুক্ত)
    • "অ্যান্ড্রয়েডের জন্য অ্যাপস" অ্যাপ্লিকেশনগুলি [ সম্পদ, 18 ]৷

    উপরোক্ত প্রতিটি অ্যাপ অবশ্যই লঞ্চ করতে হবে এবং বাস্তবায়নে সঠিকভাবে আচরণ করতে হবে, যাতে বাস্তবায়নকে সামঞ্জস্যপূর্ণ বলে বিবেচনা করা হয়।

    অতিরিক্তভাবে, ডিভাইস বাস্তবায়নকে অবশ্যই এই স্মোক-টেস্ট অ্যাপ্লিকেশনগুলির প্রতিটি মেনু আইটেম (সমস্ত সাব-মেনু সহ) পরীক্ষা করতে হবে:

    • ApiDemos (SDK-এ অন্তর্ভুক্ত)
    • ManualSmokeTests (CTS-এ অন্তর্ভুক্ত)

    উপরের অ্যাপ্লিকেশনগুলির প্রতিটি পরীক্ষার ক্ষেত্রে অবশ্যই ডিভাইসে সঠিকভাবে চালানো উচিত বাস্তবায়ন.

    5. অ্যাপ্লিকেশান প্যাকেজিং সামঞ্জস্যপূর্ণ

    ডিভাইস বাস্তবায়নের জন্য অবশ্যই Android ".apk" ফাইলগুলিকে ইনস্টল এবং চালাতে হবে যেমনটি অফিসিয়াল Android SDK-এ অন্তর্ভুক্ত "aapt" টুল দ্বারা জেনারেট করা হয়েছে [ সম্পদ, 19 ]৷

    ডিভাইস বাস্তবায়ন .apk [ সম্পদ, 20 ], Android ম্যানিফেস্ট [ রিসোর্সেস, 21 ], বা ডালভিক বাইটকোড [ সম্পদ, 10 ] ফর্ম্যাটগুলিকে এমনভাবে প্রসারিত করা উচিত নয় যা সেই ফাইলগুলিকে অন্যান্য সামঞ্জস্যপূর্ণ ডিভাইসে সঠিকভাবে ইনস্টল এবং চালানো থেকে বাধা দেবে . ডিভাইস বাস্তবায়নকারীদের ডালভিকের রেফারেন্স আপস্ট্রিম বাস্তবায়ন এবং রেফারেন্স বাস্তবায়নের প্যাকেজ ম্যানেজমেন্ট সিস্টেম ব্যবহার করা উচিত।

    6. মাল্টিমিডিয়া সামঞ্জস্যপূর্ণ

    ডিভাইস বাস্তবায়ন নিম্নলিখিত মাল্টিমিডিয়া কোডেক সমর্থন আবশ্যক. এই সমস্ত কোডেকগুলি Android ওপেন সোর্স প্রকল্প থেকে পছন্দের Android বাস্তবায়নে সফ্টওয়্যার বাস্তবায়ন হিসাবে সরবরাহ করা হয়েছে৷

    অনুগ্রহ করে মনে রাখবেন যে Google বা ওপেন হ্যান্ডসেট অ্যালায়েন্স কোন প্রতিনিধিত্ব করে না যে এই কোডেকগুলি তৃতীয়-পক্ষের পেটেন্ট দ্বারা ভারমুক্ত নয়৷ যারা হার্ডওয়্যার বা সফ্টওয়্যার পণ্যগুলিতে এই উত্স কোডটি ব্যবহার করতে ইচ্ছুক তাদের পরামর্শ দেওয়া হয় যে ওপেন সোর্স সফ্টওয়্যার বা শেয়ারওয়্যার সহ এই কোডের বাস্তবায়নের জন্য প্রাসঙ্গিক পেটেন্ট ধারকদের কাছ থেকে পেটেন্ট লাইসেন্সের প্রয়োজন হতে পারে৷

    160 kbps পর্যন্ত স্ট্যান্ডার্ড বিট রেট এবং 8 থেকে 48kHz মধ্যে স্যাম্পলিং রেটগুলির যেকোনো সংমিশ্রণে এর জন্য কোন সমর্থন নেই
    অডিও
    নাম এনকোডার ডিকোডারের বিবরণ ফাইল/কন্টেইনার ফরম্যাট
    AAC LC/LTP  3GPP (.3gp) এবং MPEG-4 (.mp4, .m4a) এরX মনো/স্টিরিও সামগ্রী। কাঁচা AAC (.aac)
    HE-AACv1 (AAC+)
      X
    HE-AACv2 (বর্ধিত AAC+)   X
    AMR-NB X X 4.75 থেকে 12.2 kbps নমুনা @ 8kHz 3GPP (.3gp)
    AMR-WB   X 9 রেট 6.60 kbit/s থেকে 23.85 kbit/s নমুনা @ 16kHz 3GPP (.3gp)
    MP3   X Mono/Stereo 8-320Kbps ধ্রুবক (CBR) বা পরিবর্তনশীল বিট-রেট (VBR) MP3 (.mp3)
    MIDI   X MIDI প্রকার 0 এবং 1. DLS সংস্করণ 1 এবং 2. XMF এবং মোবাইল XMF। রিংটোন ফর্ম্যাটগুলি আরটিটিটিএল/আরটিএক্স, ওটিএ এবং আইমেলোডি টাইপ 0 এবং 1 (.mid, .xmf, .mxmf) এর জন্য সমর্থন। এছাড়াও আরটিটিএল/আরটিএক্স (.আরটিটিএল, .আরটিএক্স), ওটা (.োটা), এবং আইমেলডি (.আইএম)
    ওগ ভোরবিস   এক্স   ওজিজি (.OGG)
    পিসিএম   X 8- এবং 16-বিট লিনিয়ার পিসিএম (হার্ডওয়ারের সীমা পর্যন্ত হার) তরঙ্গ (.WAV)
    চিত্র
    JPEG x x বেস+প্রগতিশীল  
    জিআইএফ   এক্স   
    পিএনজি এক্স এক্স   
    বিএমপি   এক্স   
    ভিডিও
    এইচ .263 এক্স এক্স   3 জিপিপি (.3 জিপি) ফাইল
    এইচ .264   এক্স   3 জিপিপি (.3 জিপি) এবং এমপিইজি -4 (.এমপি 4) ফাইলগুলি
    এমপিইজি 4 সাধারণ প্রোফাইল   এক্স   3 জিপিপি (.3 জিপি) ফাইল

    নোট করুন যে উপরের টেবিলটি বেশিরভাগ ভিডিও কোডেকের জন্য নির্দিষ্ট বিট্রেট প্রয়োজনীয়তা তালিকাভুক্ত করে না। এর কারণটি হ'ল বাস্তবে, বর্তমান ডিভাইস হার্ডওয়্যার বিটরেটগুলিকে প্রাসঙ্গিক মানদণ্ড দ্বারা নির্দিষ্ট করা প্রয়োজনীয় বিটরেটগুলিতে ঠিক মানচিত্রকে সমর্থন করে না। পরিবর্তে, ডিভাইস বাস্তবায়নগুলি স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত সীমা পর্যন্ত হার্ডওয়্যারটিতে সর্বোচ্চ বিটরেট ব্যবহারিক সমর্থন করা উচিত।

    Dev. বিকাশকারী সরঞ্জাম সামঞ্জস্যতা

    ডিভাইস বাস্তবায়নগুলি অবশ্যই অ্যান্ড্রয়েড এসডিকে প্রদত্ত অ্যান্ড্রয়েড বিকাশকারী সরঞ্জামগুলিকে সমর্থন করবে। বিশেষত, অ্যান্ড্রয়েড-সামঞ্জস্যপূর্ণ ডিভাইসগুলির সাথে অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে:

    • অ্যান্ড্রয়েড ডিবাগ ব্রিজ (এডিবি হিসাবে পরিচিত) [ সংস্থান, 19 ]
      ডিভাইস বাস্তবায়নগুলি অবশ্যই অ্যান্ড্রয়েড এসডিকে নথিভুক্ত হিসাবে সমস্ত adb ফাংশনগুলিকে সমর্থন করবে। ডিভাইস-সাইড adb ডেমন ডিফল্টরূপে নিষ্ক্রিয় হওয়া উচিত, তবে অ্যান্ড্রয়েড ডিবাগ ব্রিজটি চালু করার জন্য অবশ্যই একটি ব্যবহারকারী-অ্যাক্সেসযোগ্য প্রক্রিয়া থাকতে হবে।
    • ডালভিক ডিবাগ মনিটর পরিষেবা (ডিডিএমএস হিসাবে পরিচিত) [ সংস্থানসমূহ, ১৯ ]
      ডিভাইস বাস্তবায়নগুলি অবশ্যই অ্যান্ড্রয়েড এসডিকে নথিভুক্ত হিসাবে সমস্ত ddms বৈশিষ্ট্যগুলিকে সমর্থন করবে। যেহেতু ddms adb ব্যবহার করে, ddms জন্য সমর্থন ডিফল্টরূপে নিষ্ক্রিয় হওয়া উচিত, তবে যখনই ব্যবহারকারী উপরের মতো অ্যান্ড্রয়েড ডিবাগ ব্রিজটি সক্রিয় করে রাখেন তখন অবশ্যই এটি সমর্থন করা উচিত।
    • বানর [ সংস্থানসমূহ, ২২ ]
      ডিভাইস বাস্তবায়নে অবশ্যই বানরের কাঠামো অন্তর্ভুক্ত থাকতে হবে এবং অ্যাপ্লিকেশনগুলি ব্যবহারের জন্য এটি উপলব্ধ করতে হবে।

    ৮. হার্ডওয়্যার সামঞ্জস্যতা

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

    যদি কোনও ডিভাইসে কোনও নির্দিষ্ট হার্ডওয়্যার উপাদান অন্তর্ভুক্ত থাকে যা তৃতীয় পক্ষের বিকাশকারীদের জন্য সম্পর্কিত এপিআই থাকে তবে ডিভাইস বাস্তবায়ন অবশ্যই অ্যান্ড্রয়েড এসডিকে ডকুমেন্টেশনে সংজ্ঞায়িত হিসাবে সেই এপিআই বাস্তবায়ন করতে হবে। যদি এসডিকে-তে কোনও এপিআই একটি হার্ডওয়্যার উপাদানগুলির সাথে যোগাযোগ করে যা al চ্ছিক বলে বর্ণিত হয়েছে এবং ডিভাইস বাস্তবায়নের অধিকারী না হয়:

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

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

    ডিভাইস বাস্তবায়নগুলি অবশ্যই getSystemAvailableFeatures() এবং Hasystystemfeature android.content.pm.PackageManager শ্রেণিতে hasSystemFeature(String) পদ্ধতির মাধ্যমে সঠিক হার্ডওয়্যার কনফিগারেশন তথ্য প্রতিবেদন করতে হবে।

    8.1। ডিসপ্লে

    অ্যান্ড্রয়েড ২.১ এর মধ্যে এমন কিছু সুবিধা অন্তর্ভুক্ত রয়েছে যা কিছু পরিস্থিতিতে কিছু পরিস্থিতিতে নির্দিষ্ট স্বয়ংক্রিয় স্কেলিং এবং ট্রান্সফর্মেশন অপারেশনগুলি সম্পাদন করে, যাতে তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলি বিভিন্ন হার্ডওয়্যার কনফিগারেশনে যুক্তিসঙ্গতভাবে ভালভাবে চালিত হয় তা নিশ্চিত করে [ সংস্থানসমূহ, ২৩ ]। ডিভাইসগুলি অবশ্যই এই বিভাগে বিশদ হিসাবে এই আচরণগুলি যথাযথভাবে প্রয়োগ করতে হবে।

    অ্যান্ড্রয়েড ২.১ এর জন্য, এটি সর্বাধিক সাধারণ ডিসপ্লে কনফিগারেশন:

    480
    স্ক্রিন টাইপ প্রস্থ (পিক্সেল) উচ্চতা (পিক্সেল) তির্যক দৈর্ঘ্যের পরিসীমা (ইঞ্চি) স্ক্রিন সাইজের গ্রুপ স্ক্রিন ঘনত্ব গ্রুপ
    কিভিজিএ 240 320 2.6 - 3.0 ছোট লো
    ডাব্লুকিভিজিএ 240 400 3.2 - 3.5 সাধারণ কম
    এফডব্লিউকিভিজিএ 240 432 3.5 - 3.8 সাধারণ নিম্ন
    এইচভিজিএ 320 480 3.0 - 3.5 সাধারণ মাঝারি
    ডাব্লুভিজিএ 480 800 3.3 - 4.0 সাধারণ উচ্চ
    এফডব্লিউজিএ854 3.5 - 4.0 সাধারণ উচ্চ ডাব্লুভিজিএ
    480 800 4.8 - 5.5 বড়
    মাঝারি এফডাব্লুজিএ 480 854 5.0 -

    5 উপরের একটি স্ট্যান্ডার্ড কনফিগারেশনের সাথে সম্পর্কিত অবশ্যই android.content.res.Configuration [ সংস্থানসমূহ, ২৪ ] শ্রেণীর মাধ্যমে অ্যাপ্লিকেশনগুলিতে নির্দেশিত স্ক্রিনের আকারটি রিপোর্ট করতে কনফিগার করা উচিত।

    কিছু .apk প্যাকেজগুলি এমনভাবে প্রকাশ করে যা তাদের নির্দিষ্ট ঘনত্বের পরিসীমা সমর্থন হিসাবে চিহ্নিত করে না। এই জাতীয় অ্যাপ্লিকেশনগুলি চালানোর সময়, নিম্নলিখিত সীমাবদ্ধতাগুলি প্রযোজ্য:

      ডিভাইস বাস্তবায়নগুলি অবশ্যই একটি .apk এ সংস্থানগুলি ব্যাখ্যা করতে হবে যা "মাঝারি" (এসডিকে ডকুমেন্টেশনে "এমডিপিআই" নামে পরিচিত) হিসাবে
    • ডিফল্ট
    • হিসাবে ঘনত্বের যোগ্যতার অভাব রয়েছে)
    • স্ক্রিন, ডিভাইস বাস্তবায়নগুলি অবশ্যই 0.75 এর একটি ফ্যাক্টর দ্বারা মাঝারি/এমডিপিআই সম্পদগুলি স্কেল করতে হবে।
    • "উচ্চ" ঘনত্বের স্ক্রিনে অপারেটিং করার সময়, ডিভাইস বাস্তবায়নগুলি 1.5 এর একটি ফ্যাক্টর দ্বারা মাঝারি/এমডিপিআই সম্পদগুলি স্কেল করতে হবে।
    • ডিভাইস বাস্তবায়নগুলি অবশ্যই ঘনত্বের সীমার মধ্যে সম্পদ স্কেল করতে হবে না এবং ঘনত্বের সীমার মধ্যে ঠিক এই কারণগুলির দ্বারা সম্পদগুলি স্কেল করতে হবে।

    8.1.2। অ-স্ট্যান্ডার্ড ডিসপ্লে কনফিগারেশনগুলি

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

    নোট করুন যে কিছু ডিসপ্লে কনফিগারেশন (যেমন খুব বড় বা খুব ছোট স্ক্রিন এবং কিছু দিক অনুপাত) অ্যান্ড্রয়েড 2.1 এর সাথে মৌলিকভাবে বেমানান; সুতরাং ডিভাইস প্রয়োগকারীরা উন্নয়ন প্রক্রিয়াতে যত তাড়াতাড়ি সম্ভব অ্যান্ড্রয়েড সামঞ্জস্যতা দলের সাথে যোগাযোগ করতে উত্সাহিত করা হয়।

    8.1.3। ডিসপ্লে মেট্রিক্স

    ডিভাইস বাস্তবায়নগুলি অবশ্যই android.util.DisplayMetrics [ সংস্থানসমূহ, 25 ] এ সংজ্ঞায়িত সমস্ত ডিসপ্লে মেট্রিকগুলির জন্য সঠিক মানগুলির প্রতিবেদন করতে হবে।

    8.2। কীবোর্ড

    ডিভাইস বাস্তবায়ন:

    • অবশ্যই ইনপুট ম্যানেজমেন্ট ফ্রেমওয়ার্কের জন্য সমর্থন অন্তর্ভুক্ত করতে হবে (যা তৃতীয় পক্ষের বিকাশকারীদের ইনপুট ম্যানেজমেন্ট ইঞ্জিনগুলি তৈরি করতে দেয় - অর্থাত্ নরম কীবোর্ড) বিকাশকারী হিসাবে বিশদ হিসাবে
    • । হার্ড কীবোর্ড উপস্থিত রয়েছে)
    • অতিরিক্ত নরম কীবোর্ড বাস্তবায়নের অন্তর্ভুক্ত থাকতে পারে
    • একটি হার্ডওয়্যার কীবোর্ড অন্তর্ভুক্ত থাকতে পারে এমন
    • একটি হার্ডওয়্যার কীবোর্ড অন্তর্ভুক্ত করা উচিত যা android.content.res.Configuration.keyboard [ সংস্থানসমূহ, 24 ] (যা, এটি, তে নির্দিষ্ট করা ফর্ম্যাটগুলির মধ্যে একটির সাথে মেলে না এমন একটি হার্ডওয়্যার কীবোর্ড অন্তর্ভুক্ত করা উচিত নয়। কিউওয়ার্টি, বা 12-কী)

    8.3। নন-টাচ নেভিগেশন

    ডিভাইস বাস্তবায়ন:

    • একটি নন-টাচ নেভিগেশন বিকল্পগুলি বাদ দিতে পারে (এটি একটি ট্র্যাকবল, ডি-প্যাড বা চাকা বাদ দিতে পারে)
    • অবশ্যই android.content.res.Configuration.navigation [ সংস্থানসমূহ, 24 এর জন্য সঠিক মানটি রিপোর্ট করতে হবে ]

    8.4। স্ক্রিন ওরিয়েন্টেশন

    সামঞ্জস্যপূর্ণ ডিভাইসগুলি অবশ্যই প্রতিকৃতি বা ল্যান্ডস্কেপ স্ক্রিন ওরিয়েন্টেশনে অ্যাপ্লিকেশন দ্বারা গতিশীল ওরিয়েন্টেশনকে সমর্থন করতে হবে। এটি হ'ল, ডিভাইসটি অবশ্যই একটি নির্দিষ্ট স্ক্রিন ওরিয়েন্টেশনের জন্য অ্যাপ্লিকেশনটির অনুরোধটিকে সম্মান করতে হবে। ডিভাইস বাস্তবায়নগুলি ডিফল্ট হিসাবে প্রতিকৃতি বা ল্যান্ডস্কেপ ওরিয়েন্টেশন নির্বাচন করতে পারে।

    ডিভাইসগুলিকে অবশ্যই ডিভাইসের বর্তমান ওরিয়েন্টেশনের জন্য সঠিক মানটি রিপোর্ট করতে হবে, যখনই অ্যান্ড্রয়েড.কন্টেন্ট.আরএস.কনফিগারেশন.অরিয়েন্টেশন, অ্যান্ড্রয়েড.ভিউ.ডিসপ্লে.গেটরিয়েন্টেশন (), বা অন্যান্য এপিআইগুলির মাধ্যমে অনুসন্ধান করা উচিত।

    8.5। টাচস্ক্রিন ইনপুট

    ডিভাইস বাস্তবায়ন:

    অবশ্যই একটি টাচস্ক্রিন থাকতে পারে ক্যাপাসিটিভ বা প্রতিরোধী টাচস্ক্রিন থাকতে পারে অবশ্যই অ্যান্ড্রয়েড.কন্টেন্ট.আরএস.কনফিগারেশন [সংস্থানসমূহ, 24] ডিভাইস

    8.6

    • এর
    • নির্দিষ্ট
    • android.content.res.Configuration ধরণের সাথে প্রতিফলিত করে তার মানটি রিপোর্ট করতে হবে।

    ইউএসবি

    ডিভাইস বাস্তবায়ন:

    • অবশ্যই একটি ইউএসবি ক্লায়েন্টকে বাস্তবায়ন করতে হবে, একটি স্ট্যান্ডার্ড ইউএসবি-এ পোর্টের সাথে একটি ইউএসবি হোস্টের সাথে সংযোগযোগ্য
    • অবশ্যই ইউএসবি-র উপর অ্যান্ড্রয়েড ডিবাগ ব্রিজটি প্রয়োগ করতে হবে (বিভাগে বর্ণিত হিসাবে) অবশ্যই
    • ইউএসবি ভর স্টোরেজ স্পেসিফিকেশন বাস্তবায়ন করতে হবে, একটি হোস্টকে সংযুক্ত করার অনুমতি দিতে অবশ্যই ইউএসবি ভর স্টোরেজ স্পেসিফিকেশন প্রয়োগ করতে হবে /এসডকার্ড ভলিউমের সামগ্রীগুলি অ্যাক্সেস করার জন্য ডিভাইসে
    • ডিভাইসের পাশের মাইক্রো ইউএসবি ফর্ম ফ্যাক্টরটি ব্যবহার করা উচিত
    • ডিভাইসটির পাশের একটি অ-মানক বন্দর অন্তর্ভুক্ত থাকতে পারে, তবে যদি তাই হয় তবে অবশ্যই কাস্টম পিনআউটটি সংযোগ করতে সক্ষম তারের সাথে শিপিং করতে হবে স্ট্যান্ডার্ড ইউএসবি-এ পোর্ট

    8.7। নেভিগেশন কীগুলি

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

    ডিভাইস প্রয়োগকারীদেরও একটি উত্সর্গীকৃত অনুসন্ধান কী সরবরাহ করা উচিত। ডিভাইস প্রয়োগকারীরা ফোন কলগুলির জন্য সেন্ড এবং শেষ কী সরবরাহ করতে পারে।

    ৮.৮। ওয়্যারলেস ডেটা নেটওয়ার্কিং

    ডিভাইস বাস্তবায়নে অবশ্যই ওয়্যারলেস হাই-স্পিড ডেটা নেটওয়ার্কিংয়ের জন্য সমর্থন অন্তর্ভুক্ত থাকতে হবে। বিশেষত, ডিভাইস বাস্তবায়নে অবশ্যই কমপক্ষে একটি ওয়্যারলেস ডেটা স্ট্যান্ডার্ড স্ট্যান্ডার্ডের জন্য 200 কিবিট/সেকেন্ড বা তার চেয়ে বেশি সক্ষম অন্তর্ভুক্ত থাকতে হবে। এই প্রয়োজনীয়তাটি পূরণ করে এমন প্রযুক্তির উদাহরণগুলির মধ্যে রয়েছে এজ, এইচএসপিএ, ইভি-ডিও, 802.11 জি ইত্যাদি

    । বাস্তবায়ন অবশ্যই এপিআই সমর্থন করতে হবে।

    ডিভাইসগুলি ওয়্যারলেস ডেটা সংযোগের একাধিক ফর্ম প্রয়োগ করতে পারে। ডিভাইসগুলি তারযুক্ত ডেটা সংযোগ প্রয়োগ করতে পারে (যেমন ইথারনেট), তবে তবুও অবশ্যই উপরের মতো ওয়্যারলেস সংযোগের কমপক্ষে একটি ফর্ম অন্তর্ভুক্ত করতে হবে।

    ৮.৯। ক্যামেরা

    ডিভাইস বাস্তবায়নে অবশ্যই একটি ক্যামেরা অন্তর্ভুক্ত থাকতে হবে। অন্তর্ভুক্ত ক্যামেরা:

    • কমপক্ষে 2 মেগাপিক্সেলের একটি রেজোলিউশন থাকতে হবে
    • হার্ডওয়্যার অটো-ফোকাস, বা ক্যামেরা ড্রাইভারটিতে প্রয়োগ করা সফ্টওয়্যার অটো-ফোকাস থাকতে হবে (অ্যাপ্লিকেশন সফ্টওয়্যার থেকে স্বচ্ছ)
    • ফিক্স-ফোকাস বা ইডিএফ (ক্ষেত্রের বর্ধিত গভীরতা) থাকতে পারে হার্ডওয়্যার
    • একটি ফ্ল্যাশ অন্তর্ভুক্ত করতে পারে। যদি ক্যামেরাটিতে একটি ফ্ল্যাশ অন্তর্ভুক্ত থাকে তবে Android.hardware.camera.previewcallback উদাহরণটি ক্যামেরা পূর্বরূপ পৃষ্ঠে নিবন্ধিত করা হয়েছে, যদি না অ্যাপ্লিকেশনটি স্পষ্টভাবে FLASH_MODE_AUTO বা ফ্ল্যাশ_আউটো বা FLASH_MODE_ON বৈশিষ্ট্যগুলি সক্ষম করে ফ্ল্যাশটি সক্ষম করে না থাকে তবে ফ্ল্যাশ ল্যাম্পটি আলোকিত করা উচিত নয় Camera.Parameters অবজেক্ট। নোট করুন যে এই সীমাবদ্ধতাটি ডিভাইসের অন্তর্নির্মিত সিস্টেম ক্যামেরা অ্যাপ্লিকেশনটিতে প্রযোজ্য নয়, তবে কেবল Camera.PreviewCallback ব্যবহার করে তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলিতে।

    ডিভাইস বাস্তবায়নগুলি অবশ্যই ক্যামেরা-সম্পর্কিত এপিআইগুলির জন্য নিম্নলিখিত আচরণগুলি বাস্তবায়ন করতে হবে:

    1. যদি কোনও অ্যাপ্লিকেশনটি কখনও অ্যান্ড্রয়েড.হার্ডওয়্যার.ক্যামেরা.প্যারামিটার.সেটপ্রিভিউফর্ম্যাট (আইএনটি) বলা হয় না, তবে ডিভাইসটি অবশ্যই android.hardware.pixformat.ycbcr_420_sp ব্যবহার করতে হবে প্রিভিউ ডেটার জন্য সরবরাহ করা অ্যাপ্লিকেশন কলব্যাকস।
    2. যদি কোনও অ্যাপ্লিকেশন একটি android.hardware.camera.previewcallback উদাহরণ নিবন্ধন করে এবং সিস্টেমটি অনপরিভিউফ্রেম () পদ্ধতিটি কল করে যখন পূর্বরূপ ফর্ম্যাটটি ycbcr_420_sp হয়, তবে বাইট [] এর ডেটা আরও এনভি 21 এনকোডিং ফর্ম্যাটে যেতে হবে। (এটি 7 কে হার্ডওয়্যার পরিবার দ্বারা স্থানীয়ভাবে ব্যবহৃত ফর্ম্যাট)) এটি, এনভি 21 অবশ্যই ডিফল্ট হতে হবে।

    ডিভাইসে হার্ডওয়্যার অটোফোকাস বা অন্যান্য ক্ষমতা অন্তর্ভুক্ত কিনা তা নির্বিশেষে ডিভাইস বাস্তবায়নগুলি অবশ্যই অ্যান্ড্রয়েড 2.1 এসডিকে ডকুমেন্টেশন [ সংস্থানসমূহ, 26 ]) এর অন্তর্ভুক্ত সম্পূর্ণ ক্যামেরা এপিআই প্রয়োগ করতে হবে। উদাহরণস্বরূপ, যে ক্যামেরাগুলিতে অটোফোকাসের অভাব রয়েছে সেগুলি অবশ্যই কোনও নিবন্ধিত android.hardware.Camera.AutoFocusCallback দৃষ্টান্তগুলি কল করতে হবে (যদিও এটি একটি নন-অটোফোকাস ক্যামেরার সাথে কোনও প্রাসঙ্গিকতা নেই))

    ডিভাইস বাস্তবায়নগুলি অবশ্যই প্রতিটি প্যারামিটারের নামকে স্বীকৃতি দিতে হবে এবং সম্মান করতে হবে android.hardware.Camera.Parameters ক্লাস, যদি অন্তর্নিহিত হার্ডওয়্যার বৈশিষ্ট্যটিকে সমর্থন করে। যদি ডিভাইস হার্ডওয়্যার কোনও বৈশিষ্ট্য সমর্থন না করে তবে এপিআই অবশ্যই নথিভুক্ত হিসাবে আচরণ করতে হবে। বিপরীতে, ডিভাইস বাস্তবায়নগুলি অবশ্যই android.hardware.Camera.setParameters() এবং android.hardware.Camera.Parameters ধ্রুবক হিসাবে নথিভুক্ত হওয়া ব্যতীত অন্য পদ্ধতি, যদি না ধ্রুবকগুলি একটি স্ট্রিং সহ উপস্থাপিত না হয় ডিভাইস প্রয়োগকারীর নাম। এটি হ'ল, হার্ডওয়্যারটি অনুমতি দিলে ডিভাইস বাস্তবায়নগুলি অবশ্যই সমস্ত স্ট্যান্ডার্ড ক্যামেরা পরামিতিগুলিকে সমর্থন করবে এবং প্যারামিটারের নামগুলি কোনও স্ট্রিং উপসর্গের মাধ্যমে স্পষ্টভাবে অ-মানক হিসাবে চিহ্নিত না করা হলে কাস্টম ক্যামেরা প্যারামিটারের প্রকারগুলি সমর্থন করবে না।

    8.10। অ্যাক্সিলোমিটার

    ডিভাইস বাস্তবায়নে অবশ্যই একটি 3-অক্ষের অ্যাক্সিলোমিটার অন্তর্ভুক্ত থাকতে হবে এবং অবশ্যই 50 হার্জ বা তার বেশি ইভেন্ট সরবরাহ করতে সক্ষম হতে হবে। অ্যাক্সিলোমিটার দ্বারা ব্যবহৃত সমন্বয় ব্যবস্থা অবশ্যই অ্যান্ড্রয়েড সেন্সর সমন্বয় সিস্টেমটি অ্যান্ড্রয়েড এপিআইগুলিতে বিশদ হিসাবে মেনে চলতে হবে (দেখুন [ সংস্থানসমূহ, ২ 27 ])।

    8.11। কম্পাস

    ডিভাইস বাস্তবায়নে অবশ্যই একটি 3-অক্ষের কম্পাস অন্তর্ভুক্ত থাকতে হবে এবং 10 হার্জেড বা তার বেশি ইভেন্ট সরবরাহ করতে সক্ষম হতে হবে। কম্পাস দ্বারা ব্যবহৃত সমন্বয় সিস্টেমটি অবশ্যই অ্যান্ড্রয়েড এপিআইতে সংজ্ঞায়িত হিসাবে অ্যান্ড্রয়েড সেন্সর সমন্বয় ব্যবস্থা মেনে চলতে হবে (দেখুন [ সংস্থানসমূহ, ২ 27 ])।

    8.12। জিপিএস

    ডিভাইস বাস্তবায়নে অবশ্যই একটি জিপিএস অন্তর্ভুক্ত থাকতে হবে এবং জিপিএস লক-অন সময়কে হ্রাস করার জন্য "সহায়তায় জিপিএস" কৌশলটির কিছু ফর্ম অন্তর্ভুক্ত করা উচিত।

    ৮.১৩। টেলিফোনি

    অ্যান্ড্রয়েড ২.১ ডিভাইসগুলিতে ব্যবহার করা যেতে পারে যা টেলিফোনি হার্ডওয়্যার অন্তর্ভুক্ত করে না। অর্থাৎ, অ্যান্ড্রয়েড ২.১ ফোন নয় এমন ডিভাইসের সাথে সামঞ্জস্যপূর্ণ। তবে, যদি কোনও ডিভাইস বাস্তবায়নে জিএসএম বা সিডিএমএ টেলিফোনি অন্তর্ভুক্ত থাকে তবে এটি অবশ্যই সেই প্রযুক্তির জন্য এপিআইয়ের সম্পূর্ণ সমর্থন বাস্তবায়ন করতে হবে। টেলিফোনি হার্ডওয়্যার অন্তর্ভুক্ত না করে ডিভাইস বাস্তবায়নগুলিতে অবশ্যই সম্পূর্ণ এপিআইগুলিকে নো-অপ হিসাবে প্রয়োগ করতে হবে।

    বিভাগ 8.8, ওয়্যারলেস ডেটা নেটওয়ার্কিংও দেখুন।

    8.14। মেমরি এবং স্টোরেজ

    ডিভাইস বাস্তবায়নের কার্নেল এবং ব্যবহারকারীস্পেসে কমপক্ষে 92MB মেমরি উপলব্ধ থাকতে হবে। 92 এমবি অবশ্যই রেডিও, মেমরি এবং এর মতো হার্ডওয়্যার উপাদানগুলিতে উত্সর্গীকৃত যে কোনও মেমরি ছাড়াও অবশ্যই কার্নেলের নিয়ন্ত্রণে নেই।

    ডিভাইস বাস্তবায়নের অবশ্যই ব্যবহারকারীর ডেটার জন্য কমপক্ষে 150MB অ-উদ্বায়ী স্টোরেজ উপলব্ধ থাকতে হবে। অর্থাৎ, /data পার্টিশন অবশ্যই কমপক্ষে 150MB হতে হবে।

    দ্রষ্টব্য: এই বিভাগটি ERRATUM EX6580 দ্বারা সংশোধন করা হয়েছিল।

    ৮.১৫। অ্যাপ্লিকেশন ভাগ করা স্টোরেজ

    ডিভাইস বাস্তবায়নগুলি অবশ্যই অ্যাপ্লিকেশনগুলির জন্য ভাগ করা স্টোরেজ সরবরাহ করতে হবে। প্রদত্ত ভাগ করা স্টোরেজটি অবশ্যই কমপক্ষে 2 জিবি আকারে হতে হবে।

    ডিভাইস বাস্তবায়নগুলি অবশ্যই "বাক্সের বাইরে" ডিফল্টরূপে মাউন্ট করা ভাগ করা স্টোরেজ দিয়ে কনফিগার করতে হবে। যদি ভাগ করা স্টোরেজটি লিনাক্স পাথ /sdcard মাউন্ট না করা হয় তবে ডিভাইসটিতে অবশ্যই /sdcard থেকে প্রকৃত মাউন্ট পয়েন্টে একটি লিনাক্স প্রতীকী লিঙ্ক অন্তর্ভুক্ত করা উচিত।

    ডিভাইস বাস্তবায়নগুলি অবশ্যই এই ভাগ করা স্টোরেজটিতে android.permission.WRITE_EXTERNAL_STORAGE অনুমতি নথিভুক্ত হিসাবে কার্যকর করতে হবে। ভাগ করা স্টোরেজ অন্যথায় সেই অনুমতি প্রাপ্ত কোনও অ্যাপ্লিকেশন দ্বারা অবশ্যই লিখিত হতে হবে।

    ডিভাইস বাস্তবায়নে ব্যবহারকারী-অ্যাক্সেসযোগ্য অপসারণযোগ্য স্টোরেজ যেমন সুরক্ষিত ডিজিটাল কার্ডের জন্য হার্ডওয়্যার থাকতে পারে। বিকল্পভাবে, ডিভাইস বাস্তবায়নগুলি অ্যাপ্লিকেশনগুলির ভাগ করে নেওয়া স্টোরেজ হিসাবে অভ্যন্তরীণ (অ-অপসারণযোগ্য) স্টোরেজ বরাদ্দ করতে পারে।

    ব্যবহৃত ভাগ করা স্টোরেজের ফর্ম নির্বিশেষে, ভাগ করা স্টোরেজটি অবশ্যই ইউএসবি ভর স্টোরেজ বাস্তবায়ন করতে হবে, যেমনটি বিভাগ 8.6 -এ বর্ণিত হয়েছে। বাক্সের বাইরে পাঠানো হিসাবে, ভাগ করা স্টোরেজটি অবশ্যই ফ্যাট ফাইল সিস্টেমের সাথে মাউন্ট করা উচিত।

    এটি দুটি সাধারণ উদাহরণ বিবেচনা করা উদাহরণস্বরূপ। যদি কোনও ডিভাইস বাস্তবায়নে ভাগ করা স্টোরেজ প্রয়োজনীয়তা পূরণ করতে কোনও এসডি কার্ড স্লট অন্তর্ভুক্ত থাকে তবে আকারে বা তার চেয়ে বড় আকারের একটি ফ্যাট-ফর্ম্যাটেড এসডি কার্ড 2 জিবি অবশ্যই ব্যবহারকারীদের কাছে বিক্রি হিসাবে ডিভাইসের সাথে অন্তর্ভুক্ত করতে হবে এবং অবশ্যই ডিফল্টরূপে মাউন্ট করা উচিত। বিকল্পভাবে, যদি কোনও ডিভাইস বাস্তবায়ন এই প্রয়োজনীয়তাটি পূরণ করতে অভ্যন্তরীণ স্থির স্টোরেজ ব্যবহার করে তবে সেই স্টোরেজটি অবশ্যই 2 জিবি আকার বা বৃহত্তর হতে হবে এবং /sdcard মাউন্ট করা উচিত (বা /sdcard অন্য কোথাও মাউন্ট করা থাকলে অবশ্যই শারীরিক অবস্থানের একটি প্রতীকী লিঙ্ক হতে হবে))

    দ্রষ্টব্য : এই বিভাগটি ERRATUM EX6580 দ্বারা যুক্ত করা হয়েছিল।

    8.16। ব্লুটুথ

    ডিভাইস বাস্তবায়নে অবশ্যই একটি ব্লুটুথ ট্রান্সসিভার অন্তর্ভুক্ত থাকতে হবে। ডিভাইস বাস্তবায়নগুলি অবশ্যই এসডিকে ডকুমেন্টেশনে বর্ণিত হিসাবে আরএফসিওএমএম-ভিত্তিক ব্লুটুথ এপিআই সক্ষম করতে হবে [ সংস্থানসমূহ, ২৯ ]। ডিভাইস বাস্তবায়নের জন্য ডিভাইসের জন্য উপযুক্ত হিসাবে প্রাসঙ্গিক ব্লুটুথ প্রোফাইলগুলি যেমন এ 2 ডিপি, এভিআরসিপি, ওবেক্স ইত্যাদি প্রয়োগ করা উচিত।

    দ্রষ্টব্য: এই বিভাগটি ERRATUM EX6580 দ্বারা যুক্ত করা হয়েছিল।

    9. পারফরম্যান্স সামঞ্জস্যতা

    অ্যান্ড্রয়েড সামঞ্জস্যতা প্রোগ্রামের অন্যতম লক্ষ্য হ'ল গ্রাহকদের জন্য ধারাবাহিক অ্যাপ্লিকেশন অভিজ্ঞতা সক্ষম করা। সামঞ্জস্যপূর্ণ বাস্তবায়নগুলি অবশ্যই কেবল ডিভাইসে সঠিকভাবে চলমান অ্যাপ্লিকেশনগুলি নিশ্চিত করতে হবে না, তবে তারা যুক্তিসঙ্গত কর্মক্ষমতা এবং সামগ্রিক ভাল ব্যবহারকারীর অভিজ্ঞতার সাথে এটি করে। ডিভাইস বাস্তবায়নগুলি অবশ্যই নীচের সারণীতে সংজ্ঞায়িত একটি অ্যান্ড্রয়েড 2.1 সামঞ্জস্যপূর্ণ ডিভাইসের মূল পারফরম্যান্স মেট্রিকগুলি পূরণ করতে হবে:

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

    ১০. সুরক্ষা মডেল সামঞ্জস্যতা

    ডিভাইস বাস্তবায়নগুলি অ্যান্ড্রয়েড প্ল্যাটফর্ম সুরক্ষা মডেলের সাথে সামঞ্জস্যপূর্ণ একটি সুরক্ষা মডেল প্রয়োগ করতে হবে যেমন এপিআইএস [ রিসোর্স, ২৮ ] এ সুরক্ষা এবং অনুমতি রেফারেন্স ডকুমেন্টে সংজ্ঞায়িত হিসাবে সংজ্ঞায়িত হয়েছে। ডিভাইস বাস্তবায়নগুলি অবশ্যই কোনও তৃতীয় পক্ষ/কর্তৃপক্ষের কোনও অতিরিক্ত অনুমতি/শংসাপত্রের প্রয়োজন ছাড়াই স্ব-স্বাক্ষরিত অ্যাপ্লিকেশনগুলির ইনস্টলেশনকে সমর্থন করতে হবে। বিশেষত, সামঞ্জস্যপূর্ণ ডিভাইসগুলি অবশ্যই ফলো সাব-বিভাগগুলিতে বর্ণিত সুরক্ষা ব্যবস্থাগুলিকে সমর্থন করতে হবে।

    10.1। অনুমতি

    ডিভাইস বাস্তবায়ন অবশ্যই অ্যান্ড্রয়েড বিকাশকারী ডকুমেন্টেশন [ সংস্থানসমূহ, 28 ] এ সংজ্ঞায়িত হিসাবে অ্যান্ড্রয়েড অনুমতি মডেলকে সমর্থন করতে হবে। বিশেষত, বাস্তবায়নগুলি অবশ্যই এসডিকে ডকুমেন্টেশনে বর্ণিত হিসাবে সংজ্ঞায়িত প্রতিটি অনুমতি প্রয়োগ করতে হবে; কোনও অনুমতি বাদ দেওয়া, পরিবর্তিত বা উপেক্ষা করা যাবে না। বাস্তবায়নগুলি অতিরিক্ত অনুমতি যুক্ত করতে পারে, তবে নতুন অনুমতি আইডি স্ট্রিংগুলি অ্যান্ড্রয়েডে না থাকে** নাম স্থান।

    10.2। ইউআইডি এবং প্রক্রিয়া বিচ্ছিন্নতা

    ডিভাইস বাস্তবায়নগুলি অবশ্যই অ্যান্ড্রয়েড অ্যাপ্লিকেশন স্যান্ডবক্স মডেলটিকে সমর্থন করবে, যাতে প্রতিটি অ্যাপ্লিকেশন একটি অনন্য ইউনিক্স-স্টাইলের ইউআইডি হিসাবে এবং একটি পৃথক প্রক্রিয়াতে চলে। ডিভাইস বাস্তবায়নগুলি অবশ্যই একই লিনাক্স ব্যবহারকারী আইডি হিসাবে একাধিক অ্যাপ্লিকেশন চলমান সমর্থন করবে, তবে সরবরাহ করে যে অ্যাপ্লিকেশনগুলি সঠিকভাবে স্বাক্ষরিত এবং নির্মিত হয়েছে, যেমন সুরক্ষা এবং অনুমতি রেফারেন্সে সংজ্ঞায়িত হয়েছে [ সংস্থানসমূহ, ২৮ ]।

    10.3। ফাইল সিস্টেমের অনুমতি

    ডিভাইস বাস্তবায়নগুলি অবশ্যই সুরক্ষা এবং অনুমতি রেফারেন্সে সংজ্ঞায়িত হিসাবে সংজ্ঞায়িত হিসাবে অ্যান্ড্রয়েড ফাইল অ্যাক্সেস অনুমতি মডেলকে সমর্থন করবে [ সংস্থানসমূহ, ২৮ ]।

    ১১. সামঞ্জস্যতা পরীক্ষা স্যুট

    ডিভাইস বাস্তবায়নগুলি ডিভাইসে চূড়ান্ত শিপিং সফ্টওয়্যার ব্যবহার করে অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প থেকে উপলব্ধ অ্যান্ড্রয়েড সামঞ্জস্যতা পরীক্ষা স্যুট (সিটিএস) [ সংস্থানসমূহ, 2 ] পাস করতে হবে। অতিরিক্তভাবে, ডিভাইস বাস্তবায়নকারীদের যতটা সম্ভব অ্যান্ড্রয়েড ওপেন সোর্স ট্রিতে রেফারেন্স বাস্তবায়ন ব্যবহার করা উচিত এবং সিটিএসে অস্পষ্টতার ক্ষেত্রে এবং রেফারেন্স সোর্স কোডের অংশগুলির যে কোনও পুনর্নির্মাণের জন্য সামঞ্জস্যতা নিশ্চিত করতে হবে।

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

    12. আপডেটযোগ্য সফ্টওয়্যার

    ডিভাইস বাস্তবায়নে অবশ্যই সিস্টেম সফ্টওয়্যারটির সম্পূর্ণতা প্রতিস্থাপনের জন্য একটি প্রক্রিয়া অন্তর্ভুক্ত থাকতে হবে। প্রক্রিয়াটি "লাইভ" আপগ্রেডগুলি সম্পাদন করার দরকার নেই - এটি একটি ডিভাইস পুনরায় চালু করতে পারে।

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

    • ওভার-দ্য এয়ার (ওটিএ) ডাউনলোডগুলি
    • একটি হোস্ট পিসি "
    • অফলাইন" আপডেটগুলি থেকে রিবুট থেকে রিবুট "টিথারড" আপডেটগুলির মাধ্যমে অফলাইন আপডেটের সাথে ডাউনলোডগুলি একটি রিবুটের মাধ্যমে এবং একটি ফাইল থেকে আপডেট অপসারণযোগ্য স্টোরেজ

    ব্যবহৃত আপডেট প্রক্রিয়াটি ব্যবহারকারীর ডেটা মুছে না দিয়ে আপডেটগুলি সমর্থন করতে হবে। নোট করুন যে উজানের অ্যান্ড্রয়েড সফ্টওয়্যারটিতে একটি আপডেট প্রক্রিয়া অন্তর্ভুক্ত রয়েছে যা এই প্রয়োজনীয়তাটি পূরণ করে।

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

    13. আমাদের সাথে যোগাযোগ করুন

    আপনি স্পষ্টতার জন্য এবং ডকুমেন্টটি কভার করে না বলে মনে করেন এমন কোনও সমস্যা আনতে আপনি ডকুমেন্ট লেখকদের সাথে যোগাযোগ করতে পারেন @android.com এ।