0

مباحث اولیه برای آشنایی با برنامه نویسی اندروید

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

ساخت یک برنامه اندروید تشکیل شده از دو activity

قبلا با مفهوم activity در برنامه نویسی اندروید، آشنا شدیم. اکنون قصد داریم که یک برنامه ساده بسازیم که از دو activity تشکیل شده است، بدین صورت که در activity اصلی، یک دکمه (button) وجود دارد که زمانی که کاربر به آن اشاره می کند، activity دوم نمایش داده می شود (وارد activity دوم می شویم).

در برنامه eclipse ، ابتدا یک پروژه اندروید با نام Kelidestan.com_Two_Activity می سازیم (نام package را برابر com.kelidestan.two_activity قرار می دهیم. نام activity اصلی را برابر MainActivity انتخاب می کنیم و فایل xml متناظر آن را هم، activity_main قرار می دهیم).

بنابراین فولدربندی و فایل های پروژه اندروید، به شکل زیر خواهد بود (سه فایل مهم آن را که در مباحث قبل توضیح دادیم، با کادرهای رنگی نمایش داده ایم :

آموزش برنامه نویسی اندروید

پروژه اندروید در ابتدا تنها دارای یک activity است. با دابل کلیک بر روی فایل activity_main.xml ، صفحه مربوط به این activity را به صورت گرافیکی خواهیم دید :

آموزش برنامه نویسی اندروید

مشاهده می کنید که در این activity ، یک TextView وجود دارد که عبارت Hello world! را نمایش می دهد.

خوب ابتدا باید فایل های لازم برای activity را بسازیم، در مباحث قبلی گفتیم که برای ساخت یک activity و نمایش صفحه مربوط به آن در برنامه اندروید، باید چه مراحلی را انجام بدهیم. دوباره این مراحل را در اینجا ذکر می کنیم تا هیچ نکته ای فراموش نشود. این مراحل عبارتند از :

1- ساخت فایلی با نام آن activity و با پسوند java در پوشه src و در زیر شاخه package پروژه اندروید.

2- ساخت فایل xml برای آن activity ، در فولدر res (فولدر منابع، resource) و در زیر شاخه layout

3- ذکر کردن activity ساخته شده، در فایل AndroidManifest.xml

4- قرار دادن یک گزینه در activity های دیگر (یا تنها یک activity دیگر) برای دسترسی کاربر به آن activity

مرحله اول : ساخت فایل java برای activity

هنگام ساخت پروژه اندروید، نام activity اصلی را برابر MainActivity انتخاب کردیم. اکنون که می خواهیم یک activity دیگر بسازیم، نام Activity2 را برای آن انتخاب خواهیم کرد.

بنابراین باید در کنار فایل MainActivity.java ، یک فایل با نام Activity2.java بسازیم. فایل MainActivity.java که مربوط به activity اصلی برنامه اندروید است را در شکل زیر نشان داده ایم :

آموزش برنامه نویسی اندروید

بنابراین باید در زیرشاخه package برنامه اندروید که دارای نام com.kelidestan.two_activity می باشد، یک فایل با نام Activity2.java بسازیم :

آموزش برنامه نویسی اندروید

برای این منظور، ابتدا بر روی نام package (یعنی com.kelidestan.two_activity)، با موس، کلیک سمت راست نموده و سپس گزینه New و آنگاه گزینه Class را انتخاب می کنیم. پنجره ای به شکل زیر باز می شود :

آموزش برنامه نویسی اندروید

در قسمت Name باید نام انتخابی برای activity را بنویسیم (همان نام Activity2). سپس در قسمت Superclass ، بر روی گزینه Browse کلیک می کنیم. پنجره ای به شکل زیر باز می شود :

آموزش برنامه نویسی اندروید

در قسمت Choose a type ، عبارت نوشته شده را پاک کنید و سپس کلمه activity را بنویسید. یک سری گزینه های مختلف برای انتخاب کردن نمایش داده می شود (در ابتدای آنها، کلمه activity وجود دارد) :

آموزش برنامه نویسی اندروید

گزینه اول، که در شکل نشان داده ایم (با عنوان Activity – android.app) را انتخاب کرده و سپس بر روی دکمه OK کلیک کنید تا به پنجره قبلی باز گردید و در آن پنجره نیز بر روی گزینه Finish کلیک کنید تا فایل java با نام Activity2.java ساخته شود :

آموزش برنامه نویسی اندروید

کدهای فایل Activity2.java ، پس از ساخت، به صورت زیر می باشد :


package com.kelidestan.two_activity;

import android.app.Activity;

public class Activity2 extends Activity {

}

نگاهی به شکل زیر بیندازید، عبارت oncre را می نویسیم و سپس کلیدهای Ctrl و space از کیبورد را همزمان می زنیم تا پنجره نمایش داده در شکل باز شود (در واقع حروف ابتدای دستور را نوشته ایم و سپس با این دو کلید، گزینه های پیشنهادی نمایش داده می شود تا سریعتر بتوانیم کدهای دلخواهمان را بنویسیم، این دو کلید را به خاطر بسپارید) :

آموزش برنامه نویسی اندروید

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


package com.kelidestan.two_activity;

import android.app.Activity;
import android.os.Bundle;

public class Activity2 extends Activity {
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
        }

}

مرحله دوم : ساخت فایل xml برای activity

در برنامه eclipse ، از منوی File ، گزینه New و سپس گزینه Android XML File را انتخاب می کنیم. پنجره ای به شکل زیر باز می شود :

آموزش برنامه نویسی اندروید

در قسمت File ، نامی برای فایل xml انتخاب کنید (مثلا من نام activity2.xml را انتخاب کردم) و سپس بر روی گزینه Next کلیک کنید تا پنجره زیر نمایش داده شود :

آموزش برنامه نویسی اندروید

بر روی گزینه Finish کلیک کنید تا فایل xml ساخته شود.

اکنون در نمایش گرافیکی این فایل xml ، قصد داریم یک TextView که مخصوص نمایش متن می باشد، قرار بدهیم. برای این منظور، بر روی گزینه TextView نمایش داده در شکل زیر، با موس کلیک کرده و به درون نمایش گرافیکی فایل xml می بریم و کلید موس را رها می کنیم :

آموزش برنامه نویسی اندروید

نتیجه به صورت زیر خواهد بود :

آموزش برنامه نویسی اندروید

چنانچه بخواهیم که متن نمایش داده شده در TextView را تغییر بدهیم باید ابتدا به قسمت Properties مربوط به TextView برویم. در واقع هر بخشی که می سازیم، Properties مربوط به خود را دارد که در آن می توانیم ویژگی های مورد نظرمان را تغییر بدهیم. چنانچه قسمت Properties در پنجره برنامه eclipse شما نمایش داده نشده است، ابتدا به منوی Window رفته و گزینه Show View و آنگاه گزینه Properties را انتخاب کنید تا پنجره ای با عنوان properties ، درون پنجره برنامه eclipse نمایش داده شود. موقعیت این پنجره را با گرفتن بالای آن با موس و کشیدن موس به اطراف، می توانید تغییر بدهید. یک موقعیت مناسب برای پنجره properties ، می تواند به صورت شکل زیر باشد :

آموزش برنامه نویسی اندروید

فرض می کنیم که پنجره properties را در برنامه eclipse مشاهده کرده اید. اکنون بر روی TextView که ساخته اید، با موس، کلیک سمت راست نموده و گزینه Show In و آنگاه گزینه Properties را انتخاب کنید. (برای اطمینان از اینکه properties نمایش داده شده، حتما مربوط به TextView باشد و نه یک عنصر دیگر، این قاعده را همیشه به خاطر داشته باشید)

در properties مربوط به TextView ، باید گزینه با عنوان Text را پیدا کنیم. همانند شکل زیر :

آموزش برنامه نویسی اندروید

همان طور که مشاهده می کنید، عبارت TextView در جلوی آن نوشته شده است که همان متن نمایش داده شده است. بر روی آن کلیک کرده و سپس عبارت second activity را می نویسیم. زیرا این فایل xml را برای activity دوم می سازیم و می خواهیم که activity دوم، با این متن شناسایی شود (در آن نمایش داده شود).

همچنین قصد داریم که متن را با فونت های بزرگتری نمایش بدهیم. برای این منظور، گزینه Text Size در properties را برابر 24 قرار می دهیم. به شکل زیر توجه کنید :

آموزش برنامه نویسی اندروید

مشاهده می کنید که به محض نوشتن عدد 24، دو گزینه برای انتخاب واحد اندازه متن، نمایش داده می شود. یکی sp و دیگری dp . یکی از این دو واحد را باید انتخاب کنید.

بنابراین متن درون TextView به شکل زیر نمایش داده خواهد شد :

آموزش برنامه نویسی اندروید

اکنون باید کدهای مربوط به فایل Activity2.java را تغییر بدهیم. کدهای آن به صورت زیر می باشد :


package com.kelidestan.two_activity;

import android.app.Activity;
import android.os.Bundle;

public class Activity2 extends Activity {
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
        }

}

آنها را به این صورت تکمیل می کنیم :


package com.kelidestan.two_activity;

import android.app.Activity;
import android.os.Bundle;

public class Activity2 extends Activity {
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity2);
        }

}

که در آن، تنها خط زیر به کدها افزوده شده است :


setContentView(R.layout.activity2);

مرحله سوم : ذکر کردن activity ساخته شده، در فایل AndroidManifest.xml

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


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kelidestan.two_activity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.kelidestan.two_activity.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>

باید activity دوم را در آن ذکر کنیم. برای این منظور، کدهای آن را به صورت زیر تکمیل می کنیم :


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kelidestan.two_activity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.kelidestan.two_activity.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>
       
        <activity android:name=".Activity2" />
       
    </application>

</manifest>

تنها خط زیر را به کدها افزوده ایم :


<activity android:name=".Activity2" />

مرحله چهارم : قرار دادن یک دکمه (button) برای رفتن از activity اول به activity دوم

واضح است که چون ابتدا activity اصلی برنامه اندروید (یعنی activity اول) نمایش داده می شود، بنابراین باید یک پل ارتباطی بین activity اول و activity دوم بسازیم. این پل ارتباطی را به صورت یک دکمه (button) انتخاب می کنیم که کاربر با کلیک بر روی آن، به activity دوم خواهد رفت. پس اکنون نوبت آن است که یک دکمه (button) در activity اول بسازیم.

فایل activity_main.xml را به صورت گرافیکی باید ویرایش کنیم. نمایش این فایل، به صورت زیر می باشد :

آموزش برنامه نویسی اندروید

ابتدا عبارت hello world که به صورت پیش فرض در آن نمایش داده شده را باید حذف کنیم. برای این منظور، بر روی آن کلیک کرده و سپس کلید delete از کیبورد را فشار می دهیم. پس از حذف این متن، باید یک button در صفحه نمایش داده شده، با موس، بکشیم (با گرفتن گزینه button و سپس بردن آن به داخل صفحه نمایش داده شده). به شکل زیر دقت کنید :

آموزش برنامه نویسی اندروید

و پس از ساخت button ، اینگونه خواهد بود :

آموزش برنامه نویسی اندروید

هر عنصری که در activity های برنامه اندروید می سازیم، دارای یک id منحصر بفرد خواهد بود که با آن id ، می توانیم به آن عنصر، درون کدهایی که می نویسیم، ارجاع بدهیم. البته id را می توانیم تغییر بدهیم ولی برنامه eclipse در زمان ساخته شدن هر عنصر، یک id به صورت پیش فرض به آن اختصاص می دهد. اکنون می خواهیم بدانیم که id مربوط به button ساخته شده، چه می باشد. برای این منظور، در properties مربوط به buttun ، گزینه نمایش داده شده در شکل زیر را پیدا می کنیم :

آموزش برنامه نویسی اندروید

بنابراین id مربوط به button را متوجه شدیم. id آن برابر button1 تعریف شده است.

حالا باید کدهای مربوط به این button را در فایل MainActivity.java بنویسیم. (در واقع، در فایل xml مربوط به activity اول، دکمه را قرار می دهیم و در فایل java مربوط به آن نیز باید برای دکمه ساخته شده، یک سری کد بنویسیم).

کدهای فایل MainActivity.java ، هنگام ساخته شدن به صورت زیر می باشد (حالا باید تغییرشان بدهیم) :


package com.kelidestan.two_activity;

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);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }

}

کدها را به صورت زیر تکمیل می کنیم :


