آموزش برنامه نویسی اندروید با جاوا – از صفر تا صد
- یاد میگیرید پروژه اندرویدی را از پایه با زبان جاوا برنامهنویسی کنید.
- ساختار پروژه، فایلها و پوشههای اصلی اندروید را خواهید آموخت.
- میآموزید چگونه با اصول شیگرایی و وراثت در جاوا کدنویسی کنید.
- فرآیند اجرا و دیباگ اپ اندروید در اندروید استودیو را یاد خواهید گرفت.

معرفی سیستم عامل اندروید

معرفی زبان برنامه نویسی جاوا

ویژگی های زبان برنامه نویسی جاوا

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

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

چرا جاوا زبانی ایمن است؟
ترکیب ویژگیهای زبان جاوا با سیستم عامل اندروید، موجبِ افزایش امنیت، کارایی و پایداری برنامههای اندرویدی شده است. در نتیجه، برنامه نویسی اندروید با جاوا انتخابی مطمئن برای ساخت اپلیکیشن اندروید محسوب میشود. تمام برنامههای اندرویدی بر روی ماشین مجازی مخصوصی به نام Dalvik VM اجرا میشوند.

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

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

سپس، میتوان نمونههای مختلفی از شیDog را برای نمایش سگهای خاص ایجاد کرد. هر شی با فراخوانی تابع سازنده ایجاد میشود. در نمونه کد زیر، اشیا کلاسDog از سازندهای با ۳ پارامتر (نام، نژاد و جنسیت) استفاده میکنند.
منظور از Property در برنامه نویسی شی گرا چیست؟
در زمان ایجاد شی جدید میتوان اطلاعات آن را با استفاده از مشخصهها ذخیره کرد. در مثال قبلی، کلاسDog دارای ویژگیهای نام، نژاد و جنسیت است.
منظور از متد در برنامه نویسی شی گرا چیست؟
با استفاده از متدها میتوان اطلاعات شی را تغییر داد یا تنها اطلاعاتی را در خروجی چاپ کرد. به عنوان مثال، در کلاسDog میتوان متدهای مختلفی نظیر حرکت کردن، پارس کردن و دویدن را پیادهسازی کرد که با عملکرد شی در ارتباط است.
مفهوم وراثت در زبان جاوا
وراثت در برنامه نویسی بسیار نزدیک به مفهوم مشابه آن در دنیای واقعی است. همان طور که در دنیای واقعی فرزندان، صفات و ویژگیهایی را از والدین خود به ارث میبرند، در دنیای برنامه نویسی نیز کلاسها با استفاده از مفهوم وراثت میتوانند رفتار و صفات کلاسهای والد را ارثبری کنند. برای درک بهتر مفهوم وراثت موارد زیر را در نظر بگیرید.
- گاو یک نوع حیوان است.
- گربه یک نوع حیوان است.
- سگ یک نوع حیوان است.
در تصویر زیر، کلاس حیوان دارای ۳ کلاس زیر مجموعه است که از آن ارثبری میکنند.

در مثال بالا، سگ، گاو و گربه از کلاس حیوان ارثبری میکنند و ویژگیها، رفتار و خصوصیاتهای این کلاس را نیز همراه خود دارند. علاوه بر این، هر کدام از موجودیتهای سگ، گاو و گربه را میتوان زیر مجموعه کلاس پستانداران نیز در نظر گرفت، زیرا سگ، گاو و گربه یک نوع پستاندار هستند و تمام ویژگیهای پستانداران را دارند. در نتیجه، جملات بالا را به صورت زیر میتوان بیان کرد.
- گاو حیوانی از دسته پستانداران است.
- گربه حیوانی از دسته پستانداران به حساب میآید.
- سگ حیوانی از دسته پستانداران است.
در نهایت، وضعیت کلاسها به صورت زیر خواهد بود. البته امکان گسترش این دستهبندی نیز وجود دارد.

