با وجود این که هر نسخه مختلف اندروید که منتشر می شود قابلیت ها و بهبود های بسیاری را معرفی می کند ولی باید تا وقتی که یک مقدار از دستگاه های اندرویدی از ورژن های پایین تر استفاده می کنند برنامه ما نیز ورژن های پایین تر را پشتیبانی کند و دستگاه ها با ورژن پایین تر هم بتوانند از برنامه ما استفاده کنند و گرنه برنامه ما شکست می خورد. در این آدرس که البته برای ما فیلتر هستند همیشه نشان می دهد که چند درصد از دستگاه ها از چه نسخه اندرویدی استفاده می کنند و آمار اندازه صفحه نمایش دستگاه های اندرویدی را نمایش می دهد. در این مطلب می خواهیم مشخص کنیم که چگونه در یک برنامه اندرویدی می توان با انواع نسخه های اندرویدی کار کرد.
در اندروید بیشتر سطح API برای برنامه نویسان مهم است. برای مثال اندروید API سطح 25 همان اندروید 7.1 می باشد. حال می توان داخل پروژه اندروید مشخص کرد که حداقل نسخه ای که برنامه ما باید پشتیبانی کند چه نسخه ای و چه سطح API می باشد. برای این کار در داخل فایل androidmanifest.xml باید کد های زیر را بیاوریم. قسمت minsdk مشخص می کند که حداقل سطح api که باید پشتیبانی کنیم کدام سطح است و سطح API که می خواهیم برای آن برنامه بنویسیم کدام است
در این کد می گوییم که حداقل نسخه ای که پشتیبانی می شود نسخه 17 یا همان اندروید نسخه 4.2 می باشد ولی این برنامه برای اندروید 7 نوشته می شود. یعنی اگر یک دستگاه که نسخه 4 هست نمی تواند برنامه ما را نصب کند. حال ما نسخه هدف یا targetversion را برابر آخرین نسخه قرار می دهیم در این حالت می توانیم از قابلیت هایی که در نسخه های آخر اضافه شده است در دستگاه هایی که نسخه آخر را دارند استفاده کنیم.
ممکن است که وقتی می خواهیم یک متد یا یک تکه کد را اجرا کنیم بررسی کنیم که آیا نسخه اندرویدی که برنامه بر روی آن در حال اجرا است همان نسخه ای است که مد نظر ما است یا خیر. مثلا اگر می خواهیم از یکی از قابلیت های نسخه 5 اندروید استفاده کنیم ولی دستگاه دارای نسخه 4.4 باشد نمی توانیم این قسمت را اجرا کنیم. برای این که به صورت runtime و زمان اجرا بتوانیم نسخه اندروید را چک کنیم می توانیم مانند کد زیر عمل کنیم.
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP_MR1){ //android 5 or higer }
کد بالا بررسی می کند که نسخه اندروید بالاتر از 5 می باشد یا خیر.
دقت داشته باشید که اگر در داخل فایل های xml شما از قابلیت های اندروید بالا تر استفاده کنید و برنامه را بر روی دستگاه با اندروید نسخه پایین تر نصب کنید اندروید آن قابلیت هایی را که شناسایی نمی کند نادیده می گیرد.
برای آشنای بیشتر با مفاهیم و یادگیری بهتر به دوره های آموزشی جاوا و آموزش برنامه نویسی مراجعه کنید .
امنیت یکی از بخش های حیاتی یک برنامه جاوا است. به همین دلیل فریمورک های متعددی نوشته شده اند تا امنیت را در برنامه برای ما فراهم کنند. ولی مفاهیمی در همه آنها وجود دارد که یکسان است و در همه فریمورک ها استفاده می شود. در این مطلب در مورد این مفاهیم که مبانی امنیت در جاوا هستند صحبت می کنیم و همچنین شباهت ها و تفاوت های آنها را بررسی می کنیم.برای یادگیری رایگان آموزش برنامه نویسی و آموزش جاوا به زبان ساده به این لینک مراجعه کنید
در امنیت جاوا subject منبع درخواست است. Subject کلاسی است که اطلاعات در مورد منابع را در خود نگهداری می کند و می تواند تغییراتی در آنها ایجاد کند. Subject می تواند یک کاربر یا برنامه یا پروسس یا یک فایل یا یک کامپیوتر یا یک پایگاه داده باشد. برای مثال اگر کاربری بخواهد وارد سیستم شود و به یک سری منابع دسترسی داشته باشد پس کاربر یک subject است.
بعد از این که کاربر با موفقیت وارد سیستم شد و احراز هویت انجام شد ما یک subject خواهیم داشت که به بخش های مختلفی مانند رول(نقش)ها و SSN(social security number) ها مرتبط است. به هرکدام از این بخش های این شکلی یک Principal گفته می شود که همه آنها در داخل Subject قرار می گیرند.
شخصی است که به یک سری منابع دسترسی دارد و فعالیت هایی انجام می دهد و وظایفی بر عهده دارد. در برخی جاها می توان user را به عنوان یک principal در نظر گرفت که جاوا برای آن از کلاس UserPrincipal استفاه می کند.
همانطورکه در بخش قبلی گفتیم می توانیم برخی از جنبه های کاربر را به شکل یک Principal نمایش دهیم. حال این principal ها زیر مجموعه subject ها هستند و کاربران زیرمجموعه principal های می باشند که به کاربرها اشاره می کنند.