SlideShare a Scribd company logo
HTML5 приложения за Android
Урок 01
Леон Анави
@leonanavi
leon@anavi.org
С подкрепата на:
@leonanavi
HTML5
приложения за
Android
Какво ще правим на курса?
@leonanavi
Open Source
Какви инструменти ще ползваме?
@leonanavi
FREE
LIKE
FREEDOM
@leonanavi
Съдържание
 Android
 HTML5 & JavaScript
 Cordova
 PhoneGap
 Crosswalk
 Ripple
@leonanavi
Android
 Стотици милиони устройства
 Над 83% пазарен дял 2014Q3
 Разработва се от Google
 Open source
 Linux kernel
 Java VM (Dalvik/ART)
@leonanavi
Android архитектура
@leonanavi
Android development kits
Android
Software
Development
Kit
(SDK)
Android
Native
Development
Kit
(NDK)
@leonanavi
Android app sandboxes
Приложение 1
Java VM
Процес
(UID 10000)
Приложение 2
Java VM
Процес
(UID 10001)
Приложение 3
Java VM
Процес
(UID 10002)
/data/.../app1 /data/.../app2 /data/.../app3
Linux kernel
@leonanavi
Разрешения
 Приложенията се нуждаят от разрешения,
за да достъпят периферията, сензорите или
файлове на устройството
 По подразбиране всяко приложение няма никакви
разрешения
 При инсталация потребителя дава разрешения
за достъп на приложенията
@leonanavi
Разрешения
@leonanavi
App Manifest
Всяко Android приложение има AndroidManifest.xml
в главната си директория, който съдържа:
 Идентификатор на приложението
 Име, версия, икони, splashscreen
 Необходими разрешения
 Минимално необходимо Android API
 Допълнителни библиотеки (ако се налага)
@leonanavi
Примерен AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.basiccontactables"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <!-- Min/target SDK versions (<uses-sdk>) managed by build.gradle -->
    <permission android:name="android"></permission>
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Sample" >
        <activity
            android:name="com.example.android.basiccontactables.MainActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop">
            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
@leonanavi
Android версии и API нива
@leonanavi
Android Dashboard
https://developer.android.com/about/dashboards/index.html
@leonanavi
Различните екрани на Android
http://developer.android.com/guide/practices/screens_support.html
@leonanavi
Средства за тестване
 Android устройства
 Android Virtual Device (AVD)
 Ripple (за уеб сайтове и HTML5 приложения)
 Samsung Remote Test Lab
http://developer.samsung.com/remotetestlab/rtlAboutRTL.action
@leonanavi
Android Virtual Device (AVD)
 Android виртуални машини, която върви на
персонален компютър
 Емулация на ARM и Intel архитектури
 Конфигурация на параметрите на всяка машина
 Управление на виртуалните машини с AVD Manager
@leonanavi
Android Debug Bridge (ADB)
 Конзолен инструмент за управление и комуникация
на Android устройство или емулатор от компютър
 Android устройството трябва да е в Developer mode
 Синтаксис:
adb [-d|-e|-s <serialNumber>] <command>
 Команди:
http://developer.android.com/tools/help/adb.html
@leonanavi
ADB примери за употреба
 Показване на всички свързани Android устройства:
adb devices
 Инсталиране на APK:
adb install my.apk
 Качване на файл на устройството:
adb push foo.txt /sdcard/foo.txt
 Сваляне на файл от устройството:
adb pull /sdcard/demo.mp4
 Дистанционен достъп през конзола до устройството:
adb shell
@leonanavi
HTML5 & JavaScript
 HTML5 е най-новата версия на HTML стандарта
 HTML5 стандарта описва и API-та, които могат да се
ползват чрез JavaScript
 JavaScript е скриптов език, създаден пред 1995г,
за обработка на данни и събития в уеб браузъри
 JavaScript всъщност е имплементация на ECMAScript
 JavaScript вече може да живее и извън уеб браузърите:
Node.js, Cordova, PhoneGap, Crosswalk ...
@leonanavi
За и против HTML5 в мобилни
устройства
Предимства:
 Един код за много устройства и платформи
 Лесно създаване на приложения с инструменти,