package com.kelidestan.two_activity;

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);
               
                Button b = (Button) findViewById(R.id.button1);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }

}

فعلا تنها خط زیر را اضافه کرده ایم :


Button b = (Button) findViewById(R.id.button1);

که در آن یک button با نام b تعریف کرده ایم که توسط findViewById شناسایی می شود. دقت کنید که باید id مربوط به button ساخته شده در فایل xml را در اینجا بنویسیم. بنابراین عبارت R.id.button1 درون پرانتز تابع findViewById نوشته شده است. همچنین توجه داشته باشید که id آن button برابر button1 بود، اما ما باید عبارت R.id. را باید حتما قبل از آن بنویسیم (نوعی آدرسدهی).

شما هنگام کدنویسی، نیازی ندارید که مثلا تمام عبارت findViewById را تایپ کنید، بلکه تنها می توانید بنویسید find و سپس کلیدهای Ctrl و space از کیبورد را همزمان بزنید تا یک سری گزینه به شما نمایش داده شود و شما می توانید بر روی گزینه findViewById کلیک کنید تا عبارت به صورت findViewById تکمیل و نوشته شود. در ادامه دیگر اینگونه موارد را تذکر نمی دهیم و مستقیما کدها را نمایش خواهیم داد.

همچنین باید package مربوط به ساخت Button را import کنیم. یعنی باید کدهای زیر را در فایل java بنویسیم (در غیر این صورت، با خطا مواجه می شویم و برنامه eclipse با یک علامت قرمز رنگ در کنار کدها، به ما هشدار می دهد که خطایی روی داده است) :


import android.widget.Button;

بنابراین کدها به صورت زیر خواهند بود :


package com.kelidestan.two_activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                Button b = (Button) findViewById(R.id.button1);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }

}

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


package com.kelidestan.two_activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                Button b = (Button) findViewById(R.id.button1);
                b.setOnClickListener(new OnClickListener() {
           
                    @Override
                    public void onClick(View v) {
                        startActivity(new Intent(MainActivity.this, Activity2.class));
                    }
                });
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }

}

مشاهده می کنید که یک سری package های دیگر را نیز وارد کرده ایم. مثلا یکی برای OnClickListener ، وارد کرده ایم (import کرده ایم). کد مربوط به آن به این صورت است :


import android.view.View.OnClickListener;

و همچنین، کدهای زیر نیز افزوده شده است :

 

Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
                       
        @Override
        public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, Activity2.class));
        }
});

اکنون می توانید برنامه اندروید ساخته شده را تست کنید. قبلا روش های تست کردن برنامه را شرح داده ایم (در مباحث قبلی) و می توانید یکی از آنها را انتخاب کنید.

فایل های پروژه اندروید را می توانید از لینک های زیر دریافت کنید :

دانلود فایل apk برنامه اندروید

 

سه شنبه 6 مرداد 1394  11:04 AM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

ساخت آسان یک activity جدید، در برنامه eclipse

همان طور که قبلا شرح دادیم، برای ساخت یک activity جدید در پروژه اندروید، باید سه مرحله را انجام بدهیم. اول اینکه باید یک فایل java برای آن activity بسازیم (ساخت یک کلاس به صورت توسعه کلاس Activity)، سپس در مرحله دوم، یک فایل xml متناظر برای آن activity ایجاد کنیم که شامل اجزای گرافیکی activity خواهد بود. در مرحله سوم هم باید نام activity را در فایل AndroidManifest.xml پروژه اندروید ذکر نماییم. خوشبختانه در برنامه eclipse ، بخشی طراحی شده است که به وسیله آن، می توان این سه مرحله را به طور همزمان انجام داد و تنها باید در تعدادی پنجره، نام activity و یک سری ویژگی های آن را تعیین کنید. در ادامه، نحوه ساخت آسان یک activity جدید در برنامه اندروید را شرح خواهیم داد.

فرض کنید که در برنامه eclipse ، یک پروژه اندروید با نام Kelidestan.com داشته باشیم :

آموزش برنامه نویسی اندروید

سپس بر روی نام پروژه اندروید، با موس، کلیک سمت راست کرده و آنگاه از منوی New ، گزینه Other را انتخاب می کنیم :

آموزش برنامه نویسی اندروید

در پنجره ای که باز می شود، گزینه Android Activity را انتخاب می کنیم :

آموزش برنامه نویسی اندروید

سپس در پنجره بعدی، نوع activity را انتخاب می کنیم. برای یک activity ، همان گزینه Blank Activity مناسب می باشد (با انتخاب هر کدام از گزینه ها، در پایین پنجره، توضیحاتی در مورد آنها نوشته خواهد شد) :

آموزش برنامه نویسی اندروید

سپس در پنجره ای که باز می شود، باید نام activity ، نام فایل xml متناظر با آن و همچنین عنوان مربوط به activity (که در action bar نمایش داده می شود) را تعیین کنیم :

آموزش برنامه نویسی اندروید

این سه مورد را بعدا هم می توان تغییر داد، بنابراین بیش از حد نمی خواهد در مورد انتخاب نام مناسب برای آنها، وقت بگذارید. فقط توصیه می کنم که نامگذاری به گونه ای باشد که اولا از نام activity متوجه بشوید که چه عملیاتی را انجام می دهد و دوم اینکه نام فایل xml متناظر با activity به گونه ای باشد که بعدا که تعداد activity ها و فایل های xml پروژه اندروید، زیاد می شود، به راحتی بتوانید تشخیص بدهید که هر فایل xml ، مربوط به کدام activity است.

پس از انتخاب نام ها، بر روی گزینه Finish کلیک می کنیم. مشاهده خواهید کرد که یک فایل java برای activity و یک فایل xml متناظر با آن، در پوشه (folder) با نام layout ، ساخته می شود :

آموزش برنامه نویسی اندروید

علاوه بر این، اگر فایل AndroidManifest.xml پروژه اندروید را باز کنیم، مشاهده می کنیم که نام activity جدید، به طور خودکار، در آن درج شده است (به صورت یک تگ activity) :


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kelidestan.com"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.kelidestan.com.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>
        <activity
            android:name="com.kelidestan.com.NewActiviity"
            android:label="@string/title_activity_new_activiity" >
        </activity>
    </application>

</manifest>

منظورمان، این بخش از کدها می باشد :


<activity
    android:name="com.kelidestan.com.NewActiviity"
    android:label="@string/title_activity_new_activiity" >
</activity>

 

یک شنبه 11 مرداد 1394  4:34 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

تغییر نام یک activity یا یک فایل xml از پروژه اندروید، در برنامه eclipse و تذکر در مورد عدم نگرانی ا

گاهی نیاز داریم که نام یک activity یا یک فایل xml از پروژه اندروید را در برنامه eclipse ، تغییر بدهیم. برای این منظور، باید بر روی فایل مورد نظر، با موس، کلیک سمت راست نموده و سپس از منوی Refactor ، گزینه Rename را انتخاب نماییم :

آموزش برنامه نویسی اندروید

سپس در پنجره ای که باز می شود، نام جدید را نوشته و گزینه Finish را انتخاب می کنیم :

آموزش برنامه نویسی اندروید

نکته :

شاید شما در مورد تغییر نام activity ها یا فایل های xml ، تردید داشته باشید و فکر کنید که بعد از تغییر نام آنها، باید تک تک فایل های پروژه اندروید را باز کرده و نام های جدید را جایگزین کنید، ولی باید بدانید که تغییرات مورد نیاز را خود برنامه eclipse انجام می دهد و در تمامی بخش هایی که به آن activity یا فایل xml ارجاع داده شده، نام جدید، به طور خودکار، جایگزین می شود. همچنین توجه داشته باشید که این مورد را برای تغییر نام activity یا فایل xml تذکر دادیم، ولی مثلا اگر با همین روش، نام package را تغییر بدهید، باید بخش های دیگری از پروژه اندروید را هم تغییر بدهید (یک مبحث جداگانه برای تغییر نام package برنامه اندروید نوشته ایم که می توانید به آن رجوع کرده و شیوه تغییر آن را بخوانید).

یک شنبه 11 مرداد 1394  4:35 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

تفاوت بین دو حالت LinearLayout و RelativeLayout برای نمایش فایل xml متناظر با activity ها

زمانی که برای یک activity ، یک فایل xml متناظر می سازیم، معمولا نوع نمایش عناصر فایل xml متناظر آن، به صورت یکی از دو حالت LinearLayout و RelativeLayout می باشد. تفاوت این دو نوع نمایش، در نحوه قرارگیری عناصر مختلف در کنار یکدیگر می باشد.

مثلا اگر ما یک ImageView و یک TextView داشته باشیم، چنانچه بخواهیم که این دو عنصر، دقیقا در کنار هم چیده شوند، باید از حالت LinearLayout استفاده کنیم و چنانچه بخواهیم TextView بر روی ImageView قرار بگیرد، باید از حالت RelativeLayout استفاده کنیم.

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

در برنامه eclipse ، ابتدا یک پروژه اندروید با نام Kelidestan.com بسازید (نام package را برابر com.example.kelidestan انتخاب کنید. نام activity اصلی را برابر Activity1 انتخاب کنید و فایل xml متناظر آن را هم، activity_activity1 انتخاب کنید).

فایل activity_activity1.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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Activity1" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

به تگ RelativeLayout (یک تگ شروع و یک تگ پایان) دقت کنید. این تگ است که مشخص کرده است که نوع نمایش فایل xml به صورت RelativeLayout باشد. بنابراین اگر بخواهیم که نوع نمایش، به صورت LinearLayout باشد، باید دو عبارت RelativeLayout را به LinearLayout تبدیل کنیم، یعنی کدها باید به صورت زیر تغییر داده شوند :

 

<LinearLayout 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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</LinearLayout>

حالت LinearLayout :

ابتدا حالت LinearLayout را شرح می دهیم. زمانی که نوع نمایش فایل xml به صورت LinearLayout باشد، می توانیم عناصر مورد نظرمان را که می خواهیم در فایل xml قرار بگیرند را در کنار هم بچینیم، به گونه ای که بر روی هم قرار نگیرند. این نوع چیدمان عناصر، مثل چیدن تعدادی کتاب در یک قفسه می باشد. ابتدا فایل xml با نام activity_activity1.xml را باز می کنیم (نمایش به صورت گرافیکی). این فایل به صورت گرافیکی، همانند شکل زیر خواهد بود (در حالت LinearLayout) :

آموزش برنامه نویسی اندروید

به گزینه های نمایش داده شده در بالای تصویر فایل xml دقت کنید. دو گزینه را با شماره های 1 و 2 مشخص کرده ایم. این دو گزینه، تنها برای حالت LinearLayout نمایش داده می شوند و برای حالت RelativeLayout ، چنین گزینه هایی وجود ندارد.

همان طور که قبلا گفتیم، چیده شدن عناصر فایل xml در حالت LinearLayout ، همانند چیده شدن تعدادی کتاب در کنار هم در قفسه کتاب می باشد. حال اگر ما گزینه شماره 1 را انتخاب کنیم، عناصر در کنار هم و در جهت افقی چیده می شوند، اما اگر گزینه شماره 2 را انتخاب کنیم، عناصر در جهت عمودی چیده می شوند. دقت کنید که در هر دو حالت، عناصر کاملا به هم می چسبند (نه روی هم قرار می گیرند و نه از هم فاصله می گیرند).

اگر در شکل قبل دقت کنید، گزینه شماره 1 انتخاب شده است، بنابراین عناصر در جهت افقی در کنار هم چیده می شوند. یک Button را به داخل فایل xml می کشیم تا ببینیم نحوه قرار گیری آن به چه صورت خواهد بود :

آموزش برنامه نویسی اندروید

مشاهده می کنید که زمانی که Button را به درون صفحه می کشیم، یک سری خطوط خط چین نمایش داده می شود که عملا نشان می دهد که Button را تنها می توانیم به صورت افقی در کنار TextView قرار بدهیم. بعد از رها کردن دکمه موس، موقعیت Button و TextView به صورت شکل زیر می باشد :

آموزش برنامه نویسی اندروید

به گزینه ای که در شکل زیر با فلش قرمز رنگ مشخص کرده ایم، توجه کنید :

آموزش برنامه نویسی اندروید

بر روی آن کلیک می کنیم تا دو عنصر Button و TextView ، در جهت عمودی، در کنار هم چیده شوند. نتیجه به صورت شکل زیر می باشد :

آموزش برنامه نویسی اندروید

