تصور کنید رفتید رستوران و  نشستید روی صندلی و منوی غذا را مشاهده میکنید ، شما غذای دلخواهتون رو انتخاب کرده و میخواهید سفارش بدید! چطوری سفارش می دید ؟! ، معلومه خادم میاد جلو و سفارشتون رو دریافت میکنه و اون رو میبره به آشپزخونه و بعد از مدتی غذای سفارشی ما رو برامون میاره .

ما سفارش خودمون رو به خادم دادیم تا غذای مورد نظرمون رو از آشپزخانه تهیه کنه و برامون بیاره .ولی اصلا خودمون نمیتونیم بدون بکارگیری واسطه (خادم) ، سرمون رو بندازیم پایین و بریم توی آشپزخونه و غذای دلخواهمون رو بیاریم .چون ورود به آشپزخونه فقط برای خادم مجاز هست و نگهبان ها از ورود افزاد متفرقه جلوگیری می کنند و میگن هر سفارشی داری به خادم بده اون واست میاره.

در دنیای برنامه نویسی و اینترنت منظور از API همون کاری است که خادم رستوران برامون انجام میده.یعنی ما بوسیله API (خادم) سفارش خودمون رو به نرم افزار/ سرویس دهنده مورد نظر (آشپزخونه) می فرستیم و پاسخ مناسب رو دریافت میکنیم (غذای سفارش داده شده)

برای مثال موقعی که می خواهیم وارد حساب کاربریمون در فیس بوک بشیم ایتدا وارد سایت Facebook.com می شیم ، بعدش نام کاربری و رمز عبورمون رو وارد کرده و با زدن کلید ورود ،عملیات احراز هویت صورت میگیره (با اتصال به دیتابیس فیس بوک و بررسی صحت نام کاربری و رمز عبور )  در صورت صحیح بودن اطلاعات وارد شده به حساب کاربری مون وارد میشیم.خوب همون طور که دیدید سایت فیس بوک یک رابط مجاز برای برقراری اتصال به دیتابیس و چک کردن اطلاعات ما جهت احراز هویت و در نهایت وارد کردن ما به حساب کاربریمون هست.
ولی یه سوال ؟ روشی هست که من بتونم بدون این که وارد سایت فیس بوک بشم نام کاربری و رمز عبورم رو جهت احراز هویت بفرستم و در صورتی صحیح بودن مشخصات وارد شده ، اطلاعات  مورد نظرم رو دریافت کنم ؟
پاسخ بله است . برای این کار باید از API (خادم) ای که تیم برنامه نویسی فیس بوک برامون طراحی کرده استفاده کنیم و با دادن اطلاعات مورد نیاز بهش پاسخ مناسب رو دریافت کنیم.
تعریف رسمی API