познати на милиони уеб програмисти
 Бъдещето е в уеб
Недостатъци:
 По-слаба производителност
 Различен външен вид на графичните компоненти
спрямо стандартните за платформата
@leonanavi
Apache Cordova
 Open source инструмент за създаване на HTML5
приложения за мобилни устройства
 Достъп до сензори, периферия и файлове на
мобилни платформи през JavaScript API-та
 Съвместимост с най-популярните платформи:
Android, iOS, Tizen, Firefox OS, BlackBerry 10,
Amazon Fire OS, Windows, Windows Phone
@leonanavi
Adobe PhoneGap
 Open source инструмент на базата на Cordova, който
се разработва от Adobe
 Adobe предоставя допълнителни услуги като
създаване на приложения в облака и
други услуги за предприятия
@leonanavi
Как работи Cordova в Android?
 Създава APK файл чрез Android SDK
 Вгражда HTML5, CSS и JavaScript файлове в APK
 Зарежда HTML през Android WebView
 Свързва JavaScript с Java, за да достъпи до устройството
 Генерира AndroidManifest.xml от config.xml
HTML,
CSS,
JavaScript
WebView
APK
@leonanavi
Cordova документация
 Инсталация:
npm install -g cordova
 Документация:
http://cordova.apache.org/docs/en/4.0.0/
@leonanavi
Crosswalk project
 Инструмент за създаване на HTML5 приложения за
Android и Tizen
 Заменя webview-то на платформата с нова стабилна
версия на Blink
 Съвместимост с Cordova и плъгините за нея
@leonanavi
Ripple
 Симулатор на телефон, който работи в Google Chrome
 Интеграция със събития от Cordova
 Инсталация през NPM:
npm install -g ripple-emulator
 Примерна употреба за Cordova приложение:
ripple emulate --path to/my/app
@leonanavi
Задачи
 Инсталация на Android Studio
 Инсталация на Android SDK
 Създаване на AVD
 Инсталация на Node.js
 Инсталация на Git
 Инсталация на Atom
 Инсталация на Cordova
 Инсталация на Ripple
 Разучаване на ADB
@leonanavi
KEEP CALM
AND
SUPPORT
FOSS

More Related Content

PDF
HTML5 приложения за Android, урок 3
PDF
HTML5 приложения за Android, урок 7
PDF
HTML5 приложения за Android, урок 8
PPTX
Presentacia stoyan mechev_android
PPT
Бъдеще и настояще на Tizen
PDF
Android
PPT
Основи на Андроид
PPT
Adobe air
HTML5 приложения за Android, урок 3
HTML5 приложения за Android, урок 7
HTML5 приложения за Android, урок 8
Presentacia stoyan mechev_android
Бъдеще и настояще на Tizen
Android
Основи на Андроид
Adobe air

Similar to HTML5 приложения за Android, урок 1 (20)

PDF
Open source: от "голо желязо" до JavaScript
PPTX
Adobe air
PPT
Module1
PDF
Създаване на приложения за Windows Phone
PDF
Вграждане на умни гласови асистенти в устройства с Linux
PPT
Svetlin Nakov - E-Business And NASD Academy
PDF
Linux обновления с RAUC и Docker
PPTX
Huseyin Ozbilen 41б_ 356291
DOCX
реферат безопасност и защита Edd
PPT
Kendo + Drupal (Bulgarian)
PPTX
JavaScript навсякъде
PDF
M7: 1.The Java Platform
PDF
Tools for Developers
PPT
Nakov - .NET Framework Overview + Security
DOCX
Programirane i organizaciq
PPTX
технически университет софия (Presentation mostrov)
PPTX
технически университет софия (Presentation mostrov)
PPTX
технически университет софия (Presentation Mostrov)
Open source: от "голо желязо" до JavaScript
Adobe air
Module1
Създаване на приложения за Windows Phone
Вграждане на умни гласови асистенти в устройства с Linux
Svetlin Nakov - E-Business And NASD Academy
Linux обновления с RAUC и Docker
Huseyin Ozbilen 41б_ 356291
реферат безопасност и защита Edd
Kendo + Drupal (Bulgarian)
JavaScript навсякъде
M7: 1.The Java Platform
Tools for Developers
Nakov - .NET Framework Overview + Security
Programirane i organizaciq
технически университет софия (Presentation mostrov)
технически университет софия (Presentation mostrov)
технически университет софия (Presentation Mostrov)
Ad

