آشنایی با سیستم عامل اندروید
در این مبحث ابتدا به تاریخچه سیستم عامل اندروید، ویژگیهای آن و ماشین مجازی اندروید پرداخته، سپس زبان برنامه نویسی اندروید و محیط توسعه (IDE) آن یعنی اندروید استودیو را معرفی میکنم.
معرفی سیستم عامل اندروید
در اوت ۲۰۰۵، گوگل شرکت اندروید واقع در پالو آلتو، کالیفرنیا را خرید. شرکت کوچک اندروید که توسط اندی رابین، ریچ ماینرز، نیک سیرز و کریس وایت پایهگذاری شده بود، در زمینه تولید نرم افزار و برنامههای کاربردی برای تلفنهای همراه فعالیت میکرد. اندی رابین مدیر عامل اجرایی این شرکت پس از پیوستن اندروید به گوگل به سمت قائممقام مدیریت مهندسی این شرکت و مسئول پروژه اندروید در گوگل منصوب شد. تیم اندروید به رهبری رابین فعالیت خود را برای تولید سکوی تلفن همراه مبتنی بر هسته لینوکس آغاز کردند و نتیجه اولیه این پروژه در نشست خبری شرکت گوگل در ۵ نوامبر سال ۲۰۰۷، مطرح کردن اتحادیه گوشی باز بود.
۳۴ شرکت فعال در زمینه تولید نرمافزار، تولید تلفنهای همراه، اپراتور تلفن همراه و تولیدکننده نیمه رساناها و پردازندههای تلفن همراه اعضای بنیانگذار این اتحادیه بودند. در میان نامهای مشهور در بین اعضای مؤسس، شرکتهایی چون سامسونگ، الجی الکترونیکس، موتورولا، اچتیسی، تی-موبایل، انتیتی دوکومو، اینتل، انویدیا، تگزاس اینسترومنتس، کوالکام، برودکام، تلفونیکا، اسپرینت، ایبی و البته گوگل به چشم میخوردند. اریک اشمیت مدیر ارشد اجرایی گوگل در این مراسم گفت: «اعلام امروز بسیار جاهطلبانهتر از معرفی تنها یک تلفن گوگلی است که در چند هفته اخیر توسط رسانهها پیشبینی شده بود. از دیدگاه ما سکویی که ما ارائه کردهایم، هزاران تلفن گوناگون را به بازار روانه خواهد کرد.» نخستین گوشی مبتنی بر اندروید توسط شرکت اچتیسی با همکاری تی-موبایل تولید شد. این گوشی که به فاصله کمتر از یک سال از تشکیل اتحادیه گوشی باز یعنی در ۲۲ اکتبر ۲۰۰۸ تولید شد، در بازارهای مختلف به نامهای اچتیسی دریم، تی-موبایل جی۱ و ارا جی۱ به بازار عرضه گردید.
۹ دسامبر ۲۰۰۸ چهارده عضو جدید از شرکتهای صنعت تلفن همراه جهان به اتحادیه گوشی باز پیوستند. در بین این نامها باید به سونی اریکسون، اریکسون، توشیبا، ایسوز، گارمین، هواوی و آرم هولدینگز اشاره کرد. روند پیوستن شرکتهای بزرگ به اتحادیه تا به امروز نیز ادامه داشتهاست و شرکتهایی چون ایسر، آلکاتل، لنوو، شارپ، فاکسکان، انایسی، کیوسرا، انایکسپی، استی-اریکسون، مارول، زدتیئی و دل نیز از جمله شرکتهایی بودهاند که به جمع پشتیبانیکنندگان اندروید پیوستهاند. (منبع)
معنای اندروید و تلفظ صحیح
بنابر ترجمه واژهنامه کمبریج، اندروید اینگونه تعریف شدهاست: «یک ربات (ماشینی که به وسیله کامپیوتر کنترل میشود) که به گونهای ساخته شده تا شکل ظاهری شبیه به انسان داشته باشد.» بنا بر این تعریف شاید بتوان کلمه ربات انسان نما را ترجمه مناسبی برای این واژه در نظر گرفت.
تلفظ صحیح این کلمه بر اساس واژهنامه کمبریج در هر دو گویش آمریکایی و بریتانیایی اَندروید (/ˈæn.drɔɪd/) میباشد و در هیچکدام از این گویشها حرف آ در ابتدای این کلمه به کار نمیرود.
ویژگیهای اندروید
امکانات و قابلیتهای اصلی سیستم عامل اندروید را میتوان در لیست زیر خلاصه کرد:
- اندروید تمامی تکنولوژیهای اتصال (Connectivity) شامل GSM/EDGE, CDMA, EV-DO, UMTS, بلوتوث و وای فای را پشتیبانی میکند
- اندروید از فرمتهای مختلف فایلهای مالتی مدیا مثل MPEG-4, H.264, MP3, AAC, AMR, JPEG, PNG, GIF پشتیبانی میکند
- اندروید برای ارسال پیغامهای متنی یا همان اس ام اس (SMS) از فرمهای SMS, MMS و XMPP پشتیبانی میکند
- مرورگر موجود در اندروید بر اساس فریم ورک اوپن سورس WebKit توسعه یافتهاست
- اندروید برای ذخیره دادهها و مدیریت بانکهای اطلاعاتی سبک از نرمافزار SQLite استفاده میکند
- تمام برنامههای اندروید به زبان جاوا نوشته میشوند. برای اجرای برنامههای جاوایی روی این سیستم عامل، کدهای جاوا به کدهای Dalvik تبدیل میشوند و سپس روی ماشین مجازی جاوایی (Dalvik Virtual Machine) اجرا میشوند
- اندروید از سختافزارهای مختلف همچون GPS و دوربینهای متنوع پشتیبانی میکند
- تصاویر و فایلهای گرافیکی بوسیله OpenGL پردازش میشوند که کیفیت بالاتری خواهند داشت
رابطه اندروید و جاوا
نرمافزارهای جانبی اندرویدی با استفاده از زبان جاوا نوشته میشوند و برای ارتباط با لایههای زیرین سیستم عامل میتوانند از کتابخانههای جاوایی اندروید استفاده کنند. بخش رابط کاربری سیستم عامل اندروید و همچنین بسیاری از برنامههای اندروید نیز با جاوا نوشته شدهاند. اما این سیستم عامل، Java Virtual Machine ندارد. برای اجرای برنامههای جاوایی روی این سیستم عامل، کدهای جاوا به کدهای Dalvik تبدیل میشوند و سپس روی Dalvik Vitrual Machine اجرا میشوند. دالویک یک ماشین مجازی جاوایی است که برای سیستم عامل اندروید بهینه شده تا هم RAM و هم CPU و هم باتری کمتری مصرف کند. برنامههای جاوایی معمولی هم که روی گوشیهای دیگر اجرا میشوند با استفاده از نرمافزارهای شبیهساز ماشین مجازی جاوا مانند j2ME MIDP Runner روی این سیستم عامل قابل اجرا هستند.
ART (آرت)
آرت، ران تایم جدید اندروید می باشد که جایگزین دالویک شده است. شرکت گوگل برای اولین بار در اندروید ۴٫۴ آرت را در کنار دالویک قرار داد و کاربران میتوانستند با مراجعه به تنظیمات آن را فعال کنند.
فرمت فایلهای پشتیبانی شده
اندروید در حالت پیشفرض فایلهای mp3, aac , ogg , amr , midi , mpeg4 , wav , bmp , gif png , jpg را پشتیبانی میکند. اندروید Adobe Flash را نیز پخش میکند و میتواند فایلهای GIF متحرک را با حرکت پخش کند. برای پخش فایلهای جریان دار مانند صوت و ویدئو نیز میتوانید از تگ ویدئو HTML5 و همچنین تکنولوژی Adobe Flash Streaming استفاده کنید. در نسخههای جدید اندروید، موتور جاوا اسکریپت مرورگر کروم که سرعت بسیار بالایی در اجرای کدهای جاوا اسکریپت دارد به مرورگر اندروید متصل شدهاست. (در ضمن مرورگر اندروید کدهای HTML5 را پشتیبانی میکند).
تاریخچه نسخههای اندروید
نسخه | نام نسخه | نام فارسی | سال انتشار |
---|---|---|---|
۱٫۰ | Alpha | آلفا | ۲۰۰۸ |
۱٫۱ | Beta | بتا | ۲۰۰۹ |
۱٫۵ | CupCake | کیک فنجانی | ۲۰۰۹ |
۱٫۶ | Donut | دونات | ۲۰۰۹ |
۲٫۰ – ۲٫۱ | Eclair | نان خامه ای | ۲۰۰۹ |
۲٫۲ | Froyo | ماست یخ زده | ۲۰۱۰ |
۲٫۳ | Gingerbread | نان زنجبیلی | ۲۰۱۰ |
۳٫۰ – ۳٫۱ – ۳٫۲ | Honeycomb | کندوی عسل | ۲۰۱۱ |
۴٫۰ | Ice Cream Sandwich | بستنی حصیری | ۲۰۱۱ |
۴٫۱ – ۴٫۲ | Jelly Bean | آبنبات ژله ای | ۲۰۱۲ |
۴٫۳ | Jelly Bean | آبنبات ژله ای | ۲۰۱۳ |
۴٫۴ | KitKat | کیت کت | ۲۰۱۳ |
۵٫۰ | Lollipop | آبنبات چوبی | ۲۰۱۴ |
۶٫۰ – ۶٫۰٫۱ | Marshmallow | مارشمالو | ۲۰۱۵ |
۷٫۰ – ۷٫۱٫۲ | Nougat | ناگت (نوقا) | ۲۰۱۶ |
۸٫۰ – ۸٫۱ | Oreo | اورئو | ۲۰۱۷ |
۹٫۰ | Pie | پای | ۲۰۱۸ |
۱۰ | ۱۰ | ده | ۲۰۱۹ |
۱۱ | ۱۱ | یازده | ۲۰۲۰ | ۱۲ | ۱۲ | دوازده | ۲۰۲۱ |
برای مشاهده جزئیات بیشتر و Level API ها به ویکی پدیا مراجعه کنید.
ماشین مجازی دالویک (یا آرت) چیست ؟
برخی زبانهای برنامه نویسی Native هستند. یعنی این زبانها پس از کامپایل شدن برنامه، مستقیم به زبان ماشین تبدیل میشوند. اما زبان جاوا برای اجرا روی سخت افزار نیاز به یک واسط دارد که کدهای جاوا را به زبان قابل فهم برای ماشین ترجمه کند.
از نسخه ۱٫۰ اندروید تا قبل از نسخه ۴٫۴ ، ماشین مجازی Dalvik این وظیفه را به عهده داشت که از نسخه ۴٫۴ به بعد، ماشین ART در کنار دالویک قرار گرفت.
تفاوت دالویک و آرت در این است که در دالویک، با هر بار اجرای اپلیکیشن، کدهای جاوا به زبان ماشین ترجمه میشود اما در آرت فقط یک بار این عمل صورت میگیرد که باعث افزایش سرعت اجرای اپلیکیشن در مراتب بعدی میشود.
زبان برنامه نویسی اندروید
زبان اصلی برای توسعه و برنامه نویسی اپلیکیشنهای اندروید که توسط گوگل پشتیبانی می شود، زبان جاوا میباشد. علت انتخاب این زبان از جانب گوگل، قدرتمند بودن آن است. طبق آماری که به تازگی منتشر شد، جاوا برای چندمین بار و به صورت متوالی از سال ۲۰۰۹ به عنوان پرکاربردترین زبان برنامه نویسی دنیا شناخته شده است.
با زبانهایی مانند C ، Basic ، HTML5 هم میتوان اپلیکیشن اندروید ساخت اما به دلایلی استفاده از این زبانها در خصوص اندروید توصیه نمی شود :
- گوگل به صورت رسمی از جاوا پشتیبانی کرده و دائما محیط برنامه نویسی مخصوص به خود را بروزرسانی می کند
- بیشترین منابع آموزشی، نمونه کدها و کتابخانههای اندروید، مربوط به زبان جاوا است.همچنین با توجه به اینکه اکثر برنامه نویسان اندروید از زبان جاوا استفاده می کنند، در مواقعی که در حین توسعه اپلیکیشن خود به مشکلی برخورد کردید، به سادگی می توانید با جستجو در گوگل و تالارهای گفتگوی فارسی زبان و غیر فارسی زبان و یا مطرح نمودن مشکل خود در وب سایتهایی مانند stackoverflow.com ، به جواب برسید.
بهینهترین اپلیکیشن برای اندروید، اپلیکیشنی است که به زبان جاوا نوشته شده باشد.
محیط برنامه نویسی اندروید
در ابتدا گوگل محیط Eclipse را برای توسعه اپلیکیشنهای اندروید معرفی و پشتیبانی میکرد و در عین حال بر روی محیط اختصاصی خود که Android Studio نام دارد و بر پایه محیط IntelliJ IDEA بنا شده کار کرد تا اینکه اکثر باگهای آن رفع شد و با انتشار نسخه پایدار آن، پشتیبانی خود را بر روی اندروید استودیو متمرکز نمود و برنامه نویسان را به مهاجرت از اکلیپس به این محیط جدید توصیه نمود.
پیش نیاز برنامه نویسی
در توسعه اپلیکیشنهای اندروید با دو زبان Java و XML سروکار داریم که میتوانید با جستجو در اینترنت و یا دریافت فایلهای آموزشی فصل اول با زبان جاوا آشنا شوید. با زبان XML در ادامه آموزشها آشنا خواهید شد.
سخن پایانی
برای اینکه به یک برنامه نویس و توسعه دهنده حرفهای تبدیل شوید، باید تمرین، پشتکار و برنامه ریزی داشته باشید. صرف خواندن آموزش، نتیجهای نمی گیرید!
چه در زمینه اندروید و جاوا چه در سایر زمینه ها و زبان های برنامه نویسی، جز با تمرین و ممارست به هدف خود نخواهید رسید. اگر قبلا در زمینه های دیگری مانند گرافیک، طراحی وب و… فعالیت داشته اید این قانون را به سادگی میپذیرید.
مرتب اطلاعات خود را بروز کنید. تصور اینکه بنشینید ، تعدادی آموزش را مطالعه کنید و تصور داشته باشید که اطلاعات شما کافی است و می توانید برای مدت طولانی از آن استفاده کنید، اشتباه است. با جستجو در منابع انگلیسی و فارسی زبان اطلاعات جدید کسب کنید و با ابزار، کتابخانه ها و نمونه کدها آشنا شوید.
سعی ما نیز بر این است تا در حد امکان به معرفی کامپوننتها و کتابخانهها بپردازیم. با این حال هیچگاه خودتان را محدود به یک منبع آموزشی نکنید. هر موسسه/شرکت/وب سایتی که ادعا کند محتوای آموزشی که در اختیار شما قرار داده نیاز به مطالعه سایر منابع را مرتفع ساخته، در صداقتش شک کنید! لزومی به صرف هزینه بابت استفاده از منابع متفاوت نیست. در خصوص هر مطلبی با جستجو در وب به ده ها و صدها مقاله رایگان دسترسی خواهید داشت. هرچه تعداد مقالات بیشتری مطالعه کنید، اطلاعات شما کاملتر و بی نقص تر خواهد بود. هیچ مدرسی همه چیز را نمیداند، و همه چیز را بیان نمیکند!
تعداد صفحات : ۸
حجم : ۱ مگابایت
قیمت : رایگان
تاریخ بروزرسانی آموزش : ۱۴۰۰/۰۳/۰۱
دانلود رایگان با حجم ۱ مگابایت لینک کمکی
آیا میشه با بروزرسانی اند وید نسخه مورداستفاده هم ارتقا پیدا کنه یعنی اندروید ۴ بعد بروزرسانی بشه اندروید ۵ آیا امکانپذیره؟
منظورتون رو درست متوجه نشدم.
سلام .
یک سوال کلی
ایا میشه که ما یک فایل ای پی کا ی دیگه رو وارد پروژه کنیم و بعنوان یک اکتیویتی از اون استفاده کنیم ؟
خیر
سلامی دوباره خدمت شما اقای مطهری
اقای مطهری شما زبان کاتلین صرفا میخواهید معرفی کنید ؟
یا
قرار به صورت پایه (مبتدی) تا (پیشرفته) تدریس کنید ؟
سلام. خیر ان شا الله همین مباحث فعلی که داخل سایت هست و زبان استفاده شده در پروژه ها جاوا هستش، با فرمت ویدئویی و زبان کاتلین تهیه خواهد شد
با سلام
بنده سوالمو نمیدونستم تو کدوم بخش مطرح کنم و فک کردم شاید اینجا بهترین جا باشه
http://s13.picofile.com/file/8400244100/Untitled.png
من این اپو نوشتم اما فقط روی api 25 به بالا کار میکنه وقتی api target رو زیر ۲۵ میزارم اینجوری میشه و در حالت قبلی روی گوشی های زیر اندروید ۸ (در واقع ۷ خوردی) نصب نمیشه
مینیمم api هم ۱۸ ممنون میشم کمک کنین
اگه اشتباه نکنم باید مربوط به کست شدن ویجتها باشه. برای نسخه های پایین موقع تعریف مثلا دکمه، قبل findviewById باید (Button) نوشته باشید.
B1 = (Button) findViewById
حرف شما کاملا درست ولی من اونارو به پیشنهاد خود اندروید استودیو حذف کردم (برایه هارد کد) و خیلی هم باهاشون یازی کردم اما بازم همین ارور بود و یه چیز جدیدم فهمیدم که رو بعضی گوشیا نصب نمیشه
samsung j1 ace 4.4.4 شد
huawei tit u02 5.1 نشد
samsung note 4 6.1 نشد
یه بند خدایی تو تلگرام با اندروید ۶ شد
سلام , میشه لینک پست های اموزش برنامه نویسی با اندروید استودیو که حدود پنجاه و خورده ای فصل و اموزش بود رو بدین ؟؟
ممنون از سایت خوبتون
انتهای هر مطلب میتونید فایل مربوطه رو دانلود کنید. اگه منظورتون پکیج هست که از صفحه ی دریافت پکیج اقدام کنید
با اینکه به سختی مطالب رو یادگرفتید، جا داره تشکر کنم از شما و همهی عزیزان این مرزو بوم که از علم و دانششون دریغ نمیکنن و در اختیار دیگران قرار میدهند.
به شما و همهی هموطنانم که در راه علم و دانش قدم گذاشتهاند، افتخار میکنم. و نهایت سپاس رو دارم.
موفقیت روز افزون رو برایتان ارزومندم.
بسیار ممنونم عالی بود
با سلام…
ممنون از اموزش تون…
خواستم بدونم در ادامه شما فرض رو براین گذاشتید که ما جوا رو کامل بلدیم و کاربرد اون رو توضیح می دید یا در حین کار جوا رو شرح می دید؟
چون چیزی از بند اخر متن متوجه شدم گوا شم دیگر فرض رو می گذارید ما زبان جوا رو با بلد بوده و ادامه می دیم…
ببینید اینطور نیست که اگر شخصی زبان جاوا رو از قبل بلد باشه، بدون توضیحات مربوط به اندروید بتونه درک کنه. چون یک زبان در هر پلتفرمی به نحو متفاوتی استفاده میشه. در آموزشها فرض بر اینه که کاربر یک حداقل آشنایی با جاوا رو داره و در آموزشها هرجا که از جاوا استفاده شده توضیحات هم ارائه شده. حتی اگر شخص قبلا با سایر زبانها کار کرده یا فرصت نداره اول با جاوا آشنا بشه و مستقیم بره سراغ آموزشهای اندروید، باز هم به مشکل خاصی برنمیخوره و بنظرم میتونه درک کنه
درست می فرمایید…
منظور دقیق من این بود ایا بدون مطالعه اون جزوه اموزش جاوا با اکلیپس که در فصل اول قرار دادید
امکانش نیست اموزش ها رو ادامه بدیم؟
چرا مشکلی پیش نمیاد. نهایتا هرجا که مربوط به جاوا بود و توضیحات رو متوجه نشدید میتونید به آموزشهای فصل اول رجوع کنید یا یه سرچ بکنید داخل وب. حداقل فصول ابتدایی از نظر من بدون مطالعه آموزشهای اختصاصی جاوا هم قابل درکه
سلام. واقعا از زحمات شما تشکر می کنم . به بنده خیلی کمک کردید
بابا ایول مرد
خیلی عالی بود تشکر کمترین کاریه که میتونم برات انجام بدم
روایتی داریم از پیامبر که دلم رو در آموزش رایگان بسیار بسیار روشن کرد و خودم به تجربه بهش رسیدم
مضمون روایت این بود که: هر کسی علمی رو به رایگان در اختیار کسی قرار بده خداوند در ازای اون چیزهایی رو بهش یاد میده که تا به حال نمی دونسته
تشکر فراوان بابت آموزش و راهنمایی
عالی بود،
واقعا که صداقت بهترین سیاسته.
آفرین بر شما بزرگ مرد خیلی کامل و زیبا
چقدر زیبا و دلسوزانه راهنمایی میکنید. ممنون از تهیه این آموزشهای مفید
نظر لطف شماس