a

ABLY مقالات و مطالب مجموعه

ساختار (ANATOMY) برنامه اندروید

ساختار (ANATOMY) برنامه اندروید

بسم الله الرحمن الرحیم

معماری برنامه های اندروید

فصل اول - بخش ششم

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

بسم الله الرحمن الرحیم

معماری برنامه های اندروید

فصل اول - بخش ششم

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

 

Src

شامل فایل های  که با پسوند .Java دارند می باشد.در این مثال  یک فایل  وجود داردکه   mainActivity می باشد. که این فایل , فایل Source   مربوط به  activity   برنامه می باشد. شما کد برنامه  را در این فایل  می نویسید.فایل java در  زیر شاخه PackageName  برنامه شما می باشد که در این مثال  com.myadroid.helloandroid می باشد.

gen

شامل  فایل R.java  می باشد.که یک فایل تولید شده کامپایلر می باشد که به تمام  منابع (Resource ) های  برنامه اشاره دارد. به هیچ عنوان شما نباید این فایل را تغییر دهید.تمام منابع  برنامه به صورت اتوماتیک در این کلاس اضافه می شود. که شما برای دسترسی به آن ها از این کلاس استفاده می کنید.

Android4.0

شامل یک فایل می باشد که تمام  Class Library های که شما نیاز دارید در برنامه استفاده کنید را شامل می شود.

assets 

(به معنی دارایی می باشد) شامل تمام asses های مربوط به برنامه می باشد. شمال فایل های XML و فایل های متنی و پایگاه داده می باشد.

Bin

شامل فایل های است که AVD در طول اجرای پروسس ایجاد می کند و فایل apk(Android Package) را شامل می شود. فایل apk یک application binary از برنامه کاربردی اندروید می باشد و شامل تمام چیزهای است که یک برنامه کاربردی اندروید نیاز دارد تا اجرا شود.

res

شامل تمام Resource های که در برنامه استفاده می شود می باشد که شامل چندین پوشه می باشد که در فصل 3 آن را شرح می دهیم.

AndroidManifest.xml

فایل manifest برنامه شما می باشد شما در اینجا  تمام permission ها و اطلاعات مربوط به برنامه در این فایل تعیین می شود که در فصل 2 جزئیات بیشتری را شرح می دهیم.

فایل Activity_main.xml

شامل User Interface  برنامه شما می باشد. دستورات زیر را نگاه کنید

<EditText 
android:text="@string/hello"

string در آنجا به فایل String.Xml اشاره می کند که در res\value قرار دارد. بنابراین @string/hello اشاره دارد به String ایی به نام   hello که در اینجا hello android میباشد.

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">HelloAndroid</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="hello"> HelloAndroid</string>
</resources>

هر زمان که شما  "@string/hello"را به کار گرفتید اشاره به HelloAndroid دارد.

به شما پیشنهاد می کنم که تمام متن های خود را در String.Xml ذخیره کنید و توسط @String به انها دستیابی داشته باشید. در مواردی که شما نیاز دارید برنامه را به زبان های دیگر در بیاورید، کافی است یک کپی از محتوای فایل بگیرید و  مقادیر آن را تغییر دهید

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

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.myandroid.helloandroid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="14" />
  <application
android:allowBackup="true"
  android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
  android:theme="@style/AppTheme" >
<activity
      android:name="com.myandroid.helloandroid.MainActivity"
   android:label="@string/app_name" >
    <intent-filter>
   <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>
</application>
</manifest>

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

Packagename  

برنامه را تعرف می کند مانند com.myandroid.helloandroid

شماره نسخه

برنامه را مشخص می کند  که در اینجا 1 می باشد از طریق attribute با نام android:versionCode این  مقدار برای انکه بفهمیم  نسخه چندم برنامه می باشد استفاد ه می شود می توانیم از  آن برای اینکه  متوجه شویم برنامه نیاز به Upgrade  دارد یا خیر  استفاده کنیم.

نام نسخه برنامه (version name)

که در اینجا  1.0 می باشد از طریق   attribute  با نام   android:versionName  مشخص می شود. این مقدار برای نمایش به کاربر می باشد. این مقدار باید ساختار به شکل  <major>.<minor>.<point>  داشته باشد

Attribute ایی با نام android:minSdkVersion

که elemen ایی با نام <uses-sdk> را دارد که کمترین نسخه از سیستم عامل اندروید را مشخص می کند که برنامه می تواند بر روی آن اجرا شود.

برنامه از تصویری به نام ic_launcher.png استفاد می کند که در پوشه drawable می باشد.

نام برنامه که string ایی به نام app_name می باشد که در فایل String.Xml تعریف شده است.

یک activity  وجود دارد که توسط فایل MainActivity.java نمایش داده می شود. این برچسب activity های که در یک برنامه یکسان می باشند را نشان می دهد.

درون تعریف یک activity یک element به نام <intent-filter> وجود دارد.

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

category برای intent-filter که در فصل 2 شرح می دهیم.

زمانی که شما یک فایل یا پوشه ی را  به برنامه اضافه می کنید Eclipse  به صورت اتوماتیک محتوای R.java را تولید می کنید که محتوای آن شامل :

/* AUTO-GENERATED FILE.  DO NOT MODIFY

 
* This class was automatically generated by the

* aapt tool from the resource data it found.  I

* should not be modified by hand.

*/
package com.myandroid.helloandroid;

public final class R
  public static final class attr {

  }

public static final class drawable {

     public static final int ic_launcher=0x7f020000;

  }

  public static final class id {

   public static final int editText1=0x7f070000;

     public static final int menu_settings=0x7f070001;

   }

   public static final class layout {

    public static final int activity_main=0x7f030000;

    }

public static final class menu {

     public static final int activity_main=0x7f060000;

  }

public static final class string {

public static final int app_name=0x7f040000

   public static final int hello=0x7f040003;

    public static final int hello_world=0x7f040001;

   public static final int menu_settings=0x7f040002

  

   public static final class style {

      public static final int AppTheme=0x7f050001;

 
}
}

و سرانجام کدی که بین activity و UI آن (activity_main.xml) ارتباط برقرار می کند متدی به نام setContentView می باشد که در فایل MainActivity.java قرار دارد.

package com.myandroid.helloandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
    protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   }
}

R.layout.activity_main اشاره به فایل activity_main.xml دارد که در پوشه Res\layout قرار دارد.

نام فایل ها به صورت اتوماتیک در فایل R.java ذخیره می شوند. متد onCreate یکی از چندین متدی می باشد که در زمان Load یک activity اجرا می شود.

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :Phone Number
0713 625 1757 :Phone Number