( API ( Application Programming Interface چیست ؟ API به معنی رابط برنامه نویسی می باشد .یک API رابط بین یک (کتابخانه / سیستم عامل /سرویس دهنده و … ) با برنامه هایی است که از آن درخواست سرویس می کنند.

API در اندروید
اگه یادتون باشه گفتیم که SDK شامل مجموعه ابزاری هست که کار برنامه نویس رو راحت تر میکنن .(برای آشنایی با SDK این پست رو مشاهده نمایید ).یکی از ابزارهای موجود در SDK اندروید API ها هستند.  همان طور که گفتیم API ها بعنوان یک رابط عمل میکنن .فرض کنید که شما می خواهید اپلیکیشنی بسازید که توی اون با دوربین گوشی ارتباط برقرار کرده و فیلم برداری کنید.چطوری با دوربین گوشی ارتباط برقرار کنیم ؟
– درست حدس زدید !!! با بکارگیری API (رابط /خادم)  طراحی شده مربوط به دوربین که در SDK اندروید برامون قرار داده شده.

هرچی از نسخه های اولین اندروید به سمت نسخه های جدیدتر پیشروی کنیم  امکانات بیش تری برای ساختن اپلیکیشن در دسترسمون قرار می گیره.همون طور که ذکر کردیم برای نشان دادن نسخه اندروید میان برنامه نویسان به جای  اشاره به نسخه پلتفرم (مثلا اندروید ۵٫۰) از سطح API (اندروید API سطح ۲۱) استفاده میکنیم .
مثلا در SDK با API Level 1( رابطی / خادمی /APIای ) برای برقراری ارتباط با شتابسنج وجود نداشت ولی با آمدن نسخه های جدید تر اندروید ، API های جدیدی از جمله API مربوط به برقراری ارتباط با شتابسنج در SDK ها قرار داده شده و به برنامه نویسان اندروید معرفی شد.بدین برنامه نویسان با استفاده از API مربوط به شتابسنج توانایی ارتباط و بکارگیری شتابسنج موجود بر روی دستگاه های اندرویدی رو پیدا کردند.

نکته ای که باید بگم اینه که تمامی API ها فقط در  SDK اندروید قرار ندارند  بلکه بصورت جداگانه از SDK و در خود دستگاه (تلفن ، تبلت و … ) قرار داده شده اند و ما با بکارگیری این API ها میتونیم به سرویس دهنده مورد نظرمون دسترسی پیدا کنیم.از جمله این API ها میتونیم به API سرویس مکان یابی (Location SERVICE) یا API مربوط به سرویس تماس (Telephony Service) اشاره کرد.

دسترسی به سرویس های بیشتر یا نگهداری کاربران بیش تر ؟
در قسمت های آتی مشاهده خواهید کرد در مراحل اول ساختن اپلیکیشن باید مشخص کنیم که اپلیکیشن ما بر روی چه نسخه( هایی) از اندروید قابل اجرا هست  .
اگر  یک اپلیکیشن سازگار با اندروید نسخه ۱٫۰ (سطح API 1) ساخته بشه بر گوشی های دارای اندروید ۱ و تمامی نسخه های بالاتر از اندروید۱ قابل اجرا هست .(یعنی بر روی تمامی گوشی های اندروید)
اگر اپلیکیشنی برای اندروید نسخه ۲ ساخته بشه (سطح API 5) بر روی گوشی های دارای اندروید ۲ و بالاتر از ۲  قابل اجرا هست ولی بر روی گوشی های دارای اندروید نسخه قبل از ۲ یعنی نسخه (۱ و ۱٫۱و ۱٫۵و .۱٫۶) یا اگر بخواهیم به سطح API بیان کنیم بر روی نسخه هایی از اندروید سطح API (1و۲و۳و۴) قابل اجرا نیست.
از طرفی با ساختن اپلیکیشن برای اندروید با سطح API 5 (اندروید ۲٫۰)، امکانات بیش تری نسبت به ساختن اپلیکیشن برای اندروید هایِ با سطح API کمتر از ۵ دردسترس داریم.
هر چی که اپلیکیشنمون رو برای سطوح بالاتری از سیستم عامل اندروید تولید کنیم مثلا اندروید ۵٫۰ از قابلیت های بیش تری برای ساختن اپلیکیشنمون برخوردار میشم ولی از طرفی اپلیکیشن ما بر روی نسخه های قدیمی تر از نسخه مشخص شده قابل اجرا نمی باشد.

پس این قضیه رو مد نظر داشته باشید که همواره برای ساختن اپلیکیشن اندروید برای نسخه های بالاتر اندروید به قابلیت های بیشتری برای ساختن اپلیکیشن دسترسی پیدا می کنیم ولی این رو هم باید در نظر داشته باشیم که اپلیکیشن ما بر روی نسخه های قدیمی تر از نسخه انتخاب شده قابل نصب و اجرا نیست .


با این حساب برای کدوم نسخه از اندروید برنامه بنویسم که نه سیخ بسوزه نه کباب ؟
اگه به آمار زیر که توسط شرکت گوگل منتشر شده دقت کنید به نظر میرسه که هدف قرار دادن API سطح ۱۵ برای نوشتن اپلیکیشن هامون مناسب هست.