PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اندروید را از کجا شروع کنیم؟



electera
08-01-2014, 14:36
ایشالا در این تاپیک مقدمه ای از اندروید تا برنامه ها و فایلهای مورد نیاز جهت نصب و توسعه اندروید معرفی میشه.
سعی میشه مطالب خلاصه باشه و لینکها مفید قرار داده بشه و به سوالات اولیه پاسخ داده بشه.
راستش خودم تازه شروع کردم و ایشالا باهم اندروید را پیش میبریم.

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

به امید خدا شروع میکنیم...

electera
08-01-2014, 14:57
مقدمه:

اندروید یک سیستم عامل موبایل است که بر اساس نسخه‌ی تغییر یافته‌ی لینوکس بنا‌ نهاده شده است. کلمه اندروید به معنای ربات انسان نما است. این سیستم عامل در اصل توسط شرکتی با همان نام یعنی Android Inc. در سال 2005 بعنوان بخشی از استراتژی ورود به فضای موبایل ایجاد شد و سپس توسط گوگل خریداری شد و بدین ترتیب گوگل سرپرستی کار توسعه و تیم توسعه‌ی اندروید را به¬عهده گرفت. پروژه اندروید در سال ۲۰۰۷ به موازات معرفی اتحادیه گوشی¬های اپن سورس از طرف گوگل، به¬طور جدی پیگیری شد. این اتحادیه شامل شرکت¬های نرم افزاری، سخت افزاری و ارتباطی مثل ال¬جی، سامسونگ، موتورولا، اچ¬تی¬سی، انویدیا… و البته گوگل بود. اولین نسخه اندروید در اکتبر سال ۲۰۰۸ منتشر شد. در سال ۲۰۱۲، ۵۰۰ میلیون گوشی اندرویدی در دنیا فعال بوده و هست. گوگل قصد داشت تا اندروید باز و رایگان باشد و به همین علت، قسمت اعظم کد اندروید تحت لیسانس اوپن‌سورس Apache انتشار پیدا کرد. یعنی هر کسی که بخواهد از اندروید استفاده کند، می‌تواند این کار را با دانلود سورس کد کامل اندروید انجام دهد. بعلاوه، سازندگان (معمولاً تولید کنندگان سخت‌افزار) قادرند تا اضافات اختصاصی خود را به اندروید اضافه کرده و آن را سفارشی کنند تا محصولاتشان با دیگر سازندگان متفاوت باشد.


You can see links before reply

اکتبر سال 2008 اولین گوشی موبایل با سیستم عامل اندروید HTC G1

اندروید بر خلاف سیستم عامل iOS آیفون که فقط پردازنده های ARM را پشتیبانی می¬کند، بر روی انواع مختلفی از پردازنده¬ها (ARM, MIPS, Power Architecture, x86) قابل نصب است. از سال ۲۰۰۸ تاکنون تلفن¬های همراه متعددی با استفاده از این سیستم عامل به بازار ارائه شده¬اند. اندروید دارای کتابخانه¬های برنامه¬نویسی قدرتمندی است که کار برنامه¬نویسان را بسیار ساده می-کند. از جمله دیتابیس رابطه¬ای کوچک شده‌یSQLite ، توابع گرافیکی ۳ بعدیopenGL ، موتور مرورگر webkit (همانند مرورگر کروم) و موتور گرافیکSGL . در واقع اندروید مجموعه¬ای از نرم افزارهای (software stack) موبایل است که شامل سیستم عامل، middleware ها و برنامه¬های کلیدی (key applications) است. اندرویدSDK (در واقع SDK مخفف واژگان Software Development Kit به معنی پکیج توسعه نرم افزار می¬باشد)، ابزارها و API های لازم برای شروع برنامه نویسی بر روی پلتفرم اندروید با زبان برنامه نویسی جاوا را مهیا کرده است.
خصوصیات:
چارچوب برنامه Application framework) امکان استفاده مجدد و جایگزینی کامپوننت¬ها را فراهم می¬کند.
ماشین مجازی دالویک Dalvik virtual machine) وظیفه بهینه سازی کدها برای اجرا بر روی موبایل را دارد.
مرورگر داخلی Integrated browser) منطبق بر موتور WebKit منبع باز
گرافیک بهینه شده Optimized graphics) قدرت گرفته از کتابخانه 2D، گرافیک 3D منطبق بر OpenGL ES 1.0 (شتاب دهنده سخت افزاری)
:SQLite برای ذخیره اطلاعات
پشتیبانی از رسانه Media support) با پشتیبانی از فرمت¬های رایج صوتی، ویدئویی و عکس MPEG4, H.264, MP3) (AAC, AMR, JPG, PNG, GIF
مکالمات تلفنی GSM Telephony) (وابسته به نوع سخت افزار)
Bluetooth, EDGE, 3G, WiFi: (وابسته به نوع سخت افزار)
دوربین، GPS، قطب نما و شتاب سنج: (وابسته به نوع سخت افزار)
محیط توسعه غنی Rich development environment) شامل امولاتور، ابزارهای دیباگ کردن، پروفایل کردن حافظه و پلاگین برای محیط توسعه اکلیپس

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


