رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

Android Hello World Example

 

اجازه دهید برنامه نویسی واقی را با Android Framework آغاز کنیم

قبل از اینکه اولین نمونه را با Android SDK شروع کنید باید از نصب بودن Android development environment  مطمئن باشیم که در فصل قبل توضیح دادیم

فرض را بر این میگیریم که کمی دانش کار با Eclipse IDE را فرا گرفته اید

بنابراین اجازه دهید یک مثال برنامه اندروید بنویسم که در آن متن Hello World را نمایش دهد

ساخت Android Application :

در اولین قدم یک پروژه جدید در محیط اکلیپس ایجاد می کنیم از آدرس File -> New -> Project روی گزینه Android New Application و صفحه زیر ظاهر می شود تا پروژه به صورت اتوماتیک ساخته شود

در پنجره ظاهر شده اسم پروژه را HelloWorld می گذاریم مانند شکل زیر و روی دکمه next کلیک می کنیم

 

 

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

 

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

 

 

برنامه نویسی اندروید اکلیپس

ساختار پروژه های اندروید

 

ساختار پروژه های اندروید

 

 

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

1-src

این پوشه شامل فایلهای جاوای برنامه شما می باشد

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

2:gen

این پوشه شامل فایل .R می باشد

کامپایلری که فایل reference  را  از resource پروژه تان پیدا کرده است ایجاد می کند.شما نباید در این فایل تغییری ایجاد نمایید

3:bin

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

4: res/drawable-hdpi

در این پوشه اشیاء گرافیکی ساخته شده و یا طراحی شده را جهت پشتیبانی از screen های مختلف قرار می گیرد

5 : res/layout: در این پوشه فایلهای user interface  جهت تعامل با کاربر قرار می گیرد

6: res/values : این پوشه جهت سایر فایل های XML های مختلف است که شامل مجموعه ای از منابع ماند متغیر ها  ،رنگها و ... است

7: AndroidManifest.xml :

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

 :Main Activity

کد های جاوای Main Activity در فایل  MainActivity.java قرار دارد

این فایل برنامه های واقعی که در نهایت تبدیل به DALVIK اجرایی می شود و برنامه اجرا می گردد

در ادامه کد های پیشفرض که با ایجاد یک پروژه Hello World! تولید می شوند را شرح خواهیم داد[/align]

package com.example.helloworld;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.MenuItem;

import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

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

        return true;

    }

}

 

در اینجا  R.layout.activity_main مراجعه می کند به  فایل activity_main.xml که در پوشه res/layout قرار دارد

متد onCreate() یکی از روشهایی است که اکتیویتی load می شود

فایل Manifest :

هر component از برنامه شما به نحوی خود را نشان می دهد

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

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

در ادامه محتوای پیشفرض فایل Manifest  شرح داده شده است

<manifest
          xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
          package="com.example.helloworld"

   android:versionCode="1"

   android:versionName="1.0" >

  

    <uses-sdk android:minSdkVersion="8"

      android:targetSdkVersion="15" />

  

     <application  android:icon="@drawable/ic_launcher"

       android:label="@string/app_name"

       android:theme="@style/AppTheme" >

      

        <activity   android:name=".MainActivity"

           android:label="@string/title_activity_main" />
          
          </application>
  
  </manifest>

 

[align=right]در اینجا تگ ... به صورت انحصاری در اختیار components های مربوط به برنامه است

Attribute android : آیکنی که اشاره به برنامه دارد و در آدرس res/drawable-hdpi ذخیره گشته است

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

تگ بعضی مشخصه ها را مانند نام android:name مشخص می کند  وباید نام کامل کلاس اکتیویتی مورد نظر مانند زیر وارد گردد

نقل قول

 

android:name=".MainActivity"

در خط بعدی android:label معرفی گشته است که متغیر های استفاده شده در اکتیویتی را اعلام می کنیم

نقل قول

android:label="@string/title_activity_main"

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

action  برای تعریف اولین اکتیویتی که در برنامه شما بالا می آید به کار می رود android.intent.action.MAIN

جهت launch کردن برنامه با دستگاه از این خط استفاده می گردد

از طریق آن آیکن برنامه شما launch می گردد android.intent.category.LAUNCHER

@string اشاره دارد به فایل strings.xml و @string/app_name اشاره می کند به متغیر app_name که در فایل strings.xml  مقدار دهی شده است

که در این مثال مقدار آن  "HelloWorld" است که نام اپلیکیشن می شود