More from Leon Anavi (20)

PDF
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
PDF
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
PDF
What Makes the Raspberry Pi 5 So Special?
PDF
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
PDF
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
PDF
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
PDF
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
PDF
Как да убием и последната дискета с Open Source технологии?
PDF
How to Choose a Software Update Mechanism for Embedded Linux Devices
PDF
Open Hardware Makers
PDF
Open Source Tools for Making Open Source Hardware
PDF
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
PDF
Surfing on an Interactive Kiosk
PDF
Linux дистрибуции и софтуерни обновления за вградени устройства
PDF
Getting started with AGL using a Raspberry Pi
PDF
Automotive Grade Linux on Raspberry Pi: How Does It Work?
PDF
Comparison of Open Source Software Home Automation Tools
PDF
Практични примери за device tree overlays на Raspberry Pi
PDF
The Software Developer’s Guide to Open Source Hardware
PDF
Making Open Source Hardware for Retrogaming on Raspberry Pi
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Exploring Open Source Dual A/B Update Solutions for Embedded Linux
What Makes the Raspberry Pi 5 So Special?
Side by Side Comparison of Dual A/B Update Solutions with the Yocto Project
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Как да убием и последната дискета с Open Source технологии?
How to Choose a Software Update Mechanism for Embedded Linux Devices
Open Hardware Makers
Open Source Tools for Making Open Source Hardware
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
Surfing on an Interactive Kiosk
Linux дистрибуции и софтуерни обновления за вградени устройства
Getting started with AGL using a Raspberry Pi
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Comparison of Open Source Software Home Automation Tools
Практични примери за device tree overlays на Raspberry Pi
The Software Developer’s Guide to Open Source Hardware
Making Open Source Hardware for Retrogaming on Raspberry Pi
Ad