You can see links before reply


بخش رابط کاربری سیستم عامل اندروید با زبان جاوا نوشته شده است و بسیاری از برنامه¬ها نیز با جاوا نوشته شده¬اند. اندروید به همراه بسته¬های مختلفی از جملهemail client, SMS program, calendar, maps, browser, contacts, and others ارایه می-شود. تمام این برنامه¬ها با استفاده از زبان برنامه نویسی جاوا نوشته شده¬اند. اما این سیستم عامل، Java Virtual machine ندارد. برای اجرای برنامه¬های جاوایی روی این سیستم عامل، کدهای جاوا به کدهای Dalvik تبدیل می¬شوند و سپس روی Dalvik virtual machine اجرا می¬شوند. (دالویک یک ماشین مجازی جاوایی است که برای سیستم عامل اندروید بهینه شده است تاRAM و CPU و باتری کمتری مصرف کند). برنامه¬های جاوایی معمولی هم که روی گوشی¬های دیگر اجرا می¬شوند با استفاده از نرم افزارهای شبیه ساز ماشین مجازی جاوا مانند j2ME MIDP Runner روی این سیستم عامل قابل اجرا هستند. برنامه نویسان C و C++ می توانند با استفاده از NDK (Native Development Kit) اقدام به توسعه اپلیکیشن¬های اندروید با استفاده از زبان های دیگر کنند.

چارچوب برنامه Application Framework)
با فراهم آوردن پلتفرم توسعه باز (open development platform)، اندروید برنامه سازان را قادر کرده است تا برنامه¬های کاربردی خلاقانه و غنی برای این پلت¬فرم فراهم سازند. توسعه دهندگان آزادی کامل دارند تا از ویژگی¬هایی مانند دسترسی به سخت افزار، دسترسی به اطلاعات محلی (موقیت جغرافیایی)، اجرای سرویس¬های پس¬زمینه (background services)، تنظیم زنگ ساعت، اضافه کردن اطلاعیه¬ها (notifications) به نوار وضعیت و بسیاری دیگر در برنامه¬هایی که می¬سازند، استفاده کنند.
توسعه دهندگان دسترسی کامل به همان چارچوب APIهایی دارند که برنامه¬های هسته (the core applications) دارند. معماری برنامه¬های کاربردی (The application architecture) به منظور ساده سازی استفاده مجدد از کامپوننت¬ها طراحی شده است. هر برنامه¬ای می¬تواند قابلیت¬های خود را در اختیار دیگر برنامه¬ها قرار دهد و همچنین از قابلیت¬های دیگر برنامه¬ها استفاده کند (البته به محدودیت¬های امنیتی چارچوب هم بستگی دارد). این طرزکار مشابه به کاربر اختیار تعویض و جایگزینی کامپوننت¬ها را می¬دهد.

You can see links before reply

