Wprowadzenie do systemu Android

Slides:



Advertisements
Podobne prezentacje
Prezentacja na temat: Porównanie Windows XP i Windows 7
Advertisements

Architektura SAP R/3 Wybrane zagadnienia.
CORBA Łukasz Wnęk.
1 Linux jako system wielozadaniowy i wielodostępny.
Platforma .Net i Vs.Net.
Systemy operacyjne.
Systemy operacyjne Bibliografia:
Systemy operacyjne Bibliografia:
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Artur Szmigiel Paweł Zarębski Kl. III i
Systemy zarządzania treścią CMS
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
REPOZYTORIA 1. Co to są repozytoria?
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
WebSphere Everyplace Micro Environment IBM Workplace Client Technology, Micro Edition Monika Nawrot, Tomasz Jadczyk, Tomasz Sadura KI, EAIiE, AGH.
Wstęp do programowania urządzeń z systemem. Windows Phone 7
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Rozwój aplikacji. To zestaw narzędzi do budowania i optymalizacji złożonych aplikacji opartych na przeglądarce. To zestaw narzędzi do budowania i optymalizacji.
Instytut Tele- i Radiotechniczny WARSZAWA
Architektura Systemu Źródło:
Telefon przyjazny programistom JAVA – szybkie wprowadzenie
Podstawy programowania II
Opracował : Przemysław Drzymała
Budowa systemu komputerowego
Jak to działa? aplikacje desktopowe usługi online urządzenia
Android - wprowadzenie
HTML5 - czy przewróci do góry nogami rynek aplikacji?
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Narzędzia administracyjne
Maszyna wirtualna ang. virtual machine, VM.
Chyba najczęściej używaną przeglądarką internetową jest INTERNET EXPLORER, bo jest ona domyślnie instalowana w wiodącym na rynku polskim oprogramowaniu.
„Kalkulator zużycia oraz kosztu energii elektrycznej online „
Systemy zarządzania treścią Wykład 5
SPECJALNOŚĆ: Oprogramowanie Systemowe
Michał Gmerek, Krzysztof Słodowicz
System do zarządzania i ewidencji dokumentów.
Seminarium Dyplomowe Jacek Fohs.
Jednym z podstawowych celów tworzenia sieci komputerowych jest współdzielenie zasobów, takich jak pliki lub drukarki. Każdy z takich zasobów musi być udostępniony,
Treści multimedialne - kodowanie, przetwarzanie, prezentacjaOdtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Podstawy języka skryptów
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Rozwiązania biznesowe RIM. Czym jest RIM? kanadyjska firma Research In Motion założona w 1984 roku w Waterloo. producent znanej linii urządzeń BlackBerry.
WSPM - Wirtualny System Plików Multimedialnych Igor BOKUN, Stanisław STRELNIK, Krzysztof ZIELIŃSKI Katedra Informatyki Akademia Górniczo-Hutnicza.
Obiekty COM Przemysław Buczkowski. Plan prezentacji 1.Wprowadzenie do COM 2.Historia standardu 3.Jak działa COM 4.Interface IUknown 5.Paradygmaty COM.
Android - cykl życia aplikacji, przykład prostej aplikacji
Platforma .Net.
PLAN PREZENTACJI: 1. WSTĘP 2. HISTORIA 3. PLATFORMA 4. WADY I ZALETY 5. TITANIUM vs PHONEGAP CJE 6. PRZYKŁAD.
Struktura systemu operacyjnego
Temat 1 Pojęcie systemu operacyjnego Opracował: mgr Marek Kwiatkowski.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Smartphony Kamil Miastkowski.
PROJEKT I IMPLEMENTACJA APLIKACJI MOBILNEJ "INFORMATOR UO”. Autor: Marcin Marcinkowski Promotor: Dr Helena Kiriczenko.
Systemy operacyjne W projekcie brali udział Rabiniak Mateusz, Marek Mycek Damian Kostecki, Piotr Dojlido.
Android WYKŁAD 1. Kontakt Krzysztof Bzowski Tel B5 / 605
Kompilator eBook w technologii Java Dyplomant: Maciej Bagrowski Promotor: dr inż. Walery Susłow Politechnika Koszalińska Wydział Elektroniki i Informatyki.
System lokalizacji GPS
Dominika Jasińska klasa 2C.
OS/2 Justyna Pabisek.
PROGRAMY DO KONTROLI RODZICIELSKIEJ
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Content Management System
Windows Workflow Foundation
JavaBeans by Paweł Wąsala
Zapis prezentacji:

Wprowadzenie do systemu Android Michail Mokkas

