Научная статья на тему 'Використання Renderscript на Android-пристроях'

Використання Renderscript на Android-пристроях Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

CC BY
397
20
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
Android / Renderscript / Java / компілятори / мова програмування / Android / RenderScript / Java / compilers / programming language

Аннотация научной статьи по электротехнике, электронной технике, информационным технологиям, автор научной работы — І.А. Кучеренко

Сьогодні більшість смартфонів і планшетів виробляються на базі Android. Основними причинами поширення цієї операційної системи полягають в наступному. Android підтримує велику кількість пристроїв від різних виробників. Android характеризується високою доступності коштів розробки. Інструментальні засоби розробки для Android безкоштовні, в той час як розробка, наприклад, iPhone (від компанії Apple) вимагає значних початкових інвестицій. Головні переваги портативних комп'ютерів наступному: розмір, тривалість роботи без підзарядки і, звичайно ж, багатофункціональність. Таким чином, ми повинні визнати, що майбутнє ПК в портативній, легкій та функціональній техніці таблетки, електронні книги, нетбуки і смартфони – і все це в основному працює на операційній системі Android.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Using Renderscript on Android-devices

Today, most smartphones and tablets are produced on the basis of Android. The main reasons for the spread of this operating system are as follows. Android supports a large number of devices from different manufacturers. Android is characterized by high availability of development tools. Development tools for Android are free, while working out, for example, iPhone (from the company Apple) requires considerable initial investments. The main advantages of portable computers as follows: size, duration without recharging and, of course, multi-functionality. Thus, we should recognize that the future of the PC in a portable, light and functional technology tablets, e-books, netbooks and smartphones all basically just running on the operating system Android.

Текст научной работы на тему «Використання Renderscript на Android-пристроях»

ISSN 2413-158X (online) ISSN 2413-1571 (print)

Scientific journal PHYSICAL AND MATHEMATICAL EDUCATION

Has been issued since 2013.

Науковий журнал Ф1ЗИКО-МАТЕМАТИЧНА ОСВ1ТА

Видасться з 2013.

http://fmo-journal.fizmatsspu.sumy.ua/

Кучеренко 1.А. Використання RENDERSCRIPTна Android-пристроях//Ф'зико-математична освта: науковий журнал. - 2016. - Випуск 4(10). - С. 62-65.

Kucherenko I. Using Renderscript on Android-devices // Physical and Mathematical Education : scientific journal. - 2016. -Issue 4(10). - Р. 62-65.

УДК 004.94+001:372.82

I.A. Кучеренко

Укранський державний х'1м'1ко-технолог'1чний yнiверситет, Украна

ВИКОРИСТАННЯ RENDERSCRIPT НА ANDROID-ПРИСТРОЯХ

Вступ. За даними International Data Corporation (IDC), /^жнародно'|' компанп маркетингових дослщжень, консультацмних послуг, оргаызатор конференцш в област шформацшних технологш, телекомунтацш i споживчо! електрошки, свтэвий ринок смартфоыв вирiс на 0.7% у 2016 роцк Пристро'|' пiд керуванням операфйно'|' систем (далi ОС) Android домЫують за кiлькiстю з часткою 87,6% (рис. 1.). Це зростання вщбуваеться в першу чергу за рахунок розвинених рин^в, таких як США, Канада, Япоыя i Захщна бвропа.

Рис. 1. Частки пристроив з рiзними ОС

Смартфони (з англ. smart — розyмний, i англ. phone — телефон) — окрема категoрiя телефоыв, як — на вщмшу вiд прoстиx стiльникoвиx телефоыв — мають бiльше оперативно!' пам'ят i власний потужний, як для кишеньковиж пристро'|'в процесор, працюють пщ oперацiйнoю системою Symbian 6.1 i вище, oперацiйними системами платформи Windows Mobile 5 i вище або Palm OS, операцшною системою iOS, Android, Bada. Завдяки таким даним пщтримують багато програм написаниx на C++ та java, зокрема 3D-i^ [1].