• برنامه‌های کامپایل شده در فایل‌هایی با پسوند(android package file) apk ذخیره می‌شوند.
• هر برنامه‌ای در سندباکس (SandBox) جداگانه‌ای اجرا می¬شود که از بقیه‌ی برنامه‌ها ایزوله‌ است و هر برنامه در پروسه‌ی لینوکسی خودش اجرا می‌شود.
• هر برنامه‌ای شامل فایل‌‌های جزئی(component)، فایل‌های ظاهری (manifest) و منابع (resources) است.
• فایل‌های جزئی شامل :
• فعالیت(Activities) : شامل صفحه فعال در برنامه می¬باشد (مرتبط با UI).
• خدمات(Services) : فعالیت¬های در حال انجام در پس زمینه می¬باشد که پارامتر بصری ندارند (بدون UI).
• ارائه دهنده‌ی محتواcontent provider) وظیفه تامین اطلاعات مورد نیاز برنامه را از دیتابیس¬ها بر عهده دارد.
• گیرنده‌ پخشbroadcast receiver) پیغام¬های سیستم یا برنامه را دریافت می¬کند تا در صورت نیاز تغییرات خواسته شده را اعمال کند.
intend ها نیز از موارد مهم در برنامه نویسی می¬باشند. intend ها به برنامه اجازه می¬دهد تا از service ها استفاده کنند یا مجوز استفاده از سرویس¬ها را به برنامه می¬دهد. هر برنامه¬ای یک نمایه خاص دارد ( user interfaceیا به اختصار UI ) وقتی پروژه¬ای در eclipse تعریف می¬شود فایلی در پوشه layout ایجاد می¬شود به نام main.xml که در آن می¬توان صفحه اصلی را طراحی کرد (با فرمتxml ).
برنامه¬های زیربنایی، مجموعه¬ای از سرویس¬ها و سیستم¬های زیر هستند:
مجموعه قابل گسترشی از 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) برنامه¬ها را در دست دارد و به نحوه اجرای برنامه¬ها نظارت می¬کند.


You can see links before reply

electera
08-01-2014, 15:19
کتابخانه¬ها 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
3D 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) متکی بر هسته لینوکس است.
خصوصیات اندروید:
اندروید متکی بر لینوکس نسخه ۲٫۶ برای انجام سرویس¬های اصلی مانند security, memory management, process management, network stack و driver model است. این هسته همچنین مانند یک لایه انتزاعی (abstraction layer) مابین سخت افزار و سایر نرم افزارها عمل می¬کند.
معرفی نسخه‌های مختلف اندروید:
نسخه¬های مختلف اندروید بر اساس نام دسرهای میان وعده نام¬گذاری شده¬اند. نسخه اول سیستم عامل اندروید که 1 بود نام خاصی نداشت و بیشتر کارایی اینترنتی داشت و در عمل توان رقابت با هیچ سیستم عاملی را نداشت. سپس نسخه 1.1 در 9 فوریه 2009 طراحی شد که مجدداً بدون نام انتشار یافت. نسخه 1.5 که Cupcake به معنی کیک فنجانی بود به منزله اولین نسخه دارای نام سیستم عامل اندروید است. نسخه 1.6 که Donut به معنی پیراشکی نام داشت پس از نسخه 1.5 انتشار یافت. نسخه بعدی که 2.0/2.1 بودEclair یا نان خامه¬ای نام داشت. نسخه بعد که 2.2 بود تحت عنوانFroyo به معنی ماست یخی روانه بازار شد. سپس نسخه 2.3 تحت عنوانGingerbread به معنی نان زنجبیلی معرفی شد. قدم بعدی اندروید بازار تبلت ها بود که برای همین منظور نسخه 3.0 در 22 فوریه 2011 تحت عنوان Honeycomb به معنی شانه عسل را معرفی کرد. سپس نسخه 4.0 که Ice cream Sandwich یا بستنی حصیری نام داشت تلفیقی از ویژگی¬های اندروید 3.0 که برای تبلت¬های طراحی شده بود به علاوه یکسری ویژگی¬های جدید بود که این نسخه برای کلیه تجهیزات اندرویدی از موبایل گرفته تا تبلت مورد استفاده قرار می¬گیرد. در حال حاضر آخرین نسخه اندروید 4.3 است که Jelly Bean به معنی آب¬نبات پاستیلی است.