در دنیای برنامه نویسی هر کدام از دستههای حیوان و پستانداران را میتوان به عنوان کلاسی جداگانه در نظر گرفت که در آن کلاس پستانداران از کلاس حیوان ارثبری میکند. در این مثال کلاس پستانداران علاوه بر ویژگیهای خود، تمام خصوصیات و رفتارهای کلاس حیوان را نیز در بردارد.
مثالی از وراثت در برنامه نویسی اندروید با جاوا
در این بخش مفهوم وراثت در برنامه نویسی اندروید با جاوا مورد بررسی قرار خواهد گرفت. برای این منظور، ابتدا کلاسی با نامFish باید تعریف کرد که دارای خصوصیاتی نظیرmSpecies ،mColor وmSize برای تعیین گونه، رنگ و اندازه باشد.
علاوه بر این، برای تعیین رفتارهای موجودیت مورد نظر باید توابعsleep() ،eat() وmakeBabyFish() را نیز برای این کلاس تعریف کرد. در نتیجه، هر موجودیت تعریف شده از کلاسFish علاوه بر داشتن خصوصیات فوق، رفتارهای تعریف شده را نیز خواهد داشت. در ادامه، نمونه کد مورد نظر برای کلاسFish ارائه شده است.
همان طور که پیشتر نیز بیان شد، کلاسها را میتوان به صورت سلسه مراتبی سازماندهی کرد. در این حالت، کلاسهای زیر مجموعه علاوه بر داشتن ویژگیهای منحصربهفرد خود، توانایی ارثبری ویژگیها و خصوصیتهای کلاس والد را خواهند داشت. برای این منظور کلاس جدیدی با نامSaltwaterFish که معرف ماهیهای آب شور است را با استفاده از کلمه کلیدیextends میتوان از کلاسFish مشتق کرد. نمونه کد مربوط به این بخش در پایین آورده شده است.
در نمونه کد بالا، کلاسSaltwaterFish از کلاس Fish ارثبری میکند. در نتیجه، موجودیتهای ایجاد شده از کلاسSaltwaterFishتمام ویژگیها و خصوصیتهای کلاس Fish را نیز دارا هستند.
کاربرد اینترفیس در برنامه نویسی اندروید با جاوا چیست؟
زبان برنامه نویسی جاوا از «وراثت چندگانه» (Multiple Inheritance) پشتیبانی نمیکند.
برای درک بهتر وراثت چندگانه به تصویر زیر توجه کنید.

در نمونه کد بالا کلاسهایA وB از کلاس والد مشتق شدهاند. در صورتی که نیاز باشد کلاسC نیز از کلاسهایA وB ارثبری کند، به دلیل عدم پشتیبانی زبان جاوا از ارثبری چندگانه برنامه دچار خطا خواهد شد.
برای پیادهسازی اینترفیس در کلاس باید از کلمه کلیدیimplements استفاده کرد.
در نمونه کد بالا، کلاسFish اینترفیسSwimmer را پیادهسازی میکند.
مزایا و معایب زبان برنامه نویسی جاوا
پس از آن که زبان برنامه نویسی جاوا معرفی شد و ویژگیها و قابلیتهای آن نیز مورد بررسی قرار گرفتند.
در ادامه، به صورت مختصر مزایا و معایب این زبان برنامه نویسی شرح شده است.
مزایای زبان جاوا چیست؟
مهمترین مزایای جاوا در ادامه فهرست شدهاند.
- مستقل از پلتفرم
- پشتیبانی از شیگرایی
- ابزارهای توسعه قدرتمند
- زبان برنامه نویسی «متنباز» (Open-Source)
- یادگیری آسان
- جامعه گسترده برنامهنویسان
- امنیت بالا
- سایر موارد
معایب زبان جاوا چیست؟
با وجود تمام امکانات و قابلیتهای زبان جاوا، نقاط منفی نیز در این زبان وجود دارد. مهمترین ایرادها و معایب زبان جاوا در ادامه فهرست شدهاند.
- رابط کاربری ضعیف
- ایجاد مشکلات در زمینه مدیریت حافظه
- پیچیدگی کدها
- عملکرد نسبتاً ضعیف در برخی موارد
آموزش برنامه نویسی اندروید با جاوا
در این بخش آموزش برنامه نویسی اندروید با جاوا در قالب ساخت برنامه اندرویدی ساده دنبال خواهد شد که تنها عبارت"Hello World!" را چاپ میکند. قبل از شروع آموزش برنامه نویسی اندروید با جاوا باید از فراهم بودن تمام تجهیزات و ابزارهای لازم برای توسعه اپلیکیشن اندرویدی اطمینان حاصل کرد.

