تخفیفات زمستانه تاپایان: شنبه ۴ تیر ۱۴۰۱
بزن بریم فروشگاه
درس ۴-اولین پروژه در اندروید استودیو

در این درس قصد داریم اولین پروژه ی اندرویدی خود را در محیط اندروید استودیو بسازیم برای این کار بهتر است ابتدا محیط اندروید استودیو و SDK های اندرویدی را نصب و آماده کنید که در درس های قبلی تدریس کردیم.

برای شروع در هر زبان برنامه نویسی اولین پروژه Hello World! است که ما هم قصد داریم یک اپلیکیشن ساده در محیط اندروید استودیو بسازیم و متن Hello World را درون آن نمایش دهیم.

 

آموزش ساخت اولین پروژه ی اندرویدی 

برای اولین بار که محیط Android Studio که قبلا در سیستم عامل خود نصب کردید را باز میکنید با تصویری مشابه زیر مواجه میشوید :‌

ساخت اولین پروژه ی اندرویدی در محیط برنامه نویسی Android Studio


شما میتوانید با انتخاب گزینه ی Start a new Android Studio project یک پروژه ی جدید اندرویدی بسازید و شروع کنید اپلیکیشن خود را برنامه نویسی کنید.

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

آموزش ساخت پروژه ی جدید اندرویدی در محیط Android Studio

بعد از وارد کردن نام اپلیکیشن در قسمت Application name باید نام Company domain را برای ساختن پکیج نیم یا نام پکیج اپلیکیشن وارد کنید سپس محل قرار گیری پروژه که location هست را بصورت پیشفرض رها کنید و روی Next بزنید تا با صفحه ی زیر مواجه شوید :

آموزش ساخت پروژه ی جدید محیط اندروید استودیو

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

 
 
 
 
در این آموزش ما نسخه ی API23: Android 6.0(Mashmallow) را در نظر میگیریم.
سپس روی next کلیک کنید و در صفحه ی بعدی باید مشخص کنید که اولین اکتیویتی شما چه چیزی باشد یا چه قالب های آماده ای را نیاز دارید ؟ 
آموزش ساخت اولین پروژه در اندروید استودیو

بهتر است Empty Activity را انتخاب کنید و next را بزنید.
سپس پروژه ی اندرویدی شما ساخته میشود و مطابق تصویر زیر محیط کدنویسی برای شما آماده است :
 
آموزش ساخت اپلیکیشن در اندروید استودیو

 

 آناتومی اپلیکیشن های اندرویدی

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

آناتومی یک پروژه ی اندرویدی در اندروید استودیو

 

 

شماره بخش  توضیحات
1 Java
این بخش دارای فایل هایی با پسوند .java است البته جدیدا فایل های با پسوند .kt هم اضافه شده است که دراین قسمت فایل های زبان جاوا و کاتلین قرار داده میشود برای اولین بار که پروژه ی اندرویدی میسازید بصورت پیشفرض یک فایل با نام MainActivity در این قسمت ساخته میشود که اکتیویتی اصلی اپ شماست.
2 res/drawable-hdpi
این قسمت شامل اشیای گرافیکی برای صفحات با رزولیشین بالا هستد و hdpi به این معنی است.
3 res/layout
این قسمت فایل های xml گرافیکی رابط کاربری یا ui اپ قرار میگیرد.
4 res/values
این قسمت هم شامل فایل های xml است که مقادیر مورد نیاز پروژه مثل رشته ها ، رنگ بندی ها و ... قرار میگیرد.
5 AndroidManifest.xml
این فایل شناسنامه ی اپلیکیشن شماست که تمام اجرا درون آن تعریف میشود مجوزهای مورد نیاز نیز همینجا تعریف میشود و تمام اطلاعات مورد نیاز اپ اینجاست.
6 Build.gradle
این قسممت مربوط به سیستم بیلدینگ است که اپلیکیشن را از روی کدها میسازد که شامل موارد compileSdkVersion, buildToolsVersion, applicationId, minSdkVersion, targetSdkVersion, versionCode and versionName است
 

در قسمت پایین مرور کوتاهی به بخش های مختلف پروژه های اندرویدی خواهیم داشت که اهمیت بیشتری دارند.

 

فایل MainActivity چیست ؟ 

این فایل یک کلاس با زبان برنامه نویسی Java یا زبان برنامه نویسی Kotlin است که بصوت MainActivity.java یا MainActivity.kt درون فایل های پروژه وجود دارد.

معمولا این فایل در ابتدای ساخته شدن اپلیکیشن بعنوان اولین اکتیویتی یا جایی که اپ شروع میشود ساخته میشود و کدی مشابه کد زیر را دارد : 

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 متودی است که وقتی برای اولین بار اپلیکیشن اجرا میشود صدا زده میشود.

 

فایل Android Manifest در پروژه های اندرویدی 

این فایل یک فایل xml است که شناسنامه و مجوز ها و هر اجرایی که در اپلیکیشن دارید باید اینجا تعریف شود. این فایل توسط سیستم عامل اندروید خوانده میشود و تمام کامپوننت های اندرویدی که درون اپ شما وجود داشته باشد باید درون این فایل نیز تعریف شده باشند.