Смартфони вiдрiзняються вiд звичайниx телефoнiв наявнiстю розвиненою oперацiйнoï системою, можливктю встановлювати додаткове програмне забезпечення, найчаспше вiд стoрoннix рoзрoбникiв, для додавання нoвиx можливостей. Розширення функцюнальносп можливо за раxyнoк J2ME-прoграм, як пiдтримyються практично всiма мoбiльними телефонами, смартфонами i комунтаторами. Екран цтого ряду мoбiльниx телефoнiв не поступаеться бiльшoстi смартфoнiв (oстаннiм часом телефони оснащуються i сенсорними екранами), багато моделей оснащен роз'емом для картки пам'ятк Смартфони в oчаx кoристyвачiв виглядають привабливiшими за раxyнoк багатьox фактoрiв (частково зyмoвленi просуванням смартфоыв i кoмyнiкатoрiв виробниками), такиx як: сучасн мyльтимедiйнi функцп (якiснiша камера, розширен мoжливoстi вiдтвoрення вiдеoфайлiв, полтшеы мyзичнi здiбнoстi), Wi-Fi, GPS i ^o^x.

Важливо вщзначити, що програми, написан спецiально для операцiйноï системи смартфона або комунтатора е повноцшними скомптьований в двiйковий код послiдовностями низькорiвневих мiкропроцесорних команд. А з урахуванням того, що у Bcix смартфонах встановлен потужнiшi процесори, нiж у мобтьних телефонах, можливост1 програмiста 3i створення таких програм практично не обмеженГ Спецiалiзованi програми функцiональнiшi й рацюнальнше використовують ресурси процесора, ыж «уыверсальы» J2ME-програми. Тому смартфони користуються популярнiстю серед розробникiв програмного забезпечення i ентузiастiв [2].

В даний час не кнуе чiткого розмежування мiж смартфонами i комунiкаторами, осктьки функцiональнiсть обох класiв пристро'|'в приблизно однакова. Pi3^ експерти i виробники по рiзному трактують цi термши. Часто застосовуеться так званий «кторичний пщхщ», який полягае в наступному: якщо пристрiй веде свiй родовщ вiд КПК — то це комунтатор, а якщо вiд мобтьних телефоыв — то це смартфон. У рамках цього пщходу пщ комунiкаторами зазвичай маються на уваз1 пристроУ з сенсорним екраном (може бути доповнений клавiатурою) працюють пщ управлiнням операцiйноï системи Windows Mobile. ПристроУ з Windows Mobile, що використовують для введення шформацп виключно QWERTY — i / або цифрову клавiатуру (аналог телефонного), називаються смартфонами. Бiльшiсть пристроУв пiд управлЫням Symbian OS традицiйно вiдносять до смартфоыв (за винятком Nokia серж 9xxx, Nokia E90 i деяких шших). В iнших випадках пози^ювання пристрою залежить вiд виробника (зазвичай пристроУ з сенсорним екраном вщносять до комунiкаторiв, а до смартфошв вiдносять пристроУ без такого екрану).

Користуватися смартфонами дуже зручно, адже вони дозволяють будь-де та будь-коли виконувати рiзноманiтнi операцм: вiдправляти електронного листа, переглядати новини, створювати документи та навгть редагувати зображення чи вщео. Проте розробникам мобiльних додат^в потрiбно пам'ятати: перевагою ОС Android для таких пристроУв е нацтеысть на пристроУ з обмеженими ресурсами. Програми повинн виконувати сво'|' функцп швидко, не зловживаючи оперативною пам'яттю та запасом акумулятора.

Основною мовою програмування для ОС Android е Java. Це об'ектно-орiентована мова програмування, яка комптюеться у байт-код, який при виконанн Ытерпретуеться вiртуальною машиною для конкретно!' платформи. Передусiм Java розроблялась так, щоб працювати незалежно вщ цiльовоï платформи, тому вона мае менше низькорiвневих можливостей для роботи з апаратним забезпеченням, що у певних ситуащях дало б значний приркт продуктивной. За необхщност таких дiй Java дозволяе викликати пiдпрограми, написанi iншими мовами програмування, наприклад: C, C++, Assembler, Render Script.

Renderscript - це прикладний програмний iнтерфейс (API), який включае функцп для 2D/3D рендеринга i математичних обчислень з високою продуктивною. Вш дозволяе описати будь-яку задачу з однотипними незалежними обчисленнями над великим об'емом даних i розбити ÏÏ на однорщы пщзадач^ ям можуть бути виконанi швидко i паралельно на багатоядерних Android-платформах [2].

Така технолопя може пiдвищити продуктивысть ряду Android-додаткiв, пов'язаних з обробкою зображень, розтзнаванням образiв, фiзичним моделюванням, ^тинно-автоматно!' моделлю i iн., котр^ в свою чергу, не втратять апаратно'|' незалежностi [2].