حالت RelativeLayout :

در حالت RelativeLayout ، می توانیم تعیین کنیم که عناصر بر روی یکدیگر قرار بگیرند.

شکل زیر، فایل xml را به صورت گرافیکی، در حالت RelativeLayout ، نمایش داده است :

آموزش برنامه نویسی اندروید

مشاهده می کنید که از آن دو گزینه ای که برای حالت LinearLayout داشتیم، دیگر خبری نیست.

اکنون یک button را به درون صفحه فایل xml می کشیم. تصویری همانند تصویر زیر را خواهیم دید :

آموزش برنامه نویسی اندروید

Button را در هر محل دلخواه می توانیم قرار دهیم. مثلا اگر دکمه موس را رها کنیم، محل قرار گیری Button به صورت شکل زیر خواهد بود :

آموزش برنامه نویسی اندروید

یا اینکه حتی می توانیم button را بر روی TextView قرار بدهیم، مثل شکل زیر (با موس، Button را گرفته و به محل قرارگیری Textview می بریم) :

آموزش برنامه نویسی اندروید

مشاهده می کنید که button بر روی TextView قرار گرفته است.

یک شنبه 11 مرداد 1394  4:36 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

وارد کردن (import) یک پروژه اندروید، به درون برنامه eclipse

یکی از عملیات هایی که زیاد در برنامه eclipse انجام می دهیم، وارد کردن (import) روژه های اندروید موجود، به درون برنامه eclipse است. پروژه اندروید ممکن است قبلا توسط شما ساخته شده باشد یا اینکه آن را از اینترنت دانلود کرده باشید و بخواهید کدهای آن را ببینید یا آن را کاملتر کنید. اکنون قصد داریم که نحوه وارد کردن (import) یک پروژه اندروید به درون برنامه eclipse را شرح بدهیم.

ابتدا درون برنامه eclipse ، در پنجره Package Explorer ، با موس کلیک سمت راست کرده و سپس گزینه Import را انتخاب می کنیم (اگر پنجره Package Explorer نمایش داده نشده است، باید در برنامه eclipse ، از منوی Window ، گزینه Show View و سپس گزینه Package Explorer را انتخاب کنید تا پنجره مربوط به آن، درون پنجره اصلی برنامه eclipse نمایش داده شود) :

آموزش برنامه نویسی اندروید

در پنجره ای که باز می شود، از شاخه Android ، گزینه Existing Android Code Into Workspace را انتخاب می کنیم و سپس بر روی گزینه Next کلیک می کنیم :

آموزش برنامه نویسی اندروید

در پنجره بعدی، بر روی گزینه Browse کلیک می کنیم :

آموزش برنامه نویسی اندروید

پنجره ای به شکل زیر باز می شود :

آموزش برنامه نویسی اندروید

در این پنجره باید پوشه (folder) مربوط به پروژه اندروید را انتخاب کنیم و سپس بر روی گزینه OK کلیک نماییم. نکته مهم در این مرحله این است که نباید پوشه اصلی (root) پروژه اندروید را انتخاب کنیم، بلکه باید آن را در یک پوشه دیگر قرار داده و سپس آن پوشه دیگر را انتخاب نماییم (عدم توجه به این نکته، می تواند باعث به وجود آمدن خطای Invalid project description بشود).

بنابراین، پس از انتخاب پوشه مربوط به پروژه اندروید، نام آن، نمایش داده می شود :

آموزش برنامه نویسی اندروید

پس از کلیک بر روی گزینه Finish ، پروژه اندروید به درون برنامه eclipse ، وارد (import) شده و در پنجره Package Explorer نمایش داده می شود :

آموزش برنامه نویسی اندروید
یک شنبه 11 مرداد 1394  4:38 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

شبیه سازی برنامه های اندروید (اجرای فایل های apk) بر روی کامپیوتر، با نرم افزار BlueStacks App Playe

همان طور که می دانید، نرم افزارهای گوناگونی برای شبیه سازی برنامه های اندروید بر روی کامپیوتر وجود دارد، در مبحثی دیگر، برنامه YouWave Android را معرفی کردیم، در این مبحث قصد داریم که برنامه ای با نام BlueStacks App Player را معرفی کنیم که دارای ویژگی های متفاوتی است. البته باید توجه داشت که ممکن است این برنامه بر روی برخی کامپیوترها، به درستی عمل نکند (این اخطار سازنده است ولی برای کامپیوتر من مشکلی نداشت). همچنین، بعد از نصب برنامه و اولین اجرای آن (چون در اولین اجرا، باید برخی از فایل های خود را از اینترنت دریافت کند)، بهتر است که هنگام استفاده از آن، ارتباط خود با اینترنت را قطع کنید، زیرا برنامه اطلاعاتی را مرتبا از اینترنت دریافت می کند که می تواند کمی نصب برنامه ها را طولانی تر کند، اما در کل، به نظر بنده، برنامه خوبی است. حجم این برنامه نسبتا بیشتر است و پس از دانلود آن از سایت سازنده اش و بعد از نصب آن، باید از اینترنت، فایل هایی را دانلود کند (فکر می کنم چیزی بیش از 100 مگابایت). برای دانلود این برنامه، می توانید به سایت سازنده آن مراجعه کنید (برنامه مجانی است) :


http://www.bluestacks.com

پس از نصب فایل دانلود شده و اجرای برنامه، برنامه شروع به دانلود فایل هایی از اینترنت می کند، پس از این دانلود ها، می توانید از برنامه برای شبیه سازی فایل های apk (برنامه های اندروید) استفاده کنید. اولین موردی که جلب توجه می کند این است که برنامه BlueStacks App Player به عنوان برنامه پیش فرض برای فایل های apk در ویندوزتان شناسایی می شود، یعنی با کلیک بر روی فایل های apk ، آنها به طور خود به خود، بر روی برنامه BlueStacks App Player نصب و شبیه سازی می شوند :

آموزش برنامه نویسی اندروید

بنابراین برای شبیه سازی یک برنامه اندروید با نرم افزار BlueStacks App Player ، تنها باید فایل apk آن را اجرا کنید. معمولا پس از نصب یک فایل apk ، در گوشه ویندوز به شما پیامی نشان داده می شود که اعلام می کند که برنامه نصب شده است، با کلیک بر روی آن پیام، برنامه اندروید شبیه سازی شده به شما نمایش داده می شود و می توانید از آن بر روی کامپیوتر خود استفاده کنید :

آموزش برنامه نویسی اندروید

برنامه همانند یک گوشی اندروید است و می توانید لیست برنامه های نصب بر روی آن را ببینید یا اینکه در قسمت تنظیمات، برخی از آنها را حذف نمایید :

آموزش برنامه نویسی اندروید

وقتی یک فایل apk را اجرا کنید، پنجره مربوط به نصب آن توسط BlueStacks App Player نمایش داده می شود و سپس برنامه سعی می کند که برنامه اندروید را به شما نمایش بدهد، ممکن است در این مرحله، یک صفحه سفید را مشاهده کنید، در صورت مواجه شدن با این صفحه، پنجره برنامه BlueStacks App Player را ببندید و سپس بر روی آیکون برنامه BlueStacks App Player کلیک کنید و به لیست برنامه های نصب شده بروید و بر روی برنامه مورد نظرتان کلیک نمایید تا اجرا شود.

یک شنبه 11 مرداد 1394  4:39 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

استفاده از ProGuard برای سخت تر شدن مهندسی معکوس (reverse engineering) و استخراج کدهای فایل apk برنا

شاید تاکنون این سوال به ذهن شما رسیده باشد که آیا هنگامی که یک فایل apk از پروژه اندروید خود می سازید و آن را به سایت های فروش می دهید، آیا کاربران می توانند کدهای آن را از فایل apk استخراج نمایند. بر حسب تجربه باید بگویم که پاسخ کلی به این سوال، بله می باشد، اما مسلما گوگل و سایر توسعه دهنده های اندروید هم بیکار نمی نشینند و راهکارهایی را برای سختتر شدن مهندسی معکوس (reverse engineering) کدها، ارائه می دهند. یکی از این راهکارها، استفاده از ProGuard است که می خواهیم در مورد آن، در این مبحث صحبت کنیم.

تا به اینجا حدس می زنم که از شنیدن این موضوع که ممکن است کدهایی که شما نوشته اید را دیگران ببینند، نگران شده اید. راستش را بخواهید، نمی دانم که یک فرد باید چه انگیزه ای برای این کار داشته باشد، امروزه اینترنت همچون بهشتی برای برنامه نویسان است و می توانند انواع عملیات های برنامه نویسی مورد نظرشان را در مباحث آموزشی بیابند، بنابراین به نظر می آید که تنها انگیزه ای که باقی می ماند، یافتن بخشی از کدها است که از آن بتوان سوء استفاده کرد و در سیستم برنامه، اختلال ایجاد کرد. خود من تنها یک بار از مهندسی معکوس کدهای فایل apk استفاده کرده ام و آن هم برای اطمینان از امکان پذیر بودن دیدن کدهای برنامه بود. بنابراین شما باید برای امنیت بیشتر برنامه اندروید خود، از راهکارهای امنیتی استفاده کنید. یکی از این راهکارها، استفاده از ProGuard است. خوشبختانه اگر از جدیدترین برنامه های مربوط به توسعه اندروید استفاده می کنید (مثلا یک نسخه جدید از ADT Bundle)، آنگاه نیازی به نصب هیچ برنامه جدیدی نیست و خود برنامه مربوط به توسعه، حاوی ProGuard می باشد. بنابراین با فرض اینکه برنامه توسعه شما، زیاد قدیمی نباشد، مراحل فعال کردن ProGuard برای پروژه اندروید را شرح می دهیم.

فرض کنید که در برنامه eclipse ، یک پروژه اندروید با نام Kelidestan.com ساخته ایم و اکنون می خواهیم که ProGuard را برای آن فعال کنیم. درون پوشه بندی پروژه اندروید، بر روی فایل project.properties کلیک می کنیم تا باز شود :

آموزش برنامه نویسی اندروید

کدهای فایل project.properties ، در ابتدا به صورت زیر می باشد :


# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-19

همان طور که مشاهده می کنید، اکثر کدهای آن، به صورت توضیح (comment) می باشند. به این خط از کدها توجه کنید :


#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

این خط از کدها را باید از حالت توضیح (comment) دربیاوریم، یعنی علامت # را از ابتدای آن، حذف کنیم. بنابراین کدها، به صورت زیر در می آید :


proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

تغییرات را ذخیره کرده و فایل را ببندید. اکنون به همان روش عادی که از پروژه اندروید، یک فایل apk می ساخته اید، این بار نیز همان عملیات را انجام بدهید (بر روی نام پروژه اندروید، کلیک سمت راست کرده و سپس گزینه Export را انتخاب می کنیم و سایر گزینه ها را برای ساخت فایل apk ، طی می کنیم، ساخت فایل apk را در مبحثی دیگر شرح داده بودیم و آن توضیحات را تکرار نمی کنیم). اگر در حین ساخت فایل apk ، دقت کنید، در پوشه بندی پروژه اندروید، یک پوشه (folder) جدید با نام proguard ساخته می شود (به طور خودکار). آن را در شکل زیر نمایش داده ایم (با مقایسه آن با شکل قبل، می توانید مشاهده کنید که قبلا وجود نداشته است) :

آموزش برنامه نویسی اندروید

از وجود همین فولدر می توان مطمئن شد که ProGuard برای برنامه اندروید، فعال شده است.

یک شنبه 11 مرداد 1394  4:40 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

اجرا (run) و یا خطایابی (debug) یک پروژه اندروید موجود در برنامه eclipse ، بر روی یک گوشی اندروید وا

همان طور که می دانید، برای اجرا یا خطایابی یک پروژه اندروید موجود در برنامه eclipse ، روش های گوناگونی وجود دارد :

1- شبیه سازی برنامه اندروید بر روی یک گوشی مجازی (virtual device)، در خود برنامه eclipse

2- ساخت یک فایل apk از پروژه اندروید و نصب آن بر روی برخی شبیه ساز ها که در ویندوز اجرا می شوند (مثل برنامه YouWave Android و برنامه BlueStacks App Player)

3- ساخت یک فایل apk از پروژه اندروید و ارسال آن به یک گوشی اندروید واقعی (با Blutooth یا کابل USB) و سپس نصب آن بر روی گوشی