You can see links before reply NgbUEA7dr2zcmvffhxidw


محیط برنامه نویسی اندروید:
به منظور شروع برنامه¬نویسی برای اندروید چند رویکرد متفاوت را می¬توان اتخاذ کرد که در این قسمت به طور خلاصه این محیط¬های برنامه نویسی را معرفی می¬کنیم.
محیط برنامه نویسی اکلیپس:
معروف¬ترین محیط برنامه نویسی برای توسعه اندروید محیط برنامه نویسی اکلیپس به همراه ابزارهای SDK وADT (Android Development Tools) است. در واقع از آنجا که محیط برنامه نویسی اکلیپس Open Source است شرکت گوگل تمایل به مراتب بیشتری برای فراهم آوردن ابزارهای توسعه اندروید برای این محیط برنامه نویسی قدرتمند از خود نشان داده است.


You can see links before reply AOGUNJ_eJYCc4H5meuIkQ


نسخه ADT Bundle محیط برنامه نویسی اکلیپس:
این محیط برنامه نویسی دقیقاً همان محیط برنامه نویسی اکلیپس است با این تفاوت که خود شرکت گوگل تغییراتی در آن صورت داده و آن را منتشر کرده است. این محیط برنامه نویسی بر خلاف اکلیپس که برای توسعه اندروید می¬بایست تنظیمات خاصی در آن انجام داد، در برگیرندۀ کلیه ابزارهای لازم برای توسعه اندروید از جمله SDK و ADT و Emulator بوده و کاربران دیگر نیازی به دانلود کردن این ابزارها به صورت مجزا نخواهند داشت. لازم به ذکر است توسعه¬دهندگانی که با نحوه کار با محیط برنامه نویسی اکلیپس آشنایی داشته باشند به راحتی خواهند توانست از این محیط هم در تولید اپلیکیشن اندروید استفاده کنند.


You can see links before reply

You can see links before reply

شبیه ساز اندروید


محیط برنامه نویسی اندروید استودیو:
اندروید استودیو (Android Studio) محیطی برای توسعه برنامه¬های اندرویدی است که برای اولین بار خود شرکت گوگل بر پایه محیط برنامه نویسی قدرتمند IntelliJ IDEA طراحی کرده است که همانند اکلیپس ابزارهای لازم برای طراحی، توسعه و مشکل¬یابی برنامه¬ها را داراست. اولین نسخه از اندروید استودیو در کنفرانس سالیانه گوگل که در اردیبهشت ماه سال 1391 اتفاق افتاد تحت عنوان نسخه1 معرفی شد.


You can see links before reply ycG9Ws8zzYLXt2KaBMU You can see links before reply

electera
08-01-2014, 15:41
همانطور که گفته شد در محیط های مختلفی چون اندروید استدیو، پایتون، دات نت، ادوبی ایر و... میتوان برای اندروید برنامه نوشت ولی محیط پیشنهاد شده استفاده از محیط ایکلیپس و نصب SDK و ADT و امولاتور گوگل هستش که پشتیبانی قوی و مثال های مختلف در اینترنت به زبان اصلی و فارسی میتونه به شما در استفاده از کدهای آماده کمک کنه.
دوستانی که مشکل ویی/پی**ا/ن دارن پیشنهاد میشه از این سایت ADT Bundle را که حدود 450 مگ حجمشه دانلود کنن تا مشکل کمتری داشته باشند:
آموزش برنامه نویسی اندروید :: دانلود JDK و SDK برای ایرانیان (You can see links before reply)

توجه داشته باشین که jdk هم باید نصب بشه که در لینک بالا نسخه 7 موجوده.
بعداز اون باید دستگاه مجازی را بسازین که روش اون بصورت متن و فیلم در لینک زیر موجوده:
ایجاد دستگاه مجازی (Virtual Device) یا شبیه ساز (emulator) برای اندروید (You can see links before reply)

