Сравнение на Android и Java ME - Разработка и поддръжка на приложения, базирани на операционната система
Android възприема цялостен, целенасочен и фокусиран подход към изграждането на мобилна платформа и това не е достатъчно за конвенционалните решения, базирани на JVM. С Android всичко, от което се нуждаете - операционна система, драйвери на устройства, библиотеки на ядрото, собствен интерфейс на Java, оптимизирана версия на Dalvik VM и среда за разработка на Java - е в един пакет. Разработчикът може да бъде сигурен, че когато разработва ново приложение, всички основни библиотеки ще бъдат на мобилното устройство.
Този подход от край до край е различен от други решения, използвани в мобилното програмиране, като Java ME. Нека да разгледаме набързо Java ME и да сравним двата подхода. Фигура 1.4 показва наличието на Java за различни машинни конфигурации.
Фигура 1.4 - Конфигурация на Java за различни компютри
Стандартното издание на Java Platform (Java SE) е подходящо за персонални компютри и работни станции. Enterprise Edition на платформата Java (Java EE) е предназначена за сървъри. Java Platform Micro (Java ME) е олекотена версия, предназначена за по-малки устройства. Java ME се предлага в две опции за конфигурация. Първата опция се нарича Конфигурация на свързано устройство (CDC). Java ME за CDC съдържа опростена версия на Java SE - с по-малко пакети, по-малко класове в тях и дори по-малко методи и полета в тези класове. За хардуер и устройства, които имат допълнителни ограничения, Java използва Connected Limited Device Configuration (CLDC). Съществуващите API за различни конфигурации на Java са сравнени на Фигура 1.5.
Всички допълнителни пакети, инсталирани „отгоре“ на основния интерфейс за програмиране на приложения с CDC или CLDC конфигурация, се считат за „профили“, които са стандартизирани от процеса JSR (Java Specification Request). Всеки дефиниран профил предоставя на разработчика допълнителен набор от интерфейси за програмиране на приложения.
Фигура 1.5 - Наличие на API в Java
Платформата Java CLDC е базирана на специализирана и значително намалена версия на JVM, наречена K Virtual Machine (KVM), която може да работи на устройства с едва 128 KB памет. Допълнителни интерфейси за програмиране на приложения могат да се използват в CLDC под MIDP 2.0 (Профил на мобилно устройство с информационни функции). Такъв интерфейс съдържа редица пакети за javax. микроиздание. *. Основните пакети включват midlets (прости приложения), пакет за потребителски интерфейси, наречен LCDUI, пакети за игри и медии.
API за конфигурация на CDC съдържат java. awt API и java.net API и някои API за внедряване на функции за сигурност, в допълнение към тези, съдържащи се в CLDC. Допълнителни профили, инсталирани върху CDC, предоставят на разработчиците на приложения достъп до javax API. микроиздание. xlet (xlet е приложение в конфигурацията на CDC). В допълнение към конфигурацията на CDC може да има около десет незадължителни пакета, които можете да използвате, включително Bluetooth, Media API, OpenGL за вградени системи (OpenGL ES), Java API за XML обработка QAXP), JAXP-RPC, Java 2D, Swing, Java Remote Method Call Interface (Java RMI), Java Database Interoperability (JDBC) иИнтерфейс за програмиране на приложения Java. Като цяло спецификацията на Java ME съдържа повече от 20 JSR. Освен това се очаква JavaFX да играе все по-голяма роля при писането на Java програми за мобилни устройства.
Сравнете Java ME с Android:
- опции за конфигуриране на множество устройства. Java ME прави разлика между два класа микроустройства, всеки със стандартни и потребителски решения. Android от своя страна използва само един модел. Няма да работи с устройства от ниско ниво, освен ако тяхната конфигурация не бъде подобрена;
- яснота. Тъй като Android е специфичен за устройството, той е по-ясен от Java ME. Java ME използва няколко опции за потребителски интерфейс за всяка конфигурация, в зависимост от това кои функции поддържа устройството: MIDlets, xlets, AWT и Swing. Проследяването на JSR за всяка Java ME спецификация е по-трудно. Те отнемат повече време за разработване и може да бъде трудно да се намерят конкретни техни версии;
- отзивчивост. Очаква се Dalvik VM да бъде по-добре оптимизирана и по-отзивчива от стандартна JVM, използвана на подобно конфигурирано устройство. Можете да сравните Dalvik VM и KVM, но KVM е проектиран да работи с по-малко сложни устройства с много по-скромни количества памет;
- Съвместим с Java. Тъй като Android работи на Dalvik VM, той не използва Java байт код, а байт кода в DEX файловете. Това не е много голям проблем, ако Java се компилира като стандартни Java клас файлове. Няма да е възможна само директна интерпретация на байт кода на Java;
- Поддръжка на Java SE. Ако сравним поддръжката на Java SE в CDC и в Android, тогава вAndroid има малко по-пълна поддръжка за това, с изключение на AWT и Swing. Както бе споменато по-горе, Android има свой собствен подход към работата с потребителски интерфейси. Всъщност декларативните потребителски интерфейси на Android приличат на по-усъвършенствани UI рамки като Silverlight на Microsoft и JavaFX на Sun.
Така сравнителният анализ води до заключението, че Android е предпочитаната платформа за разработка на приложения.