در این بخش برای آموزش برنامه نویسی اندروید با جاوا از محیط توسعه محبوب «اندروید استودیو» (Android Studio) استفاده خواهد شد.
ایجاد پروژه در اندروید استودیو اولین گام آموزش برنامه نویسی اندروید با جاوا
ایجاد پروژه اولین گام در ساخت اپلیکیشن اندروید ساده با اندروید استودیو است. بعد از اجرای اندروید استودیو با صفحه زیر روبرو خواهید شد.

در این صفحه با انتخاب گزینهstart a new android studio project میتوان فرایند توسعه اپلیکیشن اندروید را آغاز کرد. صفحه زیر در ادامه نمایش داده خواهد شد.

سپس، باید اطلاعات اصلی پروژه اندرویدی نظیر نام، نام بسته و محل ذخیره آن وارد شود. بعد از تعیین اطلاعات خواسته شده و تایید آنها به صفحه زیر هدایت خواهید شد.

با توجه به این که سیستم عامل اندروید بر روی دستگاههای مختلفی اعم از تلفنهای هوشمند، تبلتها، ساعتهای هوشمند، تلویزیونهای اندرویدی و سایر موارد قابل اجرا است، باید در این بخش دستگاههای هدفی را انتخاب کرد که اپلیکیشن اندروید برای آنها توسعه داده میشود. علاوه بر این، در این بخشMinimum SDK یعنی حداقل نسخه اندروید مورد نیاز برای اجرای اپلیکیشن را نیز باید مشخص کرد. در ادامه، مراحل ایجاد پروژه در اندروید استودیو صفحه زیر نمایش داده خواهد شد.

در این بخش باید الگوی مورد نظر برای شروع ساخت پروژه را انتخاب کرد. برای این منظور، الگویBlank Activity را انتخاب کنید. در نهایت، پروژه مورد نظر ایجاد خواهد شد.
بررسی ساختار اپلیکیشن گام دوم آموزش برنامه نویسی اندروید با جاوا
در این بخش از آموزش برنامه نویسی اندروید با جاوا ساختار اپلیکیشن اندروید مورد بررسی قرار گرفته است.
قبل از اجرای پروژه باید اطلاعات کافی در خصوص فایلها و پوشههای تشکیل دهنده اپلیکیشن اندروید وجود داشته باشد. در نتیجه، با توجه به تصویر زیر، فایلهای پروژه مورد بررسی قرار خواهند گرفت.

