در بیشتر نرم افزار های برنامه نویسی آموزش را با پروژه ایجاد یک متن خروجی شروع می کنند .ما در این مقاله قصد داریم تا اینکار را با پروژه ای به نام سلام دنیا انجام دهیم.
پروژه سلام دنیا در اندروید
در آموزش اندروید نصب اندروید استودیو درباره پروژه سلام دنیا صحبت کردیم در اینجا این پروژه را بصورت کامل دنبال خواهیم کرد.
آناتومی نرم افزار های اندرویدی
قبل از اینکه شما پروژه خود را اجرا کنید. بهتر است در باره پوشه ها و فایل های اندورید استودیو کمی بیشتر مطالعه کنیم.
ساختار درختچه ای اندروید
java: این پوشه داری منابع فایل های جاوای پروژه شماست بطور پیشفرض این پوشه دارای یک فایل MainActivity.java است که یک فایل منبع دارای یک کلاس فعالیت های جاوا است که هنگامی که نرم افزار شما برای اتصال از ایکون App استفاده می کند فعال میشود.
res/drawable-hdpi: این پوشه دارای اشیاء قابل رسم است که برای دستگاه های با کیفیت بالا کاربرد دارد.
res/layout:این پوشه برای فایل های است که ظاهر نرم افزار شما را ایجاد می کنند.
res/values:این یک پوشه برای نسخه های دیگر فایل های XML است که داری مجموعه از منابع مانند رشته ها و تعریف رنگها می باشند.
AndroidManifest.xml:این یک فایل مانیفست(شناسنامه نرم افزار) است که ساختار کاراکتر نرم افزار و کامپوننت های آن را توضیح خواهد داد.
Build.gradle:در این پوشه فایل های آتوماتیک ساخته میشوند که شامل نسخه compileSdk ، buildToolsVersion, applicationId, minSdkVersion, targetSdkVersion, versionCode و versionName میباشند.
در ادامه یک توضیح مختصر از فایل های مهم یک اپلیکیشن را مطالعه خواهیم کرد:
فایل فعالیت اصلی (The Main Activity File)
کد فعالیت اصلی یک فایل جاوا به نام MainActivity.java است. این فایل برنامه واقعی است که در نهایت به یک فایل Dalvik قابل پردازش تبدیل شده و نرم افزار شما را اجرا می کند.کدهای موجود در زیر توسط نرم افزار برای تولید واژه سلام دنیا ایجاد شده اند.
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);
}
}
این فایل .layout.activity_main که به فایل activity_main.xml ارجاع میشود در پوشه res/layout قرار دارد. متد onCreate() یکی از هزاران متدی است که باید هنگام فعال شدن کد ها اجرا شود.
فایل مانیفست The Manifest File :
هر کامپوننتی که بخواهید در نرم افزار خود استفاده کنید، باید به وسیله فایل manifest.xml معرفی کنید، این فایل در شاخه اصلی نرم افزار شما قرار دارد. این فایل مانند یک ظاهر بین سیستم عامل اندروید و نرم افزار شما خواهد بود. اگر شما کامپوننت های خود را در این فایل معرفی نکرده اید . توسط سیستم عامل پردازش نمی شود .برای مثال یک فایل پیشفرض مانیفست مانند کد زیر است :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tutorialspoint7.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> اجزاء کامپوننت مربوط به نرم افزار را در خود نگه میدارد. Attribute android:icon: به ایکون اپلیکیشن اشاره دارد که در زیرقسمت res/drawable-hdpi قرار دارد نرم افزار از تصویری به نام ic_launcher.png که در پوشه فایل های ترسیمی قرار دارد استفاده میکند.
تگ <activity> برای مشخص کردن یک فعالیت و یک android:name attribute بکار میرد که بعنوان Activity subclass بصورت یک کلاس واجد شرایط بکار خواد رفت. و صفت android:label یک رشته را مشخص خواهد کرد که بعنوان یک لیبل برای activity استفاده میشود شما میتوانید با تگ <activity> فعالیت های زیادی را مشخص کنید.
اکشن برای فیلترintent به صورت android.intent.action.MAIN نام گذاری شده تا activity serves مانند نقطه ورود برای نرم افزار باشد. دسته بندی برای intent-filter به نام android.intent.category.LAUNCHER خوانده میشود که نشاندهنده این باشد که نرم افزار میتواند از طریق ایکون اتصال نرم افزار متصل شود.
@string به فایل strings.xml ارجاع داده میشود این گزینه در پایان همین درس توضیح داده شده است . گزینه Hence, @string/app_name به رشته app_name ارجاع دارد و در فایل strings.xml تعریف میشود. که در این مثال عبارت HelloWorld است ، به همین ترتیب بقیه رشته ها در نرم افزار حاضر میشوند.
در ادامه لیستی از تگ ها وجود دارد که از آنها برای فایل مانیفست استفاده خواهیم کرد. تا بتوانیم با آن کامپوننت های مختلف نرم افزار اندروید را مشخص کنیم :
- تگ <activity>: تگی برای فعالیت ها
- تگ <service> تگی برای سرویس ها
- تگ <receiver> : تگی برای گیرندههای پخش(broadcast receivers)
- تگ <provider>: تگی برای ارائه دهندگان محتوا
فایل های رشته ای
فایل strings.xml در پوشه res/values قرار دارد این پوشه حاوی تمام نوشته هایی است که نرم افزار شما استفاده می کند . برای مثال، نام دکمه ها و لیبل ها و متون ساده تر دیگر، فایل های متنی مشابه اینها به این پوشه میروند. این فایل مسئول محتواهای متنی است . یک فایل شامل رشته ای پیشفرض شبیه زیر خواهد بود.
<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/layoutdirectory در دسترس است و هنگامیکه ظاهر نرم افزار خود را ایجاد می کنید به این فایل راجاع میدهید. شما بطور مدام با تغییر نرم افزار خود این فایل را تغییر خواهید داد. این فایل محتویات زیر را در حالت نمای پیشفرض خواهد داشت.
<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>
این مثال ساده ای از Relative Layout است که در آموزش های بعدی به آن باز خواهیم گشت. گزینه Text View یک کنترل اندرویدی است که برای ساخت GUI یا رابط کاربری گرافیکی استفاده شده و صفات متعددی مانند android:layout_width و android:layout_height و مانند آن را دارد که برای تنظیم طول و عرض استفاده خواهند شد. @string به فایل the strings.xml ارجاع دارد و در پوشه res/values قرار دارد . Hence, @string/hello_world به رشته Hello ارجاع دارند که توسط فایل strings.xml در Hello World تعریف شده است .
اجرای نرم افزار
برای اینکه نرم افزار Hello World خود را اجرا کنیم . ما فرض را بر این گذاشته ایم که شما محیط شبیه سازی AVD را نصب کرده اید ما در آموزش اندروید استودیو نصب این قسمت را همراه با نصب نرم افزار توضیح داده ایم. برای اجرای نرم افزار در اندروید استودیو. یکی از فایل های activity پروژه خود را باز کنید. و روی ایکون Run Eclipse Run Icon کلیک کنید. اگر همه مراحل نصب بدرستی انجام شده باشد پنجره شبیه سازی باز خواهد شد.
تهیه و تنظیم توسط شرکت برنامه نویسی سارگون با ما در تماس باشید.