Android System operacyjny, wykorzystywany głównie przez urządzenia mobilne. Obecnie najpopularniejszy system mobilny. Aktualnie dysponuje ponad trzema milionami aplikacji na Google Play (oficjalny sklep). Oparty na jądrze Linux-a. W większości OpenSource, natomiast posiada komponenty, które są oprogramowaniem zamkniętym (m.in. boot loader, radio, aplikacje) Większość aplikacji pisana w języku Java, Kotlin lub z wykorzystaniem NDK w C/C++. Istnieją narzędzia umożliwiające pisanie w innych językach (np. C# - Xamarin). Źródło obraka: https://storage.googleapis.com/gweb-uniblog-publish-prod/images/02_android_devices.width-1000.png

Historia Androida 2003 – Andy Rubin, Rich Miner, Nick Sears i Chris White zakładają firmę Android Inc.- OS na aparaty fotograficzne 2005 – Google zakupuje Android Inc., założyciele także przechodzą do pracy w Google 2007 – założenie Open Handset Alliance (34 firmy) 2008 – pierwsza wersja systemu Android oraz pierwszy smartfon w nią wyposażony (HTC Dream), w Polsce sprzedawany jako Era G1 Źródło obrazka: https://www.androidheadlines.com/wp-content/uploads/2013/05/tmobile-htc-g1-dream.png

OHA Zrzeszenie ponad 80 firm mające jako cel rozwój otwartych standardów dla urządzeń mobilnych

Popularność (05.2018) źródło: https://www.gartner.com/newsroom/id/3876865

Wersje (10.2018) http://developer.android.com/about/dashboards/index.html

Architektura platformy http://elinux.org/File:Android-system-architecture.jpg

Jądro Linuxa Android został zaprojektowany z myślą o kompatybilności z wieloma urządzeniami. Jądro Linuxa to umożliwia. Wersja jądra 4.4 (od Oreo - Android 8) Dla każdej aplikacji uruchamiany jest oddzielny proces Linuxowy z nowym UserID oraz GroupID Naniesiono kilka poprawek w celu usprawnienia działania Androida (zarządzanie pamięcią oraz energią, logger)

Dlaczego Linux Znakomite zarządzanie pamięcią oraz procesami Model zabezpieczeń oparty na zezwoleniach (permissions) Wsparcie dla współdzielonych bibliotek Sprawdzony model sterowników Jest „open source” 

Hardware Abstraction Layer (HAL) Zapewnia możliwość tworzenia interfejsów pomiędzy platformą Android a poszczególnymi komponentami sprzętowymi danego urządzenia. HAL składa się z wielu bibliotek modułów implementujących interfejsy dla komponentów. W przypadku gdy np. framework API wywołuje dostęp do danego modułu sprzętowego jak aparat lub adapter Bluetooth, system ładuje bibliotekę modułu dla danego komponentu.

Biblioteki Zestaw bibliotek C/C++ używane przez komponenty systemu Android posiada bibliotekę libc (zamiast GNU libc) z powodu problemów z licencją. Nie jest tak kompletna jak oryginał, ale posiada specjalnie zmodyfikowany kod, który jest uważany jako bardziej optymalne pod środowisko mobilne. To jedna ze zmian, które powodują, że Android nie może być uważany jako kompatybilny z POSIX. Grafika 2D oraz 3D Surface Manager – obsługa okienek UI SQLite – silnik bazodanowy WebKit – silnik przeglądarki internetowej

Runtime Każda aplikacja ma przydzielony osobny process. Wykorzystywany jest format plików kodu bajtowego (DEX) – zaprojektowany specjalnie pod Android, zmniejsza pamięć wymaganą do działania programu. Maszyna wirtualna Dalvik zastępuje Java VM Od Android 5.0 Dalvik jest zastąpiony przez środowisko uruchomieniowe Android Runtime (ART) Komunikuje się z niższymi warstwami poprzez Java Native Interface (JNI), która umożliwia wykorzystanie bibliotek pisanych w C/C++. Urządzenie może mieć uruchomionych kilka maszyn wirtualnych jednocześnie bez znaczącego pogorszenia sprawności. Jeden z pierwszych procesów, który jest uruchamiany przy bootowaniu to Zygote. Jest ona odpowiedzialna za uruchamianie dodatkowych usług frameworku aplikacji. Zygote się kopiuje (poprzez fork), ładując każdy proces maszyny wirtualnej.

Framework aplikacji Zestaw serwisów systemowych opakowany w intuicyjny Java API. Zawarte paczki frameworku to m.in. android.*, java.* i javax.* Posiada także następujące usługi uruchamiane po rozruchu systemu: System widoków (Views) – za pomocą, którego można budować GUI aplikacji. Activity Manager – zarządza cyklem życiowym aplikacji. Package Manager – zarządza informacjami i zadaniami związanymi z paczkami w celu zainstalowania ich na systemie. Content Providers – umożliwiają dostęp do danych z innych aplikacji. Notification Manager – umożliwia ukazywanie się zawiadomień na „status bar”. Location Manager – udostępnia interfejs do pozyskiwania/ustalania współrzędnych (GPS, sieć telefonii komórkowej, WiFi) i innych informacji lokalizacyjnych.

Aplikacje Android posiada zestaw aplikacji domyślnych (np. Klient e-mail, Kalendarz, Klient wiadomości SMS/MMS, Przeglądarka stron internetowych, Kontakty). Aplikacje te znajdują się w katalogu /system/app . Istnieje możliwość doinstalowania nowych lub alternatywnych aplikacji (np. poprzez sklepik Google Play), zwykle rezydują w katalogu /data/app . W ramach udostępniania funkcjonalności, istnieje możliwość odwoływania do istniejących już aplikacji o wykonanie pewnych akcji (np. zrobienie zdjęcia i przekazanie rezultatu oryginalnej aplikacji). Android wykorzystuje specjalny klucz platformy, który wykorzystywany jest do podpisywania zainstalowanych już aplikacji. Aplikacje te posiadają przywileje systemowe (użytkownik: system). Reszta aplikacji jest podpisywana kluczami autorów w celu autoryzowania jej przyszłych aktualizacji.

Główne bloki budowy aplikacji Activity Intent Service Content Provider Broadcast Reveicer

Activity Zazwyczaj reprezentuje okienko/ekran w aplikacji. Często posiada inne elementy GUI (np. guziki, pola tekstowe). Posiada własny cykl życiowy, który jest powiązany z jej widocznością dla użytkownika.

Cykl Życiowy Activity 4 stany : Aktywny – jeżeli jest na pierwszym planie Spauzowany – jeżeli jest dalej widoczny, ale stracił „focus” Zatrzymany – jeżeli nie jest widoczny Zlikwidowany – jeżeli proces został zlikwidowany W ostatnich 3 stanach system może podjąć decyzje, co do dalszego postępowania

Intent „Intent” reprezentuje akcje lub zdarzenia Można porównać do linków Może także przekazywać wiadomości pomiędzy komponentami

Service „Service” to komponent, który nie ma graficznej reprezentacji i działa w tle (np. odtwarzacz muzyki)

Cykl Życiowy Service O wiele prostszy niż „activity” Started – brak interakcji Bound – interfejs klient-serwer, który umożliwia interakcję (żądanie, rezultat)

Content provider Umożliwia współdzielenie ustrukturyzowanych danych pomiędzy aplikacjami Zawiera API do odpytywania, dodawania oraz usuwania Zawiera mechanizm do definiowania zabezpieczeń danych Przykładem są „kontakty”

Broadcast receiver Platformowy system notyfikacji Broadcast receiver to komponent, który nasłuchuje na notyfikacje (wydarzenia) oraz umożliwia podjęcie akcji (np. monitor zgasł) Może służyć jako rodzaj komunikacji między aplikacjami

Model zabezpieczeń Model zabezpieczeń oparty na zezwoleniach (permission) android.permission.INTERNET Zabezpieczenie polegające na zaciemnianiu kodu Wykorzystanie ProGuard (utrudnia reverse engineering)

Narzędzia do tworzenia oprogramowania Android SDK (Software Development Kit) –zestaw narzędzi umożliwiających tworzenie aplikacji Emulator Android – wirtualne urządzenie mobilne DDMS (Dalvik Debug Monitor Service) – asystuje przy debugowaniu oraz pozwala na zarządzanie procesami adb – umożliwia komunikację z podpiętym fizycznym urządzeniem Android Android Studio lub Eclipse z ADT (wtyczka) JDK (Java Development Kit)

Gdzie szukać dodatkowej pomocy http://developer.android.com/ - oficjalne http://www.xda-developers.com/ - głównie sprzętowe http://stackoverflow.com/questions/tagged/android - programowanie

Zalety Ułatwia proces implementacyjny aplikacji (poprzez SDK) Zaawansowany system z intuicyjnym GUI Ułatwia wspomaganie dużej ilości urządzeń Bardzo popularny (rosnąca popularność) Wspierany przez wiele urządzeń Łatwy dostęp do milionów aplikacji Wysoce przystosowalny i umożliwiający dopasowanie/zmianę zachowania oraz wyglądu Opensource – wiemy co w nim siedzi

Wady Duża ilość różniących się od siebie urządzeń powoduje, że trzeba więcej czasu spędzić nad przetestowaniem tworzonego oprogramowania oraz nad obsługą różnych wielkości ekranów Zbudowany z mikstury języków programistycznych (warstw Java oraz C++ na specjalnie dostosowanym jąrdze Linux napisanym głównie w C) Opensource – łatwiej znaleźć wrażliwy punkt i go wykorzystać Limitacje (brak roota)