سیستم عامل آندرويد چیست ؟
Android به زبان ساده سيستم عاملي است براي دستگاه هاي
موبايل و گوشي هاي هوشمند که توسط بيش از 30 کمپاني معروف پشتيباني مي شود.
آندرويد اوپن سورس است و توسعه دهندگان مي توانند با استفاده از Android
SDK برنامه هاي مختلفي براي اين سيستم عامل بنويسند. در واقع آندرويد بستري
را فراهم مي کند تا برنامه نويسان بتوانند هرچه سريعتر و بهتر برنامه هايي
بسازند که از تمام ويژگي هاي يک گوشي هوشمند استفاده کند. آندرويد به
معناي واقعي “ باز” (Open) است، يعني برنامه نويس مي تواند از تمام قدرت يک
تلفن همراه استفاده کند. آندرويد امکان استفاده از توابع داخلي گوشي
موبايل همچون شماره گيري، فرستادن SMS يا استفاده از دوربين گوشي را به
برنامه نويسان مي دهد تا بتوانند اپليکيشن هاي قدرتمند و کاربردي براي
کاربران بسازند.
تمام
برنامه ها براي آندرويد يکي اند. آندرويد فرقي ميان يک برنامه third-party
و توابع هسته سيستم عامل در اجرا نمي گذارد و هر دو مي توانند دسترسي
مساوي به قابليت هاي گوشي داشته باشند. گوشي هايي که سيستم عامل آندرويد را
خواهند داشت به کاربرشان اجازه مي دهند تا از تمام قابليت هاي يک گوشي
هوشمند بهره ببرند. کاربران اين گوشي ها به معناي واقعي مي توانند دستگاه
خود را بر اساس سليقه ي خود تغيير دهند و محيط سيستم عامل گوشي خود را
سفارشي و شخصي سازي کنند. حتي کاربران مي توانند براي گوشي تعيين کنند که
عکس هايشان با چه برنامه اي باز شود.
ويژگي ها و خصوصيات آندرويد
1. آندرويد تمامي تکنولوژي هاي اتصال (Connectivity) شامل GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth و Wi-Fi را پشتيباني مي کند.
2. آندرويد از فرمت هاي مختلف فايل هاي مالتي مديا مثل MPEG-4, H.264, MP3, AAC, AMR, JPEG, PNG, GIF پشتيباني مي کند.
3. SMS , MMS و XMPP فرم هايي هستند که آندرويد براي ارسال پيغام هاي متني يا همان SMS از آن ها پشتيباني مي کند.
4. مرورگر موجود در آندرويد بر اساس فريم ورک اوپن سورس WebKit توسعه يافته است.
5. SQLite نرم افزاريست که براي ذخيره داده ها و مديريت بانک هاي اطلاعاتي سبک در آندرويد در نظر گرفته شده است.
6.
ماشين مجازي جاوا (Java Virtual Machine) در آندرويد به صورت پيش فرض
تعبيه شده است. تمام برنامه هاي آندرويد بايد به زبان جاوا نوشته شوند.
البته اين نسخه از JVM براي دستگاه هاي موبايل بهينه شده است.
7.
ابزارهاي مختلف آندرويد براي توسعه دهندگان به راحتي در دسترس است و توسط
شرکت گوگل پشتيباني مي شوند. اين ابزارها شامل کتابخانه ها، خطاياب، شبيه
ساز گوشي و يکم پلاگين براي اکليپس است.
8. آندرويد از سخت افزارهاي مختلف همچون GPS و دوربين هاي متنوع پشتيباني مي کند.
9. تصاوير و فايل هاي گرافيکي بوسيله OpenGL پردازش مي شوند که کيفيت بالاتري خواهند داشت.
توسعه برنامه هاي کاربردي در آندرويد سريع ، راحت و لذت بخش است
گوگل
دسترسي آسان به ابزارهاي سودمند و کتابخانه هاي بسياري را براي توسعه و
توليد برنامه هاي کاربردي مبتني بر آندرويد فراهم کرده است، که برنامه
نويسان مي توانند با استفاده از آن ها هرچه سريع تر و راحت تر براي آندرويد
برنامه توليد کنند. اين ابزارها شامل خطاياب، شبيه ساز گوشي، کتابخانه ها،
اسناد، کدهاي نمونه و يک پلاگين براي اکليپس است. برنامه نويسي براي
آندرويد به زبان جاوا انجام مي گيرد. توابع خود آندرويد نيز با استفاده از
جاوا پياده سازي شده اند. آندرويد فقط قادر است کدهاي مديريت شده (Managed
Codes) را اجرا کنيد و قادر به اجراي کدهاي Native نخواهد بود.
آندرويد سيستم عاملي بر اساس لينوکس
اين
سيستم عامل بر اساس هسته سيستم عامل لينوکس توسعه يافته است. در واقع
مديريت و بهينه سازي حافظه، ارتباط با سخت افزار و سرويس هاي سيستم، امنيت،
مديريت پردازش ها و مديريت منابع دستگاه موبايل را هسته لينوکس انجام مي
دهد و آندرويد فقط لايه ايست که ارتباط ميان کاربر و سيستم عامل را برقرار
مي کند. اين لايه نرم افزاري بوسيله جاوا پياده سازي شده است و به همين علت
قادر به اجراي کدهاي Native نخواهد بود. آندرويد همانند لينوکس اوپن سورس
خواهد بود و توسعه دهندگان بيشماري بر روي آن کار مي کنند.
اندروید چیست؟
اندروید مجموعه ای از نرم افزارهای (software stack) موبایل است که شامل
سیستم عامل، middleware ها و برنامه های کلیدی (key applications) است. اندروید SDK، ابزارها و APIهای لازم برای شروع برنامه نویسی بر روی پلتفرم اندروید با زبان برنامه نویسی جاوا را مهیا کرده است.
خصوصیات:
- چارچوب برنامه (Application framework): امکان استفاده مجدد و جایگزینی کامپوننت ها را فراهم میکند.
- ماشین مجازی دالویک (Dalvik virtual machine): وظیفه بهینه سازی کدها برای اجرا بر روی موبایل را دارد.
- مرورگر داخلی (Integrated browser): منطبق بر موتور WebKit منبع باز
- گرافیک بهینه شده (Optimized graphics): قدرت گرفته از کتابخانه ۲D، گرافیک ۳D منطبق بر OpenGL ES 1.0 (شتاب دهنده سخت افزاری)
- SQLite: برای ذخیره اطلاعات
- پشتیبانی از رسانه (Media support): با پشتیبانی از فرمتهای رایج صوتی، ویدئویی و عکس (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
- مکالمات تلفنی (GSM Telephony): (وابسته به نوع سخت افزار)
- Bluetooth, EDGE, 3G, and WiFi: (وابسته به نوع سخت افزار)
- دوربین، GPS، قطب نما و شتاب سنج: (وابسته به نوع سخت افزار)
- محیط توسعه غنی (Rich development environment): شامل ایمولاتور،
ابزارهای دیباگ کردن، پروفایل کردن حافظه و پلاگین برای محیط توسعه اکلیپس
معماری اندروید:
تصویر زیر لایه ها و کامپوننت های اصلی سیستم عامل اندروید را نشان میدهد.
برنامه های کاربردی (Applications):
اندروید به همراه بسته های مختلفی از جمله email client, SMS program,
calendar, maps, browser, contacts, and others ارایه میشود. تمام این
برنامه ها با استفاده از زبان برنامه نویسی جاوا نوشته شده اند.
چارچوب برنامه (Application Framework):
با فراهم آوردن پلتفرم توسعه باز (open development platform)، اندروید
برنامه سازان را قادر کرده است تا برنامه های کاربردی خلاقانه و غنی برای
این پلت فرم فراهم سازند. توسعه دهندگان آزادی کامل دارند تا از ویژگیهایی
مانند دسترسی به سخت افزار، دسترسی به اطلاعات محلی (موقیت جغرافیایی)،
اجرای سرویس های پس زمینه (background services)، تنظیم زنگ ساعت، اضافه
کردن اطلاعیه ها (notifications) به نوار وضعیت و بسیاری بسیاری دیگر در
برنامه هایی که میسازند، استفاده کنند.
توسعه دهندگان دسترسی کامل به همان چارچوب APIهایی دارند که برنامه های
هسته (the core applications) دارند. معماری برنامه های کاربردی (The
application architecture) بمنظور ساده سازی استفاده مجدد از کامپوننت ها
طراحی شده است. هر برنامه ای می تواند قابلیت های خود را در اختیار دیگر
برنامه ها قرار دهد و همچنین از قابلیت های دیگر برنامه ها استفاده کند
(البته به محدودیت های امنیتی چارچوب هم بستگی دارد). این طرزکار مشابه به
کاربر اختیار تعویض و جایگزینی کامپوننت ها را می دهد.
برنامه های زیربنایی، مجموعه ای از سرویس ها و سیستم های زیرند:
- مجموعه قابل گسترشی از View ها که برای ساخت برنامه های کاربردی استفاده می شوند، مانند lists, grids, text boxes, buttons, and even an embeddable web browser
- Content Providers، که برنامه ها را قادر میسازد تا به اطلاعات برنامه
های دیگر مانند لیست تماس، دسترسی پیدا کنند یا حتی اجازه دسترسی به
اطلاعات خود را به برنامه های دیگر دهند. - یک مدیر منابع (Resource Manager) اجازه دسترسی به منابعی که کد-برنامه
نیستند را فراهم میکند مانند دسترسی به رشته های محلی (localized
strings)، تصاویر و فایل های مربوط به طرح برنامه (layout files). - یک مدیر اطاعیه (Notification Manager)، که از این طریق برنامه ها را قادر میکند تا هشدارهای خود را در نوار وضعیت نشان دهند.
- یک مدیر فعالیت (Activity Manager)، که مدریت چرخه زندگی (lifecycle)
برنامه ها را در دست دارد و به نحوه اجرای برنامه ها نظارت میکند.
کتابخانه ها (Libraries):
اندروید شامل مجموعه از کلاسهای ++C/C است که توسط کامپوننت های سیستم
اندروید مورد استفاده قرار میگیرند. همچنین استفاده از این قابلیت به توسعه
دهندگان نیز داده شده است. بعضی از این کتابخانه های اصلی به این قرارند:
- System C library – a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
Media Libraries – based on PacketVideo’s OpenCORE; the
libraries support playback and recording of many popular audio and video
formats, as well as static image files, including MPEG4, H.264, MP3,
AAC, AMR, JPG, and PNG
Surface Manager – manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
LibWebCore – a modern web browser engine which powers both the Android browser and an embeddable web view
SGL – the underlying 2D graphics engine
۳D libraries – an implementation based on OpenGL ES 1.0
APIs; the libraries use either hardware 3D acceleration (where
available) or the included, highly optimized 3D software rasterizer
FreeType – bitmap and vector font rendering
SQLite – a powerful and lightweight relational database engine available to all applications
زمان اجرای اندروید (Android Runtime):
اندروید شامل مجموعه ای از کتابخانه های اصلی است که اکثر عملکردهای
قابل دسترس را با استفاده از زبان جاوا ممکن میسازد. هر برنامه کاربردی
اندروید در فرایند مخصوص به خودش اجرا میشود و دسترسی مخصوص به خود در
ارتباط با ماشین مجازی دالویک دارد. این ماشین بگونه ای ساخته شده است که
هر دستگاهی (device) میتواند چندین ماشین مجازی را بطور همزمان اجرا کند.
هر ماشین مجازی دالویک فایل ها را به فرمت (dex.) اجرا میکند که اینکار
باعث بهینه سازی در دستگاه هایی که حافظه پایینی دارند، می شود. این ماشین
مجازی مبتنی بر رجیسترهاست و کلاسهایی که توسط کامپایلر جاوا ساخته شده است
را اجرا میکند.
ماشین مجازی دالویک برای اجرای قابلیت های اساسی مانند مدریت حافظه کم و چند نخی (threading) متکی بر هسته لینوکس است.
هسته لینوکس (Linux Kernel):
اندروید متکی بر لینوکس نسخه ۲٫۶ برای انجام سرویس های اصلی مانند
security, memory management, process management, network stack و driver
model است. این هسته همچنین مانند یک لایه انتزاعی (abstraction layer)
مابین سخت افزار و سایر نرم افزارها عمل میکند.