اینم یه اطلاعاتی در باره سیستم اندروئید برای کسانی که آشنایی ندارن
سیستم عامل آندرويد چیست ؟

Android به زبان ساده سيستم عاملي است براي دستگاه هاي موبايل و گوشي هاي هوشمند که توسط بيش از 30 کمپاني معروف پشتيباني مي شود. آندرويد اوپن سورس است و توسعه دهندگان مي توانند با استفاده از Android SDK برنامه هاي مختلفي براي اين سيستم عامل بنويسند. در واقع آندرويد بستري را فراهم مي کند تا برنامه نويسان بتوانند هرچه سريعتر و بهتر برنامه هايي بسازند که از تمام ويژگي هاي يک گوشي هوشمند استفاده کند. آندرويد به معناي واقعي “باز” (=Open) است، يعني برنامه نويس مي تواند از تمام قدرت يک تلفن همراه استفاده کند. آندرويد امکان استفاده از توابع داخلي گوشي موبايل همچون شماره گيري، فرستادن SMS يا استفاده از دوربين گوشي را به برنامه نويسان مي دهد تا بتوانند اپليکيشن هاي قدرتمند و کاربردي براي کاربران بسازند.

تمام برنامه ها براي آندرويد يکي اند. آندرويد فرقي ميان يک برنامه third-party و توابع هسته سيستم عامل در اجرا نمي گذارد و هر دو مي توانند دسترسي مساوي به قابليت هاي گوشي داشته باشند. گوشي هايي که سيستم عامل آندرويد را خواهند داشت به کاربرشان اجازه مي دهند تا از تمام قابليت هاي يک گوشي هوشمند بهره ببرند. کاربران اين گوشي ها به معناي واقعي مي توانند دستگاه خود را بر اساس سليقه ي خود تغيير دهند و محيط سيستم عامل گوشي خود را سفارشي و شخصي سازي کنند. حتي کاربران مي توانند براي گوشي تعيين کنند که عکس هايشان با چه برنامه اي باز شود.

ويژگي ها و خصوصيات آندرويد

آندرويد تمامي تکنولوژي هاي اتصال (=Connectivity) شامل GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth و Wi-Fi را پشتيباني مي کند.
آندرويد از فرمت هاي مختلف فايل هاي مالتي مديا مثل MPEG-4, H.264, MP3, AAC, AMR, JPEG, PNG, GIF پشتيباني مي کند.
SMS, MMS و XMPP فرم هايي هستند که آندرويد براي ارسال پيغام هاي متني يا همان SMS از آن ها پشتيباني مي کند.
مرورگر موجود در آندرويد بر اساس فريم ورک اوپن سورس WebKit توسعه يافته است.
SQLite نرم افزاريست که براي ذخيره داده ها و مديريت بانک هاي اطلاعاتي سبک در آندرويد در نظر گرفته شده است.
ماشين مجازي جاوا (=Java Virtual Machine) در آندرويد به صورت پيش فرض تعبيه شده است. تمام برنامه هاي آندرويد بايد به زبان جاوا نوشته شوند. البته اين نسخه از JVM براي دستگاه هاي موبايل بهينه شده است.
ابزارهاي مختلف آندرويد براي توسعه دهندگان به راحتي در دسترس است و توسط شرکت گوگل پشتيباني مي شوند. اين ابزارها شامل کتابخانه ها، خطاياب، شبيه ساز گوشي و يکم پلاگين براي اکليپس است.
آندرويد از سخت افزارهاي مختلف همچون GPS و دوربين هاي متنوع پشتيباني مي کند.
تصاوير و فايل هاي گرافيکي بوسيله OpenGL پردازش مي شوند که کيفيت بالاتري خواهند داشت.
توسعه برنامه هاي کاربردي در آندرويد سريع، راحت و لذت بخش است

گوگل دسترسي آسان به ابزارهاي سودمند و کتابخانه هاي بسياري را براي توسعه و توليد برنامه هاي کاربردي مبتني بر آندرويد فراهم کرده است، که برنامه نويسان مي توانند با استفاده از آن ها هرچه سريع تر و راحت تر براي آندرويد برنامه توليد کنند. اين ابزارها شامل خطاياب، شبيه ساز گوشي، کتابخانه ها، اسناد، کدهاي نمونه و يک پلاگين براي اکليپس است. برنامه نويسي براي آندرويد به زبان جاوا انجام مي گيرد. توابع خود آندرويد نيز با استفاده از جاوا پياده سازي شده اند. آندرويد فقط قادر است کدهاي مديريت شده (=Managed Codes) را اجرا کنيد و قادر به اجراي کدهاي Native نخواهد بود.



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


اندروئید نام سیستم‌عامل منبع بازی است که گوگل برای تلفن‌های همراه طراحی کرده‌است

این سیستم عامل برای اولین بار در سال 2007 توسط گروهی به نام Open Handset Alliance معرفی شد. این گروه ترکیبی از شرکت‌های سازنده سخت‌افزار، نرم‌افزار و خدمات ارتباطی بودند که توسط گوگل تشکیل شده‌بود.