در ادامه  تگهای دیگری را که می توان در manifest  و کامپوننت های قابل تعریف توضیح داده می شود[/align]

نقل قول

 

elements for activities

elements for services

elements for broadcast receivers

elements for content providers

 

فایل strings.xml در مسیر  res/values قرار دارد و شامل تمامی محتواهای متنی شما که در برنامه استفاده می کنید می باشد

به طور مثال نام دکمه ها ،برچسب ها و انواه مشابه آن در این فایل ذخیره می گردد

این فایل مسئول محتوای متنی خود می باشد

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

    HelloWorld

    Hello world!

    Settings

    MainActivity

فایل R

در مسیر gen/com.example.helloworld/R.java فایلی وجود دارد که هر تغییری در برنامه چه در فایلهای جاوا و چه در فایلهای XML ایجاد می شود آنجا توسط اکلیپس اعمال می شود

در ادامه محتوای این فایل آورده شده است

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

 

فایل Layout  :

activity_main.xml یک Layout  است که در پوشه res/layout  قرار گرفته است

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

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

در برنامه "Hello World!"  محتوای فایل activity_main.xml به صورت پیشفرض به صورت زیر خواهد بود


<LinearLayout   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent" >

  

     <TextView  android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_centerHorizontal="true"

       android:layout_centerVertical="true"

       android:padding="@dimen/padding_medium"

       android:text="@string/hello_world"

       tools:context=".MainActivity" />

 

این یک نمونه ساده از RelativeLayout است که ما آن را در فصل قبل به طور کامل شرح داده ایم

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

از خصوصیات این ابزار می توان به android:layout_width, android:layout_height اشاره کرد که می توان آنها را بر اساس نیاز تنظیم کنیم

@string به فایل strings.xml اشاره می کند که در پوشه res/values قرار دارد

@string/hello_world به متغیر hello اشاره می کند که در فایل strings.xml قرار دارد و محتوای آن "Hello World!" است

Running the Application:

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

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

در ادامه اجرای برنامه خود را مانند تصویر زیر تماشا کنید[/align]

 

 

 

]بله شما اولین برنامه خود را نوشیتید

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

موفق باشید

www.p30droid.com

 

 

Android Hello World Example.pdf

Android Hello World Example.pdf

 

 

 

android:name=".MainActivity"

در خط بعدی android:label معرفی گشته است که متغیر های استفاده شده در اکتیویتی را اعلام می کنیم

نقل قول

android:label="@string/title_activity_main"

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

action  برای تعریف اولین اکتیویتی که در برنامه شما بالا می آید به کار می رود android.intent.action.MAIN

جهت launch کردن برنامه با دستگاه از این خط استفاده می گردد

از طریق آن آیکن برنامه شما launch می گردد android.intent.category.LAUNCHER

@string اشاره دارد به فایل strings.xml و @string/app_name اشاره می کند به متغیر app_name که در فایل strings.xml  مقدار دهی شده است

که در این مثال مقدار آن  "HelloWorld" است که نام اپلیکیشن می شود

در ادامه  تگهای دیگری را که می توان در manifest  و کامپوننت های قابل تعریف توضیح داده می شود[/align]

[align=right]

elements for activities

elements for services

elements for broadcast receivers

elements for content providers

فایل strings.xml در مسیر  res/values قرار دارد و شامل تمامی محتواهای متنی شما که در برنامه استفاده می کنید می باشد

به طور مثال نام دکمه ها ،برچسب ها و انواه مشابه آن در این فایل ذخیره می گردد

این فایل مسئول محتوای متنی خود می باشد

در ادامه  محتوای این فایل می تواند به صورت زیر باشد[/align]

    HelloWorld

    Hello world!

    Settings

    MainActivity

 

فایل R

در مسیر gen/com.example.helloworld/R.java فایلی وجود دارد که هر تغییری در برنامه چه در فایلهای جاوا و چه در فایلهای XML ایجاد می شود آنجا توسط اکلیپس اعمال می شود

در ادامه محتوای این فایل آورده شده است

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

/* AUTO-GENERATED FILE.  DO NOT MODIFY.

 * This class was automatically generated by the

 * aapt tool from the resource data it found.  It

 * should not be modified by hand.

 */

package com.example.helloworld;

public final class R {

    public static final class attr {

    }

    public static final class dimen {

        public static final int padding_large=0x7f040002;

