راهنمای توسعه رام های اندروید از پایه تا پیشرفته (بخش اول؛ مبانی و آماده سازی محیط)

استاندارد

picture1

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

گام اول؛ مفاهیم پایه

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

اندروید چیست؟

اندروید سیستم عامل طراحی شده برای گوشی های هوشمند جدید است. از آنجایی که می توان کدهای دستوری را تغییر و باگ های احتمالی را اصلاح کرد آن را متن باز (Open Source) می نامند.

کدهای متنی اندروید (Android Source Code) چیست؟

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

رام اندروید (Android ROM) چیست؟

رام اندروید همان سیستم عامل اندروید است. رام اندروید شامل رابط کاربری (User Interface) و فایل های سیستمی برای نگهداری اطلاعات کاربر از قبیل مخاطب و … است. رام براساس کرنل لینوکسی طراحی شده که به آن برای افزایش کارآیی و راحتی استفاده قابلیت هایی اضافه شده است.

رام اندروید از چه قسمت هایی تشکیل شده است؟

به صورت کلی رام اندروید از بخش های زیر تشکیل شده است:

  • Kernal
  • Bootloader
  • Recovery
  • Radio
  • Framework
  • Apps
  • Core
  • Android-Runtime

توضیح اجزای رام اندرویدی:

کرنل:

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

بوتلودر:

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

ریکاوری:

به زبان ساده ریکاوری به معنی مسیر و ابزار پشتیبان گیری و بازیابی دستگاه است. در زمان هایی که سیستم عامل گوشیتان دچار مشکل شده است، ریکاوری وظیفه ترمیم و تعمیر ایراد و باگ های سیستم عامل را ایفا می کند. همچنین در فلش کردن رام ها، کرنل ها و … بکار می رود.

رادیو:

پایین ترین لایه نرم افزاری دستگاه قسمت رادیو است. این قسمت جزء اولین قسمت هایی است که اجرا می شود (حتی قبل تر از بوتلودر). وظیفه این قسمت کنترل قسمت های ارتباطی مانند GSM، آنتن و GPS را بر عهده دارد.

گام دوم؛ آماده سازی محیط برنامه نویسی

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

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

  • نرم افزارهای مورد نیاز:

– سیستم عامل لینوکسی ( استفاده از Ubuntu 13.10 به دلیل رابط کاربری آسان و مناسب توصیه می شود)

– پک نرم افزاری جاوا (Java Development Kit)

 

برای داشتن سیستم Ubuntu و نصب آن بر روی سیستم سه راه می توان در پیش گرفت:

– نصب Ubuntu به عنوان سیستم عامل اصلی

– نصب و اجرا Ubuntu در داخل ویندوز (با استفاده از نرم افزارهای VM یا VB)

– نصب Ubuntu به صورت مجزا در کنار ویندوز به صورت Dual Boot (نصب بر روی پارتیشن مجزا)

 

چون در این آموزش سعی می شود از پایه تا سطوح بالای ویرایش رام آموزش داده شود، از روش دوم به دلیل راحتی و سهولت استفاده خواهد شد؛ برای نصب Ubuntu در داخل ویندوز می توان از دو نرم افزار محبوب VirtualBox (رایگان) و Workstation/Player (نسخه پولی) استفاده کرد. بالتبع در ادامه آموزش از VB استفاده خواهد شد 😀 .

نصب Ubuntu

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

  • برنامه VirtualBox را اجرا کنید.
  • بر روی New  کلیک کنید.

1-gsmdevelopers-com-ubunto

  •  سپس در پنجره باز شده، نامی برای سیستم عامل مجازی خود وارد کنید. با این نام هر بار در اجرای Virtual Box سیستم عامل فراخوانی خواهد شد. در این آموزش سیستم عامل را با نام Ubuntu 13.10 نامگذاری شده است.

2-gsmdevelopers-com-ubunto

3-gsmdevelopers-com-ubunto

  • در این مرحله بایستی مقداری از RAM برای سیستم عامل مهمان اختصاص بدهیم. این قسمت از عملیات بسیار حساس است ولی مراحل کار بسیار آسان است. با مثالی مراحل کار آموزش داده می شود:

در نظر بگیرید سیستم عاملی با ویندوز 7 64بیتی در اختیار دارید که 10 گیگ RAM بر روی آن نصب است. از این میزان بایستی در حدود 6 گیگ به Virtual Box اختصاص دهیم تا سیستم عامل مهمان را اجرا کند.

4-gsmdevelopers-com-ubunto

  • در گام بعدی بایستی برای سیستم عامل مهمان یک درایو مجازی ایجاد شود، در پنجره بعدی گزینه  Virtual Hard Drive را انتخاب کرده و دکمه Creat را انتخاب کنید. برای درایو مجازی می توان فرمت های مختلفی وجود دارد بهترین فرمت برای اجرای برنامه ها و نرم افزارهای متنوع فرمت VMDK است.

5-gsmdevelopers-com-ubunto