HTML5 приложения за Android, урок 1

  • 1. HTML5 приложения за Android Урок 01 Леон Анави @leonanavi leon@anavi.org С подкрепата на:
  • 5. @leonanavi Съдържание  Android  HTML5 & JavaScript  Cordova  PhoneGap  Crosswalk  Ripple
  • 6. @leonanavi Android  Стотици милиони устройства  Над 83% пазарен дял 2014Q3  Разработва се от Google  Open source  Linux kernel  Java VM (Dalvik/ART)
  • 9. @leonanavi Android app sandboxes Приложение 1 Java VM Процес (UID 10000) Приложение 2 Java VM Процес (UID 10001) Приложение 3 Java VM Процес (UID 10002) /data/.../app1 /data/.../app2 /data/.../app3 Linux kernel
  • 10. @leonanavi Разрешения  Приложенията се нуждаят от разрешения, за да достъпят периферията, сензорите или файлове на устройството  По подразбиране всяко приложение няма никакви разрешения  При инсталация потребителя дава разрешения за достъп на приложенията
  • 12. @leonanavi App Manifest Всяко Android приложение има AndroidManifest.xml в главната си директория, който съдържа:  Идентификатор на приложението  Име, версия, икони, splashscreen  Необходими разрешения  Минимално необходимо Android API  Допълнителни библиотеки (ако се налага)
  • 13. @leonanavi Примерен AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.example.android.basiccontactables"     android:versionCode="1"     android:versionName="1.0" >       <uses-permission android:name="android.permission.READ_CONTACTS"/>     <!-- Min/target SDK versions (<uses-sdk>) managed by build.gradle -->     <permission android:name="android"></permission>       <application         android:allowBackup="true"         android:icon="@drawable/ic_launcher"         android:label="@string/app_name"         android:theme="@style/Theme.Sample" >         <activity             android:name="com.example.android.basiccontactables.MainActivity"             android:label="@string/app_name"             android:launchMode="singleTop">             <meta-data                 android:name="android.app.searchable"                 android:resource="@xml/searchable" />             <intent-filter>                 <action android:name="android.intent.action.SEARCH" />             </intent-filter>             <intent-filter>                 <action android:name="android.intent.action.MAIN" />                 <category android:name="android.intent.category.LAUNCHER" />             </intent-filter>         </activity>     </application> </manifest>
  • 16. @leonanavi Различните екрани на Android http://developer.android.com/guide/practices/screens_support.html
  • 17. @leonanavi Средства за тестване  Android устройства  Android Virtual Device (AVD)  Ripple (за уеб сайтове и HTML5 приложения)  Samsung Remote Test Lab http://developer.samsung.com/remotetestlab/rtlAboutRTL.action
  • 18. @leonanavi Android Virtual Device (AVD)  Android виртуални машини, която върви на персонален компютър  Емулация на ARM и Intel архитектури  Конфигурация на параметрите на всяка машина  Управление на виртуалните машини с AVD Manager
  • 19. @leonanavi Android Debug Bridge (ADB)  Конзолен инструмент за управление и комуникация на Android устройство или емулатор от компютър  Android устройството трябва да е в Developer mode  Синтаксис: adb [-d|-e|-s <serialNumber>] <command>  Команди: http://developer.android.com/tools/help/adb.html
  • 20. @leonanavi ADB примери за употреба  Показване на всички свързани Android устройства: adb devices  Инсталиране на APK: adb install my.apk  Качване на файл на устройството: adb push foo.txt /sdcard/foo.txt  Сваляне на файл от устройството: adb pull /sdcard/demo.mp4  Дистанционен достъп през конзола до устройството: adb shell
  • 21. @leonanavi HTML5 & JavaScript  HTML5 е най-новата версия на HTML стандарта  HTML5 стандарта описва и API-та, които могат да се ползват чрез JavaScript  JavaScript е скриптов език, създаден пред 1995г, за обработка на данни и събития в уеб браузъри  JavaScript всъщност е имплементация на ECMAScript  JavaScript вече може да живее и извън уеб браузърите: Node.js, Cordova, PhoneGap, Crosswalk ...
  • 22. @leonanavi За и против HTML5 в мобилни устройства Предимства:  Един код за много устройства и платформи  Лесно създаване на приложения с инструменти, познати на милиони уеб програмисти  Бъдещето е в уеб Недостатъци:  По-слаба производителност  Различен външен вид на графичните компоненти спрямо стандартните за платформата
  • 23. @leonanavi Apache Cordova  Open source инструмент за създаване на HTML5 приложения за мобилни устройства  Достъп до сензори, периферия и файлове на мобилни платформи през JavaScript API-та  Съвместимост с най-популярните платформи: Android, iOS, Tizen, Firefox OS, BlackBerry 10, Amazon Fire OS, Windows, Windows Phone
  • 24. @leonanavi Adobe PhoneGap  Open source инструмент на базата на Cordova, който се разработва от Adobe  Adobe предоставя допълнителни услуги като създаване на приложения в облака и други услуги за предприятия
  • 25. @leonanavi Как работи Cordova в Android?  Създава APK файл чрез Android SDK  Вгражда HTML5, CSS и JavaScript файлове в APK  Зарежда HTML през Android WebView  Свързва JavaScript с Java, за да достъпи до устройството  Генерира AndroidManifest.xml от config.xml HTML, CSS, JavaScript WebView APK
  • 26. @leonanavi Cordova документация  Инсталация: npm install -g cordova  Документация: http://cordova.apache.org/docs/en/4.0.0/
  • 27. @leonanavi Crosswalk project  Инструмент за създаване на HTML5 приложения за Android и Tizen  Заменя webview-то на платформата с нова стабилна версия на Blink  Съвместимост с Cordova и плъгините за нея
  • 28. @leonanavi Ripple  Симулатор на телефон, който работи в Google Chrome  Интеграция със събития от Cordova  Инсталация през NPM: npm install -g ripple-emulator  Примерна употреба за Cordova приложение: ripple emulate --path to/my/app
  • 29. @leonanavi Задачи  Инсталация на Android Studio  Инсталация на Android SDK  Създаване на AVD  Инсталация на Node.js  Инсталация на Git  Инсталация на Atom  Инсталация на Cordova  Инсталация на Ripple  Разучаване на ADB