        public static final int padding_medium=0x7f040001;

        public static final int padding_small=0x7f040000;

    }

    public static final class drawable {

        public static final int ic_action_search=0x7f020000;

        public static final int ic_launcher=0x7f020001;

    }

    public static final class id {

        public static final int menu_settings=0x7f080000;

    }

    public static final class layout {

        public static final int activity_main=0x7f030000;

    }

    public static final class menu {

        public static final int activity_main=0x7f070000;

    }

    public static final class string {

        public static final int app_name=0x7f050000;

        public static final int hello_world=0x7f050001;

        public static final int menu_settings=0x7f050002;

        public static final int title_activity_main=0x7f050003;

    }

    public static final class style {

        public static final int AppTheme=0x7f060000;

    }

}

 

فایل Layout  :

activity_main.xml یک Layout  است که در پوشه res/layout  قرار گرفته است

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

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

در برنامه "Hello World!"  محتوای فایل activity_main.xml به صورت پیشفرض به صورت زیر خواهد بود


 

   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent" >

  

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_centerHorizontal="true"

       android:layout_centerVertical="true"

       android:padding="@dimen/padding_medium"

       android:text="@string/hello_world"

       tools:context=".MainActivity" />

[align=right]این یک نمونه ساده از RelativeLayout است که ما آن را در فصل قبل به طور کامل شرح داده ایم

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

از خصوصیات این ابزار می توان به android:layout_width, android:layout_height اشاره کرد که می توان آنها را بر اساس نیاز تنظیم کنیم

@string به فایل strings.xml اشاره می کند که در پوشه res/values قرار دارد

@string/hello_world به متغیر hello اشاره می کند که در فایل strings.xml قرار دارد و محتوای آن "Hello World!" است

Running the Application:

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

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

در ادامه اجرای برنامه خود را مانند تصویر زیر تماشا کنید[/align]

 

امولاتور اندروید

 

بله شما اولین برنامه خود را نوشیتید

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

موفق باشید

www.p30droid.com

 

Android Hello World Example.pdf

Android Hello World Example.pdf

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 4 ماه بعد...

phonehello does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml

آقا وقتی اجرا میگیرم از برنامه این پیغامو میده. شبیه ساز کار نمیکنه هر کار میکنم. به خدا داره دیوونم میکنه. لطفا کمکم کنید پروژه پایانیمه 1 ماه وقت دارم اپلیکیشن فروشگاه درست کنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

phonehello does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml

آقا وقتی اجرا میگیرم از برنامه این پیغامو میده. شبیه ساز کار نمیکنه هر کار میکنم. به خدا داره دیوونم میکنه. لطفا کمکم کنید پروژه پایانیمه 1 ماه وقت دارم اپلیکیشن فروشگاه درست کنم

فکر کنم بجای پروژه Android Project شما یک پروژه تست اندروید ساخته اید Android Test Project 

یا در ویزارد Android Project تیک ایجاد پروژه تست هم زدید که الان مشکل شما همینه! بهتره یک بار دیگه با دقت بیشتر پروژه رو ایجاد کنید!

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

پوشه res و باز کن ببین کجای کد علامت قرمز خطا رو گذاشته.

انگار فایل R.java رو نمیشناسه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

توی همون کلاس MainActivity یه ctrl + F1 بزنین خودش واستون ایمپورت میکنه. روی اون ارور قرمز رنگی که تو اون کلاس هست هم کلیک کنین خودش واستون همین پیشنهادو میده