تلفظ androin: اَندروید صحیح است و آندروید معمولاً تلفظ نمیشه.

morteza_rk
08-01-2014, 21:43
سلام مهندس

ممنون از پست های عالیتون. حتما این تاپیک رو ادامه بدید. :hi:

electera
09-01-2014, 17:24
سلام مهندس

ممنون از پست های عالیتون. حتما این تاپیک رو ادامه بدید. :hi:
سلام
تا جایی که سواد محدودم اجازه بده حتما. ایشالا علاقمندان جهت تکمیل مطالب در بحث ها شرکت کنند.

و اما چند نکته مهم:
قبل از ارائه پک ADT Bundle برنامه نویسان مجبور بودند اکلیپس، SDK و ADT و چند فایل دیگر را جداگانه و از سایت های مختلف دانلود کنند و مسیر آنها را در اکلیپس معرفی کنند و... اما به لطف پک ارائه شده در لینک بالا این مشکلات حل شده و دوستان توجه داشته باشند روش های نصب که در ابتدای کتابها و اکثر سایتها ارائه شده برمبنای روش قدیم است. با دنبال کردن مراحل زیر ایشالا مشکلی نخواهید داشت.
مراحل نصب برنامه های مورد نیاز جهت توسعه اندروید:
1- ابتدا JDK که در حال حاضر نسخه 7 میباشد از لینک زیر دریافت کنید (وسط صفحه)
پیشنهاد میشه اگر ویی*پ؟ی/ ان دارید مستقیماً از سایت جاوا آخرین نسخه را دریافت کنید. و سپس آن را نصب کنید.
آموزش برنامه نویسی اندروید :: دانلود JDK و SDK برای ایرانیان (You can see links before reply)

2- ADT Bundle را از لینک بالا دانلود کنید. در حال حاضر در این سایت بالا فایل انتشار 2013/07/29 ارائه شده و اگر بتوانید از سایت دِوِلوپر گوگل آخرین فایل را بگیرید بهتر است. این پک کامل است و نیازی به دریافت فایل دیگر برای راه اندازی اولیه نیست.
فایل را از حالت زیپ خارج کنید و به محل نصب برنامه هایتان منتقل کنید و بهتر است یک شورت کات از فایل اجرایی اکلیپس در دسکتاپ جهت دسترسی آسان تر ایجاد کنید. (پیشنهاد میشه فایل زیپ را پاک نکنید)
توجه کنید که فایلی برای نصب وجود ندارد و بعداز اینکه فایل از حالت زیپ خارج شد قابل اجرا است.
3- اکلیپس را اجرا کنید. احتمالاً پیغامی مبنی بر پیدا نکردن SDK خواهد داد که از مسیر داده شده میبایست مسیری که فایل SDK قرار دارد را به اکلیپس معرفی کنید.

4- کار تمام است و اکنون میتوان از برنامه نویسی اندروید لذت ببرید.

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

mj3747
12-07-2014, 20:44
دوستان نظرتون در مورد Basic4Android چیه؟

shahin
12-07-2014, 22:04
دوستان نظرتون در مورد Basic4Android چیه؟

اگر می خوای درست حسابی یاد بگیری فقط جاوا. چرا این حرف رو می زنم؟! چون اولا اندروید یه ماشین مجازی جاوا (دالویک و جدیدا آرت )رو خودش داره پس بدیهی هست که باید با جاوا براش کد زد. هر زبون دیگه ای هم که فکرش رو بکنید باید تبدیل بشه به بایت کد جاوا. (البته یه استثنا تو سی++ هستا) دوما تا دلت بخواد براش راهنما هست. هر مشکلی که فکرش رو بکنی قبلا برای یکی پیش اومده.فقط کافیه گوگل کنی سوال رو.

mj3747
13-07-2014, 03:46
مرسی عزیز
پس برم سراغ eclipse؟
برنامه دیگه ای هم هست؟ میخوام از همین اول اصولی شروع کنم.