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

آموزش های نوین ترفند های و رازهای مخفی ویندوز و اندروید

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

آموزش های نوین ترفند های و رازهای مخفی ویندوز و اندروید

متخصص اندروید شوید

Kernel بخشی از نرم افزار است که همه چیز را در سیستم کنترل میکند.کرنل در واقع رابط بین سخت افزار و نرم افزار است و نرم افزارها در سیستم هرچیزی را نیاز داشته باشند که سخت افزار میبایست انجام دهد بهکرنل مراجعه میکنند و کرنل دستورات را به سخت افزار جهت اجرا میدهد. کرنل CPU را همراه با فرمان ها کنترل میکند.فرمان ها در مورد رفتار CPU تصمیم میگیرند،مانند زمانیکه CPU باید روی حداکثر clock و یا زمانیکه باید روی حداقل clock باشد. کرنل رفتار RAM و sd-card را با سازمان دهنده ها کنترل میکند.سازمان دهنده در مورد اینکه چه مدت پردازش ها باید در RAM ذخیره شود و تاثیر آن در سرعت خواندن و نوشتنsd-card تصمیم میگیرد. همچنین کرنل ولتاژ باتری را در یک clock خاص CPU کنترل میکند. کرنل هایی که (OC(OverClocked) ، UV (Under Volte را پیشنهاد میدهند فرمان ها و سازمان دهنده های جدید و init.d اضافی جدید را ساپورت میکنند. ( init.dاین امان را فراهم میکنند Tweaks در هنگام Boot گوشی اجرا شوند اگر آن ها در پوشه system/etc/init.d باشد. ) اگر کرنل نبود: کرنل به عنوان یک استاندارد برای عمل کامپیوتر است و تقریبا کاملا قابل اطمینان است . اگر در سیستم عامل چیزی به عنوان کرنل وجود نداشت ؛ دولوپرها بایستی برای هر کار کوچک با سخت افزار یا هر کار جزئی به صورت دستی برنامه نویسی میکردند . با وجود کرنل تنها کاری که آنه انجام میدهند برقرار ارتباط با سخت افزار به وسیله دستورات صحیح و از قبل تعیین شده API است و سازندگان سخت افزار انجام میدهند ارتباط سخت افزار با کرنل است ؛ بعد از آن همه کارها به کرنل سپرده میشود و کرنل همه این روابط را برقرار میکند . جمع بندی: فقط کافی است بدانید ارتباط قابل اطمینان بین سخت افزار و نرم افزار را کرنل انجام میدهد و هر ورژنی از اندروید کرنل خاص خود را دارد . بوت لودر: اولین برنامه ای که روی هر سیستم اندرویدی اجرا می شود، بوت لودر می باشد. از نظر تکنیکی بوت لودر خارج از حوزه خود اندروید می باشد و برای پردازش های بسیار سطح پایین سیستم، قبل از بارگذاری کرنل لینوکس مورد استفاده قرار می گیرد.

متخصص اندروید شوید

ماشین مجازی Dalvik چیست ؟ نرم افزار Dalvik یک ماشین پردازش مجازی در سیستم عامل اندروید می باشد. نرم افزاری است که برنامه های اندروید را روی گوشی اندرویدی اجرا می کند. Dalvik یک بخش جدای ناپذیر از اندروید است که معمولا در گوشی های موبایل یا تبلت ها مورد استفاده قرار می گیرد. برنامه ها معمولا به صورت جاوا نوشته می شوند و به بایت کد کامپایل می شوند. سپس آن ها از فایل های .class سازگار با ماشین مجازی جاوا به فایل های .dex سازگار با dalvik قبل از نصب روی گوشی تبدیل می شوند. فرمت قابل اجرای dalvik طراحی شده است تا برای سیستم هایی که محدودیت پردازش و رم دارند، مناسب باشند. dalvik یک نرم افزار متن باز می باشد. این برنامه توسط Dan Bornstein نوشته شده است. او این نام را از یک روستای ماهیگیری با همین نام در ایسلند گرفته است. معماری برخلاف Java VM ، که ماشین های توده ای هستند، Dalvik VM دارای یک معماری براساس ثبت است. ابزاری به اسم dx برای تبدیل بعضی از فایل های Java .class به .dex استفاده می شود. کلاس های چندگانه در یک فایل .dex ذخیره می شوند. بایت کد های جاوا نیز به یک دستورکار جایگزینی که توسط dalvik استفاده می شود، تبدیل می شوند. یک فایل غیر فشرده .dex معمولا چند درصد از یک فایل فشرده جاوا کم حجم تر است. فایل های قابل اجرای dalvik ممکن است دوباره بعد از نصب روی گوشی اصلاح شوند. برای دستیابی به بهینه سازی بهتر، ممکن است ترتیب بایت ها در بعضی دیتاها جابه جا شود، ساختار داده ها و کتابخانه های توابع به صورت خطی در ارتباط قرار بگیرند. همان طور که می دانید در اندروید 2.2، dalvik یک کامپایلر لحظه ای دارد. علاوه بر بهینه بودن برای احتیاج به رم کم، dalvik تعدادی مشخصه های ویژه ای دارد که آن را از سایر ماشین های مجازی دیگر متفاوت می کند: VM محدود شده است که از فضای کمتری استفاده کند. constant pool اصلاح شده است تا تنها از شاخص های 32-bit برای ساده سازی ترجمه استفاده کند. ماشین مجازی استاندارد جاوا تنها دستورات توده ای 8-bit را اجرا می کند. متغییرهای محلی باید با دستورات مجزا انتقال یابند. در عوض dalvik دستورکار 16-bit مخصوص خود را دارد که مستقیما روی متغییرهای محلی کار می کند. کارایی عموما ماشین های توده ای باید از دستورات کار برای بارگذاری دیتا احتیاج دارند که در نتیجه در مقایسه با ماشین های براساس ثبت به دستورات بیشتری نیاز دارند. اما دستورات در یک ماشین براساس ثبت باید منبع و مقصد ثبت را کدگذاری کنند که باعث بزرگتر شدن آن ها می شود. این تفاوت ها برای مترجم ها بسیار مهم است. اما نتایج بنچمارک های جاوا غیرگرافیکی اوراکل نشان داد که اندروید 2.2 عموما 2 تا 3 برابر کندتر از سیستم های Java SE می باشد. ماشین مجازی dalvik چگونه کار می کند؟ به عنوان بخشی از اندروید ، گوگل زمان زیادی را صرف تفکر در مورد بهینه کردن طراحی برای دستگاه ها کم قدرت کرده است. این دستگاه معمولا دچار لگ هستند. علاوه براین آن ها توان محدودی برای محاسبات دارند، ممکن است مقدار رم کل یک گوشی 64 مگابایت باشد و فضای در دسترس آن برای برنامه ها تنها حدود20 مگابایت باشد. احتیاج به کارایی در یک گوشی، شدید است و درنتیجه احتیاج دارد که طراحان گوشی همه چیز را بهینه کنند و بهبود ببخشند. اگر به لیست بسته ها در اندروید نگاهی بیاندازید، می بینید که آن ها قابلیت های زیادی دارند و همچنین بسیار گسترده هستند. براساس گوگل این فایل ها می توانند حدود 10 تا 20 مگابایت فضای رم را اشغال کنند. این مشکلات باعث شد که گوگل در مورد قرار دادن JVM در بیشتر زمینه ها تجدید نظر کند. اولا ماشین مجازی dalvik فایل تولید شده جاوا را گرفته و آن ها را به یک یا چند فایل قابل اجرا توسط dalvik تبدیل می کند. آن از اطلاعات تکراری فایل های چندگانه .class مجددا استفاده می کند، به همین دلیل به طرز موثری فضای مورد نیاز را کاهش می دهد. دوما، گوگل به خوبی زباله روبی در ماشین مجازی dalvik را بهبود بخشیده است، اما در نسخه اولیه باید توسط کامپایلر JIT انتخاب به حذف می شدند. کدبیس 2 به نظر می رسد که منابع لازم برای کامپایلر JIT را دارد، اما در نسخه نهایی فعال نیست. پیش بینی شده است که در نسخه های آینده ارائه شود. شرکت می تواند این انتخاب را توجیه کند، زیرا بسیار از library های هسته اندروید، شامل lib های گرافیکی به صورت C یا C++ اجرا می شوند. متشابها، اندروید یک libraryاصلی بهینه شده براساس C را برای دسترسی به دیتابیس SQL فراهم می کند، اما این lib در یک API جاوا سطح بالا محصور شده است. در اخر، ماشین مجازی dalvik از یک تولید کد مونتاژ متفاوت استفاده می کند که از ثبت به عنوان واحد اصلی ذخیره دیتا به جای توده ای استفاده می کند. گوگل امیدوار است که از این طریق 30% میزان دسورات را کاهش دهد. باید اشاره کنیم که شما نمی توانید به صورت مستقیم بایت کدهای جاوا را اجرا کنید، شما باید با فایل .class جاوا شروع کنید و آن ها را به فایل های .odex تبدیل کنید.

متخصص اندروید شوید

آشنایی با بوت لودر بوت لودر چیست؟ به صورت تحت اللفظی، بوت لودر یک کد است که قبل از شروع به کار هر سیستم عاملی اجرا می شود. مفهوم بوت لودر برای تمام سیستم عامل صادق است، از جمله سیستم عامل PC، Laptop، Smartphone و … . بوت لودر اساسا دستورالعمل بوت کرنل سیستم عامل را بسته بندی می کند و بیشتر آن ها همچنین محیط اصلاح و عیب یابی مخصوص به خود را دارند. از آن جایی که بوت لودر قبل از هر نرم افزاری روی دستگاه شما شروع به کار می کند، این مسئله آن را نیازمند هماهنگی کامل با پردازنده می کند و حتی هر مادربرد بوت لودر مخصوص به خود را دارد. این یکی از دلایلی است که گوشی های اندرویدی رام های کاستوم توسعه داده شده متفاوتی دارند، زیرا تنوع سخت افزار زیادی در بین این گوشی ها وجود دارد. بوت لودر گوشی های اندرویدی: هر گوشی اندرویدی دارای بوت لودری است که به کرنل سیستم عامل اجازه می دهد، به صورت عادی بوت کند. اما لازم است که در اینجا به یک چیز توجه کنید، از آن جایی که سیستم عامل اندروید متن باز می باشد و بروی سخت افزار های متنوعی موجود است، هر شرکت تولید کننده ورژن بوت لودر مخصوص به خود را دارد که با سخت افزاری که از آن استفاده می کند، سازگار است. چرا بوت لودر قفل شده است؟ بوت لودر معمولا روی گوشی های اندرویدی قفل می باشد، به دلیل اینکه اگرچه متن باز است اما به هرحال تولید کنندگان می خواهند که شما از همان ورژن اندرویدی استفاده کنید که آن ها برای گوشی شما طراحی کرده اند. برای انجام این کار، تولیدکنندگان بوت لودر را قفل می کنند. با بوت لودر قفل روی یک گوشی اندرویدی، تقریبا فلش رام های کاستوم که کرنل احتصاصی خود را دارند، غیر ممکن است. هرگونه تلاشی برای اینکار منجر به باطل شدن گارانتی و حتی بریک شدن گوشی می شود. بنابراین همیشه اولین قدم، انلاک کردن بوت لودر می باشد. چرا لازم است که در یک گوشی اندرویدی بوت لودر را انلاک کنیم؟ جواب این سوال بسیار راحت است. اگر نیاز به روت (نه در همه موارد) و نصب رام های کاستوم ( در صورت همراه بودن با کرنل اختصاصی) دارید، لازم است که شما بوت لودر دستگاه خود را انلاک کنید. به عبارت ساده تر انلاک بوت لودر به شما اجازه می دهد تا کرنل شخصی سازی شده را نصب کنید. گارانتی و آنلاک بوت لودر: انلاک بوت لودر گارانتی گوشی را باطل می کند. همچنین اطلاعات ذخیره شده در پارتیشن دیتا را پاک خواهد کرد. مثل : برنامه ها، کانتکت ها، پیامک ها و... چگونه بوت لودر را انلاک کنیم؟ قبل از انجام این آموزش، توجه کنید که این آموزش تنها برای یک گوشی اندرویدی با سیستم عامل استوک اندروید می باشد. گوشی مرجع این آموزش گوگل نکسس می باشد. اگر از محصولات سایر تولیدکنندگان استفاده می کنید به راهنمای ارائه شده توسط تولیدکننده مراجعه کنید. 1-دانلود و نصب SDK اندروید 2-گوشی خود را خاموش کنید و به بوت لودر بوت کنید. 3-وارد CMD شوید و دستور زیر را وارد کنید: Fastboot oem unlock بعد از انجام این کار، در صفحه نمایش گوشی شما پیغامی نمایش داده می شود، دستور کار را کامل بخوانید و گزینه Yes-Unlock Bootloader (and void your warranty) را انتخاب کنید. کار به پایان رسیده است و هم اکنون بوت لودر گوشی شما انلاک می باشد.

متخصص اندروید شوید

Super CID CID کوتاه شده عبارت Carrier IDentification میباشد . CID یک عدد بسیار کوچک است و اینکه چه نرم افزاری میتواند روی گوشی نصب شود را محدود میکند . برای مثال CID کنترل میکند که فقط فایل رادیوی رسمی - ساین شده ( دارای امضای دیجیتالی ) شرکت T-Mobile بر روی گوشی هایی که طرف قرارداد با T-Mobile هستند نصب شوند . و این همان دلیلی است که این رادیو را نمیتوان بر روی گوشی های طرف قرارداد با Vodafone نصب کرد . Universal CID اگر CID بصورتی باشد که گوشی هر نوع Firmware از هر نوع Image را به هر صورتی قبول کند به این نوع CID در اصطلاح Universal CID گفته میشود.