SlideShare a Scribd company logo
1 of 18
Архітектура Android
     (галопом)
План
• Загальна архітектура Android платформи
• Віртуальна машина Dalvik
• Способи програмування для Android
1. Архітектура
Архітектура, екстер’єр

              • Процесори ARM (RISC+)

              • Маленька пам’ять

              • Парочка векторних
              процесорів для апаратної
              підтримки OpenGL
              (це вже здогад)

              • Фарш: GSM, Bluetooth,
              3G, WiFi, камера, GPS,
              компас, акселерометр
Архітектура, інтер'єр

             • Ядро Linux

             • Віртуальна машина

             • Набір системних сервісів
Малюнок, що вже намозолив очі
                          Стандартні апи




                          Системні сервіси


                          це ми обговоримо

                          Нативні бібліотеки




                          ОС та драйвери
Основні компоненти: активності
             Прецедент


                                                                     GUI
Користувач
                         Вибрати зі списку...




                                            Activity




                                                …
                     ListActivity                      TabActivity
Основні компоненти: задачі

• Стек активностей
• Одна задача на передньому плані, усі інші у
  фоні
• Задача може включати в себе активності від
  абсолютно різних розробників
• Немає єдиної точки входу у програму -
  функції main()
Компонентів багато…
• Сервіси
• Одержувачі broadcast повідомлень
• Постачальники даних


                                      SQL
                                      XML
                                     Binary
2. Віртуальна машина
Нащо Андроїду VM та Java?
Особливості Dalvik VM
        0000: const/4 v0, #int 7 // #7
        0001: new-array v0, v0, int[]
• Багато машин при малій пам'яті, немає
        0003: fill-array-data v0, 000a
        0006: sput-object v0,
  свопу Example2.S33KR1T_1NF0RM4T10N:int[]
        0008: return-void
• Регістрова, а не стекова
        0009: nop // spacer
        000a: array-data // for fill-array-data @ 0003
  –   зменшення кількості інструкцій
        0: 1315272293 // #4e657665
        1: 1914726255 // #7220676f
  –   зменшення кількості звернень до пам'яті
        2: 1852727584 // #6e6e6120
        3: 1734964837 // #67697665
• Відповідно, інший байт-код
        4: 544829301 // #20796f75
        5: 544567355 // #2075703b
        6: 544105846 // #206e6576
        7: 1701978215 // #65722067
3. Як можна програмувати
Java -> .dex



SDK   +
C/C++
• Нативний код, звісно найшвидший
• Підтримка JNI
• NDK – підтримується визначений набір
  бібліотек
• Відсутність механізму створення абсолютно
  нативних додатків
WebKit
• HTML5 + JavaScript + AJAX
• За допомогою <canvas> можна малювати
• Дозволяється виконувати задачі за межами
  основного потоку
Корисні ресурси
•   Пам’ять:
    http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html
    http://www.curious-creature.org/2009/02/07/track-memory-allocations-on-android/
•   Продуктивність:
    http://developer.android.com/guide/practices/design/performance.html
•   UI дизайн:
    http://developer.android.com/guide/practices/ui_guidelines/index.html
•   Як економити заряд батареї
    http://dl.google.com/io/2009/pres/W_0300_CodingforLife-BatteryLifeThatIs.pdf
•   Медіа
    http://dl.google.com/io/2009/pres/Mastering_the_Android_Media_Framework.pdf
Контакти

Роман Мазур
mazur.roman@gmail.com




                         http://stanfy.com.ua

More Related Content

Similar to Android Platform Architecture

Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET МіфиSerhiy Kalinets
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded Systemitconnect2016
 
Корнілов Андрій
Корнілов АндрійКорнілов Андрій
Корнілов АндрійOleg Nazarevych
 
"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy
"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy
"Request Lifecycle at Prom.ua", Vitaliy KharytonskiyFwdays
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii NasinnykFwdays
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsPavlo Iuriichuk
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoGlobalLogic Ukraine
 
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіївПрограмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіївjap2006
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon Meetups
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basicseleksdev
 