Renderscript почав пщтримуватися в версп Honeycomb/Android 3.0 (API 11). А саме, в Android SDK в директорп платформичнструметчв llvm-rs-cc (автономний компiлятор) для комптяци Renderscript (*.rs файл) в байт-код (*.bc файл) i генерацп Java клаав об'ектiв (* .java файли ) для структур та глобальних змшних. Основою llvm-rs-cc е Clang — комптятор з невеликими змЫами пiд Android , який являе собою front-end для LLVM комптятора [3].

В ОС Android з'явився фреймворк, побудований на базi LLVM back-end, який вщповщае за комптя^ю байт-коду пiд час виконання, лшковку з потрiбними бiблiотеками, запуск i контроль виконання Renderscript^^ 2.) Цей фреймворк складаеться з наступних частин: libbcc, котрий займаеться iнiцiалiзацiею LLVM контексту вщповщно до зазначених метаданих в байт-код^ компiляцiею байт-коду i динамiчноï лiнковкою з потрiбними бiблiотеками з libRS; libRS мiстить реалiзацiю бiблiотек (math, time, drawing, ref-counting,...), структур i типiв (Script, Type, Element, Allocation, Mesh, various matrices,...) (рис. 3.) [4].

Рис. 2. Схема back-end комптяцИ' Render Script коду

Рис. 3. Схема front-end компляцп Render Script коду

Постановка задачк Метою данноТ роботи е дослщження K0Mn^T0pÍB та мов програмування, якi використовуються для створення мобтьних додаткiв для ОС Android. Використовуючи iнтегроване середовище розробки Android Studio в робот створюеться модуль, який мктить функцп, котрi виконують операцию створення монохромного зображення з кольорового та реалiзованi засобами мов програмування RenderScript та Java.

Таким чином, проводиться порiвняння продуктивностi традицiйних мови програмування та комтлятора з бтьш низькор1вневими засобами, яни дають можливосп для роботи з апаратним забезпеченням, для редагування зображень.

Дослщження RenderScript та Java. В робот створюеться монохромне зображення з кольорового. (рис. 4.) Для цього було написано двi функцп: javaMonoChromeFilter та renderScriptMonoChromeFilter. Перша була реалiзована засобами мови програмування Java, а друга — Render Script. Для дослщження використовувався смартфон Meizu Pro 6 з наступними характеристиками:

- Центральний процесор Helio X25: 10 ядер: ARM Cortex-A53 1.4GHz x4 + ARM Cortex-A53 2.0GHz x4 + ARM Cortex-A72 2.5GHz x2

- GPU: Mali-T880

- Hi-Fi ЦАП: Cirrus Logic CS43L36

- Чип NXP Smart PA

- RAM: 4 Гб, LPDDR3 В таблиц 1 наведено результати тестування Android-додатку при

рiзних розмiрах оригiнального зображення.

Таблиця 1

Результати тестування програмного модуля

Розмiр зображення 960x541 700x394 500x281 300x169

Render Script 156 мс 98 мс 52 мс 30 мс

Java 1083 мс 672 мс 366 мс 150 мс

Рис. 4. Графiчний iнmерфейс користувача програмного модулю

З таблицу видно, що функция реалiзована засобами Render Script працюе швидше, нiж фукцiя написана на Java. Полтшення продуктивностi досягаеться шляхом виконання нативного коду на пристроТ. Однак, на вiдмiну в^д NDK, це рiшення кроссплатформенно. Мова розробки Renderscript - це C99 з деякими розширеннями, п^д час процесу розробки, вш компiлюеться в апаратно-незалежному промiжному форматi i розмщуеться в пакетi програми. Слiд зауважити, що час роботи Render Script-реалiзацiТ включае створення Render Script-контексту, видтення i iнiцiалiзацiю необхiдноТ пам'ятi, створення i прив'язку Render Script до контексту, а також що продуктивысть можна пщвищити, вiдмовившись вiд точност арифметичних операцiй з числами, що не принципово для даноТ задачк

Переваги:

Апаратно-незалежний додаток. Renderscript байт-код, що знаходиться в APK файл^ пщ час виконання буде скомптьовано в машинний код того апаратно-обчислювального модуля (CPU) платформи, де буде запущений;

Швидккть виконання досягаеться завдяки паралельним обчисленням;

Недол'ки:

Вщсутнкть докладноТ документацп для роботи з Renderscript ускладнюе розробку додаткiв.

