سلام عزیزان لطفا اجازه دهید که برنامه نویسی واقعی را در چارچوب اندروید شروع کنیم. قبل از اینکه شما شروع به نوشتن اولین مثال خود با استفاده از SDK Android کنید، باید مطمئن شوید که محیط توسعه اندروید را به درستی و همان طور که در آموزش نصب محیط اندروید شرح داده شد، نصب کرده اید. من همچنین فرض می کنم که شما تا حدی با کارکردن با Eclipse IDE آشنا هستید.

بیایید شروع به نوشتن یک اپلیکیشن اندرویدی ساده کنیم که عبارت “Hello World! ” را چاپ می کند.

ایجاد اپلیکیشن اندرویدی

اولین گام ایجاد یک اپلیکیشن اندرویدی ساده با استفاده از Eclipse IDE است. گزینه های File -> New -> Project را دنبال کنید و در نهایت ویزارد Android New Application را از لیست ویزاردها انتخاب کنید. اکنون نام اپلیکیشن خود را HelloWorld بگذارید. این کار را با استفاده از پنجره ویزارد به صورت زیر انجام دهید.

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

تشریح ساختار اپلیکیشن اندرویدی

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

شماره ترتیب

پوشه

فایل و توصیف

۱

src

شامل فایل های کد.java مربوط به پروژه­ ی شماست. به صورت پیش فرض، شامل یک فایل کد MainActivity.java است که دارای یک کلاس activity است که در زمان راه اندازی اپلیکیشن شما با استفاده از آیکن app اجرا میشود.

۲

Gen

شامل فایل.R است، فایلی که به وسیله­­ ی کامپایلر ایجاد می شود و تمام منابع موجود در پروژه شما را ارجاع می دهد. شما نباید این فایل را تغییر دهید.

۳

bin

این پوشه شامل فایل های پکیج اندروید.apk ایجاد شده به وسیله­ ی ADT در طول فرایند ساخت و هر چیز دیگریست که برای اجرای اپلیکیشن اندرویدی نیاز است.

۴

res/drawable-hdpi

این یک دایرکتوری برای اشیا کشیدنی است که برای صفحه نمایش هایی با تراکم بالا طراحی شده است.

۶

res/layout

این یک دایرکتوری برای فایل هایی است که واسط کاربری اپلیکیشن شما را تعریف می کنند

۷

res/values

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

۸

AndroidManifest.xml

این یک فایل مانیفست است که ویژگی های اصلی app را توصیف میکند و هر کدام از مولفه های آن را تعریف می کند.

بخش زیر مرور خلاصه ای را از تعدادی از فایل های مهم اپلیکیشن ارائه می دهد.

فایل Main Activity

کد فعالیت اصلی یک فایل جاوا به نام MainActivity.java است. این فایل، فایل واقعی اپلیکیشن است که سرانجام به یک Dalvik قابل اجرا تبدیل می شود اپلیکیشن شما را اجرا می کند. در ادامه کد پیش فرض ایجاد شده به وسیله­ ی ویزارد اپلیکیشن، برای اپلیکیشن Hello World! آورده شده است.

package com.example.helloworld;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.MenuItem;

import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

}

در اینجا R.layout.activity_main به فایل activity_main.xml واقع در پوشه­ ی res/layout اشاره می کند. متد onCreate() یکی از متدهای بسیاری است که در زمان بار شدن یک activity اجرا می شوند.

فایل Manifest

شما باید به ازای هر مولفه ای که به عنوان بخشی از اپلیکیشن خود توسعه می دهید، تمام عناصر آن را در یک فایل manifest به نام AndroidManifest.xml، که در دایرکتوری ریشه­ ی پروژه­ ی قرار دارد، تعریف کنید. این فایل به عنوان یک واسط بین سیستم عامل اندروید و اپلیکیشن شما عمل می کند، بنابراین در صورتی که شما مولفه های خود را در این فایل تعریف نکنید، سیستم عامل آنها را درنظر نمی گیرد. برای مثال یک فایل مانیفست پیش فرض شبیه به فایل زیر است.

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

تگ برای مشخص کردن یک activity به کار می رود و ویژگی android:name نام کلاس کاملا توصیفی زیر کلاس Activity را مشخص می کند و ویژگی های android:label رشته ای را برای استفاده به عنوان برچسب activity تعیین می کند. شما می توانید با استفاده از تگ های چندین فعالیت را مشخص کنید.

action مربوط به intent filter، به نام android.intent.action.MAIN برای نشان دادن این است که این فعالیت (activity) به عنوان نقطه ورود اپلیکیشن عمل میکند. category مربوط به intent-filter به نام android.intent.category.LAUNCHER برای نشان دادن این است که اپلیکیشن می تواند از آیکن راه اندازی کننده­ ی دستگاه، راه اندازی شود.

