در این مقاله، به بررسی جاوا برای اندروید و توسعه برنامه های اندروید خواهیم پرداخت. این مطلب برای افرادی که حداقل با یک زبان برنامه نویسی مانند PHP آشنا هستند، بسیار مناسب است. در این آموزش، به طور مختصر با اصول جاوا از جمله برنامه نویسی شی گرا آشنا می شوید.
ما قصد داریم مثال های روشنی از اصول رایج زبان جاوا را ارائه دهیم، ضمن اینکه به برخی از نکات و ترفندهای مخصوص اندروید نیز اشاره می کنیم.
برای توسعه برنامه های اندروید (یا هر برنامه جاوا) ، شما نیاز به یک محیط توسعه نرم افزار برای نوشتن و ساخت برنامه های کاربردی دارید. Eclipse یک محیط توسعه بسیار محبوب برای جاوا و توسعه برنامه های اندروید است؛ که به صورت رایگان برای سیستم عامل های Windows ، Mac و Linux در دستزس است.
اما…
آنچه در این نوشته خواهیم داشت
جاوا چیست؟
جاوا یک زبان برنامه نویسی بسیار محبوب است که توسط Sun Microsystems (که هم اکنون متعلق به Oracle است) ساخته شده است. برنامه های اندروید نیز با استفاده از زبان جاوا توسعه یافته اند.جاوا مدت ها پس از C و C ++ توسعه یافته و بسیاری از ویژگی های بارز این زبان های قدرتمند را شامل می شود. در حالی که به برخی از اشکالات آن ها را پوشش داده است.
زبان های برنامه نویسی همچنان فقط به اندازه کتابخانه هایشان قدرتمند هستند. این کتابخانه ها برای کمک به توسعه دهندگان در ساخت برنامه های کاربردی به وجود آمده اند.
برخی از ویژگی های اصلی جاوا عبارتند از:
• یادگیری و درک آسان
• مستقل از پلتفرم بودن
• امن
• شی گرا بودن
• ماشین های مجازی
اندروید به شدت به این اصول اولیه جاوا متکی است. بسته توسعه نرم افزار اندروید (SDK) شامل بسیاری از کتابخانه های استاندارد جاوا (کتابخانه های ساختار داده، کتابخانه های ریاضی، کتابخانه های گرافیکی، کتابخانه های شبکه سازی و غیره) و همچنین کتابخانه های مخصوص اندرویدی است که به شما در توسعه برنامه های بسیار جذاب اندروید کمک می کند.
چرا یادگیری جاوا آسان است؟
به دلایل متعددی یادگیری جاوا آسان است. جاوا یکی از زبان های برنامه نویسی است که به طور گسترده مورد بحث، آموزش و استفاده قرار می گیرد. این برنامه برای انواع مختلفی از پروژه های برنامه نویسی، صرف نظر از مقیاس آن ها، از برنامه های وب گرفته تا برنامه های تلفن همراه مورد استفاده قرار می گیرد.
علاوه بر این جاوا یکی از خواناترین زبان های برنامه نویسی برای انسان است. به این معنی که شخصی که اطلاعاتی در مورد برنامه نویسی ندارد نیز می تواند با بررسی کدهای آن تا حدودی متوجه کارایی آن گردد. به مثال زیر توجه کنید:
char character = 'a'; if(character=='a') { doSomething(); } else { doSomethingElse(); }
با خواندن کد بالا می توانید به صورت تقریبی آن را درک کنید. یک متغیر واحد به نام کاراکتر (character)وجود دارد. اگر متغیر کاراکتر برابر با حرف a باشد، آنگاه کار بخصوصی را انجام بده (با فراخوانی doSomething())، در غیر این صورت کار دیگری را انجام بده (با فراخوانی doSomethingElse()).
چرا مستقل از پلتفرم بودن جاوا اهمیت دارد؟
برای بسیاری از زبان های برنامه نویسی، شما باید از کامپایلر جهت قابل فهم کردن کدهای خود برای ماشین استفاده نمایید. دستگاه های مختلف از زبان های مختلفی استفاده می کنند. این بدان معنی است که ممکن است شما نیاز به کامپایل کردن برنامه های خود برای هر دستگاه و با زبان های مختلف داشته باشید.
اماجاوا این گونه نیست…
کامپایلرهای جاوا کدهای شما را از پرونده های منبع جاوا (قابل خواندن توسط انسان) به چیزی به نام “bytecode” (قابل خواندن توسط جاوا ) تبدیل می کنند. این کدها توسط یک ماشین مجازی جاوا ترجمه می شود؛ که دقیقا مانند یک پردازنده فیزیکی روی کد کار می کند تا کد کامپایل شده را اجرا نماید.
برنامه های اندرویدی در یک ماشین مجازی خاص به نام Dalvik VM اجرا می شوند. در واقع می توان Dalvik VM را بستری در نظر گرفت که برنامه اندروید در آن اجرا می شود. فارغ از نوع دستگاه.
چرا جاوا امن است؟
از آنجایی که برنامه های جاوا در یک ماشین مجازی اجرا می شوند، از سخت افزار دستگاه جدا خواهند بود. بنابراین، ماشین مجازی می تواند اجرای کد را به صورت ایمن در مقایسه با زبان هایی که به طور مستقیم با کد دستگاه کار می کنند، رمزنگاری ، نگهداری و مدیریت کند.
هر برنامه اندروید با استفاده از یک حساب کاربری متفاوت Dalvik VM روی سیستم عامل (مبتنی بر لینوکس) اجرا می شود. برنامه های اندروید توسط سیستم عامل مورد نظارت قرار گرفته و اگر عمل خوبی نداشته باشند متوقف می شوند (به عنوان مثال استفاده بیش از حد از نیروی پردازنده، رسپانسیو نبودن و …) بنابراین مهم است که برنامه هایی کاربردی با ثبات و ریسپانسیو ایجاد کنید. برنامه ها می توانند با استفاده از پروتکل های تعریف شده با یکدیگر مرتبط شوند.
مطالعه مقالات زیر در حوزه برنامه نویسی اندروید به شما توصیه میشود:
مفاهیم و اصطلاحات مهم برنامه نویسی اندروید
جدیدترین روش یادگیری زبان برنامه نویسی جاوا برای اندروید
کامپایل کردن کدها
به منظور توسعه برنامه های اندروید، شما می بایست آن ها را کامپایل کنید. محیط توسعه Eclipse (با افزونه Android Development) این امر را تسهیل می کند. در Eclipse کامپایل خودکار اغلب به طور پیش فرض روشن است. این بدان معنی است که هر بار که شما فایل پروژه را ذخیره می کنید، Eclipse تغییرات مربوط به برنامه را مجددا کامپایل می کند. شما بلافاصله می توانید خطاهای کامپایل را مشاهده کنید. Eclipse همچنین جاوا را ترجمه کرده، رنگ آمیزی و قالب بندی ارائه کرده و خطاها را نمایش می دهد. اغلب می توانید روی خطا کلیک کنید تا Eclipse آن را به طور خودکار تصحیح کند.
از طرف دیگر، اگر تمایل داشته باشید می توانید کدها را به صورت دستی کامپایل کنید. در Eclipse، تنظیمات Build را در زیر منوی project پیدا خواهید کرد. اگر “Build Automatic” را روشن کرده اید، می توانید گزینه “Clean…” را انتخاب کنید که به شما این امکان را می دهد تا همه پرونده ها را بازسازی کامل همه پرونده ها را بازسازی نمایید. اگر “Build Automatic” خاموش باشد ، گزینه های “Build All” و “Build Project” فعال هستند. ” Build All” به معنای ساخت همه پروژه ها در فضای کاری (workspace) است. شما می توانید پروژه های بسیاری را در یک فضای کاری Eclipse داشته باشید.
زبان برنامه نویسی شی گرا چیست؟
برنامه نویسی شی گرا شیوه برنامه نویسی یا تکنیکی است که به تعریف ساختار داده ها متکی است. به این معنا که دادهها و توابعی که بر روی این دادهها عمل میکنند، تا حد امکان در قالبی به نام “شیء” و در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (یا یک شیء) را تشکیل میدهند و نسبت به محیط بیرون خود، کپسوله میشوند.
به عنوان مثال فرض کنید شما یک” شیء سگ” داشته باشید که نشان دهنده طرح سگ، با یک نام ، نژاد و جنسیت است. سپس می توانید نمونه های مختلفی از شیء سگ ایجاد کنید تا سگ های خاصی را معرفی کنید. هر شیء سگ باید با فراخوانی سازنده خود ایجاد شود. به عنوان مثال، اشیاء سگ زیر از سازنده ای با سه پارامتر (نام ، نژاد ، جنسیت) استفاده می کنند:
Dog dog1 = new Dog(“Lassie”, collie, female);
Dog dog2 = new Dog(“Fifi”, poodle, female);
Dog dog3 = new Dog(“Asta”, foxterrier, male);
در اینجا ما باید شروع به تعریف برخی از ساختارهای اساسی زبان برنامه نویسی جاوا کنیم. یک کلاس (class) تعریفی را برای یک شی ارائه می دهد. بنابراین باید یک کلاس سگ ایجاد شده باشد ( این کلاس یا توسط شما ایجاد می شود و یا در کتابخانه ای از قبل ایجاد شده است). بسیاری از کلاس ها در کتابخانه های کلاس مانند کیت های توسعه نرم افزار (SDK) تعریف شده اند.
وراثت در جاوا
در اینجا یک مفهوم مهم دیگر در جاوا وجود دارد که بسیار با آن مواجه خواهید شد: وراثت در جاوا. وراثت به این معنی است که کلاس های جاوا (و اشیاء) می توانند از نظر رفتار و ویژگی ها در سلسله مراتبی سازماندهی شوند. به عبارت ساده، وراثت در جاوا مکانیزمی است که توسط آن یک شی تمامی ویژگی ها و قابلیت های شی پدر را کسب کرده و در اصطلاح به ارث می برد.
سازماندهی رفتار شی با رابط (interface)
در جاوا می توانید رفتار شیء را توسط رابط ، سازماندهی کنید. در حالی که یک کلاس یک شی را تعریف می کند، یک رابط برخی رفتارهایی را که می تواند برای یک شی اعمال شود تعریف می کند.
سازماندهی کلاس ها و رابط ها با استفاده از پکیج ها
سلسله مراتب کلاس، می توانند در پکیج ها سازماندهی شوند. پکیج، مجموعه ای از کلاس ها و رابط ها است که به همراه یکدیگر قرار گرفته اند.
جمع بندی
در این مقاله ما به بررسی زبان برنامه نویسی جاوا به عنوان بهترین زبان برای آموزش و یادگیری برنامه نویسی اندروید اشاره کردیم. از مزایا و ویژگی های منحصر به فرد جاوا گفتیم و به شی گرایی پرداختیم. زبان برنامه نویسی جاوا در کنار زبان برنامه نویسی کاتلین به عنوان دو تا از بهترین زبان های برنامه نویسی اندروید همواره در مجامع علمی و انجمن های گفتگوی برنامه نویسی مورد نقد و بررسی قرارگرفته اند. چرا که هر کدام مزیت ها و معیایب خود را دارند. اما به صورت کلی جاوا جامعه برنامه نویسی گسترده تری داشته و همین موضوع موجب میشود شما در یادگیری برنامه نویسی اندروید اگر به مشکلی برخوردید، بتوانید آن را به سادگی در انجمن ها به اشتراک گذاشته و مشکل خود را رفع کنید.
در این مقاله مفاهیم اجمالی و کلی در رابطه با جاوا برای اندروید و توسعه برنامه های اندروید مطرح شد؛ تا شما علاقه مندان با اساس کار آشنا شوید. در مقالات بعدی به شکلی جزئی تر به کاربردهای جاوا برای اندروید خواهیم پرداخت.