Вiдсутнiсть пщтримки виконання Renderscript потокiв на GPU, DSP. Можливi проблеми пiд час виконання з балансуванням потокв в гетерогенному запуску, управлЫням спiльною пам'яттю.

Висновки. В результатi проведення дослщження виявлено, що використання Render Script дае певн переваги у продуктивной програмного модуля. У роботi були розглянут ART(dalvik якщо запускати програму на пристроТ з вераею

OC Android < 5.0) i Render Script реалiзацií монохромно! обробки зображень рiзних po3MipiB. За рахунок розпаралелювання, роботи компiлятора i нативного виконання коду Render Script значно перевершуе Java в продуктивное^ для зображень середшх розмiрiв. Даний дослщ виявляе випадки, коли його застосування може дати пщвищення продуктивностi додат^в, якi при цьому залишаться апаратно-незалежними.

Список використаних джерел

1. Медникс З., Дорнин Л. Программирование под Android [Текст] / З. Медникс. - СПб.: Питер, 2012. - 460 с.

2. Смартфон. Матерiал з Вштедп — втьно'' енциклопедп [Електронний ресурс]. - Режим доступу: https://uk.wikipedia.org/wiki/%D0%A1%D0%BC%D0%B0%D1%80%D1%82%D1%84%D0%BE%D0%BD

3. Казанцев Р. Использование RenderScript на android-устройствах с процессорами Intel [Електронний ресурс]. - Назва з титул. екрана.

4. Марчет^ А. RenderScript: parallel computing on Android, the easy way [Текст] : тдручник / А. МарчетГ - Paperbook, 2016. - 106 c.

5. Васильев А. Н., Java. Объектно-ориентированное программирование [Текст]: Учебное пособие. - СПб.: Питер, 2011. -400 с.

Анотац'я. Кучеренко 1.А. Використання Renderscript на Android-пристроях.

Сьогодн бльш'!сть смартфонiв i планшет'в виробляються на 6a3i Android. Основними причинами поширення ц/'ef опера^йно!' системи полягають в наступному.

Android пдтримуе велику кшьк'!сть пристроив eid р'зних виробниюв. Android характеризуеться високою доступност'1 кошт'в розробки. 1нструментальн'1 засоби розробки для Android безкоштовш, в той час як розробка, наприклад, iPhone (в'д компанИApple) вимагаезначнихпочаткових iнвестицiй.

Головнi переваги портативних комп'ютер'в наступному: розмiр, тривал'сть роботи без пдзарядки i, звичайно ж, багатофунк^ональнсть. Таким чином, ми повинн визнати, що майбутне ПК - в портативнй, легмй та функцiональнiй технц - таблетки, електронн книги, нетбуки i смартфони - i все це в основному працюе на опера^й^й систем'1 Android.

Ключовi слова: Android, Renderscript, Java, комплятори, мова програмування.

Аннотация. Кучеренко И.А. Использование Renderscript на Android-устройствах.

Сегодня большинство смартфонов и планшетов производятся на базе Android. Основными причинами распространения этой операционной системы заключаются в следующем.

Android поддерживает большое количество устройств от различных производителей. Android характеризуется высокой доступности средств разработки. Инструментальные средства разработки для Android бесплатны, в то время как разработка, например, iPhone (от компании Apple) требует значительных начальных инвестиций.

Главные преимущества портативных компьютеров в следующем: размер, продолжительность работы без подзарядки и, конечно же, многофункциональность. Таким образом, мы должны признать, что будущее ПК - в портативной, легкой и функциональной технике - таблетки, электронные книги, нетбуки и смартфоны - и все это в основном работает на операционной системе Android.

Ключевые слова: Android, Renderscript, Java, компиляторы, язык программирования.

Abstract. Kucherenko Igor. Using Renderscript on Android-devices.

Today, most smartphones and tablets are produced on the basis of Android. The main reasons for the spread of this operating system are as follows.

Android supports a large number of devices from different manufacturers. Android is characterized by high availability of development tools. Development tools for Android are free, while working out, for example, iPhone (from the company Apple) requires considerable initial investments.

The main advantages of portable computers as follows: size, duration without recharging and, of course, multi-functionality. Thus, we should recognize that the future of the PC - in a portable, light and functional technology - tablets, e-books, netbooks and smartphones - all basically just running on the operating system Android. Keywords: Android, RenderScript, Java, compilers, programming language.

i Надоели баннеры? Вы всегда можете отключить рекламу.