Aspnet core
Aspnet coreAspnet core
Aspnet coreeleksdev
 
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютераСучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютераМаксим Павленко
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаHRdepartment
 

Similar to Android Platform Architecture (20)

Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET Міфи
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
 
MOM
MOMMOM
MOM
 
Корнілов Андрій
Корнілов АндрійКорнілов Андрій
Корнілов Андрій
 
"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy
"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy
"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii Nasinnyk
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.js
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. Howto
 
Coding for Future in Lutsk. JavaScript. Part 1
Coding for Future in Lutsk. JavaScript. Part 1Coding for Future in Lutsk. JavaScript. Part 1
Coding for Future in Lutsk. JavaScript. Part 1
 
Presentation IES 2012
Presentation IES 2012Presentation IES 2012
Presentation IES 2012
 
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіївПрограмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020
 
NodeJS.pptx
NodeJS.pptxNodeJS.pptx
NodeJS.pptx
 
Java script + extjs
Java script + extjsJava script + extjs
Java script + extjs
 
3 1 Modbus Protocol
3 1 Modbus Protocol3 1 Modbus Protocol
3 1 Modbus Protocol
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
 
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютераСучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
 
Html5 - ready yet?(ukr)
Html5 - ready yet?(ukr)Html5 - ready yet?(ukr)
Html5 - ready yet?(ukr)
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій Галушка
 

More from Pavel Bashmakov

The road from the services to the products
The road from the services to the productsThe road from the services to the products
The road from the services to the productsPavel Bashmakov
 
Портирование успешных iPhone приложений на Android\Bada платформы
Портирование успешных iPhone приложений на Android\Bada платформыПортирование успешных iPhone приложений на Android\Bada платформы
Портирование успешных iPhone приложений на Android\Bada платформыPavel Bashmakov
 
Мобильные приложения как инструмент доступа к пользователям современных мобил...
Мобильные приложения как инструмент доступа к пользователям современных мобил...Мобильные приложения как инструмент доступа к пользователям современных мобил...
Мобильные приложения как инструмент доступа к пользователям современных мобил...Pavel Bashmakov
 
Разработка мобильных приложений
Разработка мобильных приложенийРазработка мобильных приложений
Разработка мобильных приложенийPavel Bashmakov
 
Android Game Fox Hunter - Start
Android Game Fox Hunter - StartAndroid Game Fox Hunter - Start
Android Game Fox Hunter - StartPavel Bashmakov
 
Mobile Apps - Новые Медиа
Mobile Apps - Новые МедиаMobile Apps - Новые Медиа
Mobile Apps - Новые МедиаPavel Bashmakov
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhonePavel Bashmakov
 
In-App-Purchases и с чем их едят
In-App-Purchases и с чем их едятIn-App-Purchases и с чем их едят
In-App-Purchases и с чем их едятPavel Bashmakov
 
OpenGL ES 1.1 и 2.0 для разработки iPhone игр
OpenGL ES 1.1 и 2.0 для разработки iPhone игрOpenGL ES 1.1 и 2.0 для разработки iPhone игр
OpenGL ES 1.1 и 2.0 для разработки iPhone игрPavel Bashmakov
 
Использование современных мобильных техноолгий в медиабизнесе
Использование современных мобильных техноолгий в медиабизнесеИспользование современных мобильных техноолгий в медиабизнесе
Использование современных мобильных техноолгий в медиабизнесеPavel Bashmakov
 
Stanfy - Mobile Apps as Newest Media
Stanfy - Mobile Apps as Newest MediaStanfy - Mobile Apps as Newest Media
Stanfy - Mobile Apps as Newest MediaPavel Bashmakov
 
Владимир Пузанов - JailBreak: Разработка без лимитов
Владимир Пузанов - JailBreak: Разработка без лимитовВладимир Пузанов - JailBreak: Разработка без лимитов
Владимир Пузанов - JailBreak: Разработка без лимитовPavel Bashmakov
 
