Java Platform، Micro Edition یا Java ME یک پلت فرم محاسباتی برای توسعه و استقرار کدهای قابل حمل برای دستگاه های جاسازی شده و موبایل (میکرو کنترلرها، حسگرها، دروازه ها، تلفن های همراه، دستیارهای دیجیتال شخصی، جعبه های تلویزیون، چاپگرها) است. [1] Java ME قبلاً به عنوان Java 2 Platform، Micro Edition یا J2ME شناخته می شد .
این پلتفرم از زبان برنامه نویسی جاوا شی گرا استفاده می کند و بخشی از خانواده نرم افزار-پلتفرم جاوا است . این توسط Sun Microsystems (در حال حاضر Oracle Corporation ) طراحی شد و جایگزین فناوری مشابه PersonalJava شد .
در سال 2013، با بیش از 3 میلیارد تلفن همراه با قابلیت جاوا ME در بازار، [2] این پلتفرم همچنان رو به زوال بود، زیرا گوشی های هوشمند از تلفن های هوشمند پیشی گرفتند. [3]
این پلتفرم قبلاً در تلفن های همراه مانند مدل های سری 40 نوکیا محبوب بود . همچنین در سیستم عامل Bada و سیستم عامل سیمبین به همراه نرم افزار بومی پشتیبانی می شد . کاربران Windows CE ، Windows Mobile ، Maemo ، MeeGo و Android میتوانند Java ME را برای محیطهای مربوطه خود دانلود کنند ("اثبات مفهوم" برای اندروید). [4] [5]
در ابتدا تحت فرآیند جامعه جاوا به عنوان JSR 68 توسعه یافت، طعم های مختلف Java ME در JSR های جداگانه تکامل یافته است. دستگاه های Java ME یک نمایه را پیاده سازی می کنند . متداولترین آنها نمایه دستگاه اطلاعات تلفن همراه با هدف دستگاههای تلفن همراه مانند تلفنهای همراه، و نمایه شخصی با هدف محصولات مصرفی و دستگاههای تعبیهشده مانند جعبههای تنظیم و PDA هستند. نمایهها زیرمجموعهای از پیکربندیها هستند که در حال حاضر دو مورد از آنها وجود دارد: پیکربندی دستگاه محدود متصل (CLDC) و پیکربندی دستگاه متصل (CDC). [6]
در سال 2008، پلتفرم های Java ME به ویژگی های JRE 1.3 محدود شدند و از آن نسخه از فرمت فایل کلاس (که در داخل به عنوان نسخه 47.0 شناخته می شود) استفاده می کردند.
Oracle یک پیاده سازی مرجع از مشخصات، و برخی از تنظیمات و پروفایل ها برای MIDP و CDC ارائه می دهد. با شروع JavaME 3.0 SDK، یک IDE مبتنی بر NetBeans از آنها در یک IDE پشتیبانی میکرد.
برخلاف پیادهسازیهای دودویی متعدد از پلتفرم جاوا که توسط Sun برای سرورها و ایستگاههای کاری ساخته شده بود، Sun تمایل داشت که برای پلتفرمهای اهداف Java ME فایلهای باینری ارائه ندهد و در عوض به اشخاص ثالث برای ارائه خود متکی بود.
استثنا یک MIDP 1.0 JRE (JVM) برای Palm OS بود. [7] سان هیچ J2ME JRE را برای دستگاههای مبتنی بر ویندوز موبایل (رایانه شخصی جیبی) مایکروسافت ارائه نمیکند، علیرغم یک کمپین نامه باز به Sun برای انتشار شایعه اجرای داخلی PersonalJava که با نام رمز «کاپیتان آمریکا» شناخته میشود. [8] پیاده سازی های شخص ثالث به طور گسترده توسط فروشندگان ویندوز موبایل استفاده می شود.
در مقطعی، Sun یک پیادهسازی مرجع که اکنون رها شده بود، تحت نام phoneME منتشر کرد .
سیستم عامل هایی که Java ME را هدف قرار می دهند توسط DoCoMo به شکل DoJa و توسط SavaJe به عنوان سیستم عامل SavaJe پیاده سازی شده اند . شرکت اخیر توسط Sun در آوریل 2007 خریداری شد و اکنون اساس JavaFX Mobile Sun را تشکیل می دهد .
منبع باز Mika VM قصد دارد JavaME CDC/FP را پیاده سازی کند، اما چنین گواهینامه ای ندارد (پیاده سازی های تایید شده برای دریافت حق امتیاز لازم است، که برای یک پروژه منبع باز غیر عملی است). در نتیجه، دستگاه هایی که از این پیاده سازی استفاده می کنند، مجاز به ادعای سازگاری با JavaME CDC نیستند.
سیستم عامل اندروید مبتنی بر لینوکس از نسخه اختصاصی جاوا استفاده می کند که از نظر هدف مشابه است، اما از بسیاری جهات با Java ME بسیار متفاوت است. [9]
شبیه سازهای دیگری نیز وجود دارد، از جمله شبیه سازهایی که به عنوان بخشی از کیت های توسعه توسط سازندگان تلفن، مانند نوکیا، سونی اریکسون ، زیمنس موبایل و غیره ارائه می شوند.
پیکربندی دستگاه محدود متصل (CLDC) شامل زیرمجموعه ای دقیق از کتابخانه های کلاس جاوا است و حداقل مقدار مورد نیاز برای عملکرد یک ماشین مجازی جاوا است. CLDC اساساً برای طبقه بندی دستگاه های بی شمار به یک پیکربندی ثابت استفاده می شود.
یک پیکربندی ابتداییترین مجموعه کتابخانهها و ویژگیهای ماشین مجازی را فراهم میکند که باید در هر پیادهسازی یک محیط J2ME وجود داشته باشد. هنگامی که با یک یا چند نمایه همراه می شود، پیکربندی دستگاه محدود محدود به توسعه دهندگان یک پلت فرم جاوا را برای ایجاد برنامه های کاربردی برای دستگاه های مصرف کننده و جاسازی شده می دهد. این پیکربندی برای دستگاههایی با مجموع حافظه 160 کیلوبایت تا 512 کیلوبایت طراحی شده است که حداقل 160 کیلوبایت ROM و 32 کیلوبایت رم در دسترس برای پلت فرم جاوا دارد.
نمایه دستگاه اطلاعات تلفن همراه که برای تلفنهای همراه طراحی شده است، شامل یک رابط کاربری گرافیکی و یک API ذخیرهسازی داده است و MIDP 2.0 شامل یک API بازی دو بعدی است . برنامه های نوشته شده برای این نمایه MIDlets نامیده می شوند .
JSR 271: Mobile Information Device Profile 3 (نسخه نهایی در 9 دسامبر 2009) نسل سوم مشخصات دستگاه اطلاعات موبایل (MIDP3) را مشخص می کند که عملکرد را در همه زمینه ها و همچنین قابلیت همکاری بین دستگاه ها را بهبود می بخشد. هدف اصلی طراحی MIDP3 سازگاری با محتوای MIDP2 است.
نمایه ماژول اطلاعات (IMP) نمایهای برای دستگاههای تعبیهشده و «بی سر» مانند ماشینهای فروش، برنامههای کاربردی تعبیهشده صنعتی، سیستمهای امنیتی و دستگاههای مشابه با نمایشگر ساده یا بدون نمایشگر و با اتصال شبکه محدود است.
IMP 1.0 که در ابتدا توسط زیمنس موبایل و نوکیا با نام JSR -195 معرفی شد، زیرمجموعه ای دقیق از MIDP 1.0 است با این تفاوت که شامل APIهای رابط کاربری نمی شود – به عبارت دیگر، شامل پشتیبانی از بسته جاوا نمی شود javax.microedition.lcdui
. JSR-228 که با نام IMP-NG نیز شناخته می شود، نسل بعدی IMP است که مبتنی بر MIDP 2.0 است که از انواع امنیت و شبکه جدید و APIهای MIDP 2.0 و سایر APIها مانند PushRegistry
و استفاده می کند platformRequest()
، اما باز هم شامل APIهای UI نمی شود. و نه API بازی.
پیکربندی دستگاه متصل زیرمجموعه ای از Java SE است که تقریباً تمام کتابخانه هایی را در بر می گیرد که به رابط کاربری گرافیکی مرتبط نیستند. از CLDC غنی تر است.
نمایه بنیاد یک نمایه پیکربندی دستگاه متصل جاوا ME (CDC) است. این نمایه برای استفاده توسط دستگاه هایی در نظر گرفته شده است که نیاز به پیاده سازی کامل ماشین مجازی جاوا تا و شامل کل پلتفرم جاوا، نسخه استاندارد API دارند. پیادهسازیهای معمولی بسته به نمایههای اضافی پشتیبانی شده، از برخی زیرمجموعههای آن مجموعه API استفاده میکنند. این مشخصات تحت فرآیند جامعه جاوا توسعه داده شده است.
نمایه پایه شخصی، نمایه بنیاد را گسترش می دهد تا پشتیبانی سبک وزن رابط کاربری گرافیکی را در قالب یک زیرمجموعه AWT شامل شود . این پلت فرمی است که BD-J بر روی آن ساخته شده است.
کنسرسیوم ESR به استانداردهای جاوای جاسازی شده اختصاص داده شده است. به خصوص استانداردهای مقرون به صرفه. دامنه های کاربردی معمولی عبارتند از: کنترل صنعتی، ماشین به ماشین، پزشکی، اندازه گیری الکترونیکی، اتوماسیون خانگی ، مصرف کننده، رابط انسان به ماشین، ...