Порівняння Android та Java ME - Розробка та супровід додатків на базі операційної системи

В Android використовується комплексний, цілеспрямований та сфокусований підхід до створення мобільної платформи, а для цього недостатньо звичайних рішень, що базуються на JVM. В Android все, що вам потрібно – операційна система, драйвери пристроїв, бібліотеки ядра, власний інтерфейс Java, оптимізована версія Dalvik VM та середовище розробки Java – знаходиться в одному пакеті. Розробник може бути впевнений, що при створенні нової програми всі основні бібліотеки будуть на мобільному пристрої.

Такий комплексний підхід відрізняється від інших рішень, які використовуються у програмуванні для мобільних пристроїв, наприклад Java ME. Коротко розглянемо Java ME, і порівняємо обидва підходи. На малюнку 1.4 показано доступність Java для різних конфігурацій обчислювальних машин.

розробка

Малюнок 1.4 - Конфігурація Java для різних обчислювальних машин

Стандартна версія платформи Java (Java SE) підходить для персональних комп'ютерів та робочих станцій. Корпоративна версія платформи Java (Java ЕЕ) розроблена для серверів. Мікроверсія платформи Java (Java ME) скорочена і призначена для невеликих пристроїв. Java ME доступна у вигляді двох варіантів конфігурації. Перший варіант називається "конфігурація комунікаційних пристроїв" (Connected Device Configuration, CDC). Java ME для CDC містить спрощену версію Java SE - з меншою кількістю пакетів, з меншою кількістю класів у них, і навіть із меншою кількістю методів та полів у цих класах. Для обладнання та пристроїв, які мають додаткові обмеження, Java застосовує конфігурацію для пристроїв з обмеженими ресурсами (Connected Limited Device Configuration, CLDC). Існуючі інтерфейси прикладного програмування щодо різноманітних конфігурацій Java порівнюються малюнку 1.5.

Будь-які додаткові пакети, що встановлюються "поверх" основного інтерфейсу прикладного програмування з конфігурацією CDC або CLDC, вважаються "профілями", які стандартизуються процесом JSR (запит на специфікацію Java). Кожен заданий профіль надає додатковий набір інтерфейсів прикладного програмування.

розробка

Малюнок 1.5 - Доступність інтерфейсів прикладного програмування Java

Платформа CLDC Java базується на спеціалізованій і сильно зменшеній версії JVM, яка називається "віртуальна машина К" (К Virtual Machine, KVM), яка здатна працювати на пристроях з пам'яттю всього 128 Кбайт. CLDC під MIDP 2.0 (профіль для мобільного пристрою з інформаційними функціями) можуть використовуватися додаткові інтерфейси прикладного програмування. Такий інтерфейс містить низку пакетів для javax. microedition. *. До основних пакетів належать мідлети (прості програми), пакет для інтерфейсів, званий LCDUI, ігрові і медіапакети.

Інтерфейси прикладного програмування конфігурації CDC містять java. awt API та java.net API та деякі API для реалізації функцій безпеки, додатково до тих інтерфейсів, які містяться в CLDC. Додаткові профілі, що встановлюються поверх CDC, відкривають розробникам програм доступ до прикладного інтерфейсу програмування javax. microedition. xlet (xlet - це додаток у конфігурації CDC). Поверх конфігурації CDC може бути близько десяти опціональних пакетів, які ви можете використовувати, у тому числі Bluetooth, Media API, OpenGL для вбудованих систем (OpenGL ES), Java API для обробки XML QAXP), JAXP-RPC, Java 2D, Swing, інтерфейс виклику віддалених методів Java (Java RMI), взаємодія Java та баз даних (JDBC) таінтерфейс прикладного програмування Java Взагалі специфікація Java ME містить понад 20 JSR. Крім того, очікується, що при написанні Java-програм для мобільних пристроїв JavaFX відіграватиме зростаючу роль.

Порівняємо Java ME з Android:

  • варіанти конфігурації з кількома пристроями. У Java ME розрізняються два класи мікропристроїв, кожному з яких пропонуються стандартні та спеціальні рішення. Android, у свою чергу, використовує лише одну модель. Вона не працюватиме з низькорівневими пристроями, якщо їх конфігурація не буде вдосконалена;
  • зрозумілість. Оскільки Android орієнтована працювати з конкретним пристроєм, вона зрозуміліше, ніж Java ME. У Java ME використовується кілька варіантів інтерфейсів для кожної конфігурації, залежно від того, які функції підтримує пристрій: мідлети, ікслети (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-платформи, такі як Microsoft Silverlight і JavaFX від Sun.

Таким чином, порівняльний аналіз дозволяє зробити висновок, що Android є кращою платформою для розробки додатків.