Павел Тайкало - Использование CoreData в iPhone приложения
Павел Тайкало - Использование CoreData в iPhone приложенияПавел Тайкало - Использование CoreData в iPhone приложения
Павел Тайкало - Использование CoreData в iPhone приложенияPavel Bashmakov
 
Taras Kornichuk - Ценности социальной игровой платформы для разработчиков и и...
Taras Kornichuk - Ценности социальной игровой платформы для разработчиков и и...Taras Kornichuk - Ценности социальной игровой платформы для разработчиков и и...
Taras Kornichuk - Ценности социальной игровой платформы для разработчиков и и...Pavel Bashmakov
 
Использование iPhone приложений в Бизнесе, Маркетинге и PR
Использование iPhone приложений в Бизнесе, Маркетинге и PRИспользование iPhone приложений в Бизнесе, Маркетинге и PR
Использование iPhone приложений в Бизнесе, Маркетинге и PRPavel Bashmakov
 
Индустрия iPhone приложений
Индустрия iPhone приложенийИндустрия iPhone приложений
Индустрия iPhone приложенийPavel Bashmakov
 

More from Pavel Bashmakov (20)

The road from the services to the products
The road from the services to the productsThe road from the services to the products
The road from the services to the products
 
Портирование успешных iPhone приложений на Android\Bada платформы
Портирование успешных iPhone приложений на Android\Bada платформыПортирование успешных iPhone приложений на Android\Bada платформы
Портирование успешных iPhone приложений на Android\Bada платформы
 
Мобильные приложения как инструмент доступа к пользователям современных мобил...
Мобильные приложения как инструмент доступа к пользователям современных мобил...Мобильные приложения как инструмент доступа к пользователям современных мобил...
Мобильные приложения как инструмент доступа к пользователям современных мобил...
 
Разработка мобильных приложений
Разработка мобильных приложенийРазработка мобильных приложений
Разработка мобильных приложений
 
Android Game Fox Hunter - Start
Android Game Fox Hunter - StartAndroid Game Fox Hunter - Start
Android Game Fox Hunter - Start
 
About Stanfy
About StanfyAbout Stanfy
About Stanfy
 
Mobile Apps - Новые Медиа
Mobile Apps - Новые МедиаMobile Apps - Новые Медиа
Mobile Apps - Новые Медиа
 
Mobile Apps - New Media
Mobile Apps - New MediaMobile Apps - New Media
Mobile Apps - New Media
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhone
 
In-App-Purchases и с чем их едят
In-App-Purchases и с чем их едятIn-App-Purchases и с чем их едят
In-App-Purchases и с чем их едят
 
OpenGL ES 1.1 и 2.0 для разработки iPhone игр
OpenGL ES 1.1 и 2.0 для разработки iPhone игрOpenGL ES 1.1 и 2.0 для разработки iPhone игр
OpenGL ES 1.1 и 2.0 для разработки iPhone игр
 
Использование современных мобильных техноолгий в медиабизнесе
Использование современных мобильных техноолгий в медиабизнесеИспользование современных мобильных техноолгий в медиабизнесе
Использование современных мобильных техноолгий в медиабизнесе
 
Stanfy - Mobile Apps as Newest Media
Stanfy - Mobile Apps as Newest MediaStanfy - Mobile Apps as Newest Media
Stanfy - Mobile Apps as Newest Media
 
Владимир Пузанов - JailBreak: Разработка без лимитов
Владимир Пузанов - JailBreak: Разработка без лимитовВладимир Пузанов - JailBreak: Разработка без лимитов
Владимир Пузанов - JailBreak: Разработка без лимитов
 
Павел Тайкало - Использование CoreData в iPhone приложения
Павел Тайкало - Использование CoreData в iPhone приложенияПавел Тайкало - Использование CoreData в iPhone приложения
Павел Тайкало - Использование CoreData в iPhone приложения
 