4- اجرای برنامه بر روی یک گوشی اندروید واقعی، بدون نیاز به فایل apk و تنها با اتصال گوشی اندروید به کامپیوتر، توسط کابل USB و انتخاب پروژه اندروید در برنامه eclipse

روش هایی که در بالا ذکر شد، روش هایی است که اینجانب تا به امروز استفاده کرده ام، علاوه بر این موارد، ممکن است روش های دیگری نیز وجود داشته باشد. دلیل بیان این روش ها، این است که یک دید کلی داشته باشید و کمی آنها را با هم مقایسه کنید.

در این مبحث، قصد داریم که توضیحات کاملی را در مورد روش شماره 4 ارائه بدهیم. در روش شماره 4 ، یک گوشی اندروید واقعی را با کابل USB به کامپیوتر وصل می کنیم و سپس در برنامه eclipse ، گزینه هایی برای اجرای (run) برنامه بر روی گوشی و یا خطایابی برنامه (debug) با اجرای آن در گوشی، وجود دارد.

در استفاده از این روش، نکات مهمی وجود دارد که اگر به آنها توجه نکنید، حتما سر در گم می شوید. در واقع، برای اینکه بتوانید پروژه اندروید را به طور مستقیم از برنامه eclipse بر روی گوشی خود اجرا کنید، باید یک سری پیش نیازها وجود داشته باشد، در غیر این صورت، گوشی مورد نظرتان توسط برنامه eclipse ، برای اجرای پروژه اندروید، نمایش داده نخواهد شد. خوب، بنابراین باید هم شیوه اجرای پروژه را بدانید و هم پیش نیازهای آن را. بد نیست ابتدا لیست پیش نیازها را شرح بدهیم (فعلا هیچ اقدامی انجام ندهید و تنها موارد را بخوانید) :

1- باید driver مربوط به گوشی، بر روی ویندوز شما نصب شده باشد. ممکن است شما گوشی را به کامپیوتر وصل کنید و driver آن خود به خود بر روی ویندوز نصب گردد (در این حالت، معمولا پیامی در گوشه ویندوز نمایش داده می شود) و همین کافی باشد، اما مثلا برای یک گوشی دیگر، نیاز پیدا کنید که driver آن را از سایت سازنده دریافت کرده و نصب کنید. بنابراین، این مورد، کمی نسبی خواهد بود. اگر آنقدر خوش شانس نبوده اید که driver خود به خود و توسط گوشی نصب شود، باید دو مورد زیر را در نظر بگیرید :

الف - نصب بسته نرم افزاری Google USB Driver ، از طریق برنامه Android SDK Manager

ب- نصب driver گوشی از طریق دریافت driver از خود سایت سازنده آن گوشی و یا از cd حاوی driver های گوشی

2- سازگار بودن حداقل نسخه اندروید تعیین شده در پروژه اندروید، با نسخه اندروید گوشی واقعی. مثلا فرض کنید که شما در پروژه اندروید مورد نظرتان، مشخصه minSdkVersion در فایل AndroidManifest.xml از پروژه اندروید را برابر 11 انتخاب کرده اید، اما گوشی اندروید واقعی که به کامپیوتر متصل شده است، دارای نسخه شماره 8 باشد، بنابراین برنامه eclipse ، شماره نسخه اندروید نصب بر روی گوشی را تشخیص می دهد و چون برای پروژه قابل قبول نیست، اصلا آن را در لیست گوشی های متصل، نمایش نخواهد داد. بیشتر کاربران، در همین مرحله، گیج و سر در گم می شوند، زیرا قبلا گوشی برای پروژه های اندروید دیگر نمایش داده می شده، اما برای پروژه اندروید فعلی، نمایش داده نمی شود و کاربر فکر می کند که مشکل از شناسایی گوشی توسط برنامه eclipse است، در صورتی که گوشی کاملا شناسایی شده و تنها به دلیل اینکه شماره نسخه اندروید آن، از حداقل تعیین شده برای پروژه اندروید، کمتر است، نمایش داده نخواهد شد.

3- باید گزینه مربوط به خطایابی (USB debugging)، در تنظیمات گوشی اندروید مورد نظر، فعال باشد (البته در این مورد، گوشی شناسایی شده و نمایش داده می شود اما حالت آن در لیست، به صورت offline خواهد بود و برنامه بر روی آن نصب نمی شود. این مورد را نیز به همراه موارد عدم شناسایی گوشی، در انتهای این مبحث کمی شرح خواهیم داد).

اکنون در ادامه، ابتدا فرض می کنیم که شما پیش نیازهای لازم را دارید و شیوه اجرا (run) و خطایابی (debug) را شرح خواهیم داد تا اصلا بدانید که منظورمان از نمایش گوشی در یک لیست در برنامه eclipse چیست، سپس نکات مهمی را در مورد پیش نیازهایی که ذکر کردیم، خواهیم گفت. بنابراین ابتدا ببینید که گوشی شناسایی می شود یا نه، اگر شناسایی نشد، در ادامه همین مبحث، می توانید نکات لازم برای به دست آوردن پیش نیازها را بخوانید.

اجرا کردن (run) پروژه اندروید موجود در eclipse ، بر روی گوشی واقعی متصل به کامپیوتر، با کابل USB (با فرض شناساسی گوشی توسط برنامه eclipse)

ابتدا برنامه eclipse را باز کنید. پروژه اندروید مورد نظرتان، باید در پنجره Package Explorer موجود باشد، در غیر این صورت، باید آن را به درون برنامه eclipse ، وارد (import) کنید :

آموزش برنامه نویسی اندروید

اکنون گوشی اندروید را با کابل USB به کامپیوتر متصل کنید، اگر گوشی قبلا توسط کامپیوتر شناسایی شده، تقریبا 10 ثانیه صبر کنید، اما اگر برای اولین بار است که گوشی را به کامپیوتر متصل می کنید، احتمالا پیام هایی در مورد نصب driver آن در گوشه پایین سمت راست ویندوز، نمایش داده می شود، بنابراین صبر کنید تا این مراحل طی شود. پس از اطمینان از شناسایی گوشی توسط کامپیوتر، در برنامه eclipse ، بر روی نام پروژه اندروید، با موس، کلیک سمت راست نموده و گزینه Run As و سپس گزینه Android Application را انتخاب کنید :

آموزش برنامه نویسی اندروید

در این هنگام، برنامه eclipse به دنبال گوشی های مجازی (virtual device) و همچنین گوشی های واقعی می گردد که برای اجرای این پروژه اندروید، مناسب باشند (یعنی نسخه اندروید آنها مناسب باشد)، آنگاه اگر هیچ موردی نیابد، پنجره زیر را نمایش می دهد (بنابراین باید ببینید کدام پیش نیاز را ندارید) :

آموزش برنامه نویسی اندروید

که با فشار دادن گزینه No ، پجره زیر نمایش داده می شود (یک لیست خالی) :

آموزش برنامه نویسی اندروید

اما اگر یک یا چند مورد مناسب پیدا کند، آن پنجره نمایش داده نمی شود و مستقیما لیستی حاوی موارد مناسب شناسایی شده را خواهید دید :

آموزش برنامه نویسی اندروید

مشاهده می کنید که یک گوشی واقعی مناسب، شناسایی شده است و می توانید آن را در لیست ببینید. اکنون باید گوشی واقعی را انتخاب کرده و سپس بر روی گزینه OK کلیک کنیم. از حالا، دیگر فقط به صفحه گوشی اندروید خود نگاه کنید تا برنامه نصب شده و سپس اجرا گردد (به صورت خودکار). فقط اگر صفحه گوشی قفل است، آن را از حالت قفل در بیاورید.

خطایابی (debug) پروژه اندروید موجود در eclipse ، بر روی گوشی واقعی متصل به کامپیوتر، با کابل USB (با فرض شناساسی گوشی توسط برنامه eclipse)

در قسمت قبل، نحوه اجرای پروژه اندروید بر روی گوشی واقعی را شرح دادیم، اما اگر پروژه اندروید، پس از نصب و اجرا با گوشی، با خطا روبرو شده و بسته شود (force close)، نمی توانید بفهمیم که کدام بخش از کدهای پروژه اندروید، باعث ایجاد این خطا شده است. برای یافتن کدهای ایجاد کننده خطا، می توانیم به جای گزینه اجرا کردن (run) پروژه اندروید، از گزینه خطایابی (debug) استفاده کنیم.

نکته مهم این است که اگر قصد دارید با این روش، یک پروژه اندروید را خطایابی کنید، باید ابتدا مشخصه debuggable در فایل AndroidManifest.xml را برابر true قرار بدهید. برای این منظور، فایل AndroidManifest.xml از پروژه اندروید را باز کنید و سپس در میان مشخصه های تعیین شده برای تگ application ، مشخصه زیر را نیز بنویسید :


android:debuggable="true"

مثل کد زیر برای تگ application :


<application
    android:allowBackup="true"
    android:debuggable="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:theme="@style/AppTheme" >

اگر این مشخصه را تعیین نکنید، پروژه اندروید بر روی گوشی اجرا می شود، اما در صورت بروز خطا، دیگر برنامه eclipse نمی تواند محل خطا را بیابد. در واقع، بدون وجود این مشخصه، به جای خطایابی (debug)، تنها اجرای برنامه (run) را خواهیم داشت، بنابراین حتما تعیین این مشخصه را فراموش نکنید. همچنین، پس از خطایابی، زمانی که خواستید برنامه اندروید را به فروشگاه های اندروید بدهید، این مشخصه را برابر false قرار بدهید.

بنابراین فرض می کنیم که مشخصه debuggable را برابر true قرار داده اید و اکنون سایر مراحل را شرح می دهیم. برای خطایابی (debug)، تمامی مراحل، مشابه همان اجرا کردن (run) است و تنها تفاوت این است که به جای گزینه Run As ، باید گزینه Debug As را انتخاب کنیم (اگر مراحل مربوط به اجرا کردن را فراموش کرده اید، آنها را در ابتدای همین مبحث، دوباره بخوانید) :

آموزش برنامه نویسی اندروید

قبلا برای اجرا کردن (run) می گفتیم که صبر کنید تا برنامه کامل نصب شود، اما برای خطایابی (debug) باید در گوشه بالا سمت راست پنجره برنامه eclipse ، یک گزینه با نام Debug را بیابید :

آموزش برنامه نویسی اندروید

سپس بر روی آن کلیک کنید تا به حالت فعال در بیاید (با این کار، گزینه Java دیگر فعال نخواهد بود، هر وقت خواستید که دوباره همان پنجره های قبلی در برنامه eclipse نمایش داده شود، باید بر روی گزینه Java کلیک کنید) :

آموزش برنامه نویسی اندروید

با فعال کردن گزینه Debug ، پنجره های دیگری در پنجره اصلی برنامه eclipse نمایش داده می شوند. در این پنجره ها، مراحل مربوط به نصب و اجرای پروزه اندروید بر روی گوشی، نمایش داده می شود :

آموزش برنامه نویسی اندروید

آن چیزی که بیش از همه برای ما مهم است، پیدا کردن علت ایجاد خطا و بسته شدن برنامه اندروید (force close) می باشد. به محض اینکه برنامه اندروید هنگام اجرا با گوشی، با خطا مواجه شود، برنامه eclipse علت خطا را ردیابی کرده و فایل مربوط به آن را باز می کند. مثلا من عمدا پروزه اندرویدی را انتخاب کردم که دارای یک خطا است (منظورم خطایی نیست که در برنامه eclipse با رنگ قرمز نمایش و تذکر داده شود، بلکه خطایی است که هنگام نصب بر روی یک سری گوشی خاص، ایجاد می شود). بنابراین، با بسته شدن برنامه (force close) بر روی گوشی، برنامه eclipse ، فایل مربوط به ایجاد خطا و همچنین خطی از کدها که باعث ایجاد خطا می شود را به ما نشان می دهد (با باز کردن فایل و بر جسته کردن آن خط از کدها) :

آموزش برنامه نویسی اندروید

مشاهده می کنید که در پنجره ای با عنوان Debug ، نام فایل دارای خطا، برابر MainActivity.java مشخص شده است. علاوه بر این، در زیر این پنجره، خود فایل MainActivity.java به طور خودکار باز شده است و خطی از کدها که خطا را ایجاد کرده است را با برجسته کردن (سایه زدن) نمایش داده است. بنابراین به راحتی توانستیم این خطا را شناسایی کنیم (مثلا علت این خطا این است که این کد، تنها برای گوشی های دارای حداقل API برابر 11 به طور صحیح عمل می کند، ولی گوشی ما، دارای این حداقل نیست).