ایشالا که حل بشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط 3245
      سلام
      من درحال اموزش اندروید هستم،
      برای این کار، ویدیوهای ساخت کتاب رو خریدم، اما چون اطلاعاتم خیلی کمه،درک مطالب توی این ویدئو سخته برام
      میخواستم اگرممکنه دوستان کلیپی پیشنهاد بدن که سبک تر باشه و بیشتر به مباحث پایه بپردازه، البته خیلی هم نخواد از صفر شروع کنه که خسته کننده میشه...
      طوری باشه پروژه محور باشه اما پروژه سبکی باشه.
       
      ممنون.
       
       
    • توسط Zeynab Tri
      سلام. دوستان بنده یک عدد تازه کار در برنامه نویسی اندروید هستم و نمیدونم این ارور رو چطور حل کنم. ممنون میشم اگر کسی میتونه من رو راهنمایی کنه.عکسش رو گذاشتم.

    • توسط Farzad Sarseifi
      آموزش پیاده سازی دیتابیس اندروید همراه با مثال عملی
      در این اموزش میتوانید یک دیتابیس اندروید ایجاد کنید که توانایی افزودن اطلاعات،ویرایش اطلاعات ،حذف و لیست گیری اطلاعات باشید.
       
      ابتدا  یک کلاس برای ایجاد SqliteopenHelper دیتایس و جداول ایجاد میکنیم و متدهای مورد نظر را نیز در ادامه مینویسیم
      import java.util.ArrayList; import java.util.HashMap; import java.util.Hashtable; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.DatabaseUtils; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase; public class DBHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "MyDBName.db"; public static final String CONTACTS_TABLE_NAME = "contacts"; public static final String CONTACTS_COLUMN_ID = "id"; public static final String CONTACTS_COLUMN_NAME = "name"; public static final String CONTACTS_COLUMN_EMAIL = "email"; public static final String CONTACTS_COLUMN_PHONE = "phone"; private HashMap hp; public DBHelper(Context context) { super(context, DATABASE_NAME , null, 1); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL( "create table contacts " + "(id integer primary key, name text,phone text,email text)" ); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub db.execSQL("DROP TABLE IF EXISTS contacts"); onCreate(db); } public boolean insertContact (String name, String phone, String email) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("name", name); contentValues.put("phone", phone); contentValues.put("email", email); db.insert("contacts", null, contentValues); return true; } public Cursor getData(int id) { SQLiteDatabase db = this.getReadableDatabase(); Cursor res = db.rawQuery( "select * from contacts where id="+id+"", null ); return res; } public int numberOfRows(){ SQLiteDatabase db = this.getReadableDatabase(); int numRows = (int) DatabaseUtils.queryNumEntries(db, CONTACTS_TABLE_NAME); return numRows; } public boolean updateContact (Integer id, String name, String phone, String email) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("name", name); contentValues.put("phone", phone); contentValues.put("email", email); db.update("contacts", contentValues, "id = ? ", new String[] { Integer.toString(id) } ); return true; } public Integer deleteContact (Integer id) { SQLiteDatabase db = this.getWritableDatabase(); return db.delete("contacts", "id = ? ", new String[] { Integer.toString(id) }); } public ArrayList<String> getAllCotacts() { ArrayList<String> array_list = new ArrayList<String>(); //hp = new HashMap(); SQLiteDatabase db = this.getReadableDatabase(); Cursor res = db.rawQuery( "select * from contacts", null ); res.moveToFirst(); while(res.isAfterLast() == false){ array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME))); res.moveToNext(); } return array_list; } }  
      سپس واسط کاربری گرافیکی Layout را طراحی میکنیم  activity_main.xml
      <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="wrap_content" tools:context=".MainActivity" > <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="370dp"> <EditText android:id="@+id/editTextName" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="text" > </EditText> <EditText android:id="@+id/editTextEmail" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="22dp" android:ems="10" android:inputType="textEmailAddress" /> <EditText android:id="@+id/edit_phone" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="28dp" android:text="@string/save" /> </LinearLayout> </ScrollView>
      برای ذخیره اطلاعات در دیتابیس.میبایستی در اکتیویتی دیتابیس را new کنید تا بتوانید که اطلاعات را در دیتابیس فراخوانی کنید
      افزودن اطلاعات :
      public class MainActivity extends AppCompatActivity { DBHelper mydb; EditText editTextName,editTextEmail,edit_phone; Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextName=(EditText)findViewById(R.id.editTextName); editTextEmail=(EditText)findViewById(R.id.editTextEmail); edit_phone=(EditText)findViewById(R.id.edit_phone); button1=(Button)findViewById(R.id.button1); mydb = new DBHelper(this); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String name=editTextName.getText().toString(); String email=editTextEmail.getText().toString(); String phone=edit_phone.getText().toString(); mydb.insertContact(name,email,phone); } }); }  
      بزودی آموزش تکمیل میگردد.
       
      دوره آموزشی اندروید
      http://android-learn.ir/online-learning/android-development-training/guruPrograms/1-android-programming/2-programming-mobile-applications-for-android
       
       
       
       
       
       
       
    • توسط elecomco
      وقتی شما یک اپلیکیشن اندروید درست می کنید، باید یه جوری بفهمید که آیا برنامه ای که ساخته اید درست کار می کند یا نه؟ در این مقاله می خواهیم شما را با نحوه اشکال زدایی پروژه با ADB اندروید استودیو آشنا کنیم.   
      اجرا و اشکال زدایی یا دیباگ اپلیکیشن در یک دستگاه سخت افزاری با ADB اندروید 
      یکی از مسائل مهم بعد از ساخت برنامه اندروید، این است که همیشه قبل از انتشار اپلیکیشن برای کاربران، برنامه را بر روی یک دستگاه واقعی آزمایش کنید. به همین منظور در این مقاله می خواهیم شما را با نحوه تنظیم محیط توسعه اندروید یا همان پلتفرم اندروید استودیو (Android Studio) و دستگاه اندروید برای آزمایش و اشکال زدایی از طریق اتصال ( Android Debug Bridge  (ADB آشنا کنیم.
      Android Debug Bridge که با نام ADB اندروید یا پل اشکال زدایی اندروید نیز شناخته می شود یک ابزار تحت خط فرمان جهت ارتباط و کنترل شبیه ساز (Emulator) یا دستگاه اندرویدی متصل به سیستم است و دستورات کاربردی متعددی نظیر نصب برنامه بر روی محیط شبیه ساز ، دسترسی به فایل های مستقر بر روی شبیه ساز و … را برای برنامه نویس فراهم می کند تا بتواند اپلیکیشن خود را تست و اشکال زدایی کند.
      با استفاده از شبیه ساز اندروید (Android emulator)، می توانید برنامه خود را در نسخه های مختلف دستگاه های اندرویدی  با اندازه های مختلف صفحه نمایش آزمایش کنید.
      تنظیم دستگاه برای توسعه اپلیکیشن اندروید ساخته شده 
      قبل از شروع اشکال زدایی در دستگاه، چند کار وجود دارد که باید انجام دهید:
      Settings اپلیکیشن را باز کنید. سپس گزینه Developer options را انتخاب کنید. در نهایت USB debugging را انتخاب کنید. سیستم خود را برای شناسایی دستگاه خود تنظیم کنید. macOS: به تنظیمات اضافی لازم نیست. Ubuntu Linux: برای نصب پکیج adb از apt-get install استفاده کنید. این مجموعه ای پیش فرض از قوانین udev با حفظ جامعه برای همه دستگاه های اندروید را به شما می دهد. اطمینان حاصل کنید که در گروه plugdev هستید. اگر پیام خطای زیر را مشاهده کردید ، adb شما را در گروه plugdev پیدا نکرد:
      error: insufficient permissions for device: udev requires plugdev group membership از idاستفاده کنید تا ببینید چه گروه هایی در آن هستید. از  sudo usermod -aG plugdev $LOGNAME استفاده کنید تا خود را به گروه plugdev اضافه کنید.
      مثال زیر نحوه نصب بسته ابزارهای Android adb را نشان می دهد.
      error: insufficient permissions for device: udev requires plugdev group membership ویندوز: درایور USB را برای ADB نصب کنید. Chrome OS: به پیکربندی اضافی لازم نیست. به دستگاه خود متصل شوید 
      هنگامی که به USB تنظیم و وصل شده اید، می توانید بر روی Run در اندروید استودیو (Android Studio) کلیک کنید تا برنامه خود را روی دستگاه ایجاد و اجرا کنید.
      برای صدور دستورات همچنین می توانید از ADB اندروید استفاده کنید:
      تأیید کنید که دستگاه شما با اجرای دستور adb devices از فهرست  android_sdk/platform-tools/ متصل است. در صورت اتصال، دستگاه ذکر شده را مشاهده خواهید کرد. برای هدف قرار دادن دستگاه خود ، هر  adb command  را با فلگ -d صادر کنید. عیب یابی اتصال دستگاه با Connection Assistant
      Connection Assistant دستورالعمل های گام به گام برای کمک به شما در تنظیم و استفاده از دستگاه از طریق اتصال ADB فراهم می کند.
      برای شروع Tools > Connection Assistant را انتخاب کنید.
      Connection Assistant دستورالعمل ها، کنترل های in-context و لیستی از دستگاه های متصل را در یک سری صفحه در پنل Assistant ارائه می دهد. از دکمه های Next و Previous در پایین پنل Assistant استفاده کنید تا در صورت لزوم از طریق صفحات استفاده کنید:
      دستگاه خود را از طریق USB متصل کنید: Connection Assistant با این کار از شما خواسته می خواهد که دستگاه خود را از طریق USB متصل کنید و یک دکمه Rescan USB را فراهم می کند که با استفاده از آن می توانید اسکن جدیدی را برای دستگاه های متصل آغاز کنید. فعال کردن اشکال زدایی USB: ابزار Connection Assistan به شما می گوید چگونه می توانید USB را در گزینه های on-device developer فعال کنید. راه اندازی مجدد سرور ADB اندروید: سرانجام، اگر هنوز دستگاه خود را در لیست دستگاه های موجود نمی بینی، می توانید از دکمه Restart ADB server در آخرین صفحه Connection Assistan استفاده کنید. راه اندازی مجدد سرور ADB همچنین باعث می شود ADB اندروید دوباره دستگاه ها را اسکن کند. اگر هنوز دستگاه خود را در لیست دستگاههای موجود نمی بینید، مراحل عیب یابی را در قسمت بعدی این صفحه امتحان کنید. مشکلات اتصال USB را برطرف کنید
      اگر Connection Assistan دستگاه شما را از طریق USB تشخیص نمی دهد، می توانید مراحل عیب یابی زیر را برای حل این مشکل امتحان کنید:
      بررسی کنید که اندروید استودیو بتواند به Android Emulator متصل شود.
      برای بررسی اینکه آیا این مسئله به دلیل وجود مشکل اتصال بین Android Studio و Android Emulator ایجاد شده است ، این مراحل را دنبال کنید:
      AVD Manager را باز کنید. اگر قبلاً آنرا ندارید ، یک AVD جدید ایجاد کنید. شبیه ساز را با استفاده از AVD خود اجرا کنید. یکی از موارد زیر را انجام دهید: اگر اندروید استودیو (Android Studio) نمی تواند به شبیه ساز متصل شود ، آخرین ابزارهای Platform SDK را دانلود کنید و دوباره امتحان کنید. اگر شبیه ساز با موفقیت شروع شد ، کابل USB را بررسی کنید. کابل USB را بررسی کنید
      برای بررسی اینکه آیا مشکل ناشی از کابل USB معیوب ایجاد شده است ، مراحل موجود در این بخش را دنبال کنید.
      اگر کابل USB دیگری دارید:
      دستگاه را با استفاده از کابل ثانویه وصل کنید. بررسی کنید آیا دستیار اتصال اکنون می تواند دستگاه را تشخیص دهد یا خیر. اگر دستگاه شناسایی نشد ، کابل اولیه را دوباره امتحان کنید. اگر دستگاه هنوز شناسایی نشده است ، فرض کنید که مشکل دستگاه است و بررسی کنید که دستگاه برای توسعه تنظیم شده است یا خیر. اگر کابل USB دیگری ندارید اما دستگاه Android دیگری دارید:
      دستگاه ثانویه را به رایانه متصل کنید. اگر دستیار اتصال می تواند دستگاه ثانویه را تشخیص دهد ، فرض کنید که مشکل دستگاه اصلی است و بررسی کنید که آیا دستگاه برای توسعه تنظیم شده است یا خیر.
      اگر دستگاه ثانویه شناسایی نشود ، ممکن است مشکل در کابل USB باشد. بررسی کنید که دستگاه برای توسعه تنظیم شده است یا خیر 
      برای بررسی اینکه آیا مشکل ناشی از تنظیمات دستگاه ایجاد شده است ، این مراحل را دنبال کنید:
      مراحل موجود در بخش تنظیم دستگاه برای توسعه را دنبال کنید.  اگر این مشکل را برطرف نکرد، برای کمک به پشتیبانی مشتری OEM دستگاه تماس بگیرید. به نماینده پشتیبانی مشتری بگویید که دستگاه با استفاده از ADB به Android Studio وصل نخواهد شد. کلید امنیتی RSA 
      وقتی دستگاهی را اجرا می کنید که دارای سیستم عامل Android 4.2.2 (سطح API 17) یا بالاتر است، سیستم از طریق کادر محاوره ای به شما نشان می دهد که آیا می خواهید یک کلید RSA را بپذیرید که امکان اشکال زدایی از طریق این رایانه را بپذیرد یا خیر. این مکانیسم امنیتی از دستگاههای کاربر محافظت می کند زیرا تضمین می کند اشکال زدایی USB و سایر دستورات adb را نمی توان اجرا کرد مگر اینکه شما قادر به باز کردن قفل دستگاه و تأیید این پیام باشید.
  • فایل

×
×
  • اضافه کردن...