منبع: راسخون
اساس برنامههای اندروید :
برنامههای اندروید به زبان برنامه نویسی جاوا نوشته میشود.برنامههای کامپایل شده در فایلهایی با پسوند apk ذخیره میشوند (apk = android package file)
هر برنامهای در سندباکس (SandBox) جداگانهای اجرا می شود که آن را از بقیهی برنامهها ایزوله میکند و هر برنامه در پروسهی لینوکسی خودش اجرا میشود.
هر برنامهای شامل فایلهای جزئی (component)، فایلهای ظاهری (manifest) و منابع (resources) می شود.
فایلهای جزئی شامل :
1) فعالیت (Activities)
2) سرویس ها (Services)
3) ارائه دهندهی محتوا (content provider)
4) گیرندهی پخش (broadcast receiver)
• فعالیت (Activities)
کار یک فعالیت این است که یک صفحه نمایش را با رابط کاربری (UI) نشان دهد. (مثلا کاربر می خواهد امیل هایش را چک کند، همان صفحه ای که لیست ایمیل هایش را نشان می دهد یک فعالیت است، وقتی روی ایمیل کلیک می کند یک فعالیت دیگری شروع می شود که باعث می شود کاربر یک صفحهی دیگری را ببیند، وقتی می خواهد ایمیل بفرستد یک صفحهی دیگر برای او باز می شود که یک فعالیت دیگر است)
اکثر برنامه ها از بیش از یک فعالیت استفاده می کنند.
وقتی یک فعالیت شروع می شود، به پشتهی بازگشت (back stack) هل داده می شود. (push می شود) - مثلا وقتی کاربر اولین صفحهی یک برنامه را باز می کند، بعد جایی را کلیک می کند و فعالیت دیگری باز می شود، فعالیت قبلی متوقف می شود (داخل پشته هل داده می شود) و فعالیت جدید روی قبلی شروع به کار می کند، وقتی کاربر دکمه بازگشت ( ) را می زند، فعالیت فعلی را متوقف می کند (می بندد) و فعالیت قبلی را از همان جایی که متوقف کرده بود، اجرا می کند. (در واقع از داخل پشته پاپ می کند) -
رابط کاربری با XML یا مستقیما از خود جاوا ساخته می شود.
می توانید طول عمر یک فعالیت را با توابع مختلفی زیرنظر داشته باشید، توابعی مثل ()onStart یا ()onPause. تا روند اجرای هر فعالیتی را کنترل کنید.
• خدمات (Services)
خدمات نقش کارهایی را ایفا می کنند که در پشت صحنه باید انجام شود.
خدمات شامل هیچ رابط کاربری نیستند.
برای کارهایی مثل عملیات اینترنتی (شبکه ای) یا پخش موسیقی مناسب اند.
خدمات کاملا مستقل از جزئی که آنها را ساخته، اجرا می شوند. (مثلا اگر یک فعالیتی داشته باشیم که یک خدماتی را اجرا کند، اگر ان فعالیت را ببندیم، ان خدمات هنوز در حال اجرا شدن هستند و مستقل از بقیه اجزا کار می کنند)
خدمات می توانند با استفاده از برنامههای دیگر محدود شوند، البته باید ان برنامهها اجازه محدود کردن خدمات را داشته باشند. (وقتی خدمات را میسازید می توانید تعیین کنید که مثلا با هر برنامه ای می تواند این خدمت را محدود کند)
• ارائه دهندهی محتوا (content provider)
کار آنها ذخیره و بازیابی داده ها است و اینکه داده ها را برای همه برنامه ها قابل دسترسی کنند.
تنها راه برای اشتراک گزاری داده ها بین برنامه های مختلف است (چون به طور پیش فرض، برنامه ها راهی برای اشتراک گذاری داده هایشان به برنامههای دیگر را ندارند)
یک URI عمومی منتشر می کند که به طور منحصر به فرد مجموعهی دادههایش را شامل می شود. (مثلا اگر بخواهیم یک سری از اطلاعاتمان را به صورت عمومی در اختیار بقیهی برنامهها قرار دهیم، انها را در یک «ارائه دهنده محتوا» قرار می دهیم.)
این داده ها به سادگی از طریق جدول هایی به مدل پایگاه داده منتشر می شوند.
خود اندروید شامل چندین «ارائه دهنده» است، مانند رسانهها، دفترتلفن و...
• گیرندهی پخش (broadcast receiver)
گیرندهی پخش ساخته شده تا به اعلامیههای درون سیستمی پاسخگو باشد.
مثلا وقتی صفحه خاموش می شود، اندروید یک گیرنده می فرستد تا برنامه هایی که در حال اجرا هستند بفهمند که صفحه خاموش شده و برنامه را در حالت تعلیق نگه دارند یا ببندند یا هر کار دیگری که باید انجام دهند، یا مثلا وقتی باتری در جال تمام شدن است و .... - پس وقتی برنامهای را میسازیم باید یک گوش دهنده (listener) قرار دهیم تا اگر اتفاقاتی نظیر اینها افتاد، برنامه، یک کار خاصی را انجام دهد-
برنامهی خود شما هم می تواند فرستنده هایی را بفرستد تا برنامه های دیگر به آن جواب دهند.
گیرنده های پخش شامل هیچ رابط کاربری ای نیستند.
گیرنده ها می توانند به نوار وضعیت (status bar)، اخطار (notification) بفرستند تا به کاربر هشدار دهند.
فایل های ظاهری اندروید
هر برنامه ای باید یک فایل AndroidManifest.XML در ریشه دایرکتوری خود داشته باشد.
کار این فایل این است که به سیستم اندروید درباره برنامه توضیحاتی را ارائه دهد.
این فایل، اجزائی را که در برنامه به کار میبرید را توصیف می کند. (اجزا مانند فعالیت ها، خدمات، گیرنده ها و ارائه دهنده ها)
اجازه هایی (permission) که برای اجرای برنامه باید از کاربر گرفته شود را اعلام می کند. (احتمالا تا حالا برنامه هایی را دیده اید که برای دسترسی به قسمت های مختلف گوشی، قبل از نصب از شما یک سری اجازه می گیرند).
این فایل، پایین ترین نسخهی اندرویدی (API) که برنامه می تواند روی آن اجرا شود را اعلام می کند.
/ج