پس از یافتن خطا، می توانیم بر روی گزینه Java که قبلا در مورد آن توضیح دادیم، کلیک کنیم تا به حالت فعال در بیاید و دوباره همان پنجره های عادی برای کار بر روی پروژه اندروید را ببینیم.

در صورتی که دیگر نیازی به خطایابی (debug) ندارید، می توانید مشخصه debuggable در فایل AndroidManifest.xml را برابر false قرار بدهید.

فراهم کردن پیش نیازهای لازم برای شناسایی گوشی اندروید توسط کامپیوتر (در صورت عدم شناسایی گوشی یا عدم نصب برنامه اندروید بر روی گوشی) :

همان طور که قبلا گفتم، ممکن است که گوشی شما، با اتصال به کامپیوتر (توسط کابل USB)، به راحتی شناسایی شود، اما اگر این اتفاق نیفتاده، اکنون باید ببینید که کدام پیش نیاز برای شناسایی گوشی را ندارید. بنابراین، در ادامه، چندین مرحله برای بررسی داشتن پیش نیاز ها (یا انجام عملیات هایی برای اطمینان خاطر) را شرح خواهیم داد. مراحل اول، دوم و سوم، برای عدم شناسایی گوشی می باشند و مرحله چهارم (فعال کردن گزینه خطایابی در گوشی اندروید - USB debugging) برای زمانی است که گوشی شناسایی شده اما حالت (State) آن به صورت offline نوشته شده است و برنامه بر روی گوشی، نصب نمی شود.

مرحله اول : چک کردن حداقل نسخه اندروید تعیین شده در پروژه اندروید (مشخصه minSdkVersion)

همان طور که قبلا گفتیم، زمانی که برنامه eclipse به دنبال گوشی های متصل به کامپیوتر، برای اجرا یا خطایابی یک پروژه اندروید می گردد، نسخه اندروید گوشی هایی را که به کامپیوتر متصل هستند چک می کند و اگر نسخه اندروید آنها، از حداقلی که در پروژه اندروید، مشخص شده است، کمتر باشد آنگاه دیگر گوشی را در لیست نمایش نخواهد داد. بنابراین باید نسخه اندروید گوشی را چک کنیم که از حداقل تعیین شده، کمتر نباشد (مخصوصا هنگام استفاده از گوشی های قدیمی). بنابراین اگر نسخه اندروید گوشی، کمتر از حداقل تعیین شده بود، می توانیم این مشخصه را در پروژه اندروید تغییر بدهیم. برای این منظور، فایل AndroidManifest.xml از پروژه اندروید را باز کرده و کدهای زیر را در آن پیدا می کنیم :


<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="18" />

باید عدد نوشته شده برای مشخصه minSdkVersion را تغییر بدهیم (انتخاب یک عدد کمتر - یک API با شماره کمتر).

علاوه بر این، ممکن است ارتقای نسخه اندروید گوشی نیز به ذهنتان برسد که بنده آن را توصیه نمی کنم، زیرا معمولا برنامه نویسان عمدا برنامه اندروید را بر روی گوشی های قدیمی نیز امتحان می کنند تا از صحیح عمل کردن آن در نسخه های اندروید مختلف، مطمئن شوند. البته ممکن است یک برنامه نویس، برنامه خود را برای گوشی های پیشرفته تر طراحی کرده باشد و گوشی های قدیمی برایش اهمیت نداشته باشند، که این مورد، استثناء خواهد بود.

مرحله دوم : دانلود بسته های نرم افزاری driver توسط برنامه Android SDK Manager

برنامه Android SDK Manager ، دارای یک سری بسته های نرم افزاری مرتبط با driver برای گوشی ها است. بد نیست که شما جدیدترین نسخه های آن را توسط خود برنامه Android SDK Manager دانلود کنید. دقت داشته باشید که برخی کاربرن از Android SDK Manager و eclipse استفاده می کنند و این دو را جداگانه نصب کرده اند، اما برخی بسته نرم افزاری ADT Bundle را نصب کرده اند، بنابراین کاربراتی که از ADT Bundle استفاده کرده اند، تنها باید در میان پوشه های آن، به دنبال فایل اصلی برنامه Android SDK Manager بگردند (فقط برای این تذکر دادم که بدانند خود برنامه Android SDK Manager نیز در بسته نرم افزاری ADT Bundle وجود دارد).

خوب همان طور که می دانید، گوگل ایرانیان را تحریم کرده است و اجازه دانلود بسته های نرم افزاری را به آنها نمی دهد، قبلا در مبحثی دیگر، راه حل این مورد را بیان کردیم، اما در این مبحث نیز دوباره آن را خواهیم گفت. راه حل، استفاده از برنامه ای است که در شکل زیر نمایش داده ایم (می توانید آن را از اینترنت دانلود کنید) :

آموزش برنامه نویسی اندروید

در پنجره این برنامه، بر روی گزینه Add کلیک می کنیم. پنجره ای به شکل زیر باز می شود :

آموزش برنامه نویسی اندروید

در قسمت Bookmark ، یک نام دلخواه را می نویسیم (مثلا SDK) و سپس بر روی گزینه File Path کلیک می کنیم و سپس فایل اجرایی مربوط به برنامه Android SDK Manager را انتخاب می کنیم. با انتخاب آن، یک گزینه برای برنامه Android SDK Manager افزوده می شود :

آموزش برنامه نویسی اندروید

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

آموزش برنامه نویسی اندروید

باید کمی صبر کنیم تا برنامه به سرور گوگل وصل شده و بسته های نرم افزاری را نمایش بدهد. همان طور که مشاهده می کنید، در قسمت Extras ، یک گزینه با نام Google USB Driver وجود دارد (همان بسته نرم افزاری مورد نظر ما). اگر در جلوی آن، عبارت Installed نوشته شده باشد، دیگر نیازی به انجام این مرحله نداریم و بسته نرم افزاری قبلا نصب شده است، اما اگر عبارت Not installed نوشته شده، باید در کنار آن، یک علامت تیک بزنیم، زیرا باید این بسته های نرم افزاری را دانلود و نصب کنیم. سپس بر روی گزینه مربوط به نصب (یعنی Install 1 Package) کلیک می کنیم. پنجره ای به شکل زیر نمایش داده می شود :

آموزش برنامه نویسی اندروید

گزینه Accept License را انتخاب کرده و سپس بر روی گزینه Install کلیک می کنیم. پنجره ای به شکل زیر نمایش داده می شود و اطلاعاتی در مورد وضعیت دانلود بست های نرم افزاری مشاهده خواهید کرد و در آخر، پیامی مبنی بر نصب بسته نرم افزاری، در زیر همان پنجره نمایش داده می شود :

آموزش برنامه نویسی اندروید

بر روی گزینه Close کلیک می کنیم. بنابراین، این بار در پنجره برنامه Android SDK Manager ، در جلوی آن بسته نرم افزاری، عبارت Installed نوشته می شود :

آموزش برنامه نویسی اندروید

اکنون تمامی برنامه های مربوط به برنامه نویسی اندروید را بسته و دوباره از اول آنها را باز می کنیم تا ببینیم این بار گوشی تشخیص داده می شود یا خیر (اگر تشخیص داده نشد، باید مراحل بعد را در همین مبحث بخوانید).

مرحله سوم : دریافت driver گوشی از سایت شرکت سازنده گوشی

معمولا شرکت های سازنده گوشی، در سایت خود، یک برنامه جامع یا یک سری driver را برای گوشی های ساخت خود قرار می دهند که باعث شناسایی گوشی توسط کامپیوتر می شود. بنابراین باید شما به سایت سازنده گوشی خود مراجعه کنید و با یافتن نرم افزار یا driver مناسب برای مدل گوشی خود، آن را دانلود کرده و بر روی کامپیوتر نصب کنید.

مثلا اینجانب با توجه به اینکه دو گوشی samsung دارم، به سایت شرکت samsung مراجعه کردم و یک نرم افزار با عنوان Kies را دانلود و بر روی کامپیوتر خود نصب کردم. بنابراین با اجرای این برنامه و سپس اتصال هر یک از گوشی ها به کامپیوتر (با کابل USB)، ابتدا در این برنامه چک کردم که driver گوشی به درستی نصب شده باشد. مثلا با اتصال گوشی به کامپیوتر، نرم افزار Kies ، اطلاعات کلی گوشی را نمایش می دهد :

آموزش برنامه نویسی اندروید

با دیدن نام گوشی و همچنین برخی مشخصات آن در این برنامه، اطمینان حاصل کردم که driver به درستی نصب شده است. شما نیز باید با توجه به مدل گوشی خود و همچنین شرکت سازنده آن، نرم افزار یا driver های مناسب برای آن را بیابید. همچنین بهتر است که هم نرم افزار مربوط به driver و هم برنامه eclipse به طور همزمان، در حال اجرا باشند (نه اینکه نرم افزار مربوط به driver را ببندید و بعد به سراغ برنامه eclipse بروید).

مرحله چهارم : فعال کردن گزینه خطایابی (USB debugging) در تنظیمات گوشی اندروید

مراحل قبل که گفتیم، برای زمانی بود که گوشی اندروید توسط برنامه eclipse شناسایی نشود، اما گاهی پیش می آید که گوشی اندروید توسط برنامه eclipse شناسایی می شود، اما حالت (State) آن، برابر offline نوشته شده است و ما نمی توانیم پروژه اندروید موجود در برنامه eclipse را در آن اجرا (run) یا خطایابی (debug) کنیم.

مثلا به شکل زیر دقت کنید :

آموزش برنامه نویسی اندروید

مشاهده می کنید که گوشی شناسایی شده است، اما حالت (State) آن برابر offline می باشد و بنابراین، نمی توان بر روی آن، از طریق برنامه eclipse ، یک پروژه اندروید را نصب کرد.

پس باید در تنظیمات گوشی اندروید بگردیم و گزینه ای با عنوان USB debugging را بیابیم و در کنار آن، علامت تیک بزنیم تا این امکان، فعال شود. نکته مهم در این مرحله، این است که این گزینه، در گوشی های اندروید مختلف، ممکن است در قسمت های متفاوتی از تنظیمات گوشی پیدا می شود (یا بهتر بگویم، به شیوه متفاوتی بتوانیم به آن دسترسی داشته باشیم). مثلا این گزینه، در یک گوشی، در قسمت Developer options قرار دارد و فرد به راحتی آن را می یابد، ولی من که یک گوشی Galaxy S4 دارم، وقتی می خواستم قسمت Developer options را در تنظیمات گوشی بیابم، هر چه گشتم، هیچ کجا نبود، بعد از مدتی جستجو در اینترنت، متوجه شدم که این گزینه، در این گوشی به صورت پنهان می باشد و باید در قسمتی از گوشی، چند بار کلیک کنم (دقیقا یادم نیست کدام بخش و چه تعداد کلیک) و بعد گزینه Developer options در تنظیمات نمایش داده می شود و بعد در آن، گزینه USB debugging را تیک زدم تا فعال شود :

آموزش برنامه نویسی اندروید

بنابراین وقتی گوشی را با کابل USB به کامپیوتر وصل می کنم (در حالی که برنامه eclipse را قبلا اجرا کرده ام)، از من می پرسد که آیا اجازه خطایابی (debugging) می دهید یا خیر :

آموزش برنامه نویسی اندروید

که با انتخاب گزینه OK ، آنگاه حالت (State) گوشی، به صورت online نمایش داده می شود :

آموزش برنامه نویسی اندروید

بنابراین اکنون می توان از طریق برنامه eclipse ، پروژه های اندروید را بر روی آن نصب کرد.

یک شنبه 11 مرداد 1394  4:43 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک

در قسمت LogCat برنامه eclipse ، می توانیم پیام هایی را بر اساس روند اجرای برنامه اندروید مشاهده کنیم که به خصوص در صورت وقوع خطا، با استفاده از آنها می توانیم منبع ایجادکننده خطا را تا حدودی شناسایی کنیم :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید
نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

این پیام ها که در قسمت LogCat برنامه eclipse نمایش داده می شوند، قبلا توسط توسعه دهندگان اندروید، کتابخانه ها (libraries) و کلاس هایی (classes) که از آنها در برنامه اندروید خود استفاده کرده ایم، طراحی شده اند. اما شاید خود ما نیز بخواهیم که پیام هایی را به برنامه اندروید خود اضافه کنیم که بعد از شبیه سازی برنامه اندروید (توسط روش هایی که گفته شد)، بتوانیم بر اساس روند اجرای آن، پیام هایی را در قسمت LogCat از برنامه eclipse مشاهده نماییم. در ادامه، چگونگی افزودن پیام برای نمایش در قسمت LogCat را شرح خواهیم داد.