@string به فایل strings.xml که در زیر شرح داده شده است اشاره میکند. @string/app_name به رشته app_name تعریف شده در فایل strings.xml اشاره می کند که “HelloWorld” است. به صورت مشابه سایر رشته ها در اپلیکیش قرار می گیرند.

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

عناصر برای activity ها (فعالیتها)

عناصر برای service ها (سرویس ها)

عناصر برای broadcast receiver ها

عناصر برای content provider ها

فایل Strings (رشته ها)

فایل strings.xml در پوشه­ ی res/values قرار دارد و شامل تمام متنی است که اپلیکیشن شما از آن استفاده می کند. برای مثال نام دکمه ها، برچسب ها (labels)، متن های پیش فرض و سایر رشته های مشابه در این فایل قرار دارد. این فایل مسئول محتوای متنی آنهاست. برای مثال، یک فایل strings پیش فرض شبیه به فایل زیر است.

HelloWorld

Hello world!

Settings

MainActivity

فایل R

فایل gen/com.example.helloworld/R.java اتصال دهنده بین فایل های فعالیت جاوا مانند MainActivity.java و منابعی مانند strings.xml مانند. این فایل به صورت اتوماتیک تولید می شود و شما نباید محتوای فایل R.java را تغییر دهد. مثال زیر نمونه ای از فایل R.java است.

/* AUTO-GENERATED FILE. DO NOT MODIFY.

*

* This class was automatically generated by the

* aapt tool from the resource data it found. It

* should not be modified by hand.

*/

package com.example.helloworld;

public final class R {

public static final class attr {

}

public static final class dimen {

public static final int padding_large=0x7f040002;

public static final int padding_medium=0x7f040001;

public static final int padding_small=0x7f040000;

}

public static final class drawable {

public static final int ic_action_search=0x7f020000;

public static final int ic_launcher=0x7f020001;

}

public static final class id {

public static final int menu_settings=0x7f080000;

}

public static final class layout {

public static final int activity_main=0x7f030000;

}

public static final class menu {

public static final int activity_main=0x7f070000;

}

public static final class string {

public static final int app_name=0x7f050000;

public static final int hello_world=0x7f050001;

public static final int menu_settings=0x7f050002;

public static final int title_activity_main=0x7f050003;

}

public static final class style {

public static final int AppTheme=0x7f060000;

}

}

فایل Layout

activity_main.xml یک فایل صفحه بندی (Layout) است که در دایرکتوری res/layout موجود است و در زمان ساخت واسط به وسیله­ ی اپلیکیشن شما فراخوانی می شود. شما برای تغییر صفحه بندی اپلیکیشن خود، این فایل را بارها تغییر می دهید. برای اپلیکیشن “Hello World!” شما، این فایل دارای محتوای زیر است که مربوط به صفحه بندی پیش فرض است.

این مثالی از RelativeLayout ساده است که ما آن را در یک فصل جداگانه بررسی می کنیم. TextView یک کنترل اندرویدی برای ساخت GUI (واسط گرافیکی کاربر) است و دارای ویژگی های مختلفی مانند android:layout_width، android:layout_height و غیره است که برای تنظیم عرض و طول و غیره به کار می روند. @string به فایل strings.xml واقع در پوشه­ ی res/values اشاره می کند. بنابراین، @string/hello_world به رشته­ ی hello تعریف شده در فایل strings.xml اشاره می کند که “Hello World!” است.

اجرای برنامه (اپلیکیشن)

بیایید سعی کنیم که برنامه­ ی Hello World! ای که ایجاد کردیم را اجرا کنیم. من فرض می کنم که شما AVD خود را در زمان نصب محیط ایجاد کرده اید. برای اجرای اپلیکیشن از Eclipse (ایکلیپس)، فایل های فعالیت یکی از پروژه های خود را باز کنید و بر روی آیکن Run از نوار ابزار کلیک کنید. Eclipse، اپلیکیشن را بر روی AVD شما نصب میکند و آن را آغاز می کند و در صورتی که همه چیز در مورد نصب و اپلیکیشن شما درست باشد، پنجره Emulator زیر را نمایش می دهد.

تبریک !!! شما اولین اپلیکشن اندرویدی خود را ایجاد کردید، اکنون باقی مانده خود آموز را به صورت مرحله به مرحله دنبال کنید تا به یک توسعه دهنده­ ی اندروید ماهر تبدیل شوید.
سازماندهی و دسترسی به منابع اندروید