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

চিত্র 1. অ্যান্ড্রয়েড অডিও আর্কিটেকচার
- অ্যাপ্লিকেশন ফ্রেমওয়ার্ক
- অ্যাপ্লিকেশন ফ্রেমওয়ার্ক অ্যাপ কোড অন্তর্ভুক্ত করে, যা অডিও হার্ডওয়্যারের সাথে ইন্টারঅ্যাক্ট করতে android.media API ব্যবহার করে। অভ্যন্তরীণভাবে, এই কোডটি অডিও হার্ডওয়্যারের সাথে ইন্টারঅ্যাক্ট করে এমন নেটিভ কোড অ্যাক্সেস করতে সংশ্লিষ্ট JNI গ্লু ক্লাসকে কল করে।
- জেএনআই
- android.media- এর সাথে যুক্ত JNI কোড অডিও হার্ডওয়্যার অ্যাক্সেস করতে নিম্ন স্তরের নেটিভ কোড কল করে। JNI
frameworks/base/core/jni/এবংframeworks/base/media/jniএ অবস্থিত। - নেটিভ ফ্রেমওয়ার্ক
- নেটিভ ফ্রেমওয়ার্ক android.media প্যাকেজের একটি নেটিভ সমতুল্য প্রদান করে, মিডিয়া সার্ভারের অডিও-নির্দিষ্ট পরিষেবাগুলি অ্যাক্সেস করার জন্য Binder IPC প্রক্সিগুলিকে কল করে। নেটিভ ফ্রেমওয়ার্ক কোড
frameworks/av/media/libmediaএ অবস্থিত। - বাইন্ডার আইপিসি
- বাইন্ডার আইপিসি প্রক্সিগুলি প্রক্রিয়ার সীমানায় যোগাযোগের সুবিধা দেয়। প্রক্সিগুলি
frameworks/av/media/libmediaএ অবস্থিত এবং "I" অক্ষর দিয়ে শুরু হয়। - মিডিয়া সার্ভার
- মিডিয়া সার্ভারে অডিও পরিষেবা রয়েছে, যা প্রকৃত কোড যা আপনার HAL বাস্তবায়নের সাথে ইন্টারঅ্যাক্ট করে। মিডিয়া সার্ভার
frameworks/av/services/audioflingerএ অবস্থিত। - HAL
- HAL মানক ইন্টারফেসকে সংজ্ঞায়িত করে যা অডিও পরিষেবাগুলিতে কল করে এবং আপনার অডিও হার্ডওয়্যার সঠিকভাবে কাজ করার জন্য আপনাকে অবশ্যই প্রয়োগ করতে হবে। আরও বিশদ বিবরণের জন্য, সংশ্লিষ্ট HAL সংস্করণ ডিরেক্টরির
*.halফাইলগুলিতে অডিও HAL ইন্টারফেস এবং মন্তব্যগুলি পড়ুন। - কার্নেল ড্রাইভার
- অডিও ড্রাইভার আপনার হার্ডওয়্যার এবং HAL বাস্তবায়নের সাথে যোগাযোগ করে। আপনি অ্যাডভান্সড লিনাক্স সাউন্ড আর্কিটেকচার (ALSA), ওপেন সাউন্ড সিস্টেম (OSS), অথবা একটি কাস্টম ড্রাইভার (HAL হল ড্রাইভার-অজ্ঞেয়বাদী) ব্যবহার করতে পারেন।
দ্রষ্টব্য : আপনি যদি ALSA ব্যবহার করেন, তাহলে আমরা ড্রাইভারের ব্যবহারকারী অংশের জন্য
external/tinyalsaসুপারিশ করি কারণ এর সামঞ্জস্যপূর্ণ লাইসেন্সিং (স্ট্যান্ডার্ড ব্যবহারকারী-মোড লাইব্রেরিটি GPL- লাইসেন্সপ্রাপ্ত)। - ওপেন এসএল ইএস-এর উপর ভিত্তি করে অ্যান্ড্রয়েড নেটিভ অডিও (দেখানো হয়নি)
- এই APIটি Android NDK- এর অংশ হিসাবে উন্মুক্ত করা হয়েছে এবং android.media- এর মতো একই আর্কিটেকচার স্তরে রয়েছে।