6-gsmdevelopers-com-ubunto

  • در ادامه فضای دینامیکی برای سیستم عامل مهمان بایستی در نظر بگیریم؛ در پنجره بعدی گزینه Dynamically Allocated را انتخاب کرده و همچنین توجه شود که گزینه Split into files of less than 2 GB تیک زده نشود.

7-gsmdevelopers-com-ubunto

  • در پنجره بعدی میزان فضای لازم برای نصب و اجرای سیستم عامل مهمان را تعیین خواهید کرد. بایستی توجه نمود که این میزان فضا بر روی هارد دیسک وجود داشته باشد. به عنوان مثال اگر برای سیستم عامل مهمان 200GB در نظر بگیرید بایستی حداقل 220GB فضای خالی بر روی سیستم داشته باشید. کمترین فضایی را که برای بهینه اجرا شدن و ساخت رام های اندرویدی برابر 100GB است، در حالیکه توصیه می شود این مقدار فضا را برابر 150GB در نظر بگیرید. دلیل انتخاب این مقدار فضا در ادامه روشن خواهد شد.

8-gsmdevelopers-com-ubunto

9-gsmdevelopers-com-ubunto

  • در پنجره بعدی بر روی Setting کلیک کرده و بر روی تب Processor بروید. در این قسمت مقدار Processor (s) را تا آخر قسمت سبز رنگ بکشید. با این عمل تعداد هسته های درگیر CPU را مشخص می کنید.

10-gsmdevelopers-com-ubunto

  • در ادامه به تب Acceleration رفته و هر دو گزینه را تیک بزنید.

11-gsmdevelopers-com-ubunto

  • حال به قسمت Storage  رفته و بر روی Controller: IDE کلیک کنید؛ در مقابل آن بر روی آیکون CD که با علامت (+) مشخص شده است کلیک کنید.

12-gsmdevelopers-com-ubunto

  • فایل ISO سیستم عامل Ubuntu را آدرس دهی کرده و انتخاب کنید:

13-gsmdevelopers-com-ubunto
14-gsmdevelopers-com-ubunto

  • حال در قسمت Setting بخش System را انتخاب کنید و در قسمت Boot Order الویت بوت شدن سیستم عامل را بر روی CD/DVD انتخاب کنید. (این عمل را نیز می توانستید به صورت مستقیم در هنگام بوت شدن سیستم و فشردن کلید F12 و انتخاب CD/DVD انجام دهید.)

15-gsmdevelopers-com-ubunto

  • حال بر روی دکمه Start کلیک کنید تا سیستم عامل مهمان بر روی VirtualBox اجرا شود.
  • در زمان بارگذاری Ubuntu برای اولین بار با پنجره زیر مواجه خواهید شد. با دو گزینه Try Ubuntu و Instal Ubuntu که به ترتیب به معنی نصب آزمایشی و نصب کامل Ubuntu است. برای ادامه نصب بر روی Instal Ubuntu کلیک کنید.

16-gsmdevelopers-com-ubunto

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

17-gsmdevelopers-com-ubunto

  • در گام بعدی نحوه نصب Ubuntu تعیین خواهد شد. چون در درون Virtual Box سیستم عامل را نصب می کنیم، گزینه ها را در حالت پیش فرض خود ادامه دهید.

18-gsmdevelopers-com-ubunto

  • در پنجره های بعدی مشابه با نصب ویندوز منطقه زمانی، زبان نوشتاری و بقیه جزئیات را وارد کنید.

19-gsmdevelopers-com-ubunto

20-gsmdevelopers-com-ubunto

  • در پنجره بعدی مشخصات خود را وارد کنید.

21-gsmdevelopers-com-ubunto

  • در پنجره بعدی از شما خواسته می شود با ایمیلتان وارد سیستم عامل شوید، پیشمهاد می شود این مرحله را با زدن Skip رد شوید.

22-gsmdevelopers-com-ubunto

  • مراحل نصب تقریبا تمام شده است. حال منتظر پیام به پایان رسیدن نصب شوید.

23-gsmdevelopers-com-ubunto

  • 😎 😎  😎 تبریک به راحتی توانستید سیستم عامل Ubuntu را بر روی سیستم خود نصب کنید.

 

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

[button link=”http://www.gsm-developers.com/%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%b1%d8%a7%d9%85-%d9%87%d8%a7%db%8c-%d8%a2%d9%86%d8%af%d8%b1%d9%88%db%8c%d8%af-%d8%a7%d8%b2-%d9%be%d8%a7%db%8c%d9%87-%d8%aa/” size=”medium”]قسمت دوم آموزش[/button]

برای بحث و تبادل نظر میتوانید به انجمن تخصصی جی اس ام مراجعه کنید

[button link=”http://forum.gsm-developers.com/thread12626.html#post44583″ size=”medium”]لینک آموزش در انجمن[/button]

هر گونه کپی برداری از پست شرعاً حرام بوده و مورد پسند نویسنده نمی باشد.