جاوا و اندروید چگونه تعامل می کنند

چاپ

پس از اینکه ما به وسیله ی جاوا، برای اندروید یک اپلیکیشن ایجاد کردیم، با کلیک بر روی یک دکمه، کدهای خود را به شکل دیگری تبدیل می کنیم تا برای سیستم اندروید قابل درک باشد. به این شکل از کدها، کدهای DEX  یا کدهای اجرایی دالویک(dalvik ) گفته می شود. و به پروسه ی تبدیل کدها به کدهای دالویک، کامپایل کردن گفته می شود. فرآیند کامپایل شدن در سیستم عامل برنامه نویس، و پس از کلیک بر روی یک دکمه اتفاق می افتد. پس از اینکه ما اندروید استودیو را نصب کردیم، نحوه ی انجام این کار را به شما نشان خواهیم داد. 

 اندروید یک سیستم نسبتاً پیچیده است، اما شما برای ایجاد اپلیکیشن های جذاب، نیازی ندارید تا به طور عمیق اندروید را درک کنید. به بخشی از سیستم اندروید که کدهای کامپایل شده ی DEX ما را اجرا می کند، ماشین مجازی دالویک یا به اختصار DVM گفته می شود. ماشین مجازی دالویک، خود بخشی از یک نرم افزار است که تحت یک زبان دیگر که بر روی یک نسخه ی مناسب لینوکس اجرا می شود، نوشته شده است. بنابراین کاربر تصور می کند که اندروید تنها یک راه انداز اپلیکیشن است که بر روی یک سیستم عامل دیگر اجرا می شود. 

 هدف ماشین مجازی دالویک(DVM) این است که پیچیدگی و تنوع سخت افزار و نرم افزاری که اندروید بر روی آن اجرا می شود را از بین ببرد و در عین حال تمام قابلیت های آن را در معرض نمایش قرار دهد. برای نشان دادن ویژگی های اندروید،  ماشین مجازی دالویک باید به سخت افزار دسترسی داشته باشد(که دارد)، اما این دسترسی باید برای برنامه نویسان خوش آیند باشد و استفاده از آن آسان باشد. API های اندروید این ساده سازی را برای ما انجام داده اند. 

 


 API های اندروید

API های اندروید، کدهایی هستند که انجام کارهای بخصوص را برای ما ساده کرده اند. می توانیم در این مورد یک مثال بزنیم. مثلا یک ماشین را تصور کنید، هنگامی که شما پدال گاز ماشین را فشار می دهید، یک مجموعه از اتفاقات رخ می دهند. اما ما نیازی نداریم تا با این اتفاقات درون موتور ماشین سروکله بزنیم زیرا مهندسان ماشین یک رابط را که همان پدال گاز است برای ما ارائه داده اند. بعنوان یک مثال دیگر، کدهای جاوای زیر را در نظر بگیرید، اگر شما در برنامه نویسی اندروید مبتدی باشید، کدهای زیر برای شما کمی ترسناک به نظر می رسند:

مثال (جاوا و اندروید چگونه تعامل می کنند)

locationManager.getLastKnownLocation
(LocationManager.GPS_PROVIDER);

 اما اگر به شما بگوییم که این خط کد، برای ارتباط با ماهواره ی های در دسترس در مدار زمین است، فهم آن برای شما آسان تر خواهد شد. از این موضوع می توان به قدرت API های اندروید پی برد. با اینکه این خط کد فعلا کمی چالش برانگیز به نظر می رسد، آن را راه صحبت کردن با یک ماهواره تصور کنید. 
API های اندروید در حقیقت شاخه ای از کدهای جاوا هستند. بنابراین ما چگونه می توانیم بدون غرق شدن در پیچیدگی های این کدها، کارهای جالبی را انجام دهیم؟ چگونه می توانیم دنده و فرمان و پدال گاز API های اندروید را پیدا کنیم؟