برای مثال کد زیر یک نمونه ی ساده از محتویات یک فایل AndroidManifest.xml است : 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ir.avasam.listviewexample">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.ListViewExample">
        <activity
            android:name=".UserInformationActivity"
            android:exported="false" />
        <activity
            android:name=".RecyclerViewActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

در فایل manifest یک تگ به نام <application>...</application> وجود دارد که تگ اصلی هست و تمام تگ های دیگر را درون خود جای میدهد.

ویژگی android:icon به آیکون اصلی برنامه اشاره میکند که در مسیر res/drawable-hdpi وجود دارد. اپلیکیشن از یک فایل تصویری در مسیر drawable ها به نام ic_launcher.png استفاده میکند.

تگ <activity> برای معرفی یک اکتیویتی جدید استفاده میشود که درون آن ویژگی android:name به نام کلاس اکتیویتی اشاره میکند و android:label به عنوان یا لیبل اکتیویتی اشاره داارد. با استفاده از تگ <activity> میتوانید هرچند تعداد اکتیویتی را درون مانیفست تعریف کنید.

تگ action که درون intent-filter قرار دارد و نام آن android.intent.action.MAIN میباشد برای مشخص کردن اکتیویتی اصلی اپلیکیشن میباشد این اکتیویتی نقطه ی ورود به اپلیکیشن میباشد و برنامهه از اینجا شروع میشود.

تگ category که درون intent-filter میباشد و نام آن android.intent.category.LAUNCHER میباشد مشخص میکند که برنامه از قسمت Luncher ایکون قابل اجرا شدن میباشد.

و @string به فایل strings.xml اشاره میکند از این رو ،‌@string/app_name به یک متغیر رشته ای اشاره میکند که نام آن app_name میباشد و درون فایل strings.xml تعریف شده است که مقدار آن "HelloWorld" میباشد ، از این روش در داخل کدنویسی اپلیکیشن هم برای پر کردن جاهای خالی رشته ها استفاده میکنیم.

در لیست زیر تگ هایی که برای تعریف کامپوننت های اصلی اندروید درون AndroidManifest.xml استفاده میشود را مشاهده میکنید : 

  • <activity> برای تعریف اکتیویتی ها
  • <service> برای تعریف سرویس ها
  • <receiver> برای تعریف ریسیورها
  • <provider> برای تعریف provider ها 

 

فایل Strings.xml در برنامه نویسی اندروید

فایل strings.xml در مسیر res/values در پروژه های اندروید استودیو می باشد که شامل تمامی رشته های مورد استفاده در قسمت های مختلف اپلیکیشن است. برای مثال عنوان دکمه ها ،‌label ها ، متون پیشفرض و ... درون این فایل تعریف میشوند. در زیر یک مثالی از محتوای strings.xml را مشاهده میکنید :‌

<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 در مسیر res/layout پروژه قرار دارد که مسئولیت ساختن رابط کاربری یا UI یا همان ظاهر اپلیکیشن را برعهده دارد. فایل هایی که در این مسیر قرار دارند و xml هستند همگی برای تغییر ظاهر و گرافیک اپلیکیشن مورد استفاده ی برنامه نویسان اندرویدی قرار میگیرند.اینجا در اپلیکیشن نمونه ای که ساختیم محتویات درون activity_main.xml به صورت زیر خواهد بود :‌

<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 میباشد که به بحث انواع Layout ها در درس های بعدی خواهیم پرداختم.

همچنین شما میتوانید تمامی مباحث نوشتاری و آموزشی این بخش را بصورت جامع و یکجا درون دوره ی آموزش برنامه نویسی اندروید بصورت ویدیویی و با زبان فارسی آموزش ببینید و تمرین کنید.

در کدهای بالا TextView یک ویجت گرافیکی برای نمایش متن هست که انواع ویژگی های خاص خود را دارد  ویژگی های android:layout_width و android:layout_height برای تنظیم کردن طول و عرض ویجت استفاده میشود و بقیه ویژگی ها هم برای تغییر ظاهر استفاده میشود.

همانطور که میبینید ویژگی text این ویجت به مسیر @string/hello_world اشاره دارد که یک متغیر به نام hello_world درون فایل strings.xml هست و مقدار آن هر چه باشد در این قسمت قرار داده میشود.

 

اجرای یک پروژه ی اندرویدی

بیایید برای مثال اپلیکیشن Hello World! را که باهم نوشتیم اجرا کنیم ما در اینجا فرض میکنیم شما AVD را در حال اجرا دارید . AVD همان ماشین مجازی اندرویدی هست که یک امولاتور یا شبیه ساز گوشی های اندرویدی برای نصب و تست اپلیکیشن ها درون کامپیوتر است.

برای اجرای یک پروژه در محیط Android Studio طبق تصویر زیر آیکون پلی سبز رنگ را بزنید تا اجرا شود که همان دکمه ی run میباشد : 

اجرای پروژه های اندرویدی در محیط اندروید استودیو - اموزش برنامه نویسی اندروید

اگر اپلیکیشن به درستی روی ماشین مجازی اندرویدی شما اجرا شد تبریک میگوییم شما اولین اپ اندرویدی خود را نوشتید.