آموزش اندروید، فصل هفتم: آشنایی با عناصر اصلی یک برنامه اندروید

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

learnandroid-300x365

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

Intent: اینتنت ها به نوعی رابط بین همه اجزای اندرویدند. برای رفتن از یک اکتیویتی به اکتیویتی دیگر از اینتنت ها استفاده می شود. برای راه انداختن Service ها از اینتنت استفاده می شود، برای ارسال یا دریافت Broadcast ها از اینتنت استفاده می شود و … اینتنت یک کلاس جاوا است.

Broadcast: یک روش برای برقراری ارتباط یک برنامه با محیط اطراف خودش (یعنی سیستم عامل + سایر برنامه های نصب شده در دستگاه) ارسال و دریافت برودکست است. مثلاً وقتی وضعیت اتصال Wi-Fi تغییر می کند، برنامه می تواند برودکستی دریافت کند و از وضعیت جدید مطلع شود. وقتی باتری دستگاه در حالت تخلیه است، برنامه می تواند مطلع شود. وقتی که کاربر هدفون را به دستگاه وصل می کند یا از دستگاه جدا می کند، برنامه می تواند مطلع شود. هر وقت دانلود یک فایل تمام می شود، برنامه می تواند مطلع شود و … یک گیرنده برودکست یا BroadcastReceiver یک کلاس جاوا است به همراه اندکی تنظیمات در مانیفست برنامه.

Service: سرویس قسمتی از برنامه است که پس زمینه اجرا می شود و هیچ رابط کاربری ندارد. فرض کنید یک پخش کننده موسیقی نوشته اید. قسمتی که موسیقی را اجرا می کند، نمی تواند رابط کاربری داشته باشد. اگر نه، در صورتی که کاربر از برنامه خارج شود، پخش موسیقی هم متوقف خواهد شد. سرویس این امکان را می دهد که بتوان قسمت هایی از برنامه را در پس زمینه اجرا کرد و در پیش زمینه (foreground) یک برنامه دیگر را اجرا کرد. مثلاً شما می توانید موسیقی پخش کنید در حالی که با مرورگر دستگاه خود در حال خواندن صفحات اینترنتی هستید.

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


نقشه راه: از میان عناصر اصلی اندروید، شاید بیش از نیمی از وقت ما را اکتیویتی ها می گیرند. در چند فصل بعدی، با اکتیویتی ها و ساختار چیدمان آنها آشنا می شوید و سپس با عناصر گرافیکی آشنا می شوید و یاد می گیرید چطور عکسها را برای انواع رزولوشن های صفحه های نمایش بهینه سازی کنید. در ادامه می آموزید که چطور یک برنامه را برای حالت های مختلف دستگاه (مثل land یا port بودن، کوچک، معمولی، بزرگ یا خیلی بزرگ بودن صفحه نمایش، چرخاندن صفحه و …) آماده کنید. یاد می گیرید که چطور از یک اکتیویتی به دیگری بروید یا چطور اطلاعات را بین اکتیویتی ها رد و بدل کنید. خلاصه کنم، یاد می گیرید یک برنامه مشابه ۹۰ درصد برنامه های موجود بنویسید!

بعد از آن به سراغ سایر اجزا می رویم تا شما از یک برنامه نویس معمولی به یک برنامه نویس حرفه ای تبدیل شوید! کسی که می تواند برنامه ای بنویسد که بهتر از ۹۰ درصد برنامه های موجود در بازار باشد!

 

8 فکر می‌کنند “آموزش اندروید، فصل هفتم: آشنایی با عناصر اصلی یک برنامه اندروید

  1. عباسعلی قربانی

    سلام و بسیار ممنون از زحماتی که میکشید. من چند روزی هست که برنامه نویسی اندروید رو شروع کردم ولی هنوز موفق نشدم حتی یک برنامه رو ران کنم!! لازم بذکره که SDK Manager رو هم آپدیت کردم ولی خطاهای مربوط به appcompat_v7 مانع اجرای برنامه ها میشن. اگه ممکن هست راهنمایی بفرمایید.

    پاسخ
    1. علی بهزادیان نژاد نویسنده

      سلام،
      appcompat_v7 برخی از ویژگی ها و امکانات اندروید های نسخه های جدیدتر را به نسخه های قدیمی اندروید (نسخه های قبل از ۳) می برد. اگر در موقع ساخت برنامه minSdkVersion را ۱۱ (اندروید ۳) یا ۱۴ (اندروید ۴) انتخاب کنید، این کتابخانه را به پروژه اضافه نخواهد کرد. نتیجه را برای من بنویسید.

      پاسخ
      1. علی

        سلام استاد
        وقتتون بخیر
        یک دنیا ممنون.منم مشکل همینappcompat_v7 رو داشتم کلی جستجو کردم جایی به جواب نرسیدم ولی با خوندن پاسخ قاطع شما مشکلم حل شد.یک دنیا سپاس
        همیشه موفق و سربلند باشید.

        پاسخ
  2. عباسعلی قربانی

    ممنون از توضیحاتتون. اون مورد درست شد (یعنی با انتخاب minSdkVersion روی ۱۴ دیگه کتابخانه appcompat_v7 ساخته نشد)؛ ولی یه مشکل دیگه هنوز پابرجاست (شبیه ساز)! در زمان اجرا شبیه ساز لود میشود ولی در داخل آن چیزی دیده نمیشود (مانند دکمه ها). ارورهای مورد نظر در قسمت Console این است:

    NAND: nand_dev_load_disk_state ftruncate failed: Invalid argument
    savevm: unable to load section nand_dev

    پاسخ
    1. علی بهزادیان نژاد نویسنده

      آیا شبیه ساز کامل اجرا می شود؟ احتمالاً می دانید که شبیه ساز حدود ۳ تا ۵ دقیقه طول می کشد که کامل اجرا شود. اگر اجرا نمی شود، یک شبیه ساز دیگر بسازید و باز هم تست کنید.

      پاسخ
    1. علی بهزادیان نژاد نویسنده

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

      پاسخ

دیدگاهتان را بنویسید

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