1 ارسال در این موضوع قرار دارد

فصل سوم: معماری اندروید

سیستم عامل آندروید یک پشته برای اجزای نرم افزار ها می سازد که در دید کلی به پنج بخش و چهار لایه اصلی تقسیم می شوند، در تصویر زیر نمودار معماری نشانداده شده است :

اندروید

هسته لینوکس

در ادامه مختصراز لایه های لینوکس خواهیم پرداخت

لینوکس 2.6 از حدود 115 قسمت  تشکیل شده است و این عملکرد سیستم های اولیه از جمله مدیریت فرایند را فراهم می کند

مدیریت حافظه، مدیریت دستگاه مانند دوربین، صفحه کلید، صفحه نمایش و ...

کتابخانه ها

در بالای هسته لینوکس مجموعه ای از کتابخانه ها وجود دارند از جمله مرورگر WebKits که از جمله  مرورگر های open-source می باشد. کتابخانه های دیگری نیز قابل تشخیص می باشند مانند پایگاه داده SQLite که یک بانک اطلاعاتی قوی برای ذخیره سازی  داده ها و به اشتراک گذاری آنهاست ،از دیگرکتابخانه ها میتوان به پخش صوت و تصویر، کتابخانه های SSL برای امنیت اینترنت  نیز اشاره کرد

 :Android Runtime

بخش سوم از معماری  Android Runtime می باشد و از پایین لایه دوم است این لایه یک جزء کلیدی به نام Dalvik Virtual Machine تولید می نماید که یک نوع از ماشین مجازی جاوا ویژه و بهینه سازی شده برای آندروید است

DALVIK VM از ویژگی های هسته لینوکس مانند مدیریت حافظه استفاده می کند

چند نخ، در زبان جاوا  ذاتی است

DALVIK VM هر نرم افزار اندروید را به اجرا در پروسه خود را  قادر می سازد ،Android Runtime همچنین مجموعه ای از کتابخانه های هسته را فراهم می کند که قادراست به برنامه نویسان اندروید اجازه دهد از زبان استاندارد برنامه نویسی جاوا برای نوشتن برنامه های کاربردی آندروید استفاده نمایند.

Application Framework :

Application Framework ها بسیاری از خدمات سطح بالاتر لایه ها را  فراهم می کند تا برنامه های کاربردی را در قالب کلاس های جاوا به خوبی اجرا شوند برنامه نویسان برای استفاده از این خدمات را در برنامه های کاربردی خود می توانند استفاده نمایند

Applications :

تمام نرم افزار های اندروید را لایه Applications پیدا کنید پس از نصب نرم افزار شما دسترسی را فقط در این لایه  خواهید داشت از جمله  برنامه های کاربردی  مانند مخاطب ها، مرورگر، بازی و ...

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط mmohamadi
      جهت ساخت اپلیکیشنی برای انداوید جهت ارتباط با ماشین آلات از طریق درگاه بلوتوپ و وای فای به یک برنامه نویس اندروید نیاز داریم. سرعت ، دقت و تعهد در انجام کار ضروری می باشد. سورس برنامه نیز باید قابل ارائه باشد. محل پروژه اصفهان 09360107546
    • توسط Aliartor
      سلام 
      من میخوام یک قسمت برای سکه برای کاربران درست کنم که با انجام کاری یا زدن روی دکمه ای اون عدد زیاد بشه این تیکه کدشو کسی داره؟
       
      و باید برای باز کردن قفل یک قسمت یک مقدار ثابتی سکه داشته باشه مثلا ۵۰تا سکه باید داشته باشه تا به اون قسمت دست رسی داشته باشه من باید آموزش این نوع قسمتارو کجا ببینم یا اگه میشه همینجا کامل راهنمایی کنید ممنون میشم.
    • توسط شاهرخ جهان زاده
      آیا تا به حال شده که بعد از ارائه اپلیکشن پیغامهایی از طرف کاربران دریافت کنید که ناشی از بسته شدن اپ در حین کار باشه؟
      در اینگونه مواقع علاوه بر زمانبر بودن پیدا کردن خطا، شاهد ریزش شدید کاربران اپ خواهید بود. پس بهتر است قبل از ارائه اپ در بازار یا Google Play تمهیداتی را برای اطلاع از پیغامهای احتمالی در نظر بگیرید.
      یکی از ابزارهای بسیار مفید استفاده کردن از کتبخانه هایی هست مه برای انجام این کار در نظر گرفته شده است، به عنوان مثال کتابخانه ACRA این کار را با ارسال ایمیل برای شما به راحتی انجام میدهد.
      استفاده کردن از این کتابخانه بسیار راحت هست.
      در قدم اول باید کتابخانه ACRA را به عنوان dependency به build.gradle اضافه کنید:
      compile 'ch.acra:acra:4.9.2' در قدم بعدی کلاس Application را بسازید و متدهای مربوطه برای ACRA را در آن پیاده سازی کنید:
      @ReportsCrashes( formUri = "", mailTo = "yourmail@yourdomain.com", customReportContent = { ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME, ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.BRAND, ReportField.CUSTOM_DATA, ReportField.INITIAL_CONFIGURATION, ReportField.CRASH_CONFIGURATION, ReportField.USER_CRASH_DATE, ReportField.STACK_TRACE, ReportField.LOGCAT}, resToastText = R.string.crash_toast_text, mode = ReportingInteractionMode.TOAST) public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); ACRA.init(this); } } در بخش ReportField همانطور که میبینید، اطلاعاتی که قرار است به ایمیلتان ارسال گردد را وارد میکنیم.
      در قدم آخر فایل Manifest را باز کرده و دسترسی های مربوطه و همچنین کلاس Application را در تگ application وارد کنید:
      <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.acrademo"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_LOGS" /> <application android:name=".MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> برای تست عملکرد کدها، یک دکمه بسازید و سپس کدهایی را برای آن وارد کنید که باعث کرش شدن اپ گردد...
      public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onCrash(View view){ throw new RuntimeException("App Crashed"); } } منبع: www.asifmoinulislam.com
    • توسط aliarha
      با سلام خدمت همه کاربران و مدیران انجمن p30droid
      این اولین پست منه و خیلی علاقه مند به یادگیری برنامه نویسی اندروید دارم ، (رایگان / پولی)
      درخواستی که از عزیزان دارم اگه لطف کنید پاسخ کاملی بدین ممنون میشم
      من تقریبا طراحی سایت بلدم و درصد یادگیریم بد نیست ، میخواستم بدون بهترین برنامه برای استارت کارم اندروید استودیو هست ؟
      دنبال آموزشی کامل هستم (رایگان یا پولی فرقی نداره) فقط مدیران یا کاربران تایید کنن ، آموزشی همراه با ساخت یک پروژه از 0 تا 100
      تشکر

  • دوره آموزشی اندروید آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش
    آموزش برنامه نویسی اندروید
  • فایل