اگر پنجره LogCat در برنامه eclipse را نمی بینید (باز نیست)، در پنجره اصلی برنامه eclipse ، از منوی Window ، گزینه Show View و سپس گزینه Other را انتخاب کنید :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

پنجره ای به شکل زیر نمایش داده می شود :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

در این پنجره، ابتدا گزینه Android و سپس گزینه LogCat را انتخاب کرده و بر روی دکمه OK کلیک می کنیم :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

بنابراین اگر قبلا پنجره LogCat نمایش داده نشده باشد، اکنون می توانید آن را در پنجره اصلی برنامه eclipse مشاهده کنید.

اکنون به سراغ Log نویسی می رویم. شاید سریعترین راه برای آشنایی با انواع Log ، اجرای کد زیر در برنامه اندروید باشد :


Log.e("myTAG", "error");
Log.w("myTAG", "warning");
Log.i("myTAG", "info");
Log.d("myTAG", "debug");
Log.v("myTAG", "verbose");
Log.wtf("myTAG", "What a Terrible Failure");

نوع Log ، با یک یا چند حرف، بعد از عبارت Log. نوشته شده است. یعنی ما در کد بالا، از 6 نوع Log استفاده کرده ایم که هر کدام، پیامی را در قسمت LogCat نمایش می دهد. تفاوت انواع log ها، در میزان اهمیت آنها برای شرح رویدادهای اتفاق افتاده در برنامه اندروید است. درون پرانتز، ابتدا یک نام تگ (Tag) را به صورت رشته (String) می نویسیم و سپس، پیام مورد نظرمان برای نمایش در قسمت LogCat را نوشته ایم. من عمدا در قسمت پیام، یک یا چند کلمه برای شرح نوع آن Log ها نوشته ام.

قبل از اینکه تفاوت بین آنها را شرح بدهم، ابتدا بگذارید ببینیم که از نظر ظاهری (در LogCat) به چه شکل هستند. بنابراین مثلا در یک Activity دلخواه از پروژه اندروید، آنها را در روش onCreate می نویسیم (یک مثال) :


package com.kelidestan.com;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
               
        Log.e("myTAG", "error");
        Log.w("myTAG", "warning");
        Log.i("myTAG", "info");
        Log.d("myTAG", "debug");
        Log.v("myTAG", "verbose");
        Log.wtf("myTAG", "What a Terrible Failure");
    }


}

خوب حالا می خواهیم برنامه اندروید (پروژه اندروید) را اجرا یا خطایابی کنیم ( کلید شماره 813 )، برای این منظور، فرض می کنیم که کلید شماره 813 را خوانده اید و می دانید که چگونه از گوشی واقعی برای اجرا یا خطایابی پروژه اندروید استفاده کنید (یا اصلا می توانید از virtual device برای اجرا یا خطایابی استفاده کنید).

اکنون در برنامه eclipse ، بر روی نام پروژه اندروید، کلیک سمت راست نموده و ابتدا گزینه Debug As (یا گزینه Run As برای اجرا کردن) و سپس گزینه Android Application را انتخاب می کنیم :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

بنابراین در قسمت LogCat ، پیام های زیر نمایش داده می شود :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

مشاهده می کنید که برای انواع Log ها، رنگ های مختلفی داریم (به جز Log.e و Log.wtf که هر دو به رنگ قرمز نمایش داده می شوند.) بنابراین شما می توانید با استفاده از انواع Log ، پیام های دلخواهی را در قسمت LogCat (همزمان با شبیه سازی برنامه اندروید) مشاهده کنید که تسلط کاملی بر روند اجرای برنامه اندروید را در اختیار شما قرار می دهد.

تفاوت بین انواع Log :

اکنون قصد داریم که تفاوت انواع Log را شرح بدهیم. فقط دقت داشته باشید که آنچه بیان می شود، یک قرارداد بین توسعه دهندگان برای استفاده از انواع Log می باشد (نه یک قانون که اگر آن را رعایت نکنید، برای برنامه اندروید شما مشکلی پیش بیاید).

Log.e :

هنگام بروز یک خطا (error)، این Log را به کار می بریم. منظورمان از خطا، عدم اجرا شدن دستوری مهم است، یعنی عملیاتی که مد نظرمان بوده است، اجرا نشده و یک خطا به وجود آمده است.

Log.e معمولا با try و catch به کار می رود ( کلید شماره 345 )، زیرا باید تشخیص بدهیم که آیا خطای مورد نظر ما رخ داده یا نه.

Log.w :

Log.w برای زمانی به کار می رود که بخواهیم در مورد به وجود آمدن یک وضعیت (نتیجه) هشدار (warning) بدهیم. اگرچه وضعیت به وجود آمده، اختلال مهمی در روند اجرای کدها ایجاد نمی کند، ولی باید به صورت یک نکته مهم به برنامه نویس تذکر داده شود تا در صورت نیاز، موارد مربوط به آن را در کدنویسی های بعدی در نظر بگیرد.

Log.i :

Log.i برای نمایش اطلاعات (information) مفیدی در زمینه اجرای بخش های مختلف برنامه اندروید به کار می رود. مثلا اگر کد شما در کل شامل 5 مرحله است، می توانید در انتهای اجرای هر مرحله، با Log.i ، پیامی مبنی بر اجرای موفقیت آمیز هر مرحله، در LogCat نمایش بدهید.

Log.d :

Log.d برای خطایابی (debugging) به کار می رود (اگر زمانی با خطا روبرو شویم، با پیام های نوشته شده توسط Log.d می توانیم علت ایجاد خطا را پیدا کنیم). مثلا با آن می توانید تمامی موارد مهم و کلیدی روند اجرای برنامه اندروید را در LogCat نمایش بدهید، مثل مقادیر به دست آمده برای متغیرها، نتایج اجرای زیرمرحله ها و ... .

Log.v :

Log.v برای نمایش تمامی نکات کوچک و بزرگ از اجرای برنامه اندروید، در قسمت LogCat ، به کار می رود.

Log.wtf :

Log.wtf مشابه Log.e می باشد، اما برای مواردی به کار می رود که یک خطای خیلی مهم رخ داده است که با وقوع آن خطا، باید کل روند اجرای برنامه اندروید متوقف شود (یک خطای مهم که کل برنامه اندروید را دچار مشکل می کند).

Log.wtf معمولا با try و catch به کار می رود ( کلید شماره 345 )، زیرا باید تشخیص بدهیم که آیا خطای مورد نظر ما رخ داده یا نه.

پاک کردن پیام های نمایش داده شده در قسمت LogCat :

اگر قصد دارید که پیام های قبلی نمایش داده شده در LogCat را پاک کنید (تا با پیام های جدید، اشتباه گرفته نشوند)، در گوشه بالا سمت راست پنجره LogCat ، گزینه ای به شکل زیر وجود دارد :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

با اشاره بر روی آن، پیام های قبلی نمایش داده شده در LogCat ، پاک می شوند.

جستجو در متن پیام های نمایش داده شده در قسمت LogCat (یا جستجو در نام Tag ها) :

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

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

شما در هنگام جستجو، از عبارات قاعده مند (regular expressions) نیز می توانید استفاده کنید (تمامی متن هایی که در یک شکل کلی، صدق می کنند).

علاوه بر متن پیام ها، در نام Tag ها نیز می توان جستجو کرد. برای این منظور، در ابتدای عبارت جستجو، باید این عبارت را بنویسیم :


tag:

به عنوان مثال، نتیجه زیر را ببینید :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

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


pid:

انتخاب حداقل درجه اهمیت برای نمایش پیام ها در قسمت LogCat :

همان طور که قبلا گفتیم، انواع Log از نظر درجه اهمیت با هم تفاوت دارند. بنابراین ما می توانیم تعیین کنیم که تنها پیام هایی در LogCat نمایش داده شوند که دارای یک حداقل درجه اهمیت باشند. این حداقل درجه اهمیت، در گوشه بالا سمت راست پنجره LogCat نمایش داده می شود (بنابراین ترتیب اهمیت انواع Log را از ترتیب این گزینه ها نیز می توانید متوجه شوید) :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

مقدار پیش فرض آن برابر verbose (معادل Log.v) است که باعث می شود همه پیام ها نمایش داده شوند، اما مثلا اگر مقدار warn (معادل Log.w) را برای آن انتخاب کنیم، چون حداقل درجه اهمیت برابر Log.w در نظر گرفته شده، بنابراین تنها پیام هایی در LogCat نمایش داده می شوند که با Log.w یا Log.e یا Log.wtf ایجاد شده باشند :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

ذخیره اطلاعات قسمت LogCat به صورت یک فایل متنی :

در گوشه بالا سمت راست پنجره LogCat ، گزینه ای به شکل زیر وجود دارد :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

با استفاده از این گزینه، می توانید اطلاعات قسمت LogCat را به صورت یک فایل متنی ذخیره کنید. فقط نکته مهم این است که این گزینه، خط هایی را در فایل متنی ذخیره می کند که آنها را انتخاب کرده باشید (اگر هیچ خطی را انتخاب نکنید، تنها یک فایل متنی خالی ساخته می شود). مثلا من تنها 6 خط زیر را انتخاب می کنم :

نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید

بعد از ذخیره اطلاعات در فایل متنی، فایل را که باز می کنیم، دارای متن زیر می باشد :


01-09 15:50:45.271: E/myTAG(770): error
01-09 15:50:45.271: W/myTAG(770): warning
01-09 15:50:45.271: I/myTAG(770): info
01-09 15:50:45.271: D/myTAG(770): debug
01-09 15:50:45.271: V/myTAG(770): verbose
01-09 15:50:45.271: A/myTAG(770): What a Terrible Failure

در پنجره LogCat ، اگر قصد دارید که همه خط ها را انتخاب کنید، ابتدا در فضای خالی پنجره LogCat ، با موس کلیک کنید، سپس کلیدهای Ctrl و A از کیبورد را فشار بدهید تا تمامی خط ها به حالت انتخاب شده در بیایند.

یک شنبه 11 مرداد 1394  4:45 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

نرم افزار Genymotion برای شبیه سازی برنامه های اندروید بر روی کامپیوتر به کار می رود. با این نرم افزار قادر هستید که برنامه اندروید خود را بر روی گوشی های مختلف و همچنین نسخه های مختلف اندروید، تست کنید.

بخشی از امکانات نرم افزار Genymotion پولی می باشند و تنها با خرید license اصلی آن، می توانید از آنها استفاده نمایید، اما همان بخش های رایگان، نیازهای ما را برطرف می کنند. البته اگر برای اولین بار از این نرم افزار استفاده می کنید، تمامی امکانات آن به مدت 15 روز فعال است و بعد از پایان این 15 روز، برخی بخش ها به صورت غیرفعال در می آیند.

برای استفاده از نرم افزار Genymotion ، ابتدا باید نرم افزار Oracle VM VirtualBox را بر روی کامپیوتر خود نصب کنیم زیرا پیش نیازی برای Genymotion می باشد. اما خود سایت نرم افزار Genymotion ، یک بسته نرم افزاری را قرار داده است که در آن، Oracle VM VirtualBox نیز به همراه Genymotion نصب می شود. برای دانلود آن، به صفحه زیر بروید :


https://www.genymotion.com/#!/download

بر روی گزینه Get Genymotion کلیک کنید (دقت کنید که اگر سیستم عامل شما ویندوز است، حتما بر روی لینک موجود در بخش Windows کلیک کنید) :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

صفحه ای به شکل زیر نمایش داده می شود :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

ما باید در سایت genymotion.com ، یک حساب کاربری داشته باشیم، بنابراین بر روی گزینه Create account کلیک می کنیم. صفحه زیر نمایش داده می شود :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

در این صفحه، اطلاعات لازم را در فرم وارد کرده و سپس بر روی گزینه Create account کلیک می کنیم (اطلاعات حساب کاربری را در نزد خود نگه دارید، زیرا در مراحل بعدی به ان نیاز خواهیم داشت). پس از ثبت نام، یک ایمیل برای شما ارسال می شود که باید آن را باز کرده و عملیات فعال سازی حساب کاربری خود را با کلیک بر روی لینک موجود در آن، اجرا نمایید. با کلیک روی لینک موجود در ایمیل، به سایت genymotion.com منتقل می شوید و عملیات فعال سازی حساب کاربری به صورت خودکار اجرا می شود.