Taras Kornichuk - Ценности социальной игровой платформы для разработчиков и и...
Taras Kornichuk - Ценности социальной игровой платформы для разработчиков и и...Taras Kornichuk - Ценности социальной игровой платформы для разработчиков и и...
Taras Kornichuk - Ценности социальной игровой платформы для разработчиков и и...
 
Использование iPhone приложений в Бизнесе, Маркетинге и PR
Использование iPhone приложений в Бизнесе, Маркетинге и PRИспользование iPhone приложений в Бизнесе, Маркетинге и PR
Использование iPhone приложений в Бизнесе, Маркетинге и PR
 
Индустрия iPhone приложений
Индустрия iPhone приложенийИндустрия iPhone приложений
Индустрия iPhone приложений
 
Sapka Contest 2009 (RU)
Sapka Contest 2009 (RU)Sapka Contest 2009 (RU)
Sapka Contest 2009 (RU)
 
Sapka Contest 2009 (UA)
Sapka Contest 2009 (UA)Sapka Contest 2009 (UA)
Sapka Contest 2009 (UA)
 

Android Platform Architecture

  • 2. План • Загальна архітектура Android платформи • Віртуальна машина Dalvik • Способи програмування для Android
  • 4. Архітектура, екстер’єр • Процесори ARM (RISC+) • Маленька пам’ять • Парочка векторних процесорів для апаратної підтримки OpenGL (це вже здогад) • Фарш: GSM, Bluetooth, 3G, WiFi, камера, GPS, компас, акселерометр
  • 5. Архітектура, інтер'єр • Ядро Linux • Віртуальна машина • Набір системних сервісів
  • 6. Малюнок, що вже намозолив очі Стандартні апи Системні сервіси це ми обговоримо Нативні бібліотеки ОС та драйвери
  • 7. Основні компоненти: активності Прецедент GUI Користувач Вибрати зі списку... Activity … ListActivity TabActivity
  • 8. Основні компоненти: задачі • Стек активностей • Одна задача на передньому плані, усі інші у фоні • Задача може включати в себе активності від абсолютно різних розробників • Немає єдиної точки входу у програму - функції main()
  • 9. Компонентів багато… • Сервіси • Одержувачі broadcast повідомлень • Постачальники даних SQL XML Binary
  • 12. Особливості Dalvik VM 0000: const/4 v0, #int 7 // #7 0001: new-array v0, v0, int[] • Багато машин при малій пам'яті, немає 0003: fill-array-data v0, 000a 0006: sput-object v0, свопу Example2.S33KR1T_1NF0RM4T10N:int[] 0008: return-void • Регістрова, а не стекова 0009: nop // spacer 000a: array-data // for fill-array-data @ 0003 – зменшення кількості інструкцій 0: 1315272293 // #4e657665 1: 1914726255 // #7220676f – зменшення кількості звернень до пам'яті 2: 1852727584 // #6e6e6120 3: 1734964837 // #67697665 • Відповідно, інший байт-код 4: 544829301 // #20796f75 5: 544567355 // #2075703b 6: 544105846 // #206e6576 7: 1701978215 // #65722067
  • 13. 3. Як можна програмувати
  • 15. C/C++ • Нативний код, звісно найшвидший • Підтримка JNI • NDK – підтримується визначений набір бібліотек • Відсутність механізму створення абсолютно нативних додатків
  • 16. WebKit • HTML5 + JavaScript + AJAX • За допомогою <canvas> можна малювати • Дозволяється виконувати задачі за межами основного потоку
  • 17. Корисні ресурси • Пам’ять: http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html http://www.curious-creature.org/2009/02/07/track-memory-allocations-on-android/ • Продуктивність: http://developer.android.com/guide/practices/design/performance.html • UI дизайн: http://developer.android.com/guide/practices/ui_guidelines/index.html • Як економити заряд батареї http://dl.google.com/io/2009/pres/W_0300_CodingforLife-BatteryLifeThatIs.pdf • Медіа http://dl.google.com/io/2009/pres/Mastering_the_Android_Media_Framework.pdf