Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair —...

15
1 -------------------------------------------------------------------------------------------------- Лекция № 2 ОС Android Разработка приложений для нетбуков планшетников. Лекция 2 ----------------------------------------------------------------------------------------------------------- Лаборатория Системного ПРограммирования и ИНформационных Технологий СПбГУ

Transcript of Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair —...

Page 1: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

1

--------------------------------------------------------------------------------------------------

Лекция № 2ОС Android

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Лаборатория Системного ПРограммирования иИНформационных Технологий СПбГУ

Page 2: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

План

} История создания ОС Android

} Архитектура Android, отличия отLinux

} Схема ОС Android, описаниекомпонент

} Bionic — исправленный glibc

} Java-машина Dalvik

} Обзор Java интерфейсовприкладного программиста.

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 3: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

История создания ОС Android

} Компания Google в 2002 годузаинтересовалась разработками Э.Рубина

} В 2005 году Google купила Android Inc

} В ноябре 2007 года состоялся анонсAndroid.

} Google создала альянс под названиемOpen Handset Alliance, объединившийвсех ведущих производителеймобильных устройств и разработчиковпрограмм.

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 4: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

История версий

} 2.0 Eclair — включает новый браузер,расширяет API камеры.

} 2.1 Eclair — поддержка голосового контроля.

} 2.3 Gingerbread — улучшенный UI,добавлением программной клавиатуры.Добавлена поддержка соединения междуустройствами.

} 3.2 Honeycomb — оптимизация для широкогодиапазона экранов (планшеты), новый «зум-заполнитель» экрана

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 5: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Архитектура Android

} Ядро - модифицированный Linux

} Набор системных С++ библиотек} Android Runtime – среда выполнения

Java на основе виртуальной машиныDalvik.

} Application Framework — набор Javaбиблиотек для прикладногопрограммиста

} Уровень приложений, включаяпредустановленные

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 6: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Android – не Linux!

} Android — это не очередной дистрибутив Linux!

} Ядро Adroid очень похоже на ядро Linux, но...

} В Android сильно модифицирован glibc

} В Android радикально сокращен набор утилитLinux

} В Android нет встроенной оконной системы

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 7: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Особенности ядра Android

} Binder — межпроцессное взаимодействие

} Поддержка логирования logcat

} Управление памятью (ashmem, pmem,oom)

} Избыточная сетевая безопасность

} Файловая система YAFFS2

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 8: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Схема ОС Android

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 9: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Bionic – «исправленный» glibc

} Bionic —— библиотека стандартныхвызовов языка C для Android, заменаglibc

} Особенности:l BSD лицензия вместо GPLl Малые размеры объектного кодаl Ориентация на процессоры снизкими частотами

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 10: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Java – машина Dalvik} Виртуальная машина Dalvikявляется частью мобильнойплатформы Android

} Dalvik является регистр-ориентированной, а не стек-ориентированной машиной

} Dalvik использует JITкомпиляцию

} Dalvik использует свойсобственный байт-код, но умеетконвертировать оригинальныйбайт-код в свой

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 11: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Обзор Java API

} Java: java.io, java.lang.*, java.util,java.security, …

} Расширения Java: javax.net.*,javax.xml.*, …

} org.apache.http.*

} Другие расширения: org.json,org.w3c.dom.*, org.xml.sax.*

} Android API: android.*

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 12: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Обзор Android API – графика

} android.view, android.widget —элементы GUI, взаимодействие спользователем

} android.graphics — примитивыдвумерной графики, графическиефайлы

} android.animation — анимация, в т.ч. вGUI

} android.opengl — OpenGL ES 2.0

} android.gesture — поддержкауправления жестами

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 13: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Обзор Android API – сеть

} android.net — сетевые протоколывысокого уровня, WiFi

} android.webkit — движок веб-браузера

} android.bluetooth — стек BlueTooth

} android.nfc — стек Near FieldCommunication

} android.telephony — примитивытелефонной связи и SMS

} android.drm — управление правамиконтента

Разработка приложений для нетбуков планшетников. Лекция 2-----------------------------------------------------------------------------------------------------------

Page 14: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

Обзор Android API – разное

} android.app — модель приложенийAndroid

} android.os — межпроцессноевзаимодействие

} android.hardware — камера и датчики

} android.location — геолокация

} android.media — кодирование звуковыхи видео потоков

} android.database — базы данных,включая SQLite

} и многое другое...Разработка приложений для нетбуков планшетников. Лекция 2

-----------------------------------------------------------------------------------------------------------

Page 15: Лекция№ 2 - math.spbu.ru · Историяверсий}2.0 Eclair — включаетновыйбраузер, расширяетAPI камеры.}2.1 Eclair ...

-----------------------------------------------------------------------------------------------------------------------

Благодарю за внимание!

Вопросы?

Разработка приложений для нетбуков планшетников. Лекция 2