بعد از فعال شدن حساب کاربری خود، دوباره به مان صفحه دانلود مراجعه کرده و بر روی گزینه Get Genymotion کلیک کنید. فایل نصب، دانلود خواهد شد.

پس از دانلود فایل نصب، آن را اجرا کنید و مراحل نصب را طی کنید :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

پس از پایان مراحل نصب Genymotion ، پنجره نصب Oracle VM VirtualBox نمایش داده می شود که باید آن را هم نصب نمایید :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

بعد از پایان مراحل نصب، بر روی آیکون برنامه Genymotion کلیک می کنیم تا اجرا شود :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

پنجره زیر نمایش داده می شود که تذکر می دهد شما هنوز virtual device ای (یک گوشی مجازی برای تست برنامه اندروید) انتخاب نکرده اید و آیا قصد دارید که یک virtual device انتخاب نمایید (اضافه کنید) یا خیر :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

بنابراین بر روی گزینه Yes کلیک می کنیم. پنجره زیر نمایش داده می شود :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

برای اینکه بتوانیم لیست virtual device های قابل انتخاب را ببینیم، ابتدا باید اطلاعات حساب کاربری خود در سایت genymotion.com را در نرم افزار وارد کنیم. برای این منظور، بر روی گزینه Sign in کلیک می کنیم تا پنجره زیر نمایش داده شود :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

در این پنجره، اطلاعات حساب کاربری خود را وارد کرده و سپس بر روی گزینه Sign in کلیک می کنیم. دقت کنید که در این مرحله باید به اینترنت متصل باشم زیرا نرم افزار با سرور سایت genymotion.com تبادل اطلاعات می کند تا حساب کاربری تایید شود، نکته مهم این است که گاهی نصب Oracle VM VirtualBox (که در مراحل قبل نصب کردیم)، باعث ایجاد اختلالاتی در شبکه (network) اتصال به اینترنت ما می شود. بنابراین اگر در این مرحله با پیام خطا روبرو شدید، ابتدا اتصال خود به اینترنت (مثلا شبکه wireless آن) را قطع کرده و دوباره به آن متصل شوید و سپس همین مرحله Sign in کردن را تکرار نمایید.

در صورت موفقیت آمیز بودن مرحله Sign in ، لیست virtual device های قابل انتخاب نمایش داده می شود :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

با کلیک روی هر virtual device ، مشخصات آن نمایش داده می شود :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

همچنین با گزینه Device model می توانیم مدل virtual device و با گزینه Android version ، می توانیم نسخه اندروید نصب روی virtual device را مشخص کنیم.

یک virtual device را انتخاب کرده و بر روی گزینه Next کلیک می کنیم. پنجره زیر نمایش داده می شود که در آن می توانید یک نام دلخواه برای virtual device انتخاب کنید :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

سپس بر روی دکمه Next کلیک می کنیم. در این مرحله اطلاعات virtual device از اینترنت دریافت می شود. دقت کنید که ممکن است دوباره پنجره Sign in کردن نمایش داده شود. در صورت عدم وجود مشکل، اطلاعات دانلود می شوند :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

صبر می کنیم تا دانلود پایان یابد و سپس بر روی دکمه Finish کلیک می کنیم :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

اکنون virtual device مورد نظر در صفحه اصلی نرم افزار Genymotion نمایش داده می شود :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

با انتخاب کردن virtual device و کلیک بر روی گزینه Start ، می توانیم virtual device را در یک پنجره جدید مشاهده کنیم (مثل روشن شدن گوشی عادی) :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر

نصب یک فایل apk بر روی virtual device :

برای نصب یک فایل apk بر روی virtual device ، ابتدا باید virtual device در حال اجرا باشد، سپس فایل apk را با موس گرفته و به درون پنجره نمایش virtual device برده و کلید موس را رها می کنیم (drag and drop). با این کار، فایل apk به صورت خودکار بر روی virtual device نصب می شود :

آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر
آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر
آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر
یک شنبه 11 مرداد 1394  4:48 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

تفاوت بین نسخه اندروید (Android version) و API level و ذکر شماره های متناظر بین آنها

شاید تاکنون برایتان این سوال پیش آمده باشد که تفاوت بین نسخه اندروید (Android version) و API level چیست، زیرا معمولا در گوشی ها، نسخه اندروید (Android version) را ذکر می کنیم، اما هنگامی که یک پروژه اندروید می سازیم، باید در فایل AndroidManifest.xml ، شماره API level را ذکر کنیم (برای مشخصه های minSdkVersion و targetSdkVersion).

واقعیت این است که شماره های API level ، برای توسعه (development) می باشد و تغییرات آنها به صورت داخلی است و برنامه نویسان (توسعه دهندگان - developers) به آن تغییرات توجه دارند، اما شماره اندروید (Android version) برای عموم کاربران (users) می باشد و تغییراتی که در آن وجود دارد، به طور آشکار و قابل درک توسط کاربران (users) است.

در لینک زیر می توانید شماره های متناظر بین نسخه اندروید (Android version) و API level را بیابید (البته گوگل ایرانیان را تحریم کرده و باید با روش های خاصی این صفحه را باز کنید) :


http://developer.android.com/guide/appendix/api-levels.html

برای راحتی بیشتر شما، من جدول مورد نظر را در این صفحه قرار می دهم (برای دیدن تازه ترین اطلاعات، به همان لینک مراجعه کنید) :

آموزش برنامه نویسی اندروید

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

آموزش برنامه نویسی اندروید

دقت داشته باشید که اطلاعات شکل فوق، تنها برای نسخه 2.2 به بالا می باشد، زیرا این اطلاعات توسط فروشگاه اندروید جدید گوگل (Google Play Store) جمع آوری شده است که تنها نسخه 2.2 به بالا را پشتیبانی می کند. البته نشان داده شده که نسخه های پایین تر از 2.2 ، تنها 1 درصد از کل گوشی های اندروید را به خود اختصاص داده اند.

یک شنبه 11 مرداد 1394  4:49 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

نصب نسخه های مختلف API از اندروید، در برنامه نویسی اندروید

در مبحثی دیگر، تفاوت بین نسخه اندروید (Android version) و نسخه API (یا API level) را بیان کردیم و گفتیم که نسخه اندروید (Android version) معمولا دارای تغییرات قابل دیدن برای کاربران (users) گوشی های اندروید است، در صورتیکه که نسخه های API ، بیشتر به تغییرات داخلی و غیر قابل دیدن توسط کاربران مربوط می گردد (در واقع مربوط به توسعه دهندگان است). اگر شما به عنوان یک برنامه نویس اندروید (توسعه دهنده) فعالیت می کنید، ممکن است در مواردی، احتیاج پیدا کنید که بخواهید یک نسخه API از اندروید را نصب کنید. در این مبحث می خواهیم شرح بدهیم که چگونه می توان یک نسخه API دلخواه از اندروید را نصب کرد. اینکه تفاوت بین نسخه اندروید (Android version) و نسخه API (یا API level) را بیان کردیم برای این است که بدانید چرا توسعه دهندگان اندروید، اکثرا از نسخه API صحبت می کنند و حتی در برنامه eclipse نیز، هشدارها و خطاها و در کل، عملکرد برنامه eclipse ، بر اساس نسخه API است.

برای نصب یک نسخه API دلخواه از اندروید، می توان از دو روش اقدام کرد. یکی استفاده مستقیم از خود برنامه Android SDK Manager می باشد که در آن می توانیم آن نسخه دلخواه را در خود برنامه انتخاب کرده و دانلود کنیم (زیرا این برنامه، در پنجره اصلی خود، تمامی بسته های نرم افزاری مربوط به اندروید را در لیستی نمایش می دهد تا آنها را انتخاب کرده و دانلود کنیم) و روش دوم این است که فایل های مروبط به آن نسخه API را از یک سایت اینترنتی یا هر منبع دیگری تهیه کرده و در پوشه بندی برنامه Android SDK Manager کپی کنیم (بدون اجرا کردن برنامه Android SDK Manager).

روش اول : نصب یک نسخه API دلخواه از اندروید، با استفاده از برنامه Android SDK Manager

بهترین روش برای نصب یک نسخه API ، استفاده از خود برنامه Android SDK Manager می باشد که با استفاده از آن، می توانیم بسته های نرم افزاری مختلف را دانلود و نصب کنیم که تنها با چند کلیک، این کار امکان پذیر است، اما چون گوگل ایرانیان را تحریم کرده است، این کار برای ایرانیان کمی طولانی تر خواهد بود. من قبلا در مباحثی دیگر شرح دادم که با وجود تحریم های گوگل، چگونه می توان از برنامه Android SDK Manager برای دانلود و نصب بسته های نرم افزاری استفاده کرد، اما باز هم آن مطالب را در این مبحث تکرار می کنم.

راه حل، استفاده از برنامه ای است که در شکل زیر نمایش داده ایم (می توانید آن را از اینترنت دانلود کنید) :

آموزش برنامه نویسی اندروید

در پنجره این برنامه، بر روی گزینه Add کلیک می کنیم. پنجره ای به شکل زیر باز می شود :

آموزش برنامه نویسی اندروید

در قسمت Bookmark ، یک نام دلخواه را می نویسیم (مثلا SDK) و سپس بر روی گزینه File Path کلیک می کنیم و سپس فایل اجرایی مربوط به برنامه Android SDK Manager را انتخاب می کنیم. با انتخاب آن، یک گزینه برای برنامه Android SDK Manager افزوده می شود :

آموزش برنامه نویسی اندروید

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

آموزش برنامه نویسی اندروید

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

آموزش برنامه نویسی اندروید

همان طور که مشاهده می کنید، نسخه های مختلف API نمایش داده شده اند و شماره اندروید (Android version) معادل آنها نیز در کنارشان نوشته شده است. بنابراین هر نسخه API را که نیاز داریم، می توانیم در کنار آن، علامت تیک زده (آن را انتخاب کنیم) و سپس بر روی گزینه پایین پنجره که برای دانلود و نصب بسته های نرم افزاری انتخاب شده می باشد (عنوان آن با کلمه Install شروع می شود)، کلیک کنیم.

روش دوم : دانلود فایل های یک نسخه API دلخواه از اندروید و سپس کپی کردن آن در پوشه بندی برنامه Android SDK Manager

چنانچه ما فایل های مربوط به یک نسخه API از اندروید را از هر منبع دلخواه، تهیه کرده باشیم، آنگاه تنها کافی است که آن را در پوشه بندی برنامه Android SDK Manager کپی کنیم. شما ابتدا باید محل برنامه Android SDK Manager در پوشه بندی کامپیوتر خود را پیدا کنید. ساختار پوشه های برنامه Android SDK Manager به صورت زیر می باشد :

آموزش برنامه نویسی اندروید

در پوشه بندی برنامه، یک پوشه با نام platforms وجود دارد، اگر وارد آن شوید، ساختاری مشابه ساختار زیر خواهد داشت :

آموزش برنامه نویسی اندروید

ممکن است تعداد پوشه ها برای شما فرق داشته باشد، اما شکل آنها مشابه است و همگی ابتدا با کلمه android شروع شده اند و سپس یک خط فاصله و یک شماره نوشته شده است. شماره نوشته شده، همان شماره API می باشد و بنابراین، مثلا درون پوشه android-17 ، فایل های مربوط به نسخه API شماره 17 از اندروید قرار دارد. پس اگر می خواهیم یک نسخه API جدید را اضافه کنیم، آن را باید مطابق همین ساختار، در این پوشه قرار بدهیم. معمولا فایل هایی که برای دانلود هستند، نام درستی دارند و شما می توانید آنها را راحت در اینجا کپی کنید. توصیه می شود ساختار آن را با ساختار پوشه های موجود، مقایسه کنید تا از صحیح بودن پوشه کپی شده، اطمینان پیدا کنید.

یک شنبه 11 مرداد 1394  4:50 PM
تشکرات از این پست
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

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