- پوشه Java: در این بخش تمام کدهای جاوای برنامه قرار میگیرند که با پسوند.java مشخص شدهاند. علاوه بر این، کلاسهای برنامه نیز در این پوشه قرار دارند.
- مسیر res/drawable: تمام فایلهای گرافیکی پروژه در این مسیر قرار میگیرند. به عنوان مثال، تمام دکمههای برنامه، تصاویر پسزمینه و آیکونهای برنامه در این بخش نگهداری میشوند.
- مسیر res/layout: فایلهای «طرحبندی» (Layout) برنامه در این پوشه قرار میگیرند.
- مسیر res/values: در پروژههای اندرویدی امکان تعریف متغیرهایی با مقادیر ثابت از نوعهای مختلف وجود دارد. این پوشه شامل ۳ فایل مهمcolors.xml برای ذخیرهسازی رنگهای پرکاربرد در برنامه، strings.xml برای نگهداری رشتهها وstyles.xml برای مشخص کردن «سبکهای» (Styles) برنامه است.
- فایل AndroidManifest.xml: فایلAndroidManifest.xml شامل ویژگیهای اساسی هر برنامه اندرویدی است. این فایل حکم شناسامه اپلیکیشن اندروید را دارد و ساختار کلی برنامه را مشخص میکند. علاوه بر این، در این فایل تنظیمات مربوط به «مجوزهای» (Permissions) برنامه نیز تعیین میشود.
- فایل Build.gradle: «سیستم ساخت» (Build System) در اندروید استودیو بر اساس فایلهای Gradle است. فایلBuild.gradle به طور خودکار بعد از ایجاد پروژه تولید میشود. در این فایل اطلاعات مهمی در خصوص حداقل نسخه Android SDK برای اجرای برنامه، شماره نسخه و سایر موارد مرتبط ارائه شده است.
سومین گام در آموزش برنامه نویسی اندروید با جاوا با بررسی فایل اکتیویتی اصلی برنامه
در این بخش از آموزش برنامه نویسی اندروید با جاوا فایل اکتیویتی اصلی برنامه مورد بررسی قرار خواهد گرفت. فایل اکتیویتی اصلی برنامه یا همانMainActivity.java شامل کدهای جاوای برنامه است.
این فایل در نهایت به فایل اجرایی Dalvik تبدیل میشود و برنامه را اجرا میکند. در ادامه، کدهای پیشفرض نوشته شده برای اجرای برنامهHello World آورده شده است.
در نمونه کد بالا، به فایل رابط کاربریactivity_main.xml اشاره شده است.
بررسی فایل مانیفست گام بعدی در آموزش برنامه نویسی اندروید با جاوا
فایل «مانیفست» (Manifest) یکی از مهمترین فایلهای هر برنامه اندرویدی به حساب میآید. این فایل همانطور که پیشتر نیز بیان شد، حکم شناسنامه اپلیکیشن را دارد. فایلAndroidManifest.xml به عنوان رابط بین سیستم عامل اندروید و برنامه عمل میکند.
بنابراین، در صورت ایجاد بخش جدیدی در برنامه، باید حتماً آن را در این فایل معرفی کرد تا بخش جدید توسط سیستم عامل اندروید در نظر گرفته شود. در ادامه، نمونهای از فایلAndroidManifest.xml ارائه شده است.
در فایل بالا، اجزای اصلی برنامه درون تگapplication مشخص شدهاند. خصوصیتandroid:icon در این بخش به آیکون برنامه اشاره دارد. تگactivity در این بخش، اکتیویتی برنامه و ویژگیهای آن را مشخص میکند. در این تگ میتوان با استفاده از تگintent-filter ویژگیهای اکتیویتی را تعیین کرد. در ادامه، فهرستی از تگهای قابل استفاده در فایلAndroidManifest.xml ارائه شده است.
| تگ یا برچسب | کاربرد |
| <activity> | برای اکتیویتیهای برنامه |
| <service> | برای سرویسهای مختلف |
| <receiver> | گیرندهها در اندروید |
| <provider> | برای ارائهدهندگان محتوا |
| <permission> | برای اعطای دسترسیهای مختلف به برنامه |
ادامه آموزش برنامه نویسی اندروید با جاوا با بررسی فایل رشته های برنامه
در این بخش از آموزش برنامه نویسی اندروید با جاوا فایلstring.xml مورد بررسی قرار خواهد گرفت. در هر پروژه اندرویدی، فارغ از نوع پروژه، مطمئناً متنهای زیادی برای بخشهای مختلف استفاده میشود. برای این منظور در اکثر زبانهای برنامه نویسی دادههای متنی یا رشتهای تحت عنوان متغیر از نوع String شناخته میشوند.
با استفاده از فایلstring.xml میتوان تمام دادههای رشتهای برنامه را مدیریت کرد. این فایل در مسیرres/values قرار دارد. استفاده از فایلstring.xml علاوه بر مدیریت بهتر برنامه باعث میشود تا در صورت نیاز به ایجاد تغییرات، زمان بسیار کمتری صرف شود. در ادامه، نمونهای از فایلstrings.xml در یک پروژه اندرویدی ارائه شده است.
در این فایل، امکان تعریف مقادیر برای رشتههای مورد استفاده در بخشهای گوناگون برنامه وجود دارد. به عنوان مثال در نظر بگیرید که از متغیر"app_name" برای چندین بخش در برنامه استفاده شده است. در صورت نیاز به تغییر، تنها نیاز است یک مرتبه مقدار متغیر"app_name" را تغییر داد که در اینجا برابرHelloWorld است. در نتیجه، تمام بخشهای استفاده کننده از متغیر"app_name" نیز تغییر خواهند کرد.
بررسی رابط کاربری برنامه گام بعدی در آموزش برنامه نویسی اندروید با جاوا
رابط کاربری برنامه از طریق فایلهای طرحبندی مشخص میشود که در مسیرres/layout قرار دارد. با استفاده از عناصر موجود در رابط کاربری میتوان امکان تعامل کاربر با برنامه را فراهم کرد.
در ادامه، کدهایXML مربوط به رابط کاربری برنامه ارائه شده است.
در نمونه کد بالا، ساختار کلی رابط کاربری برنامه توسطRelativeLayout مشخص شده است. برای نمایش متن در صفحه نمایش از عنصرTextView استفاده میشود. این عنصر رابط کاربری دارای ویژگیهای زیادی نظیرandroid:layout_width برای تنظیم عرض ویو،android:layout_height برای تنظیم ارتفاع و سایر موارد است. متن نمایشی درونTextView نیز از طریق اطلاعات موجود در فایل strings.xml مشخص میشود.
اجرای اپلیکیشن اندروید گام آخر در آموزش برنامه نویسی اندروید با جاوا
بعد از اجرای شبیهساز باید بر روی دکمهRun موجود در نوار بالای اندروید استودیو کلیک کرد تا خروجی مورد نظر اجرا شود. در نهایت، خروجی اپلیکیشن به صورت زیر خواهد بود.