این گروه در طی سه سال گذشته توانسته شرکت‌های مختلف سازنده تلفن همراه را با خود همراه سازد و با عرضه این سیستم عامل برروی گوشی‌های ساخت شرکت‌های مطرحی مانند HTC، سامسونگ و موتورولا به گسترش سیستم عامل اندروید کمک کند.

ایده اصلی سیستم عامل اندروئید، منبع باز (Open Source) بودن آن است به این معنی که هر ** با نصب برنامه‌ای به نام (SDK (Software Development Kit می‌تواند برای این سیستم عامل برنامه مورد علاقه خود را بنویسد و آن را در فروشگاه نرم‌افزار اندروئید به نام Android Market Place برای فروش عرضه کند.

این سیستم عامل در نسخه‌های ابتدایی از قابلیت چند لمسی (Multi-Touch) برخوردار نبود ولی در نسخه‌های جدید آن برروی گوشی‌‌هایی مانند Nexus One چنین قابلیتی پیش‌بینی شده‌است.

معماری

سیستم عامل اندروئید از نظر معماری یک پشته نرم‌افزاری (Software Stack) به حساب می‌آید، به این معنی که مجموعه‌ای از برنامه‌های کوچک متصل به هم است که همگی به صورت یک سیستم عامل واحد کار می‌کنند.



در پایین‌ترین بخش معماری اندروئید، keel این سیستم عامل قرار دارد. keel هسته مرکزی سیستم عامل و ابتدایی‌ترین بخش آن را تشکیل می‌دهد. گوگل از نسخه 2.6 لینوکس برای طراحی keel اندروئید استفاده کرد که شامل برنامه‌های مدیریت حافظه، ایمنی و Driver‌های سیستم می‌شود.

بخش دیگر پشته اندروئید، کتابخانه‌ها (Library) سیستم عامل است. این بخش شامل دستورالعمل‌های مختلفی است که به دستگاه دستور می‌دهد با دیتای مختلف چطور رفتار کند. برای مثال کتابخانه Media Framework شامل اطلاعات اجرای انواع فرمت‌های فایل‌های عکس، فیلم و موزیک است.

در همین سطح از پشته ااندروئید، Android Runtime قرار دارد که شامل کتابخانه‌های Java‌ است که در ساخت برنامه‌های اندروئید به کار می‌رود و برای اجرای آن‌ها کاملاً حیاتی می‌باشد.

بخش دیگر پشته Runtime، Davlik Virtual Machine است. Virtual Machine نوعی از برنامه‌ها هستند که برروی سیستم عامل‌های مختلف نصب می‌شوند و محیط سیستم عامل و منابع آن را برای استفاده توسط برنامه‌های سیستم عامل‌های دیگر آماده می‌کنند. یکی از مزایای استفاده از Virtual Machine‌ در سیستم عامل اندروئید این است که هیچ برنامه‌ای به منابع برنامه دیگر وابسته نیست و اگر یکی از برنامه‌ها Crash‌ کند، کارکرد برنامه‌های دیگر تحت تأثیر قرار نمی‌گیرد. این امر مدیریت حافظه سیستم را نیز بسیار ساده می‌سازد.

در بالاترین سطح پشته اندروئید، چارچوب نرم‌افزارها (Application Framework) قرار دارد. این لایه شامل برنامه‌های کاربردی سیستم عامل نظیر برقراری تماس، استفاده از دوربین و ذخیره شماره تلفن است.

این لایه از سیستم عامل همان لایه‌ای است که به صورت "باز" در اختیار برنامه نویسان قرار می‌گیرد. این امر به آن‌ها اجازه دستیابی به منابع موبایل و سیستم عامل را می‌دهد.

Android SDK چیست ؟

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

C:\AndroidSDK

در سیستم خود آنزیپ کنید به علت اینکه بعد از این در آموزشها و نحوه ی نصب برنامه و ... , این آدرس ، آدرس مرجع برای AndroidSDK می باشد .


ADB چیست و چه عملیاتی را انجام می دهد ؟

ADB مخفف واژه Android Debug Bridge به معنی پل دیباگ آندروید است . این ابزار همراه با Android SDK در اختیار قرار میگیرد و برای کنترل و ارتباط با دستگاه آندرویدی شما کاربرد دارد . این ابزار و یا بهتر بگم مجموع دستورات داخل فولدر tools از Android SDK قرار دارد . این دستورات مهمترین اطلاعاتی هستند که هر فرد آندروید داری باید از آنها برای گوشی خود استفاده کند پس یاد گیری این دستورات از واجبات آندروید است تا شما بتوانید عملیات ابتدایی را برای گوشی خود انجام دهید . دستورات ADB بسیار زیاد هستند و بعضی از دستورات به صورت گردشی اجرا میشوند تا شما برای توقف آنها دستوری صادر کنید و اطلاعات کوچکی در هر بار بررسی را در اختیار شما قرار میدهند . در زیر با دستورات SDK بیشتر آشنا میشویم .



Android Debug Bridge Version 1.0.20


-d
باعث میشود دستورات به صورت مستقیم به تنها USB متصل برود و اجراء شود ؛ اگر بیشتر از یک USB متصل باشد باعث بوجود آمدن خطا میشود .



-e
باعث میشود دستورات مستقیما به تنها شبیه ساز برود و اجراء شود ؛ اگر بیشتر از یک شبیه ساز فعال باشد باعث بوجود آمدن خطا میشود .



-s <شماره سریال >
باعث ارسال و اجراء دستور به طور مستقیم به این شماره سریال میشه اگه گوشی یا شبیه ساز باشه فرقی نمیکند.



-p <نام محصول یا مسیر آن >
یک نام ساده محصول مثل 'sooner' و یا یک مسیر نسبی یا مطلق به فولدر خروجی یک محصول مانند 'out/target/product/sooner' ؛ اگر این دستور دقیقا مشخص نشود ، ANDROID_PRODUCT_OUT به عنوان مسیر شناخته میشود که یک مسیر مطلق است .



devices
نام تمام دستگاه های متصل را لیست میکند


-------------------------------------------------
دستورات مخصوص دستگاه ها




adb push <مبداء> <مقصد>
کپی کردن فایل یا فولدر به دستگاه



adb pull <مقصد> <مبداء>
کپی کردن فایل یا فولدر از دستگاه



adb sync [ <یک مسیر > ]
کپی از کامپیوتر به گوشی فقط در صورتی که تغییرات بوجود آمده باشد



adb shell
اجرای Shell مقصد به صورت قردادی ( تعاملی )



adb shell <دستور مورد نظر>
اجرای یک دستور در Shell مقصد



adb emu <دستور مورد نظر>
اجرای دستور در برنامه شبیه ساز



adb logcat [ <*****-مشخصات> ]
دیدن فایل اطلاعات دستگاه



adb forward <مبداء> <مقصد>
ارسال یک اتصال از راه سوکت ها به صورت :



tcp:<پورت>
localabstract:<نام سوکت یونیکس>
localreserved:<نام سوکت یونیکس>
localfilesystem:<نام سوکت یونیکس>
dev:<کاراکترهای نام دستگاه>
jdwp:<روند PID > (فقط برای مقصد)




adb jdwp
نمایش همه PID های یک عملیات در یک انتقال JDWP



adb install [-l] [-r] <فایل مورد نظر >
ارسال فایل موردنظر به دستگاه و نصب آن

[l-] یعنی فرستان برنامه به صورت قفل شده
[r-] یعنی اگر به نصب دوباره است اظلاعات آن حفظ شوند




adb uninstall [-k] <پکیج>
از نصب خارج کردن پکیج موردنظر

[k-] یعنی فولدرهای Cache و Data باقی بمانند



adb bugreport
برگردان همه اطلاعات از دستگاه که شاید شامل اطلاعات یک خطا باشد



adb help
همین لیستی که در حال توضیح دادنش هستیم را ظاهر میکند



adb version
شماره ورژن را نشان میدهد

--------------------------------------------------
دستورات مربوط به اطلاعات (DATAOPTS)

بدون پسوند یعنی پارتیشن Data دست نخورده باقی میماند
w- یعنی پارتیشن Data کلا پاک شود
r- یعنی پارتیشن Data از اول ساخته شود


دستورت برنامه نویسی




adb wait-for-device
انتظار برای دستگاه تا آنلاین شود



adb start-server
از اینکه سروری در حال اجراء است اطمینان حاصل میکند



adb kill-server
اگر سرور در حال کار است ، کار آن را متوقف میکند



adb get-state
اطلاعات offline | bootloader | device را نمایش میدهد



adb get-product
اطلاعات دستگاه را نمایش میدهد



adb get-serialno
شماره سریال دستگاه را نمایش میدهد



adb status-window
به طور پیوسته اطلاعات وضعیت یک دستگاه خاص را نمایش میدهد



adb remount
اطلاعات خواندن و نوشتن روی پارتیشن system دستگاه را کنترل میکند

--------------------------------------------------
دستورات شبکه



adb ppp [پارامترها]
اجرای PPP بروی USB
-نکته : شما نباید یک اتصال PDP را اتوماتیک اجرا کنید
- : به نوع PPP شما بستگی دارد ؛ برای مثال :


dev:/dev/omap_csmi_tty1

-[پارامترها] : defaultroute,debug, dump, local, notty ,usepeerdns
adb sync نکته :adb sync [ <مسیر موردنظر> ]
فولدر مقصد میتواند به صورت های زیر تعریف شود :
-اگر <مسیر مورد نظر > مشخص نشود ؛ هر دو پوشه system و data آپدیت خواهند شد
-اگر یا مشخص شوند فقط پوشه موردنظر آپدیت خواهد شد.