اولین اپلیکیشن در اندروید-Hello World
اجازه بدهید با نوشتن اولین اپلیکیشن، برنامه نویسی واقعی با فریمورک اندروید را شروع کنیم. فرض ما بر این است که شما تا حدودی با محیط اندروید استدیو آشنایی دارید.
خب! اجازه بدهید شروع به نوشتن یک اپلیکیشن ساده اندروید که جمله “Hello World!” را در صفحه چاپ می کند کنیم.
ایجاد اپلیکیشن اندروید
اولین قدم این است که یک پروژه اپلیکیشن اندروید در اندروید استدیو ایجاد کنیم. وقتی اندروید استدیو را باز می کنید، صفحه ای مشابه صفحه زیر خواهید دید.
شما باید توسعه اندروید اپلیکیشن اندروید خود را با کلیک بر روی دکمه “start a new android studio project” شروع کنید. در اولین صفخه ای که برای ایجاد پروژه نمایش داده می شود باید نام اپلیکیشن، اطلاعات مربوط به پکیج و مسیر ذخیره سازی پروژه را وارد کنید.
بعد از اینکه مشخصات اپلیکیشن را وارد کردید باید مشخصات پلتفرمی که برنامه قرار است روی آن اجرا شود را انتخاب کنید برای اینکار باید حداقل SDK را مشخص کنید. در این آموزش ما API23: Android 6.0(Mashmallow) را انتخاب کرده ایم.
در بخش بعدی باید نوع اکتیویی اصلی را انتخاب کنید که مشخص کننده لایه پیش فرض برای اپلیکیشن می باشد.
در مرحله آخر باید محیط توسعه برنامه برای نوشتن کد های اپلیکیشن باز شود.
آناتومی اپلیکیشن اندروید
قبل از اینکه برنامه را اجرا کنید، باید با تعدادی از پوشه ها و فایل های موجود در پروژه آشنا شوید.
شماره | پوشه ، فایل و توضیحات |
---|---|
۱ | Java
این پوشه حاوی فایل های سورس پروژه شما می باشد که پسوند آنها .java می باشد. به صورت پیش فرض، این پوشه شامل فایلی با نام MainActivity.java که یک کلاس اکتیویتی در این فایل می باشد که هنگام باز شدن اپلیکیشن شما به وسیله لمس آیکن آن، اجرا می شود. |
۲ | res/drawable-hdpi
این پوشه حاوی تصاویر و کلا اشیاء قابل رسم در صفحه که برای رسم در صفحات با تراکم بالا طراحی شده است می باشد. |
۳ | res/layout
در این پوشه حاوی فایل های مربوط به گرافیک کاربری اپلیکیشن شما می باشد. |
۴ | res/values
این پوشه حاوی فایل های xml مختلف دیگر برنامه که حاوی مجموعه ای از ریسورس های برنامه از جمله تعریف رشته ها و رنگ ها می باشد. |
۵ | AndroidManifest.xml
این فایل، منیفست برنامه می باشد که ویژگی های اساسی اپلیکیشن را توصیف می کند و کامپوننت های هر کدام از این ویژگی ها را مشخص می کند. |
۶ | Build.gradle
این فایل به صورت خودکار ایجاد می شود که حاوی compileSdkVersion، buildToolsVersion، applicationId، minSdkVersion، targetSdkVersion، versionCode و versionName می باشد (این اصطلاحات در بخش های بعدی توضیح داده می شود). |
در ادامه مختصر بررسی ای بر برخی از فایل های مهم اپلیکیشن خواهیم داشت.
فایل اکتیویتی اصلی برنامه
کد اکتیویتی اصلی، یک فایل جاوا به نام MainActivity.java می باشد. این فایل، فایل واقعی اپلیکیشن است که در نهایت به فایل قابل احرای دالویک تبدیل خواهد شد و اپلیکیشن شما را اجرا خواهد کرد. کدر که در زیر می بینید کد پیشفرض ساخته شده توسط برنامه اندروید استدیو برای اپلیکیشن Hello World! می باشد.
package com.example.helloworld; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
در این کد R.layout.activity_main به فایل activity_main.xml اشاره می متد که در پوشه res/layout ذخیره شده است. متد onCreate() یکی از بسیار متدهایی است که در هنگام لود شدن اکتیویتی صدا فراخوانی می شود.
فایل منیفست(Manifest)
هر کامپوننتی که شما به عنوان بخشی از اپلیکیشن خود توسعه داده اید، باید در فایل منیفست تعیریف شود که این فایل در ریشه پوشه پوشه پروژه قرار دارد. این فایل به عنوان رابط بین سیستم عامل اندروید و اپلیکیشن شما عمل می کند، پس اگر شما کامپوننت های خود را در این فایل تعریف نکنید، آنها توسط سیستم عامل شناخته نخواهند شد. برای مثال فایل منیفست پیش فرض برنامه شبیه زیر است.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app2app.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
تعریف تمام کامپوننت های مربوط به اپلیکیشن بین تگ <application>…</application> قرار می گیرد. صفت یا اتربیوت android:icon به آیکن اپلیکیشن اشاره دارد که این آیکن در پوشه res/drawable-hdpi قرار دارد. در کد بالا اپلیکیشن از تصویری با نام ic_launcher.png که در پوشه drawable قرار دارد استفاده می کند.
تگ <activity> برای تعریف یک اکتیویتی و اتربیوت android:name مشخص کننده نام کامل کلاس اکتیویتی ای است که تعریف کرده اید و از کلاس Activity ارث بری دارد می باشد و ارتربیوت android:label مشخص کننده یک رشته که لیبل اکتیویتی است می باشد. شما می توانید با استفاده از تگ <activity> چندیدن اکتیویتی تعریف نمایید.
action برای intent-filter با رشته android.intent.action.MAIN تعریف شده است که نشان دهنده این است که این اکتیویتی به عنوان نقطه ورود به اپلیکیشن در نظر گرفته خواهد شد. category برای intent-filter با رشته android.intent.category.LAUNCHER تعریف شده است که مشخص کننده این است که اپلیکیشن می تواند با استفاده از آیکن برنامه که در دستگاه نمایش داده می شود، اجرا شود.
@string اشاره به فایل strings.xml دارد که در زیر توضیح داده شده است. @string/app_name به رشته ای در فایل strings.xml اشاره دارد که با نام app_name مشخص شده است و مقدار آن “HelloWorld” می باشد. دیگر رشته ها هم به همین شکل در اپلیکیشن مورد استفاده قرار خواهد گرفت.
در زیر لیست تگ هایی که شما می توانید از آنها در فایل منیفست برنامه ی خود برای تعریف کامپوننت های مختلف اپلیکیشن اندروید استفاده کنید آورده شده است.
- <activity>برای تعریف اکتیویتی
- <service> برای تعریف سرویس
- <receiver> برای تعریف برودکست ریسیور
- <provider> برای تعریف ارائه دهنده محتوا
فایل strings
فایل string.xml در پوشه res/values قرار دارد و حاوی همه متن های اپلیکیشن شما می باشد. برای مثال نام دکمه ها، لیبل ها، متن پیش فرض و متن هایی از این قبیل. این فایل وظیفه نگهداری از محتوای متنی را بر عهده دارد. برای مثال، یک فایل پیش فرض strings مانند زیر است.
<resources> <string name="app_name">HelloWorld</string> <string name="hello_world">Hello world!</string> <string name="menu_settings">Settings</string> <string name="title_activity_main">MainActivity</string> </resources>
فایل لایه (Layout)
activity_main.xml یک فایل لایه یا layout است که در پوشه res/layout قرار دارد که اپلیکیشن موقع ایجاد رابط کاربری برنامه از آن استفاده می کند. شما این فایل را برای تغییر layout اپلیکیشن خود مکررا تغییر می دهید. برای برنامه “Hello World!” ، این فایل حاوی محتوای زیر است که همان محتوای پیش فرض برنامه است.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> </RelativeLayout>
این یک مثال از یک RelativeLayout ساده است که ما آن را در بخش مجزایی توضیح خواهیم داد. TextView یک کنترل اندروید برای ایجاد GUI(رابط گرافیکی کاربر) است و اتربیوت های مختلفی مانند android:layout_width، ndroid:layout_height و … دارد که برای تعیین کردن طول و عرض و … استفاده می شوند. @string به فایل strings.xml که در پوشه res/values قرار دارد اشاره می کند. از این رو @string/hello_world به رشته ای با نام hello که در فایل string.xml تعریف شده و مقدار آن “Hello World!” است اشاره دارد.
اجرای اپلیکیشن
اجازه بدهید اپلیکیشن Hello World! را که همین حالا ایجادش تمام شد، اجرا کنیم. من فرض می کنم شما AVD(ماشین مجازی اندروید) را ایجاد کرده اید یا گوشی ای که برای اجرای اپلیکیشن روی آن استفاده می کنید را به کامپیوتر متصل کرده اید. برای اجرای اپ در اندروید استدیو فایل یکی از اکیتیویتی های پروژه را باز کنید و از تولبار بر روی آیکن کلیک کنید. اندروید استدیو اپ را بر روی AVD یا گوشی شما که به سیستم متصل است نصب می کند و آن را باز می کند و اگر همه چیز را درست انجام داده باشید، صفحه زیر را در پنجره شبیه ساز یا گوشی خواهید دید.
تبریک می گویم!! شما اولین اپلیکیشن اندروید خود را ایجاد کردید و حالا فقط ادامه آموزش را قدم به قدم دنبال کنید تا به یک توسعه دهنده اندروید بی نظیر تبدیل بشوید.
موفق باشید