سوالات متداول پیرامون برنامه نویسی اندروید با جاوا
تا این قسمت از نوشته، بعد از معرفی زبان برنامه نویسی جاوا و مهمترین ویژگیهای آن سعی شد تا آموزش برنامه نویسی اندروید با جاوا در قالب ساخت اپلیکیشن ارائه شود. در ادامه، به بررسی برخی از رایجترین سوالات در حوزه برنامه نویسی اندروید با جاوا پرداخته شده است.
چرا جاوا بهترین زبان برای برنامه نویسی اندروید است؟
انتخاب بهترین زبان برنامه نویسی اندروید نیازمند در نظر گرفتن شرایط مختلفی است، اما برنامه نویسی اندروید با جاوا یکی از بهترین انتخابها در این حوزه به حساب میآید. البته به تازگی کاتلین جایگزین جاوا شده است، اما کاتلین هم با استفاده از جاوا ساخته شده است و شباهت بسیار زیادی به جاوا دارد، به گونهای که برای یادگیری کاتلین معمولاً توصیه میشود افراد ابتدا برنامه نویسی جاوا و توسعه اندروید با آن را یاد بگیرند.
کدهای جاوا در اندروید چگونه اجرا میشوند؟
بعد از این که برنامه اندروید به زبان جاوا نوشته میشود، کدهای جاوا در مرحله اول به بایتکد (ByteCode) تبدیل و سپس، به فرمت دیگری به نام Dalvik Executable یا اصطلاحاً کد DEX تبدیل میشوند. در نهایت، این کدها بر روی دستگاه اندرویدی قابل اجرا خواهند بود.
کاتلین یا جاوا، کدامیک بهتر است؟
البته هنوز برنامه نویسی اندروید با جاوا طرفداران خود را دارد.
بهترین کتاب برای آموزش برنامه نویسی اندروید با جاوا چیست؟
امروزه با توجه به وجود منابع متعدد برای یادگیری در هر زمینهای، علاقهمندان به آسانی میتوانند حوزه مورد علاقه خود را دنبال کنند. البته تنوع بالا منابع یادگیری از آموزشهای ویدیویی گرفته تا مقالات و کتابهای چاپی موجب سردرگمی بسیاری از افراد شده است. در نوشته زیر بهترین کتاب برای آموزش برنامه نویسی اندروید با جاوا ارائه شده است.
علاوه بر این، کتابها و منابع دیگری برای یادگیری سایر حوزههای موجود در برنامه نویسی اندروید از برنامه نویسی بازی اندروید گرفته تا برنامه نویسی اندروید با کاتلین و سایر زبانهای رایج آورده شده است.
جمعبندی
در این نوشته زبان برنامه نویسی جاوا به طور کامل معرفی شد و ویژگیهای بارز آن نظیر وراثت، شیگرایی، مستقل از پلتفرم بودن و ایمنی مورد بررسی قرار گرفت. علاوه بر این، به فرایند برنامه نویسی اندروید با جاوا و مزایا و معایب آن پرداخته شد. در ادامه نیز آموزش برنامه نویسی اندروید با جاوا به صورت پروژه محور و در قالب ساخت اپلیکیشن اندروید در محیط اندروید استودیو ارائه شد.
مطالب مجله فرادرس را در جستجوی گوگل سریعتر ببینید













