1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

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

شروع موضوع توسط minaaa ‏10/2/14 در انجمن اندرویید

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید: قسمت اول مقدمه[/h]

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

    اهداف آموزشی این قسمت عبارتند از:
    1. معرفی سیستم عامل اندروید
    2. معرفی تاریخچه اندروید
    3. معرفی کنسرسیوم توسعه اندروید
    4. آشنایی با زبان برنامه نویسی اندروید
    5. معرفی نسخه های مختلف اندروید
    6. آشنایی با محیط برنامه نویسی اکلیپس
    7. آشنایی با نسخه ADT Bundle محیط برنامه نویسی اکلیپس
    8. آشنایی با محیط برنامه نویسی اندروید استودیو شرکت گوگل
    9. آشنایی با محیط برنامه نویسی Beacon Mountain شرکت اینتل

    ادامه مطلب را از دست ندهید.
    [h=3]معرفی سیستم عامل اندروید[/h]
    سیستم عامل اندروید(که گاهی آندروید هم در زبان فارسی تلفظ می شود) به منزله اولین سیستم عامل جامع و کامل موبایل است که به صورت Open Source منتشر شده است(به طور خلاصه Open Source به شرایطی گفته می شود که چیزی به صورت رایگان در دسترس همگان قرار گیرد که نه تنها بتوانند از آن استفاده کنند بلکه بتوانند بسته به نیازهای خود تغییراتی هم در آن ایجاد نمایند). ​
    [h=3]تاریخچه اندروید[/h]
    این سیستم عامل در ابتدا توسط آقای اندی روبین مدیر عامل شرکت اندروید و همکارانش طراحی شد و در سال 2005 شرکت گوگل این شرکت را خریداری کرد. کلمه اندروید به معنی روبات انسان نما است و شاید علت این وجه تسمیه هم علاقه زیاد آقای روبین به روبات ها بوده است. در نوامبر سال 2007 گروهی از تولید کنندگان مطرح تجهیزات الکترونیکی همچون موبایل و تجهیزات بی سیم به علاوه یکسری از شرکت ها نرم افزاری که از آن جمله می توان به گوگل اشاره کرد که در ابتدا 34 شرکت بودند و سال به سال به تعداد اعضا افزوده شد، در کنار یکدیگر جمع شده و کنسرسیومی را تشکیل دادند که هدف آن ایجاد یک سیستم عامل موبایل Open Source بود تا از این طریق بتوانند هزینه های تولید اپلیکیشن های موبایل را کاهش دهند. در حقیقت از آنجا که شرکت گوگل در این کنسرسیوم رویکردی نرم افزاری داشت و از سوی دیگر صاحب اصلی این سیستم عامل هم محسوب می شد، از این رو به عنوان رهبر اصلی این سیستم عامل جدید انتخاب گردید.

    برای این منظور این کنسرسیوم که Open Handset Alliance نام داشت چیزی تحت عنوان SDK که در برگیرنده ابزارهای نرم افزاری مورد نیاز برای توسعه اپلیکیشن های اندروید بود را منتشر کرد( در واقع SDK مخفف واژگاه Software Development Kit به معنی پیکیج توسعه نرم افزار می باشد). از سوی دیگر سایت Android Developers توسط برنامه نویسان این شرکت گوگل همواره برای ارائه آخرین نسخه های SDK ، دانلود محیط های برنامه نویسی و همچنین مستندات این سیستم عامل به روز نگه داشته می شود. در سال 2007 بود که نسخۀ بتای سیستم عامل اندروید به بازار معرفی شد و در اکتبر سال 2008 اولین گوشی موبایل با سیستم عامل اندروید که T-Mobile G1 از شرکت HTC نام داشت روانه بازار شد. از آن سال به بعد شرکت های سازنده تلفن های همراه یکی پس از دیگری به این سیستم عامل روی آوردند و نه تنها تلفن های همراهی مجهز به این سیستم عامل طراحی کردند، بلکه ابزارهای الکترونیکی دیگری همچون تبلت، ساعت، کتاب خوان الکترونیک و حتی تلویزیون هم با این سیستم عامل طراحی کردند. ​
    [h=3]زبان برنامه نویسی سیستم عامل اندروید[/h]
    زبان برنامه نویسی اصلی این سیستم عامل زبان جاوا است که به عنوان پرکاربرد ترین زبان برنامه نویسی در دنیا است و به طور حتم علت انتخاب این زبان برنامه نویسی برای سیستم عامل اندروید این بوده است که جاوا بسیار قدرتمند بوده و در عین حال Open Source نیز می باشد(لازم به ذکر است در توسعه این سیستم عامل در دیگر زبان های برنامه نویسی مثل زبان سی و زبان سی پلاس پلاس نیز تا حدودی استفاده شده است).

    اما این بدان معنا نیست که برنامه نویسانی با تسلط به دیگر زبان های برنامه نویسی نمی توانند برای این سیستم عامل اپلیکیشن طراحی کنند. در حقیقت کسانیکه که به HTML5 و JavaScript تسلط دارند خواهند توانست برای این سیستم عامل اپلیکیشن های تحت وب طراحی کنند. از سوی دیگر برنامه نویسان سی و همچنین سی پلاس پلاس می توانند با استفاده از NDK که مخفف Native Development Kit است اقدام به توسعه اپلیکیشن های اندروید با استفاده از زبان های فوق الذکر نمایند.

    تسلط به زبان برنامه نویسی جاوا برای کسب نتیجه بهتر در این سری از آموزش های اندروید یک امر ضروری محسوب می شود و آشنایی با XML یک مزیت است. در ارتباط با زبان برنامه نویسی جاوا، یکی از منابعی که به علاقمندان به توسعه اندروید پیشنهاد می شود سری آموزش های زبان برنامه نویسی جاوا در سایت نردبان است. در ارتباط با XML بایستی گفت که در حد نیاز برای توسعه اپلیکیشن اندروید در این سری از آموزش ها مورد بحث قرار خواهد گرفت. ​
    [h=3]معرفی نسخه های مختلف اندروید[/h]
    نکته ای که در مورد نسخه های اندروید تا حدودی عجیب ولی در عین حال جالب توجه است این می باشد که نسخه های مختلف بر اساس نام دسرهای میان وعده نامگذاری شده اند. نسخه اول سیستم عامل اندروید که 1 بود نام خاصی نداشت و بیشتر کارایی اینترنتی داشت و در عمل توان رقابت با هیچ سیستم عاملی را نداشت. سپس نسخه 1.1 طراحی شد که مجدداً بدون نام انتشار یافت. نسخه 1.5 که Cupcake به معنی کیک فنجانی بود به منزله اولین نسخه دارای نام سیستم عامل اندروید است(برای درک بهتر معنی این واژه می توان کیک یزدی را متصور شد). نسخه 1.6 که Donut به معنی پیراشکی نام داشت پس از نسخه 1.5 انتشار یافت. نسخه بعدی که 2.0-2.1 بود Eclair یا نان خامه ای نام داشت. نسخه بعد که 2.2 بود تحت عنوان Froyo به معنی ماست یخی روانه بازار شد. سپس نسخه 2.3 تحت عنوان Gingerbread به معنی نان زنجبیلی معرفی شد.

    قدم بعدی اندروید بازار تبلت ها بود که برای همین منظور نسخه 3.0 تحت عنوان Honeycomb به معنی شانه عسل را معرفی کرد. سپس نسخه 4.0 که Ice cream Sandwich یا بستنی حصیری نام داشت تلفیقی از ویژگی های اندروید 3.0 که برای تبلت های طراحی شده بود به علاوه یکسری ویژگی های جدید بود که این نسخه برای کلیه تجهیزات اندرویدی از موبایل گرفته تا تبلت مورد استفاده قرار می گیرد. در زمان انتشار این سری از آموزش ها آخرین نسخه اندروید 4.3 است که Jelly Bean به معنی آب نبات پاستیلی است.

    نکته دیگری که در مورد نحوه نامگذاری نسخه های مختلف اندروید می بایست مد نظر قرار داده شود این است که نام دسرهای انتخابی بر اساس حروف الفبا پیش می روند. به طور مثال همانطور که در الفبای انگلیسی حرف D قبل از حرف E قرار می گیرد، نام انتخابی برای نسخه 1.5 معادل با Donut بود و پس از آن در نسخه 1.6 نام Eclair انتخاب شد(بر اساس حروف الفبا کلمه Donut پیش از کلمه Eclair قرار می گیرد). جهت آشنایی با تاریخچه و همچین قابلیت های هریک از نسخ اندروید به نمودار زیر توجه نمایید: ​
    [​IMG]
    [h=3]محیط برنامه نویسی اکلیپس[/h]
    به منظور شروع برنامه نویسی برای اندروید چند رویکرد متفاوت را می توان اتخاذ کرد که در این قسمت به طور خلاصه این محیط های برنامه نویسی را معرفی می کنیم.

    معروف ترین محیط برنامه نویسی برای توسعه اندروید محیط برنامه نویسی اکلیپس به همراه ابزارهای SDK وADT است. در واقع از آنجا که محیط برنامه نویسی اکلیپس Open Source است شرکت گوگل تمایل به مراتب بیشتری برای فراهم آوردن ابزارهای توسعه اندروید برای این محیط برنامه نویسی قدرتمند از خود نشان داده است(نحوه دانلود، نصب و کار با این محیط برنامه نویسی در آموزش هفتم به طور مفصل توضیح داده خواهد شد). ​
    [h=3]نسخه ADT Bundle محیط برنامه نویسی اکلیپس[/h]
    این محیط برنامه نویسی دقیقاً همان محیط برنامه نویسی اکلیپس است با این تفاوت که خود شرکت گوگل تغییراتی در آن صورت داده و آن را منتشر کرده است. این محیط برنامه نویسی بر خلاف اکلیپس که برای توسعه اندروید می بایست تنظیمات خاصی در آن انجام داد، در برگیرندۀ کلیه ابزارهای لازم برای توسعه اندروید از جمله SDK و ADT و Emulator بوده و کاربران دیگر نیازی به دانلود کردن این ابزارها به صورت مجزا نخواهند داشت. لازم به ذکر است توسعه دهندگانی که با نحوه کار با محیط برنامه نویسی اکلیپس آشنایی داشته باشند به راحتی خواهند توانست از این محیط هم در تولید اپلیکیشن اندروید استفاده کنند(نحوه دانلود و نصب این محیط برنامه نویسی در آموزش هفتم توضیح داده خواهد شد). ​
    [h=3]محیط برنامه نویسی اندروید استودیو[/h]
    اندروید استودیو (Android Studio) محیطی برای توسعه برنامه های اندرویدی است که برای اولین بار خود شرکت گوگل بر پایه محیط برنامه نویسی قدرتمندIntelliJ IDEA طراحی کرده است که همانند اکلیپس ابزارهای لازم برای طراحی، توسعه و مشکل یابی برنامه ها را داراست. اولین نسخه از اندروید استودیو در کنفرانس سالیانه گوگل که در اردیبهشت ماه سال 1391 اتفاق افتاد تحت عنوان نسخه1 معرفی شد(نحوه دانلود، نصب و کار با این محیط برنامه نویسی در آموزش پنجم به طور مفصل توضیح داده خواهد شد). ​
    [h=3]محیط برنامه نویسی Beacon Mountain[/h] شرکت معروف اینتل یک محیط برنامه نویسی جدید تحت عنوان Beacon Mountain ساخته که ادعا می کند این ابزار جدید این امکان را به توسعه دهندگان اندروید می دهد تا بتوانند با صرف زمان کمتر و نوشتن کد کمتر دست به توسعه اپلیکیشن های اندرویدی بزنند(از آنجا که این محیط برنامه نویسی تازه به بازار معرفی شده است و این احتمال می رود که دارای یکسری Bug باشد، از توضیح پیرامون نحوه کار با این نرم افزار خودداری می کنیم اما علاقمندان به تست کردن این برنامه می توانند با مراجعه به آدرس Beacon Mountain Beta for Android* این نرم افزار را به صورت رایگان دانلود نمایند).

    در این سری از آموزش ها از میان این محیط های توسعه اپلیکیشن اندروید تمرکز روی محیط برنامه نویسی اکلیپس خواهد بود و این در حالی است که نحوۀ نصب و کار با محیط برنامه نویسی اندروید استودیو نیز آموزش داده خواهد شد چرا که به نظر می رسد این محیط برنامه نویسی به عنوان تنها رقیب اصلی اکلیپس در آینده ای نه چندان دور مبدل خواهد شد.

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

    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
    1.طراح اصلی سیستم عامل اندروید چه کسی بود؟
    2. کنسرسیوم حامی سیستم عامل اندروید از چه شرکت هایی تشکیل می شود؟
    3.در نسخه های مختلف سیستم عامل اندروید از چه روش نامگذاری استفاده شده است؟
    4. نام نسخه های مختلف اندروید چیست؟
    5. از چه IDE هایی می توان برای توسعه اندروید استفاده کرد؟
     
  2. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش برنامه نویسی اندروید

    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید - قسمت ۲: آشنایی با اجزای تشکیل دهنده اندروید[/h]
    اهداف آموزشی این قسمت عبارتند از:
    1. آشنایی با ماشین مجازی، موتور جستجو، پردازنده عکس و بانک اطلاعاتی در اندروید
    2. معرفی Activity ها در اندروید
    3. معرفی Service ها در اندروید
    4. معرفی Content Provider ها در اندروید
    5. معرفی Broadcast Receiver ها در اندروید
    6. آشنایی با فایل Manifest مهم ترین فایل در توسعه اپلیکیشن اندروید

    پس از آشنایی با تاریخچه سیستم عامل اندروید در آموزش اول ، در این قسمت از آموزش قصد داریم تا ساختار و اجزای تشکیل دهنده این سیستم عامل محبوب را مورد بررسی قرار دهیم. ​
    ادامه مطلب را از دست ندهید.
    [h=3]اجزای تشکیل دهندۀ سیستم عامل اندروید[/h]
    سیستم عامل اندروید بر پایه سیستم عامل لینوکس طرح ریزی شده است و ماشینی مجازی در این سیستم عامل تحت عنوان Dalvik تعبیه شده است که برای دستگاه های موبایل بهینه سازی شده است. به طور خلاصه می توان گفت که این ماشین مجازی دارای وظایف متعددی از جمله مدیریت حافظه، سهولت در استفاده از Sandbox در تولید اپلیکیشن، فشرده سازی بیشتر اپلیکیشن و سازگاری با CPU های مختلف در انواع مختلف دستگاه ها بدون نیاز به بازنویسی اپلیکیشن برای هر CPU خاص می باشد(در آموزش سوم با مفهوم Sandbox بیشتر آشنا خواهیم شد).

    برای جستجو در اینترنت، سیستم عامل اندروید از موتور جستجوی Open Source یی تحت عنوان WebKit استفاده می کند. به منظور پردازش عکس های دو بعدی و سه بعدی، سیستم عامل اندروید از OpenGL ES استفاده می کند و برای ذخیره سازی اطلاعات از SQLite استفاده می کند.

    همانطور که در آموزش اول اشاره شده، زبان برنامه نویسی اصلی سیستم عامل اندروید جاوا است. در واقع پس تکمیل یک اپلیکیشن اندروید، این اپلیکیشن در قالب یک فایل با پسوند apk که مخفف Android Package است Compile می شود که این فایل را می توان در بازارهای مختلفی همچون Google Play و غیره در اختیار علاقمندان قرار داد تا بتوانند با نصب آن از اپلیکیشن ها استفاده نمایند.

    به طور خلاصه یک اپلیکیشن اندروید از Component های مختلفی که در ادامه این آموزش به چهار مورد از اصلی ترین ها اشاره می شود، یک فایل Manifest و Resource های متفاوتی تشکیل می شود. در ادامه هر یک از این اجزا را مورد بررسی قرار خواهیم داد.

    برای ساخت یک اپلیکیشن اندروید چهار Component اصلی وجود دارد که عبارتند از: Activity و Service و Content Provider و Broadcast Receiver. ​
    [h=3]معرفی Activity ها در اندروید[/h]
    در صورتیکه بخواهیم معنای یک Activity را در سیستم عامل اندروید به خوبی متوجه شویم، می توان آن را به منزله یک صفحه از اپلیکیشن تصور کرد. برای روشن شدن این مسئله مثالی ذکر می کنیم. فرض کنیم که یک اپلیکیشن را اجرا می کنیم. این اپلیکیشن پس از اجرا وارد صفحه اصلی برنامه می شود. این صفحه اصلی یک Activity است. حال می بینیم که چندین دکمه در این صفحه اصلی برای رفتن به بخش های مختلف برنامه تعبیه شده به طور مثال یک دکمه جهت صفحه راهنما، یک دکمه جهت ارتباط با طراح اپلیکیشن، یک دکمه جهت وارد شدن به موتور جستجو در اینترنت و غیره. زمانیکه ما پس از زدن دکمه راهنما وارد صفحه راهنما می شویم در واقع وارد یک Activity دیگر شده ایم. اکنون این Activity جدید Activity قبلی که مربوط به صفحه اصلی برنامه بود را پس زده و جای آن را می گیرد. در این حین اگر دکمه Back تلفن همراه خود را فشار دهیم، Activity قبلی مجدد بالا آمده و Activity مربوط به صفحه راهنما را پس می زند.

    اکنون ببینیم که یک Activity را به چه نحوی می توان ساخت. در حقیقت دو راه برای ساخت Activity ها در سیستم عامل اندروید وجود دارد: راه اول که به صورت دینامیک و پویا است با استفاده از برنامه نویسی جاوا می باشد و راه دوم با استفاده از XML است. روشی که در این سری از آموزش ها بیشتر مورد استفاده قرار خواهد گرفت، طراحی Activity ها با استفاده از XML است چرا که نه تنها این کار آسان تر است بلکه با پیروی از چنین رویکردی می توان کد های مربوط به GUI یا محیط گرافیکی را از کد های مربوط به نحوه عملکرد عناصر داخل این محیط گرافیکی که در زبان جاوا نوشته می شوند را از یکدیگر مجزا ساخت و این در حالی است که با اتخاذ چنین رویکردی Debug کردن اپلیکیشن ما هم به مراتب آسان تر خواهد شد. ​
    [h=3]معرفی Service ها در اندروید[/h]
    دومین Component که از میان دیگر Component های از اهمیت بسزایی برخوردار است Service است. در حقیقت در پروسه طراحی اپلیکیشن اندروید Service به اجرای عملیاتی اطلاق می شود که خارج از دید کاربر رخ می دهند که ممکن است این دسته از عملیات خواه برای مدت زمان کوتاهی صورت پذیرند و خواه برای مدت زمان طولانی تری اجرا گردند. نکته ای که در مورد Service ها جالب است این است که این دسته از Component ها دارای هیچ گونه GUI یی نمی باشند و در Background برنامه اجرا می شوند. برای روشن شدن مطلب مثالی ذکر می کنیم. فرض کنیم که در حین اس ام اس دادن به یکی از دوستان خود تمایل داریم تا به آهنگ مورد علاقه مان نیز گوش فرا دهیم. در حقیقت زمانیکه موسیقی در حال پخش شدن است و ما اقدام به اس ام اس دادن می کنیم ما هیچ اثری به جزء صدای آهنگ نخواهیم دید و این همان خاصیت Service ها است که گفته می شود در پس زمینه اپلیکیشن یا Background اتفاق می افتند.

    نکته دیگری که در مورد Service ها می بایست مد نظر قرار دهیم این است که Service ها مجزا از Activity هایی که آن ها را اجرا می کنند می توانند به کار خود ادامه دهند. فرض کنیم که یک Activity داریم که دارای یک دکمه Play است. با زدن این دکمه پخش موسیقی آغاز خواهد شد و این در حالی است که اگر این Activity را ببندیم و یا یک Activity دیگر جای این Activity را بگیرد، Service یی که وظیفه داشت پخش موسیقی را اجرا کند می تواند به کار خود ادامه دهد. ​
    [h=3]معرفی Content Provider ها در اندروید[/h]
    جایگاه سوم در میان Component ها را Content Provider ها به خود اختصاص داده اند. وظیفه ای که بر عهده این گروه از Component ها گذاشته شده است، ذخیره سازی اطلاعات و قرار دادن اطلاعات ذخیره شده در اختیار دیگر اپلیکیشن ها می باشد. به طور خلاصه تنها راه به اشتراک گذاری داده ها میان اپلیکیشن های مختلف به کارگیری Content Provider ها می باشد. چنانچه ما داده هایی داشته باشیم و بخواهیم این داده ها را در دسترس دیگر بخش های اپلیکیشن خود قرار دهیم، به سادگی می توانیم یک Content Provider ایجاد کرده و مابین بخش هایی که می خواهند از آن استفاده کنند ارتباطی برقرار سازیم. تعدادی از این Content Provider ها از پیش در سیستم عامل اندروید تعبیه شده اند که از آن جمله می توان به Contact و Media اشاره کرد. به طور مثال اگر بخواهیم در اپلیکیشنی به لیست شماره های تلفن همراه خود دسترسی پیدا کنیم، صرفاً نیاز است تا ارتباطی مابین اپلیکیشن خود و Content Provider مرتبط با Contact سیستم عامل اندروید برقرار سازیم. ​
    [h=3]معرفی Broadcast Receiver ها در اندروید[/h]
    آخرین Component تحت عنوان Broadcast Receiver این وظیفه را دارا است تا به هشدارهایی که در سطح کل سیستم بوجود می آیند پاسخ دهد. همانند Service ها Broadcast Receiver ها نیز دارای هیچ گونه GUI یی نمی باشند(عبارت GUI مخفف واژگان Graphical User Interface به معنی رابط گرافیکی کاربر می باشد). برای روشن شدن وظیفه Broadcast Receiver ها به مثالی اکتفا می کنیم. فرض کنیم می خواهیم برنامه ای بنویسیم که زمانیکه انرژی باطری تلفن همراه ما به 30 درصد رسید به ما هشدار دهد. این هشداری که به محض رسیدن انرژی تلفن همراه به 30 درصد روی صفحه تلفن مشاهده می شود یک نوع Broadcast Receiver می باشد. ​
    [h=3]آشنایی با فایل Manifest اندروید[/h] پس از آشنایی با چهار Component اصلی سیستم عامل اندروید، اکنون به بررسی یکی از مهم ترین فایل ها در ساخت یک اپلیکیشن اندرویدی که همان فایلManifest است می پردازیم. هر اپلیکیشن و یا بازی اندرویدی می بایست دارای فایلی تحت عنوان AndroidManifest.xml در دایرکتوری اصلی خود که همان Root Directory است باشد(به حروف کوچک و بزرگ در نام این فایل توجه کنید). کاری که این فایل انجام می دهد این است که اطلاعاتی کلی پیرامون اپلیکیشن یا بازی طراحی شده به سیستم اندروید می دهد. به عبارت دیگر، این فایل Component هایی را که ما در برنامه خود مورد استفاده قرار داده ایم را به سیستم عامل اندروید معرفی می کند. از سوی دیگر این فایل Permission ها یا مجوزهایی که کاربر برای نصب برنامه می بایست صادر کند را نیز در بر می گیرد. فرض کنیم که برنامه ای طراحی کرده ایم که نیاز به دسترسی به اینترنت دارد. حال اگر کسی بخواهد این برنامه طراحی شده توسط ما را مورد استفاده قرار دهد، در حین نصب اجازه دسترسی به اینترنت از آن کاربر توسط اپلیکیشن گرفته خواهد شد.

    همانطور که در آموزش اول توضیح داده شد، سیستم عامل اندروید دارای نسخه های مختلفی است. چنانچه ما برنامه ای طراحی کنیم که برای مثلا نسخه Gingerbread یا نسخه 3.0 طراحی شده باشد، این مسئله در فایل Manifest ذکر خواهد شد و چنانچه کاربری که سیستم عامل اندروید وی پایین تر از نسخه 3.0 باشد بخواهد برنامه طراحی شده ما را استفاده کند در حین نصب فایل Manifest این مسئله را خواهد فهمید و از نصب برنامه جلوگیری به عمل خواهد آورد.

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

    در قسمت آموزشی سوم با تفاوت مابین Platform Level و API Level و همچنین امنیت در سیستم عامل اندروید آشنا خواهیم شد.

    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
    1. سیستم عامل اندروید از کدام Component های اصلی تشکیل شده است آنها را نام برده و وظیفه هر کدام را توضیح دهید؟
    2. مهم ترین فایل یک اپلیکیشن اندرویدی چه نام دارد و این فایل چه وظیفه ای بر عهده دارد؟
     
  3. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش برنامه نویسی اندروید

    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید - قسمت ۳: آشنایی با API های اندروید[/h]
    اهداف آموزشی این قسمت عبارتند از:
    1. آشنایی با تفاوت مابین Platform Level و API Level
    2. معرفی جدول تطبیقی Platform Level و API Level
    3. آشنایی با دیگر API های به کار گرفته شده در دستگاه های اندرویدی
    4. معرفی امنیت در سیستم عامل اندروید
    5. آشنایی با Sandbox اندروید
    6. معرفی Permission ها یا صدور مجوز ها در اپلیکیشن های اندرویدی
    7. آشنایی با رویکرد آموزشی به کار گرفته شده در سری آموزش های اندروید


    ادامه مطلب را از دست ندهید.

    [h=3]آشنایی با Platform Level و API Level[/h] به طور کلی Platform level شماره ای است که در کنار هر یک از نام دسرها در نسخه های مختلف اندروید مورد استفاده قرار می گیرد و API level عددی است مربوط به API مورد استفاده قرار گرفته در هر یک از نسخه های اندروید به طوریکه شماره API level هر چه بالاتر رود این بدان معنا است که ما به قابلیت های بیشتری در توسعه اندروید دسترسی خواهیم داشت چرا که تیم برنامه نویسان گوگل بیشتر روی توسعه SDK کار کرده و ویژگی های بیشتری را از آن طریق در اختیار توسعه دهندگان قرار داده اند.

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

    نکته ای که در این رابطه می بایست همواره مد نظر قرار داده شود این است که هر چه سطح API بالاتر رود تلفن های همراه و تبلت های کمتری را به عنوان گروه هدف خود مد نظر قرار خواهیم داد چرا که معمولاً زمانی به طول خواهد انجامید تا تعداد کاربران یک نسخه جدید اندروید به حد قابل توجهی برسند.

    [h=3]جدول تطبیقی Platform Level و API Level[/h] در جدول زیر کلیه اطلاعات مرتبط با نام نسخه و شماره های مرتبط با Platform level و API level آمده است:

    [​IMG]
    اصطلاحی در توسعه اپلیکیشن های اندروید وجود دارد تحت عنوان Backward Compatibility به معنی سازگاری رو به عقب. به عبارت دیگر یک دستگاه تلفن همراه که دارای مثلاً سیستم عامل اندروید نسخه 2.0 یا Éclair باشد، اپلیکیشن های با نسخه اندروید 2.0 و یا پایین تر از آن را اجرا خواهد کرد. به نظر می رسد در حین توسعه اندروید انتخاب نسخه 2.0 یا 2.1 تحت عنوان Éclair به معنی نان خامه ای بخش عمده از کاربرانی که از تلفن های همراه را در بر خواهد گرفت.

    [h=3]دیگر API های به کار گرفته شده تلفن های اندرویدی[/h] علاوه بر API هایی که گوگل برای هر نسخه از سیستم عامل اندروید در نظر می گیرد، گروهی دیگر از API ها هستند که در خود تلفن همراه یا تبلت گنجانده شده و جدای از API های معرفی شده در هر نسخه از اندروید می باشند.

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

    [​IMG]
    همانطور که در تصویر فوق ملاحظه می شود منظور از Location Services قابلیت هایی همچون GPS و یا دیگر عملکرد های Wireless است. از دیگر API های گنجانده شده در تلفن همراه و یا تبلت می توان به Telephony Services اشاره کرد:

    [​IMG]
    در حقیقت Telephony Services در برگیرنده قابلیت هایی است که این امکان را به ما می دهند تا بتوانیم با استفاده از تلفن همراه اندرویدی خود شماره گرفته، تماس برقرار سازیم، به تماسی پاسخ دهیم و ...

    از دیگر API هایی که در این دسته قرار می گیرند می توان به Audio and Video اشاره کرد:

    [​IMG]
    در حقیقت API های مرتبط با Audio and Video این امکان را به کاربران اندروید می دهند تا فایل های صوتی و تصویری را با فرمتهای بسیار متنوعی من جمله MP3 را پخش نمایند.

    API ی دیگری که نیاز به معرفی دارد API ی مرتبط به Web Browser است:

    [​IMG]
    شاید بتوان گفت که یکی از جذابیت های اندروید برخورداری از قابلیت سرچ در اینترنت است که این کار با استفاده از API مرتبط با Web Browser در اختیار کاربران قرار داده شده است.

    به عنوان آخرین API از نمونه API های گنجانده شده در دستگاه های اندرویدی می توان به API ی مرتبط با Google Maps اشاره کرد:

    [​IMG]
    در حقیقت این API به منزله یکی از API های معروف تلفن ها و تبلت های اندرویدی است به طوریکه این امکان را به کاربران می دهد تا بتوانند از قابلیت های بسیار گسترده Google Maps من جمله مسیریابی استفاده کنند.

    [h=3]امنیت در سیستم عامل اندروید[/h] یکی از برگ های برندۀ سیستم عامل اندروید میزان امنیت بالا در این سیستم عامل است(البته به این موضوع خیلی هم نمی توان افتخار کرد چرا که آمار و ارقام حاکی از آنند که این سیستم عامل محبوب هدف اول هکرها است). در واقع از آنجا که اپلیکیشن های اندروید بدون اجازه کاربر و یا توسعه دهندۀ اپلیکیشن نمی توانند به دیگر اپلیکیشن ها دسترسی پیدا کنند، این مسئله موجب گردیده تا امنیت این سیستم عامل به مراتب ارتقاء یابد. برای درک بهتر این مسئله نیاز است تا با Sandbox آشنا شویم. معنی لغوی این واژه "گودال ماسه بازی" است. در حقیقت طراحان اندروید از این مفهوم استفاده کرده تا بتوانند هر اپلیکیشن اندروید را از دیگر اپلیکیشن ها مجزا سازند. به عبارت دیگر به طور پیش فرض هر اپلیکیشن اندروید در یک Sandbox جدای از دیگر Sandbox ها قرار دارد. حال اگر اپلیکیشن ما بخواهد به چیزهای خارج از Sandbox خود دسترسی پیدا کند، می بایست از کاربر Permission یا اجازه بگیرد.

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

    [h=3]رویکرد آموزشی[/h] در بحث آموزش از یک دید کلی می توان دو رویکرد متفاوت را اتخاذ نمود که یک رویکرد Deductive و دیگری رویکرد Inductive است که به ترتیب رویکرد "از کل به جزء" و رویکرد "از جزء به کل" ترجمه می شوند.

    در رویکرد از کل به جزء مثلاً در بحث آموزش اندروید مدرس دوره بدون توجه به جزئیات اقدام به کلی گویی کرده نوشتن یک اپلیکیشن را آغاز می نماید و توضیحاتی کلی پیرامون بخش های مختلف اپلیکیشن خواهد داد. مثلاً اینکه Service در سیستم عامل اندروید به چه معنا است خیلی از دید مدرس برای مخاطبین مهم نیست چرا که مثلاً در جلسه سی ام دوره به خوبی خواهند فهمید که یک Service چه کاری را در یک اپلیکیشن انجام خواهد داد. از سوی دیگر مدرس بیشتر ترجیح می دهد که مخاطبین وی به کشف روابط مابین مطالب تدریس شده بپردازند و گاهاً مدرس یکسری مسائل را به صورت پیش فرض تلقی می کند و حدس می زند که مخاطبین وی آن مسائل را می دانند و چنانچه فردی مسئله ای را متوجه نشد آن مسئله را برای وی توضیح خواهد داد.

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

    تجربه نشان داده است که افراد بزرگسال نسبت به افرادی کم سن و سال از Tolerance of Ambiguity به مراتب کم تری برخوردارند. واژه Tolerance به معنی "تحمل" است و واژه Ambiguity به معنی "ابهام" می باشد. به طور کلی می توان گفت که افراد بزرگسال چنانچه در شرایطی قرار بگیرند که مسئله ای برای ایشان مبهم باشد خیلی سریع تر از خردسالان انگیزه خود را از دست می دهند و این بی انگیزگی ممکن است به ترک کردن کاری در ایشان منتهی شود. اما کودکان بر خلاف بزرگسالان خود دارای Tolerance of Ambiguity بیشتری بوده و در صورتیکه در شرایطی قرار گیرند که مطلبی برای ایشان مبهم باشد و یا بر سر دوراهی قرار گیرند، به آن مطلب به شکل یک معما یا بازی نگاه کرده و سعی خواهند کرد آن را کشف کنند.

    حال با این توضیحات می توان گفت که رویکرد از کل به جزء برای کودکان مناسب تر بوده چرا که با روحیات ایشان سازگارتر است و این در حالی است که بزرگسالان با اتخاذ رویکردی از جزء به کل به مراتب بیشتر پیشرفت خواهند کرد(البته این یک قانون کلی نیست).

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

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

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

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

    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
    1. تفاوت مابین API Level و Platform Level چیست؟
    2. کدام API Level ها هستند که نام نسخه سیستم عامل اندروید آنها یکی است؟
    3. منظور از Sandbox چیست؟
    4. صدور اجازه برای انجام هر کاری در کدام فایل اپلیکیشن صورت می گیرد؟
    5. تفاوت مابین روش از کل به جزء با روش از جزء به کل چیست؟
    6. کدام روش برای آموزش بزرگسالان مناسب تر است و چرا؟
     
  4. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش برنامه نویسی اندروید

    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید - قسمت ۴: نحوه نامگذاری صحیح پکیج ها[/h]
    اهداف آموزشی این قسمت عبارتند از:
    1. آشنایی با علت به کارگیری پکیج ها در توسعه اندروید
    2. آشنایی با نحوه نامگذاری صحیح پکیج ها با ذکر مثال

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


    [h=3]علت به کارگیری و همچنین نحوه نامگذاری پکیج ها[/h] در زبان برنامه نویسی جاوا استفاده از Package راهی است که از آن طریق می توان کلاس های مرتبط با یکدیگر را سازماندهی کرد. در حقیقت کلاس هایی که در یک پکیج قرار می گیرند خواهند توانست به راحتی به یکدیگر دسترسی پیدا کنند. نحوه نامگذاری پکیج ها در جاوا به این شکل است که نام پکیج با نام دومین شرکت، سازمان و یا وب سایت شخصی آغاز می شود. به عبارت دیگر نام پکیج سلسله مراتبی است به این شکل که با کلی ترین نام که نام دومین است شروع می شود. سپس یک نقطه قرار می دهیم (در زبان جاوا فقط و فقط برای نامگذاری پکیج ها برای جدا سازی بخش های مختلف نام پکیج می توانیم از نقطه استفاده کنیم). حال نام اصلی وب سایت شرکت و یا سازمان و یا وب سایت شخصی را نوشته و مجدداً یک نقطه قرار می دهیم. پس از این نقطه نامی برای پکیج خود در نظر می گیریم. برای روشن تر شدن مطالب فوق پکیج پروژه خود را به این صورت زیر نامگذاری می کنیم:

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

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

    فرض کنیم که قرار است برنامه ای طراحی کنیم که اخبار روزانه را در اختیار کاربر قرار دهد. در این برنامه می خواهیم دو پکیج تعریف کنیم که یکی برای اخبار روزانه باشد و پکیج دیگر برای آرشیو خبرها باشد. اگر نامگذاری پکیج ها به صورت برعکس نباشد، نامی که برای پکیج مرتبط با اخبار روزانه خواهیم ساخت به شکل news.behzadmoradi.com بوده و پکیج مرتبط با آرشیو به صورت archive.behzadmoradi.com خواهد شد.

    در حقیقت اشکال این نوع نامگذاری در اینجا است که این ذهنیت القاء می شود که یک پکیج اصلی به نام news وجود دارد که زیر مجموعه آن پکیج behzadmroadi است و زیر مجموعه پکیج behzadmoradi پکیج com است. حال ببینیم اگر نحوه نامگذاری را به صورت برعکس انجام دهیم چه معنایی القاء خواهد شد. نام پکیج اول را به com.behzadmoradi.news و نام پکیج دوم را به com.behzadmoradi.archive تغییر می دهیم. این نامگذاری مسلماً با معنی تر خواهد بود چرا که در این صورت ما یک پکیج کلی به نام com داریم که زیر مجموعه اش پکیج دیگری به نام behzadmoradi است و زیر مجموعه behzadmoradi دو پکیج به نام های news و archive وجود دارد.

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

    فرض کنیم که دو شرکت مختلف طراح Library های اندرویدی هستند به طوریکه پکیج هایی می نویسند که دیگر برنامه نویسان صرفاً با Import کردن آن پکیج ها خواهند توانست سرعت طراحی اپلیکیشن خود را بالا ببرند و دیگر مجبور نباشند تا پکیجی را خود از اول بنویسندپ(در واقع Library به مجموعه کلاس هایی گفته می شود که با یکدیگر لینک بوده و کار خاصی را انجام می دهند). حال اگر هر دو شرکت در نحوه نامگذاری پکیج های خود از نام دومین خود استفاده نکنند، این احتمال وجود دارد که به صورت اتفاقی هر دو شرکت نام یکسانی را برای پکیج خود انتخاب کنند مثلاً هر دو نام package.news را برای پکیج مرتبط با اخبار روزانه انتخاب کرده و نام package.archive را برای پکیج مرتبط با آرشیو اخبار انتخاب کنند.

    اکنون ما در برنامه خود از این پکیج ها استفاده می کنیم اما نکته ای را که هرگز مد نظر قرار نداده ایم این است که در جایی از برنامه از پکیج package.news شرکت اول استفاده کرده و در جایی دیگر از پکیج package.archive شرکت دوم استفاده کرده ایم. از آنجا که ممکن است برخی کلاس های این پکیج ها با همدیگر ارتباط داشته باشند و ما به صورت ناخودآگاه این لینک را از بین برده ایم برنامه ما Crash خواهد کرد.

    اکنون ببینیم اگر نام این دو شرکت در نام پکیج ها گنجانده شود چه فایده ای خواهد داشت. فرض کنیم که نام شرکت اول ما companyone باشد و نام شرکت دوم ما companytwo باشد. حال شرکت companyone دو Library طراحی کرده است به نام های com.companyone.package.news و com.companyone.pakcage.archive و از سوی دیگر شرکت companytwo هم دو library به نام های com.companytwo.package.news و com.companytwo.package.archive طراحی کرده است. به طور خلاصه این نحوه نامگذاری به ما کمک خواهد کرد که اگر خواستیم در برنامه خود از این Library ها استفاده کنیم، دو Library یی را مورد استفاده قرار دهیم که از یک شرکت بوده و به عبارت دیگر با یکدیگر مرتبط می باشند.

    به عنوان نکته پایانی در مورد نحوه نامگذاری پکیج ها در اندروید بایستی گفت که چنانچه کسی دارای وب سایت شخصی نباشد می تواند به صورت فرضی نامی را برای خود در نظر بگیرد.

    در آموزش پنجم اقدام به آماده سازی محیط برنامه نویسی اندروید استودیو خواهیم کرد.

    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
    1. وظیفه پیکج ها چیست؟
    2. چرا در نام پیکج ها از آدرس دومین شرکت یا سازمان می بایست استفاده کرد؟
    3. منظور از یک Library چیست؟
     
  5. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش برنامه نویسی اندروید

    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید - قسمت ۵: آماده سازی محیط اندروید استودیو[/h]

    اهداف آموزشی این قسمت عبارتند از:
    1. روش نصب JDK جاوا
    2. معرفی محیط برنامه نویسی اندروید استودیو
    3. راهنمای دانلود محیط برنامه نویسی اندروید استودیو
    4. راهنمای تعریف مسیر جاوای نصب شده روی سیستم ویندوز 7

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

    [h=3]روش نصب جاوا[/h] به منظور توسعه اندروید حتماً بهJRE و JDK نیاز است که می توان آخرین نسخه آن ها را از این لینک دریافت نمود. (لازم به ذکر است چنانچه شما نسخه JDK نصب نمایید دیگر نیازی به نصب JRE نخواهید داشت چرا که JDK در برگیرنده JRE نیز می باشد.) از آنجا که دسترسی به سایت اوراکل برای کاربران ایرانی امکان پذیر نمی باشد، پیشنهاد می شود علاقمندان JDK جاوا را از دیگر منابع دانلود نمایند. برای مثال از سایت خانه اندروید ایران می توان پس از ورود به بخش مطالعه آموزش های رایگان، سپس کلیک کردن بر روی گزینه آماده کردن محیط برنامه نویسی به لینک دانلود JDK دست پیدا کرد.

    [h=3]اندروید استودیو[/h] اندروید استودیو (Android Studio) محیطی برای توسعه برنامه های اندرویدی است که برای اولین بار خود شرکت گوگل بر پایه محیط برنامه نویسی قدرتمند IntelliJ IDEA طراحی کرده است که همانند اکلیپس ابزارهای لازم برای طراحی، توسعه و مشکل یابی برنامه ها را داراست. اولین نسخه از اندروید استودیو در کنفرانس سالیانه گوگل که در اردیبهشت ماه سال 1391 اتفاق افتاد معرفی شد.

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

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

    [h=3]آماده سازی محیط برنامه نویسی اندروید استودیو[/h] از آنجا که شرکت گوگل دسترسی به سایت اختصاصی اندروید را برای کاربران ایرانی محدود کرده است و از سوی دیگر تنها مرجع رسمی برای دانلود رایگان اندروید استودیو نیز همین وب سایت است، به نظر می رسد که دانلود اندروید استودیو برای گروهی قابل توجهی از کاربران امکان پذیر نباشد. به هر حال علاقمندان می توانند برای دانلود مستقیم اندروید استودیو به آدرس https://developer.android.com/sdk/installing/studio.html مراجعه نموده و نسخه سازگار با سیستم عامل خود را دانلود نمایند.

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

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

    [h=3]تعریف مسیر جاوا (در ویندوز 7)[/h] ابتدا روی My Computer راست کلیک کرده و به بخش Properties می رویم. پنجره ای به شکل زیر مشاهده می شود:

    [​IMG]
    سپس روی گزینه Advance system settings همانطور که در تصویر فوق نشان داده شده است کلیک می کنیم و پنجره زیر مشاهده می شود:

    [​IMG]
    همانطور که در تصویر فوق مشاهده می شود از Tab های بالای پنجره Advanced را انتخاب کرده سپس در پنجره مربوط به Advanced در پایین پنجره گزینه Environment Variables که در تصویر با دایره قرمز رنگ مشخص شده است را کلیک می کنیم و پنجره زیر را مشاهده خواهیم کرد:

    [​IMG]
    در این پنجره دو بخش مجزا مشاهده می شود که بخش بالایی مربوط به User است و بخش پایینی مربوط به System می باشد. حال نیاز داریم تا در بخش System مسیر جاوا را مشخص نماییم. برای این منظور همانطور که در تصویر فوق مشاهده می شود گزینه New را کلیک کرده و پنجره زیر را مشاهده خواهیم کرد:

    [​IMG]
    در این پنجره در بخش Variable name می بایست JDK_HOME را بنویسیم (لازم است کلیه حروف بزرگ باشد و مابین دو کلمه JDK و HOME می بایست Underscore یا همان علامت _ قرار گیرد(برای تایپ Underscore نیاز است پیش از فشردن دکمه Dash کلید Shift را پایین نگه داریم). سپس نیاز است تا در بخش Variable value آدرس جایی که نسخه JDK جاوا نصب است را بنویسیم که این آدرس ممکن است در کامپیوترهای هر فرد متفاوت باشد. به طور مثال در سیستم بنده این آدرس در C:\Program Files\Java\jdk1.7.0_05 قرار دارد.

    برای پیدا کردن این آدرس به My Computer می رویم سپس گزینه Program Files را انتخاب می کنیم. داخل پوشه Program File پوشه ای تحت عنوان Java را پیدا می کنیم و روی آن کلیک می کنیم. در این مرحله تصویر زیر مشاهده خواهد شد:

    [​IMG]
    همانطور که در تصویر فوق مشاهده می شود، کلیه نسخه های نصب شدۀ جاوا روی سیستم عامل خود را مشاهده می کنیم. نکته ای که در اینجا توجه به آن حائز اهمیت است این است که ما می بایست آدرس نسخه JDK را کپی کنیم و چنانچه آدرس JRE را در پنجره قبل وارد کنیم ممکن است با مشکل مواجه شویم(لازم به ذکر است که نسخه JDK در برگیرنده نسخه JRE نیز می باشد. برای آشنایی بیشتر با JDK و JRE به آموزش برنامه نویسی جاوا در سایت نردبان قسمت اول مراجعه نمایید). در این مرحله روی نسخه ای از JDK که مد نظر ماست کلیک کرده و وارد پوشه آن می شویم(در اینجا بنده آخرین نسخه از JDK که نسخه 7 می باشد را مد نظر قرار داده ام). حال تصویر زیر مشاهده خواهد شد:

    [​IMG]
    اکنون برای آنکه بتوانیم آدرس این پوشه را پیدا کنیم، همانطور که در تصویر بالا با یک فلش قرمز رنگ مشاهده می شود یک بار مقابل نام jdk1.7 کلیک می کنیم و تصویر زیر را مشاهده خواهیم کرد:

    [​IMG]
    همانطور که در تصویر فوق مشاهده می شود آدرس JDK نصب شده روی سیستم عامل ما به رنگ آبی در خواهد آمد. در این مرحله با زدن دکمه های Ctrl و حرف C این آدرس را کپی می کنیم و به صورت زیر در پنجره مربوط به New System Variable که قبلاً نام JDK_HOME را در آن وارد کرده بودیم Paste می کنیم:

    [​IMG]
    اکنون کلید OK را می زنیم و به پنجره Environment Variables می گردیم. در این پنجره نیز مجدد کلید OK را می زنیم و به پنجره System Properties باز می گردیم و در این پنجره نیز کلیک OK را زده و با این کار تنظیمات آدرس جاوای نصب شده روی سیستم عامل خود را به پایان می رسانیم.

    اکنون پس از اجرای برنامه اندروید استودیو برنامه بدون هیچ مشکلی اجرا خواهد.

    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
    ۱- تفاوت مابین JRE و JDK چیست؟
    ۲-محیط برنامه نویسی اندروید استودیو بر پایه چه نرم افزاری نوشته شده است؟
    در آموزش آتی با نحوه ساخت اولین پروژه در محیط برنامه نویسی اندروید استودیو آشنا خواهیم شد.
     
  6. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش برنامه نویسی اندروید

    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید - قسمت ۶: اولین پروژه اندروید در محیط اندروید استودیو [با ویدیو][/h]
    اهداف آموزشی این قسمت عبارتند از:
    1. ساخت اولین پروژه در اندروید استودیو
    2. آشنایی با نحوه نامگذاری Activity ها در اندروید
    3. آشنایی با نحوه نامگذاری Layout ها در اندروید
    4. آشنایی با نحوه نصب فایل های Gradle در اندروید استودیو
    5. آشنایی با رفع مشکل نصب فایل های Gradle

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

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

    [h=3]ساخت اولین پروژه در اندروید استودیو[/h] برای اینکار روی گزینه New Project کلید می کنیم و پنجره ای به شکل زیر مشاهده خواهیم کرد:

    [​IMG]
    در این مرحله یکی از مهم ترین کارها در توسعه یک اپلیکیشن اندرویدی را انجام خواهیم داد. در واقع این مرحله از کار مبنایی خواهد بود برای این مسئله که اپلیکیشن ما از چه ویژگی هایی برخوردار خواهد بود و کدام نسخه های اندروید را پیشتیبانی خواهد کرد.

    در بخش Application name به معنی "نام اپلیکیشن" نامی برای اپلیکیشن خود در نظر می گیریم. در این مثال نام My First Android Project به معنی "اولین پروژه اندروید من" را وارد می کنیم(لازم به ذکر است رایج است که اولین حرف نام اپلیکیشن می بایست با حرف بزرگ نوشته شود). به محض وارد کردن نامی در بخش Application name مابقی جاهای خالی نیز به طور خودکار بر اساس نام انتخابی ما پر خواهند شد. به طور خلاصه نام ورودی در Application name نامی است که پس از نصب اپلیکیشن روی یک تبلت یا تلفن همراه در معرض دید کاربر قرار خواهد گرفت.

    در بخش Module name به معنی "نام ماژول" می بینیم که نام MyFirstAndroidProject وارد شده است. در حقیقت این همان نامی است که در بخش Application name وارد کردیم با این تفاوت که کلیه Space ها حذف شده اند. در واقع این نام نامی است که از آن طریق پروژه ما روی کامپیوتر ذخیره خواهد شد و در اندروید استودیو پروژه ما به این نام شناخته خواهد شد.

    در بخش Package name نام com.example.myfirstandroidproject به صورت خودکار وارد شده است اما این در حالی است که با این نام به هیچ وجه نخواهیم توانست به ادامه ساخت پروژه خود بپردازیم چرا که بخشی از این نام که com.example است حتماً بایستی با نامی دیگر جایگزین شود که در غیر این صورت اندروید استودیو از ما ایراد خواهد گرفت. برای رفع این مشکل نام فوق را به نام com.behzadmoradi.mainpackage تغییر می دهیم(جهت آشنایی بیشتر با نحوه نامگذاری پکیج ها به آموزش چهارم از سری آموزش های توسعه اندرووید مراجعه نمایید).

    در واقع مقابل Project location به معنی "محل ذخیره سازی پروژه" آدرسی که می خواهیم پروژه ما در آن ذخیره شود را می نویسیم. محیط برنامه نویسی اندروید استودیو به طور خودکار پروژه ما را در پوشه ای به نام AndroidStudioProjects در پوشه Users داخل درایو C ذخیره می سازد. چنانچه تمایل داشته باشیم می توانیم در درایو دیگری پوشه ای اختصاصی برای اپلیکیشن های خود در نظر بگیریم و کلیه پروژه های خود را در آنجا ذخیره سازیم. در این پروژه مکان پیش فرض را در نظر خواهیم گرفت.

    در بخش Minimum required SDK به معنی "حداقل SDK مورد نیاز" گزینه API 7: Android 2.1 (Éclair) را در این پروژه انتخاب می کنیم. این بدان معنا است که اپلیکیشن ما برای آنکه اجرا شود حداقل به API سطح 7 نیاز دارد به عبارت دیگر این اپلیکیشن روی تلفن همراهی اجرا خواهد شد که نسخه اندروید آن Éclair باشد(برای آشنایی بیشتر با نام ها و سطوح API اندروید به آموزش سوم مراجعه نمایید).

    در بخش Target SDK نیز گزینه API 7: Android 2.1 (Éclair) را انتخاب می کنیم. کاری که Target SDK انجام می دهد این است که به محیط برنامه نویسی اندروید استودیو دستور می دهد تا API سطح 7 را برای توسعه اپلیکیشن ما در نظر بگیرد(نام دیگر Target SDK در دیگر محیط های برنامه نویسی Build SDK می باشد). در واقع در بسیاری از برنامه ها از API های یکسانی هم برای Minimum SDK و Target SDK استفاده می شود. با انتخاب این گزینه این تضمین را ایجاد می کنیم که اپلیکشن طراحی شده در تلفن های همراهی با نسخه اندروید Éclair به خوبی کار خواهد کرد چرا که اندروید استودیو کلیه API های لازم را به صورت خودکار وارد برنامه ما خواهد کرد(نکته ای که در اینجا می بایست حتما مد نظر قرار داده شود این است که Target SDK به هیچ وجه نمی تواند از Minimum SDK کوچک تر باشد).

    در ادامه کار در بخش Compile with نسخه ای از API را مشخص خواهیم کرد که بر آن اساس برنامه ما Compile خواهد شد اما این در حالی است که محیط برنامه نویسی اندروید استودیو تنها یک گزینه را در اختیار ما خواهد گذاشت از این رو گزینه پیش را مد نظر قرار می دهیم.

    در بخش Theme قادر خواهیم خواهیم بود تا تم اپلیکیشن خود را مشخص کنیم. به عبارت دیگر خواهیم توانست تم هایی با طرح های روشن و تیره برای اپلیکیشن خود انتخاب کنیم اما از آنجا که در این آموزش قصد داریم تا یک اپلیکیشن ساده طراحی کنیم، گزینه None به معنی "هیچ کدام" را انتخاب می کنیم.

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

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

    گزینه Mark this project as a library این امکان را به ما می دهد تا پروژه های خود را تبدیل به Library هایی کنیم که این قابلیت را دارا هستند تا در دیگر برنامه ها مورد استفاده قرار گیرند. از آنجا که در این قسمت از آموزش به اینکار نیازی نیست، تیک این گزینه را نیز بر می داریم. در این مرحله پنجره مربوط به ساخت پروژه جدید می بایست به شکل زیر باشد:

    [​IMG]
    اکنون دکمه Next را زده و پنجره ای به شکل زیر مشاهده خواهیم کرد:

    [​IMG]
    در این پنجره، اندروید استودیو از ما می خواهد تا نمای ظاهری Activity یی برنامه را مشخص نماییم. از آنجا که در این آموزش قصد داریم تا پروژه ای ساده طراحی کنیم، گزینه اول تحت عنوان Blank Activity را انتخاب کرده و مجدداً دکمه Next را زده و وارد پنجره زیر می شویم:

    [​IMG]
    [h=3]نحوه نامگذاری Activity ها در اندروید[/h] همانطور که ملاحظه می شود می بایست در این مرحله در قسمت Activity Name نامی برای Activity خود در نظر بگیریم. نکته ای که در ارتباط با نام Activity ها همواره می بایست مد نظر قرار دهیم این است که نام آنها می بایست با حرف بزرگ شروع شود و چنانچه نام Activity ما بیش از یک کلمه بود می توان از ساختار camelCase استفاده کرد(برای آشنایی بیشتر با این اصطلاح علاقمندان می توانند به آموزش برنامه نویسی جاوا قسمت دهم در سایت نردبان مراجعه نمایند). همانطور که در تصویر فوق ملاحظه می شود اندروید استودیو به صورت خودکار نام MainActivity را به معنی Activity اصلی در نظر گرفته است. از آنجا که هر اپلیکیشن اندروید با یک Activity اولیه شروع می شود، بهتر است نام چنین Activity یی نامی گویا باشد. از این رو نام های MainActivity و Main و این دست نام ها پیشنهاد می شود. در این پروژه نام پیش فرض را مورد استفاده قرار خواهیم داد.

    [h=3]نحوه نامگذاری Layout ها در اندروید[/h] سپس در بخش Layout Name می بایست نامی را برای فایل XML خود که همان UI یا "رابط گرافیکی" اپلیکیشن ما است مشخص نماییم. نکته ای که در اینجا می بایست همواره مد نظر قرار دهیم این است که در نامگذاری Layout برنامه خود فقط می توانیم از حروف کوچک استفاده کنیم و چنانچه نام Layout ما از چند واژه تشکیل شده بود می توانیم از _ استفاده کنیم. به طور مثال در تصویر فوق نام activity_main به طور پیش فرض در نظر گرفته شده است که در این پروژه همین نام را مورد استفاده قرار خواهیم داد.

    در این مرحله کار تنظیمات اولیه به اتمام رسیده و می توانیم دکمه Finish را بزنیم.

    [h=3]نصب فایل های Gradle[/h] از آنجا که این اولین باری است که در محیط اندروید استودیو اقدام به ساخت یک پروژه جدید می کنیم، این نرم افزار اقدام به دانلود کردن پکیج Gradle از وب سایت مربوطه می کند و پنجره ای به شکل زیر را مشاهده خواهیم کرد:

    [​IMG]
    مدت زمان دانلود بستگی به سرعت اینترنت داشته و گاهاً ممکن است تا 5 الی 7 دقیقه هم به طول انجامد. در واقع پس از یک بار دانلود این پکیج در ساخت پروژه های آتی دیگر نیاز به اینکار نخواهد بود.

    [h=3]مشکل یابی نصب فایل های Gradle[/h] حال گاهی اوقات ممکن است در حین دانلود با پنجره ای به شکل زیر مواجه شویم:

    [​IMG]
    که در این صورت می بایست محیط برنامه نویسی اندروید استودیو را ببندیم و مجدداً آن را اجرا کرده و همانطور که در تصویر زیر مشاهده می شود پروژه ساخته شده را از طریق گزینه Open project از همان مسیری که در مرحله قبل برای ذخیره پروژه تعیین کرده بودیم پروژه خود را باز نماییم:

    [​IMG]
    چنانچه پس از اینکار مجدداً در نصب فایل های Gradle با مشکل مواجه شدیم می توانیم نوع Error را در سایت هایی همچون گوگل و Stack Overflow سرچ کردن و مشکل را رفع نماییم. در واقع مشکلاتی از این دست جزو همان Bug های نسخۀ بتای نرم افزارهای جدید الورود به بازار است.

    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
    1. چرا بایستی نام پکیجی که در حین ساخت پروژه به صورت خودکار ایجاد می شود را تغییر دهیم؟
    2. منظور از حداقل SDK مورد نیاز چیست؟
    3. منظور Target SDK چیست؟
    4. نحوه نامگذاری Activity ها به چه شکل است؟
    5. نحوه نامگذاری فایل های XML به چه شکل است؟
    به منظور مشاهده آموزش ویدیویی این قسمت از آموزش، به ویدیو زیر توجه نمایید:

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

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش برنامه نویسی اندروید

    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید - قسمت ۷: آماده سازی محیط اکلیپس برای توسعه[/h]
    اهداف آموزشی این قسمت عبارتند از:
    1. روش نصب JDK جاوا
    2. معرفی SDK و ADT اندروید
    2. دانلود ADT Bundle برای توسعه اندروید
    3. آموزش دانلود محیط برنامه نویسی اکلیپس و ابزار های مورد نیاز توسعه اندروید

    [h=3]روش نصب JDK جاوا[/h] به منظور توسعه اندروید حتماً بهJRE و JDK نیاز است که می توان آخرین نسخه آن ها را از این لینک دریافت نمود. (لازم به ذکر است چنانچه شما نسخه JDK نصب نمایید دیگر نیازی به نصب JRE نخواهید داشت چرا که JDK در برگیرنده JRE نیز می باشد.) از آنجا که دسترسی به سایت اوراکل برای کاربران ایرانی امکان پذیر نمی باشد، پیشنهاد می شود علاقمندان JDK جاوا را از دیگر منابع دانلود نمایند. برای مثال از سایت uncocoder می توان پس از ورود به بخش مطالعه آموزش های رایگان، سپس کلیک کردن بر روی گزینه آماده کردن محیط برنامه نویسی به لینک دانلود JDK دست پیدا کرد.

    [h=3]معرفی SDK و ADT اندروید[/h] در واقع با دانلود رایگان محیط برنامه نویسی اکلیپس از سایت آن و همچنین دانلود رایگان SDK اندروید که برای توسعه، تست و مشکل یابی اپلیکیشن های طراحی شده مورد استفاده قرار می گیرد و در نهایت دانلود رایگان پلاگین ADT که مخفف واژگان Android Development Tools به معنی ابزارهای توسعه اندروید است از اینجا خواهیم توانست برنامه نویسی اندروید را شروع کنیم.

    ادامه مطلب را از دست ندهید.

    به طور خلاصه، SDK در برگیرندۀ API های لازم و ضروری برای توسعه اندروید می باشد که توسط تیم برنامه نویسی گوگل طراحی شده اند. در واقع پس از دانلود رایگان SDK و نصب آن روی محیط برنامه نویسی اکلیپس، علاوه بر استفاده از API های جاوا که از طریق JDK در اختیار اکلیپس قرار می گیرند، به API های اختصاصی اندروید که با Syntax یا ساختار زبان برنامه نویسی جاوا نوشته شده اند نیز دسترسی پیدا نموده و از این طریق خواهیم توانست توسعه اندروید را آغاز نماییم. اما پیش از اینکار نیاز داریم تا ADT اندروید را نیز دانلود نموده و به محیط برنامه نویسی اکلیپس معرفی نماییم.

    در حقیقت نصب پلاگین ADT این امکان را به ما می دهد تا بتوانیم از طریق محیط برنامه نویسی اکلیپس و استفاده از API های موجود در SDK که برای توسعه اندروید تعبیه شده اند دست به طراحی اپلیکیشن اندروید بزنیم. از سوی دیگر این پلاگین دارای یک ابزار طراحی GUI است که با استفاده از آن خواهیم توانست بدون کدنویسی و صرفا با Drag and Drop به طور مثال به ایجاد یک دکمه بپردازیم(عبارت GUI مخفف واژگان Graphical User Interface به معنی رابط گرافیکی کاربر است).

    [h=3]دانلود ADT Bundle برای توسعه اندروید[/h] علاوه بر محیط برنامه نویسی اکلیپس، شرکت گوگل نسخه ای از نرم افزار اکلیپس را تحت عنوان ADT Bundle تولید کرده است که کلیۀ ابزارهای لازم برای توسعه اندروید از جمله خود محیط برنامه نویسی اکلیپس به علاوۀ SDK و ADT را دارا است. این محیط برنامه نویسی به هیچ وجه نیاز به نتظیمات خاصی نداشته و صرفاً با اجرای برنامه خواهیم توانست توسعه اندروید را شروع نماییم.

    برای دانلود این نرم افزار می بایست به سایت توسعه شرکت گوگل مراجعه نموده و این نرم افزار را به صورت کاملاً رایگان دریافت نمود ولی از آنجا که امکان دسترسی کاربران ایرانی به این وب سایت امکان پذیر نمی باشد، اکثر کاربران نخواهند توانست به سادگی ADT Bundle را دانلود کنند.

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

    [h=3]دانلود محیط برنامه نویسی اکلیپس و ابزارهای مورد نیاز برای توسعه اندروید[/h] نکته ای که در رابطه با آماده سازی محیط برنامه نویسی از اهمیت بسزایی برخوردار است آگاهی از این موضوع است کدام نسخۀ اکلیپس با کدام نسخۀ SDK بهترین هم خوانی را دارد. از سوی دیگر از آنجا که سایت رسمی اندروید اجازۀ استفاده کاربران ایرانی را از امکانات رایگان این سایت نمی دهد، بالتبع کاربران ایرانی نمی توانند SDK و ADT که برای توسعه اندروید لازم و ضروری است را دانلود کنند.

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

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

    [​IMG]
    پس از ورود به بخش مطالعه آموزش های رایگان، سپس کلیک کردن بر روی گزینه آماده کردن محیط برنامه نویسی می توان به لینک های دانلود دسترسی پیدا کرد(در تصویر زیر گزینه 5):

    [​IMG]
    علاقمندان علاوه بر دانلود نرم افزارهای مورد نیاز از آدرس فوق الذکر، می توانند طبق توضیحات موجود در همین آدرس تنظیمات مربوط به SDK و ADT و اکلیپس را انجام دهند. در حقیقت اولین گام برای آغاز توسعه اندروید مطمئن شدن از بابت این مسئله است که محیط برنامه نویسی ما بدون هیچ مشکلی نصب شده و آماده برنامه نویسی هستیم. از این رو چنانچه علاقمندی نتواند مرحله نصب محیط برنامه نویسی را با موفقیت پشت سر بگذارد، به هیچ وجه نخواهد توانست آموزش های آتی را ادامه دهد.

    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:

    1. کدامیک از نسخه های JDK و JRE در برگیرنده دیگری است؟
    2. وظیفه SDK چیست؟
    3. وظیفه ADT چیست؟
    4. اختصار GUI مخفف چه کلماتی است؟
    در آموزش هشتم نحوه ساخت اولین پروژه در محیط برنامه نویسی اکلیپس آموزش داده خواهد شد.
     
  8. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش برنامه نویسی اندروید

    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید - قسمت ۸: ساخت اولین پروژه در محیط اکلیپس[/h]
    اهداف آموزشی این قسمت عبارتند از:
    1. تعیین مسیر Workspace
    2. مراحل ساخت یک پروژه جدید

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

    ادامه مطلب را از دست ندهید.

    [h=3]تعیین مسیر Workspace[/h] محیط برنامه نویسی اکلیپس نیازی به نصب روی سیستم نداشته و صرفاً با کلیک کردن روی آیکون این نرم افزار خواهیم توانست آن را اجرا کنیم. پس از اجرای نرم افزار اکلیپس، این نرم افزار از کاربر می خواهد تا مسیری را به عنوان مسیر workspace روی هارد مشخص کند که از این پس این مسیر به عنوان مسیری خواهد بود که کلیه پروژه ها در آن ذخیره خواهند شد. پس از انتخاب مسیر با تصویر زیر رو به رو خواهیم شد:

    [​IMG]
    در حقیقت این صفحه Welcome Screen یا "صفحه خوشامدگویی" نرم افزار است. همانطور که در تصویر فوق با یک فلش قرمز رنگ نشان داده شده است، با کلیک کردن روی گزینه Workbench خواهیم توانست وارد صفحه اصلی نرم افزار شویم.

    [h=3]مراحل ساخت یک پروژه جدید[/h] در حقیقت برای ساخت یک پروژه جدید اپلیکیشن اندروید در محیط برنامه نویسی اکلیپس راه های متفاوتی وجود دارد. آسان ترین راه برای کلیک کردن روی گزینه ای است که در تصویر زیر نشان داده شده است:

    [​IMG]
    با قرار دادن نشانگر موس روی این گزینه عبارت Opens a wizard to help create a new Android project نشان داده خواهد شد(در تصویر فوق با خط قرمز نشان داده شده است). ترجمه تحت الفظی این عبارت "بازکردن پنجرۀ ساخت یک پروژه جدید اندروید" می باشد. پس از کلیک کردن روی این گزینه پنجره ای به شکل زیر مشاهده خواهد شد:

    [​IMG]
    در این پنجره در بخش Project Name می بایست نامی برای پروژه خود انتخاب نماییم. در حقیقت این نام به منزله نام اپلیکیشن ما نخواهد بود بلکه نامی است که از آن طریق پروژه ما در Workspace ذخیره خواهد شد. اکنون نام My First Android Project به معنی "اولین پروژه اندروید من" را مقابل Project Name می نویسیم. سپس می بایست یکی از سه گزینه موجود را انتخاب نماییم و از آنجا که قصد داریم یک پروژه جدید ایجاد کنیم، گزینه Create new project in workspace به معنی "ساخت پروژه جدید در workspace ایجاد شده" را انتخاب می کنیم. سپس با تیک دار کردن گزینه Use default location به معنی "استفاده از محل ذخیره سازی پیش فرض"، این دستور را به اکلیپس می دهیم که همان مسیری که در ابتدای نصب اکلیپس برای Workspace انتخاب کردیم را برای ذخیره سازی این پروژه نیز استفاده کند. در صورتیکه بخواهیم پروژه خود را در مسیر دیگری ذخیره سازیم، می توانیم تیک این گزینه را برداشته و مسیر جدید را وارد کنیم. حال می توانیم روی دکمه Next کلیک کنیم:

    [​IMG]
    همانطور که در تصویر فوق مشاهده می شود در این پنجره می بایست نوع Build Target را مشخص کنیم. به طور خلاصه منظور از Build Target همان نسخه ای از سیستم عامل اندروید است که قصد داریم اپلیکیشن خود را اختصاصاً برای آن نسخه طراحی کنیم. در این پروژه نسخه 2.1 را مد نظر قرار می دهیم. به عبارت دیگر کاربرانی که روی تلفن همراه ایشان نسخه 2.1 اندروید یا نسخه های پایین تر نصب باشد خواهند توانست از اپلیکیشن ما استفاده کنند. همانطور که قبلاً توضیح داده شد، هرچه از API های بالاتر مثلاً 4.1 استفاده کنیم به امکانات بیشتری در توسعه اندروید دسترسی خواهیم داشت اما این در حالی است که تعداد کاربران کمتری خواهند توانست از اپلیکیشن ما استفاده کنند چرا که مدت زمانی به طول خواهد انجامید تا تلفن های همراه موجود در دست کاربران با آخرین نسخه های سیستم عامل اندروید به روز رسانی شود.

    از سوی دیگر لیست API های موجود در این پنجره بسته به تعداد SDK هایی که در مرحله آماده سازی محیط برنامه نویسی اکلیپس دانلود می کنیم می تواند متفاوت باشد. به طور مثال در این نسخه از SDK که دانلود نموده ایم از نسخه های 1.1 و 1.6 و 3.2 به طور مثال خبری نیست. علت این مسئله هم به نظر می رسد این باشد که مدیر وب سایتی که ما SDK را در آموزش پیشین از آن دانلود کرده ایم ممکن است بر این باور باشند که تفاوت بسیار چندانی مابین نسخه های نزدیک به هم وجود ندارد(مثلاً مابین نسخه 2 و 2.1 ) و این در حالی است که باور ایشان کاملاً درست است.

    حال می توانیم روی دکمه Next کلیک کنیم:

    [​IMG]
    در این پنجره می بایست اطلاعات کلی اپلیکیشن خود را وارد نماییم. همانطور که در تصویر فوق مشاهده می شود بر اساس نامی که در مرحله پیش برای پروژه خود انتخاب نمودیم، جاهای خالی این پنجره پر شده اند. در بخش Application Name به معنی "نام اپلیکیشن" می بایست نامی که می خواهیم اپلیکیشن ما داشته باشد را وارد کنیم. به عبارت دیگر این همان نامی است که کاربران پس از نصب اپلیکیشن ما روی تلفن همراه خود خواهند دید. نام وارد شده را تغییر نداده به مرحله بعد می رویم. در بخش Package Name به معنی "نام پیکج" می بایست نامی برای پکیج اپلیکیشن خود انتخاب کنیم. در واقع هر اپلیکیشن حداقل از یک پکیج تشکیل شده است و کار این پکیج قرار دادن فایل های مرتبط به یکدیگر در اپلیکیشن ما در کنار یکدیگر است. در این پروژه بنده نام com.behzadmoradi.mainpackage را انتخاب می کنم. در واقع این نام بسته به شخص یا شرکتی که اپلیکیشن را طراحی می کند متفاوت است(برای آشنایی بیشتر با نحوه نامگذاری پیکج ها در توسعه اندروید به آموزش چهارم مراجعه نمایید).

    همانطور که در آموزش های پیشین توضیح داده شد، هر اپلیکیشن اندروید حداقل از یک Activity تشکیل شده است. در واقع با تیک زدن گزینه Create Activity به معنی "ساخت Activity جدید" می توانیم Activity اصلی که اپلیکیشن ما با آن شروع خواهد شد را در این مرحله بسازیم. به طول معمول این بخش هم توسط اکلیپس به طور پیش فرض برای ما پر می شود اما این در حالی است که این نام نه تنها طولانی است بلکه گویا هم نمی باشد، برای این منظور نام موجود را به نام MainActivity به معنی "یک Activity اصلی" تغییر می دهیم(برای آشنایی بیشتر با Activity ها به آموزش دوم مراجعه نموده و برای آشنایی بیشتر با نحوه نامگذاری Activity ها به آموزش ششم مراجعه نمایید).

    در بخش Minimum SDK به معنی "حداقل SDK مورد نیاز" عدد 7 به طور پیش فرض توسط خود اکلیپس وارد شده است. این بدان معنا است که اپلیکیشن ما برای آنکه اجرا شود حداقل به API سطح 7 نیاز دارد. به عبارت دیگر این اپلیکیشن روی تلفن همراهی اجرا خواهد شد که نسخه اندروید آن Éclair باشد(برای آشنایی بیشتر با نام ها و سطوح API اندروید به آموزش سوم مراجعه نمایید). در واقع این عدد با توجه به نوع نسخه اندروید که در مرحله پیش انتخاب کردیم انتخاب شده است. به عبارت دیگر از آنجا که ما نسخه 2.1 را انتخاب کردیم و API اندروید به کار گرفته شده در این نسخه API 7 است، از این رو عدد 7 وارد شده است. نکته ای که در اینجا می بایست حتما مد نظر داشته باشیم این است که API وارد شده در Minimum SDK نمی بایست از API متناظر با نسخه تعیین شده در مرحله پیش بزرگ تر باشد. به طور مثال از آنجا که در مرحله پیش نسخه 2.1 انتخاب شده است از این رو برای Minimum SDK نمی توانیم مثلاً API 15 را انتخاب کنیم(برای آشنایی بیشتر با API ها در توسعه اندروید به آموزش سوم مراجعه نمایید).

    اکنون مراحل ساخت اولین پروژه اندروید ما به پایان رسیده و می توانیم دکمه Finish را بزنیم.

    پس از زدن دکمه Finish به محیط اکلیپس بازگشته و پروژه ای تحت عنوان My First Android Project در بخش Package Explorer اکلیپس مشاهده خواهد شد:

    [​IMG]
    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:

    1. پروژه های ما در چه مکانی روی هارد ذخیره می شوند؟
    2. آیا نامی که در بخش Project Name وارد می کنیم با نامی که کاربران روی تلفن همراه خود می بینند یکی است ای خیر؟
    3. منظور از Build Target چیست؟
    4. منظور از Minimum SDK چیست؟

    در آموزش آتی به بررسی دو فولدر اول پروژه که همان فولدرهای src و gen می باشند خواهیم پرداخت.
     
  9. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش برنامه نویسی اندروید

    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید - قسمت ۹: بررسی فولدرهای src و gen[/h]
    اهداف آموزشی این قسمت عبارتند از:
    1. معرفی فولدر src
    2. نحوه ایجاد یک پکیج جدید
    3. معرفی فولدر gen و فایل R.java

    در این قسمت قصد داریم به بررسی تک تک اجزای تشکیل دهنده یک اپلیکیشن بپردازیم اما پیش از آن دانستن این نکته لازم است که هر اپلیکیشن دارای یکسری فولدر به صورت پیش فرض است که این فولدرها در تصویر ادامه مطلب قابل مشاهده می باشند...

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

    [h=3]معرفی فولدر src[/h] پس ساخت اولین پروژه اندروید در محیط برنامه نویسی اکلیپس در آموزش هشتم، در این قسمت قصد داریم به بررسی تک تک پوشه های تشکیل دهنده یک پروژه اپلیکیشن اندروید بپردازیم. برای این منظور پروژه ای که در آموزش هشتم تحت عنوان My First Android Project ساخته بودیم را باز می کنیم:

    [​IMG]
    همانطور که در تصویر فوق مشاهده می شود، اولین فولدر در یک پروژه اندروید src نام دارد. در واقع واژه src مخفف واژه Source به معنی "منبع" یا "مأخذ" می باشد. این فولدر در برگیرندۀ کلیۀ فایل های جاوا است که در اپلیکیشن خود مورد استفاده قرار می دهیم. زیر مجموعه این فولدر همان پکیجی قرار دارد که در حین ساخت پروژه تحت عنوان com.behzadmoradi.mainpackage ساختیم. به طور کلی کاری که این پکیج می کند این است که از تداخل فایل های جاوا که برای توسعه اپلیکیشن خود طراحی می کنیم جلوگیری به عمل آورده و موجب می گردد کلاس های مورد استفاده سازماندهی شوند.

    [h=3]ایجاد یک پیکج جدید در جاوا[/h] ما به عنوان یک توسعه دهنده اندروید به هر تعداد پکیج که برای اپلیکیشن خود نیاز داشته باشیم می توانیم ایجاد کنیم. به طور مثال چنانچه بخواهیم یک پکیج دیگر در اپلیکیشن خود ایجاد کنیم به صورت زیر عمل خواهیم کرد(لازم به ذکر است چنانچه در محیط اکلیپس چندین پروژه ایجاد کرده باشیم می بایست اول پروژه مد نظر خود را انتخاب کرده سپس به صورت زیر اقدام به ایجاد یک پیکج جدید نماییم):

    [​IMG]
    همانطور که در تصویر فوق نشان داده شده است، با قرار دادن نشانگر موس خود روی آیکونی که با فلش قرمز رنگ مشخص شده است، پیام New Java Package به معنی "یک پکیج جدید جاوا" نمایان خواهد شد. با کلیک کردن روی این آیکون پنجره زیر نمایان می گردد:

    [​IMG]
    همانطور که در تصویر فوق مشخص است، در بخش Source folder مسیر فولدر src موجود در پروژه My First Android Project مشخص شده است. در بخش Name به معنی "نام" می بایست نامی برای پکیج جدید خود در نظر بگیریم. نکته ای که در انتخاب نام پیکج می بایست همواره مد نظر قرار داده شود این است که دو بخش اول نام پیکج که بخش اول مربوط به نام دامین است که در اینجا com می باشد و بخش دوم که مربوط به آدرس دامین است که در این مثال behzadmoradi است حتماً بایستی با دو بخش اول نام پکیجی که در حین ساخت پروژه تعریف کردیم یکی باشد وصرفاً بخش آخر یا همان قسمت سوم نام پیکج می بایست نامی جدید باشد. علت این مسئله هم ایجاد یکنواختی در کلیۀ پکیج های یک پروژه می باشد. حال با دانستن این نکته همانطور که در تصویر فوق نشان داده شده است نام com.behzadmrodi.secondpackage را وارد می کنیم که عبارت secondpackage به معنی "پکیج دوم" است(برای آشنایی بیشتر با نحوه نامگذاری پیکج ها در جاوا به آموزش چهارم مراجعه نمایید).

    اکنون می توانیم دکمه Finish زده و پیکج ایجاد شده در پروژه خود را مشاهده کنیم:

    [​IMG]
    همانطور که در تصویر فوق مشاهده می کنیم، پکیج جدید ما ایجاد شده و تنها فرقی که با پیکج قبلی دارد این است رنگ آن سفید می باشد. در واقع این رنگ سفید نشان دهنده آن است که داخل این پکیج جدید هیچ کلاسی وجود ندارد و به محض آنکه یک کلاس جدید در آن ایجاد کنیم به رنگ قهوه ای در خواهد آمد.

    [h=3]معرفی فولدر gen و فایل R.java[/h] واژۀ gen مخفف واژه Generated به معنی "تولید شده" یا "حاصله" می باشد. این فولدر محل ذخیره سازی فایل جاوایی تحت عنوان R است:

    [​IMG]
    همانطور که در تصویر فوق مشاهده می شود فایل تولید شده R.java نام دارد(حرف R از اول واژه Resource به معنی "منبع" گرفته شده است). به طور خلاصه می توان گفت که ما در توسعه اپلیکیشن اندرویدی از عناصر زیادی استفاده می کنیم که برخی از آنها توسط XML ایجاد می شوند مثل Layout ها، دکمه ها و غیره و برخی دیگر عناصری هستند همچون عکس ها، فایل های صوتی و ... که جزو منابع اپلیکیشن ما قرار دارند. حال برای آنکه بتوانیم به کلیه این عناصر در Activity ها دسترسی داشته باشیم بایستی آدرس آنها را داخل کلاس مرتبط با Activity وارد کنیم(برای آشنایی بیشتر با Activity ها به آموزش دوم مراجعه نمایید).

    اگر بخواهیم آدرس XML یی مثلا یک دکمه که در XML ساخته شده است را در کلاس خود بیاوریم، نه تنها این آدرس ممکن است طولانی شود، بلکه ممکن است در حین Run شدن اپلیکیشن نیز با مشکل مواجه شویم و در اینجا است که اهمیت فایل R دوچندان می شود. به عبارت دیگر سیستم عامل اندروید با این کار Java و XML را به یکدیگر مرتبط می سازد. کاربرد این فایل به این شکل است که یک id یا یک "شماره معرف" برای هر یک از عناصر موجود src اپلیکیشن ما من جمله layout، متون، عکس ها، فونت ها و غیره در این فایل ساخته می شود. نکتۀ جالب در ارتباط با این فایل این است که این فایل به صورت خودکار توسط برنامه ایجاد می گردد.

    به عبارت دیگر به محض اینکه ما یک عنصر جدید مثلاً یک دکمه جدید داخل UI برنامه می کنیم، اندروید به صورت خودکار به آن دکمه یک id اختصاص داده و آن id را وارد فایل R.java می کند. حال زمانیکه بخواهیم به طول مثال عکس خاصی در یک Activity به کار بریم، از طریق id آن عنصر خاص در فایل R به آن عکس دسترسی پیدا خواهیم کرد. به نظر می رسد علت انتخاب یک نام بسیار کوتاه تک حرفی تحت عنوان R برای این فایل این است که در حین آدرس دادن به عناصر موجود در اپلیکیشن زمان زیادی صرف نوشتن نام این فایل نکنیم(فقط با نوشتن R.id سپس نام عنصر مد نظر به آن دست پیدا خواهیم کرد).

    مزیت دیگر این فایل این است که اگر عناصر موجود در src را با همان اسامی XML یی خودشان به فایل جاوا لینک دهیم، چنانچه مثلاً مشکلی در فایل XML باشد این مشکل در حین Run شدن یا "اجرای برنامه" خود را نشان خواهد داد و این اتفاق خوبی نیست چرا که ممکن است این مشکل خود را زمانی نشان دهد که اپلیکیشن به دست کاربر رسیده است. اما زمانیکه یک id برای هر یک از عناصر در فایل R ایجاد می شود، چنانچه مشکلی در برنامه وجود داشته باشد این مشکل در حین Compile شدن برنامه خود را نشان خواهد داد و این مسئله خبر خوبی است چرا که پیش از اینکه اپلیکیشن به دست کاربران برسد، خود برنامه نویس یا توسعه دهنده با مشکلات احتمالی رو به رو خواهد شد.

    چنانچه دو بار روی نام این فایل کلیک کنیم خواهیم توانست محتوایات آن را مشاهده کنیم:



    • package com.behzadmoradi.mainpackage;
    • public final class R {
    • public static final class attr {
    • }
    • public static final class drawable {
    • public static final int ic_launcher=0x7f020000;
    • }
    • public static final class layout {
    • public static final int main=0x7f030000;
    • }
    • public static final class string {
    • public static final int app_name=0x7f040001;
    • public static final int hello=0x7f040000;
    • }
    • }

    کد فوق مربوط به محتویات فایل R است که برای پروژه My First Android Project به صورت خودکار توسط برنامه ایجاد شده است. به طور مثال نام ic_launcher مربوط به نام آیکون سبز رنگ اندروید است که به عنوان آیکون اپلیکیشن پس از نصب مورد استفاده قرار می گیرد و یا نام main مربوط به Layout یی است که در حین ساخت پروژه ایجاد کردیم. همانطور که مشاهده می شود هر یک از این اسامی دارای یک id نیز می باشند.

    نکتۀ بسیار مهمی که در ارتباط با این فایل وجود دارد این است که به هیچ وجه نمی بایست آن را ویرایش کرده و تغییری در آن ایجاد کنیم که در این صورت Compiler به محض Save کردن این فایل پس از تغییر آن را به حالت اول در خواهد آورد اما این در حالی است که می توان آن را به کلی حذف کرد و برنامه بدون هیچ مشکلی اجرا خواهد شد زیرا به محض Compile شدن اپلیکیشن این فایل مجدداً به صورت خودکار با اعمال آخرین تغییرات ساخته خواهد شد.

    نکته پایانی در ارتباط با فایل R این است که در هر بار Compile شدن اپلیکیشن این فایل Update خواهد شد تا ببیند آیا عنصر جدیدی به برنامه اضافه شده است که بخواهد برای آن یک id اختصاص دهد و یا آیا عنصری حذف شده است که نیاز باشد id اختصاص داده شده به آن را حذف کند یا خیر.

    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
    1. فایل های اصلی جاوا در یک اپلیکیشن در کدام فولدر قرار می گیرند؟
    2. چگونه می توان یک پیکج جدید ایجاد کرد؟
    3. علت استفاده از پکیج ها چیست؟
    4. علت به کار گیری فایل R.java چیست؟
    5. اگر در اپلیکیشن خود به جای لینک دادن از طریق فایل R اقدام به نوشتن آدرس کامل مثلا یک layout بپردازیم، ممکن است با چه مشکلی مواجه شویم؟
    6. مزیت آدرس دهی از طریق فایل R چیست؟
    7. اگر یکی از اجزای اپلیکیشن خود مثل یک دکمه را حذف کنیم چه اتفافی برای id آن دکمه در فایل R خواهد افتاد؟
    8. به چه نحوی می توان فایل R را ویرایش کرد؟
    9. در صورت حذف کردن فایل R چه مشکلی برای اپلیکیشن پیش خواهد آمد؟
    در آموزش دهم با فولدر res به طور مفصل آشنا خواهیم شد.
     
  10. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش برنامه نویسی اندروید

    [​IMG] برنامه نویسی

    [h=1]آموزش برنامه نویسی اندروید - قسمت ۱۰: بررسی فولدرهای Andrtoid و assets و bin و libs[/h]
    اهداف آموزشی این قسمت عبارتند از: 1. معرفی فولدر Android 2.1
    2. معرفی فولدر assets
    3. معرفی فولدر bin
    4. معرفی فولدر libs

    پس از آشنایی با فولدرهای src و gen در قسمت نهم، در این قسمت قصد داریم تا به بررسی دیگر فولدرهای تشکیل دهندۀ یک اپلیکیشن اندرویدی بپردازیم. لطفا به ادامه مطلب بروید.

    [h=3]معرفی فولدر Android 2.1[/h] فولدر بعدی در این لیست فولدر Andtroid 2.1 نام دارد که تصویر آن در بالای مطلب درج شده است.

    اگر خاطرمان باشد در حین ساخت اولین پروژه خود در اندروید در پنجره مربوط به مشخص کردن Build Target نسخه اندروید 2.1 را انتخاب کردیم. در حقیقت این فولدر در برگیرندۀ فایل android.jar است که حاوی کلیۀ API های لازم در SDK اندروید نسخه 2.1 است که اپلیکیشن ما تحت آن ساخته می شود. اگر این فولدر را باز کنیم، جایی که این API ها روی کامپیوتر ما نصب شده اند نشان داده خواهد شد. برای روش تر شدن مطلب به تصویر زیر دقت نمایید:

    [​IMG]
    همانطور که مشاهده می شود مسیر C:\dev\android\platforms\android-7 جایی است که بنده در حین آماده سازی محیط برنامه نویسی اکلیپس و ابزار SDK مشخص کرده ام. از این پس در حین توسعه هر اپلیکیشنی Library ها یا اصطلاحاً "کتابخانه های" در برگیرندۀ API های لازم به توسعه تحت یک نسخه خاص از اندروید از این مسیر کپی خواهند شد.

    به طور مثال اگر در حین ساخت پروژه نسخه دیگری همچون اندروید نسخه 3.0 را انتخاب کرده بودیم، فولدر Android 3.0 به اپلیکیشن ما Import می شد. چنانچه این فولدر را باز کنیم خواهیم دید که دارای پکیج ها، کلاس ها و منابع بسیار زیادی می باشد. خبر خوشحال کننده در ارتباط با این فولدر این است که در طول توسعه اپلیکیشن برای اندروید نیازی به باز کردن این فولدر و جستجو کردن چیزی در آن نداشته و به منظور استفاده از API های مد نظر در توسعه اپلیکیشن خود از دستورات Import استفاده خواهیم کرد که این لینک به صورت خودکار مابین اپلیکیشن ما و این فولدر برقرار خواهد شد.

    [h=3]معرفی فولدر assets[/h] این فولدر به صورت پیش فرض خالی است و دارای کاربردی شبیه به فولدر res می باشد با این تفاوت که هر چیزی که در فولدر res قرار می گیرد دارای یک id خواهد شد که از طریق همان id در هر جایی از اپلیکیشن خود که بخواهیم از آن استفاده کنیم از طریق فایل R.java فراخوانی می شود(در توضیحات پیرامون فولدر res در ادامه همین آموزش بیشتر با این مفاهیم آشنا خواهیم شد. برای آشنایی بیشتر با فایل R.java به آموزش نهم مراجعه نمایید).

    [​IMG]
    اما این در حالی است که آزادی عمل ما در فولدر assets به مراتب بیشتر بوده و در واقع هر چیزی که بخواهیم به صورت raw یا "خام" در اپلیکیشن خود قرار دهیم را در این فولدر قرار می دهیم(واژه assets به معنی "دارایی ها" می باشد). از سوی دیگر می توانیم فولدرهای زیرمجموعه فولدر assets را بر اساس سلیقه خود دسته بندی کنیم سپس از طریق جاوا به چیزهای داخل این فولدر دسترسی پیدا کنیم. این فولدر بیشتر در مورد طراحی بازی اندرویدی کاربرد خواهد داشت که نیاز داریم از عناصر زیادی برای یک بازی بهره مند شویم. یا فرض کنیم که می خواهیم یک اپلیکیشن یادداشت برداری یا اصطلاحاً نت برداری طراحی کنیم که این اپلیکیشن برای سهولت کاربر دارای یک دیکشنری است که واژگانی که کاربر وارد می کند را حدس زده و تکمیل می کند(همانند اس ام اس دادن که با تایپ قسمت اول یک لغت، اپلیکیشن اس ام اس آن را برای ما تکمیل می کند). حال فرض کنیم که این دیکشنری یک فایل XML یا یک پایگاه داده از جنس SQLite است. فایل هایی از این دست را می بایست داخل فولدر assets قرار دهیم.

    در قسمت های ابتدایی آموزش اندروید تمرکز بیشتر روی فولدر res خواهد بود.

    [h=3]معرفی فولدر bin[/h] همانطور که در تصویر زیر مشاهده می شود، پس از معرفی فولدر های فوق الذکر فولدر bin قرار گرفته است:

    [​IMG]
    به طور خلاصه می توان گفت که اندروید خروجی های برنامه پس از Compile شدن را در این فولدر قرار می دهد. به عبارت دیگر کلیۀ فایل های Compile شدۀ جاوا که با پسوند class ذخیره می شوند(مثلاً MainActivity.class که از روی فایل MainActivity.java کامپایل شده است) و حتی فایلی با پسوند apk که با فرستادن آن روی تلفن همراه یا تبلت می توانیم اپلیکیشن را نصب کنیم در این فولدر قرار می گیرند. به طور مثال در ساخت اولین پروژه اندروید پس از تکمیل اپلیکیشن خود فایلی تحت عنوان MyFirstAndroidProject.apk در این فولدر ذخیره خواهد شد که به سادگی با کپی کردن آن روی تلفن همراه خواهیم توانست اپلیکیشن خود را اجرا کنیم.

    [h=3]معرفی فولدر libs[/h] فولدرهای مرتبط با Library ها یا "کتابخانه های اندروید" که در برگیرنده API های لازم برای توسعه اندروید می باشند در یک اپلیکیشن قابل روئیت نیستند اما آشنایی با آن بی فایده نیست. به طور خلاصه این فولدر حاوی Library هایی است که شرکت های طراحی و توسعه اپلیکیشن تولید کرده و یا به صورت رایگان و یا به صورت فروشی در اختیار دیگر برنامه نویسان و توسعه دهندگان اندروید قرار می دهند. به عنوان مثال library مرتبط با jTwitter دارای API های لازم برای به کارگیری Twitter در اپلیکیشن اندرویدی می باشد. در واقع اگر به طور مثال بخواهیم از قابلیت های Twitter در اپلیکیشن خود استفاده کنیم، می بایست Library مرتبط با jtwitter.jar را داخل فولدر libs قرار دهیم(کلمه libs مخفف واژه Libraries به معنی "کتابخانه ها" می باشد).

    پس از مطالعه این آموزش انتظار می رود بتوانیم به سؤالات زیر پاسخ بدهیم:
    1. فولدر Andtroid 2.1 حاوی چه اطلاعاتی است؟
    2. نحوه دسترسی به اطلاعات داخل فولدر Andtroid 2.1 به چه شکل است؟
    3. تفاوت فولدرassets یا فولدر res چیست؟
    4. فایل apk در کدام فولدر قرار می گیرد؟
    5.وظیفه فولدر libs چیست؟

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