همان طور که می دانید، فروشگاه های اندروید، برنامه های اندرویدی که از توسعه دهندگان دریافت می کنند را بررسی کرده و چنانچه مشکلی در آن بیابند، آن را منتشر نمی کنند و از توسعه دهنده درخواست می کنند که این مشکلات را برطرف کند. در این مبحث، بنده قصد دارم که تمام نکات مهم مربوط به یک برنامه اندروید را شرح بدهم تا توسعه دهندگان، قبل از دادن برنامه اندروید خود به فروشگاه های اندروید، یک بار این موارد را مرور کنند، زیرا درگیر شدن با کدنویسی برنامه اندروید، ممکن است باعث شود که برخی از نکات را فراموش کنیم.
 
بنده نکاتی را ذکر خواهم کرد، چنانچه موردی نیز به ذهن شما رسید، خوشحال می شوم تذکر بدهید تا آن را نیز به این مبحث اضافه نمایم. به هر حال، قصد داریم که این مبحث، یک مبحث جامع شامل تمامی نکات مهم باشد. بنابراین آن را به مرور زمان تکمیل خواهیم کرد.
 
نکات را در دو دسته ((نکات ضروری)) و ((نکات اختیاری)) شرح خواهیم دادیم و مواردی که در دسته ((نکات اختیاری)) قرار می گیرند، بستگی به خود شما دارد که دوست داشته باشید آنها را در برنامه اندروید خود به کار ببرید یا خیر.
 
نکات ضروری :
 
داشتن نام package منحصر بفرد :
 
تمامی برنامه های اندروید، با نام package خود شناسایی می شوند و بنابراین باید نام package آنها منحصر بفرد باشد، بنابراین اگر شما فایل apk برنامه اندروید را به یک فروشگاه اندروید بدهید، آنها در همان لحظه، نام package آن را از فایل apk به دست می آورند و چک می کنند که آیا قبلا برنامه ای با این نام package منتشر شده است یا نه. اگر منتشر شده باشد، به شما تذکر می دهند و بنابراین شما باید نام package جدیدی برای برنامه اندروید خود انتخاب کنید (برای تغییر نام package ، کلید شماره 225 را ببینید).
 
دقت کنید که این نکته برای برنامه اندرویدی است که قصد دارید اولین نسخه آن را منتشر کنید، چون در فروشگاه های اندروید، بخش جداگانه ای برای دریافت نسخه جدید برنامه های اندروید از قبل منتشر شده توسط شما وجود دارد و بدیهی است که نباید نام package آنها تغییر داده شود.
 
عدم تغییر نام package برنامه اندروید در نسخه های جدید آن :
 
چنانچه قبلا برنامه اندرویدی در فروشگاه های اندروید منتشر کرده اید، نباید نسخه جدید آن، دارای نام package دیگری باشد (زیرا در غیر این صورت، هنگام نصب برنامه اندروید، به صورت یک برنامه اندروید جدید شناسایی می شود و دیگر جایگزین نسخه قبلی نمی شود).
 
استفاده از همان keystore قبلی برای ساخت فایل apk نسخه های جدید برنامه اندروید :
 
اگر بر روی یک گوشی، برنامه اندرویدی (با یک package خاص) با یک keystore اولیه (یک سری certificates)( کلید شماره 210 ) نصب شده باشد، آنگاه اگر نسخه جدیدی از آن برنامه (با همان package) بسازیم که در آن، از keystore جدیدی (یعنی certificates جدید) استفاده شده باشد، آنگاه گوشی اجازه نصب نسخه جدید را نمی دهد (در واقع برای این است که کسی نتواند برای برنامه های اندروید دیگران، نسخه جدید ارائه کند، پس keystore شبیه امضا می ماند). بنابراین شما برای تمام نسخه های یک برنامه اندروید، تنها باید از یک فایل keystore استفاده کنید.
 
تغییر شماره نسخه برنامه اندروید (تغییر versionCode و versionName) :
 
چنانچه قبلا برنامه اندروید را در فروشگاه های اندروید منتشر کرده اید و اکنون می خواهید که نسخه جدید آن را به فروشگاه های اندروید بدهید، باید versionCode و versionName آن نسبت به قبل تغییر کرده باشد. برای تغییر versionCode و versionName برنامه اندروید، کلید شماره 231 را ببینید. versionCode تنها باید یک واحد افزایش یابد و برای versionName هم عبارتی دلخواه را انتخاب کنید (معمولا مواردی مثل 1.0.12 و 2.3.7 و ... انتخاب می شود).
 
تعیین minSdkVersion و targetSdkVersion برای برنامه اندروید :
 
در فایل Androidmanifest.xml از پروژه اندروید، دو مورد minSdkVersion و targetSdkVersion را به صورت مناسب برای برنامه اندروید خود تعیین کنید.
 
یکسان بودن شیوه نمایش برنامه اندروید بر روی گوشی های اندروید با صفحه نمایش های با اندازه مختلف :
 
یکی از موارد مهم در طراحی گرافیک برنامه اندروید این است که ممکن است ظاهر گرافیکی برنامه اندروید، بر روی گوشی های با صفحه نمایش های با اندازه مختلف، متفاوت باشد. بنابراین توصیه می شود که فایل های xml جداگانه ای برای صفحه نمایش های با اندازه های مختلف، طراحی شود. این مورد را در کلید شماره 239 به طور کامل شرح داده ایم.
 
نکات مربوط به چرخش گوشی :
 
شاید توسعه دهنده همیشه برنامه خود را در حالت افقی (landscape) یا عمودی (portrait) آزمایش کند و فراموش کند که اگر کاربر گوشی خود را بچرخاند، برنامه اندروید نیز تغییر وضعیت می دهد و به طور پیش فرض، دوباره Activity از ابتدا اجرا می شود. نکات زیادی در مورد چرخش گوشی وجود دارد که آنها را به ترتیب بیان می کنیم و شما باید همه آنها را بخوانید و ببینید که کدامیک مد نظرتان است :
 
1- شاید شما اصلا بخواهید که کل برنامه اندروید و یا یک یا چند Activity از برنامه اندروید، همیشه در حالت افقی (landscape) یا عمودی (portrait) نمایش داده شوند ( کلید شماره 221 ).
 
2- شاید شما قابلیت چرخش صفحه برنامه را به کاربر بدهید، اما برایتان مهم باشد که با چرخش صفحه، Activity دوباره از اول اجرا نشود، زیرا ممکن است اطلاعاتی از دست برود. مثلا اگر برنامه به صورت بازی باشد، با چرخش صفحه، Activity دوباره از اول اجرا می شود و کاربر دوباره باید بازی را از اول شروع کند، برای رفع این مشکل، باید تعیین کنیم که هنگام چرخش صفحه، اطلاعات Activity حفظ شود و Activity از اول اجرا نشود ( کلید شماره 270 ).
 
3- شاید اصلا بخواهیم که برای دو حالت افقی (landscape) و عمودی (portrait)، ظاهر گرافیکی Activity فرق داشته باشد و چیدمان عناصر گرافیکی در فایل xml متفاوت باشد. برای این منظور، باید یک فایل xml نیز برای حالت افقی (landscape) طراحی کنیم ( کلید شماره 2619 ).
 
متناسب بودن توضیحات نوشته شده برای برنامه اندروید با نحوه عملکرد برنامه اندروید :
 
چنانچه توضیحاتی که شما برای برنامه اندروید در فروشگاه های اندروید می نویسید، با نحوه عملکرد خود برنامه اندروید متفاوت باشد، فروشگاه اندروید مورد نظر از انتشار برنامه خودداری خواهد کرد.
 
اجازه های دسترسی (permissions) را یکبار دیگر چک کنید :
 
همان طور که می دانید، ما اجازه های دسترسی (permissions) را در فایل Androidmanifest.xml می نویسیم. کاربر نیز قبل از نصب برنامه اندروید، لیست این اجازه های دسترسی (permissions) را مشاهده می کند و اگر با یکی از آنها موافق نباشد، برنامه اندروید را نصب نخواهد کرد. باید دقت داشته باشید که هم فروشگاه اندروید و هم کاربران (البته آنهایی که باتجربه هستند) به این موضوع حساس هستند. مثلا فرض کنید که فروشگاه اندروید، برنامه ای را در مورد آموزش آشپزی دریافت کند، اما در آن ببیند که اجازه دسترسی برای دوربین (camera) ذکر شده است و در توضیحات برنامه اندروید هم هیچ صحبتی از دوربین نشده باشد. در این حالت، فروشگاه اندروید به شما تذکر خواهد داد که این اجازه دسترسی برای چیست و باید آن را بردارید. دلیلش هم واضح است، زیرا کدهایی وجود دارد که با آنها می توان به صورت مخفیانه از کاربر عکس گرفت و اگر اجازه دسترسی به اینترنت هم به برنامه اندروید داده شده باشد، حتی می تواند آنها را به یک سایت ارسال کند. بنابراین مشاهده می کنید که این موارد، وابسته به حریم شخصی افراد است. بنابراین بهتر است قبل از انتشار برنامه اندروید، یک نگاهی به اجازه های دسترسی (permissions) بیندازید، زیرا معمولا توسعه دهندگان یک سری اجازه های دسترسی (permissions) تعریف می کنند اما بعدا ممکن است که پشیمان شده و کدهایی که نیاز به آن اجازه های دسترسی (permissions) دارند را حذف کنند اما یادشان برود که خود اجازه های دسترسی (permissions) را هم حذف نمایند.
 
آیا action bar را به همه Activity های مورد نظرتان افزوده اید ؟
 
قبلا در مورد چگونگی طراحی action bar توضیحاتی دادیم ( کلید شماره 2657 )، در همانجا توضیح دادیم که کدهای مربوط به action bar را باید به کدهای Activity هایی که می خواهیم action bar در آنها نمایش داده شود، اضافه کنیم. بنابراین ممکن است که فراموش کنیم که این کدها را به یک یا چند Activity اضافه نماییم. بنابراین بهتر است که از این نظر، تمام Activity ها را بررسی نمایید.
 
غیر فعال سازی مشخصه debuggable :
 
همان طور که می دانید، در مراحل ساخت برنامه اندروید، برای آنکه بتوانیم به خطایابی (debug) برنامه اندروید بپردازیم ( کلید شماره 813 )، مشخصه android:debuggable در فایل AndroidManifest.xml از پروژه اندروید را برابر true قرار می دادیم :
 
 
android:debuggable="true"
اما قبل از انتشار برنامه اندروید در فروشگاه های اندروید، باید این مشخصه را برابر false قرار بدهیم :
 
 
android:debuggable="false"
غیر فعال سازی مشخصه allowBackup :
 
چنانچه می خواهید که امکان پشتیبان گیری (backup) از برنامه اندروید شما وجود نداشته باشد، باید مشخصه android:allowBackup در فایل AndroidManifest.xml از پروژه اندروید را برابر false قرار بدهید :
 
 
android:allowBackup="false"
یا در صورتی که می خواهید امکان پشتیبان گیری (backup) وجود داشته باشد، این مشخصه را برابر true قرار بدهید :
 
 
android:allowBackup="true"
استفاده از ProGuard برای سخت تر شدن مهندسی معکوس (reverse engineering) و استخراج کدهای فایل apk برنامه اندروید :
 
مهندسی معکوس کدهای فایل apk امکان پذیر می باشد، اما ProGuard ( کلید شماره 323 ) این امکان را فراهم می کند که عملیات به دست آوردن کدها را سخت تر کنیم.
 
نکات اختیاری :
 
تعیین محل پیش فرض برای نصب برنامه اندروید (حافظه داخلی گوشی یا حافظه خارجی گوشی (SD card)) :
 
شما می توانید محل پیش فرض برای نصب برنامه اندروید را تغییر بدهید (انتخاب بین حافظه داخلی گوشی یا حافظه خارجی گوشی (SD card)). این مورد را در کلید شماره 238 شرح داده ایم.
 
افزودن لوگو (logo) به برنامه اندروید :
 
چگونگی افزودن لوگو (logo) را در کلید شماره 242 شرح داده ایم.
 
افزودن ((لیست علاقه مندی ها)) و ((جستجو در عنوان های آموزشی)) به برنامه اندروید :
 
در برنامه های اندرویدی که به صورت آموزشی هستند، می توانید دو بخش ((لیست علاقه مندی ها)) و ((جستجو در عنوان های آموزشی)) را نیز طراحی کنید. چگونگی ساخت ((لیست علاقه مندی ها)) را در کلید شماره 2259 و چگونگی ساخت ((جستجو در عنوان های آموزشی)) را در کلید شماره 251 شرح داده ایم.
یک شنبه 11 مرداد 1394  4:51 PM
تشکرات از این پست
دسترسی سریع به انجمن ها