PYTANIA - Programowanie aplikacji dla technologii mobilnych - 2017 1. Czym są technologie mobilne? Urządzenie elektroniczne pozwalające na przetwarzanie, odbieranie oraz wysyłanie danych bez konieczności utrzymywania przewodowego połączenia z siecią. Urządzenie mobilne może być przenoszone przez użytkownika bez konieczności angażowania dodatkowych środków 2. Wypisz cechy urządzeń mobilnych. Ograniczona żywotność baterii, Ograniczona moc obliczeniowa i inne zasoby, Ograniczone wymiary, Sensory i czujniki, Możliwość komunikacji z innymi urządzeniami 3. Czym jest android System operacyjny z jądrem Linux dla urządzeń mobilnych takich jak telefony komórkowe, smartfony, tablety (tablety PC) i netbooki. Wspomniane jądro oraz niektóre inne komponenty, które zaadaptowano do Androida opublikowane są na licencji GNU GPL. Android nie zawiera natomiast kodu pochodzącego z projektu GNU. Cecha ta odróżnia Androida od wielu innych istniejących obecnie dystrybucji Linuksa (określanych zbiorczo mianem GNU/Linux). Początkowo był rozwijany przez firmę Android Inc. (kupioną później przez Google), następnie przeszedł pod skrzydła Open Handset Alliance. 4. Wymień 6 podstawowych elementów aplikacji w androidzie - Activity(Aktywność) - Layout (Widoki) - Intent (Intencja) - Broadcast Receivers (Odbiorniki komunikatów) - Service (Usługa) - Content Providers (Dostawcy treści) 5. Opisz plik AndroidManisfest.xml - Wymagany plik zawierający niezbędne dla systemu Android informacje o wytworzonej aplikacji. Zawiera nazwę pakietu Java będącą unikalnym identyfikatorem danej aplikacji w systemie. - Zawiera opis komponentów aplikacji takich jak Aktywności, Usługi, Odbiorniki komunikatów i Dostawców treści oraz ich wymagania.
- Zawiera ustawienia zabezpieczeń (do których elementów aplikacja ma mieć dostęp). - Zawiera spis zewnętrznych bibliotek używanych w aplikacji. - Określa minimalny poziom Android API wymagany przez aplikację 6. Wypisz i opisz 3 stany działania aplikacji. Uruchomiona : Zapauzowana : Zatrzymana : - Ekran aplikacji jest widoczny -Użytkownik pracuje z daną aplikacją - Inna aplikacja wyskakuje na ekran ALE nasza aplikacja dalej jest w idoczna (np. gdy wyskoczy komunikat, czy inne okno nie na cały ekran) - Aplikacja jest funkcjonalna, nie działa tylko sprzęg z użytkownikiem - Może być zakończona przez system w ekstremalnych sytuacjach - Aplikacja zostaje zatrzymana, użytkownik jej nie widzi - Aplikacja chodzi w tle (dalej zajmuje pamięć) 7. Przedstaw w postaci diagramu cykl życia aplikacji.
8. Czym jest plik R.java? Plik zawierający automatycznie generowaną klasę z identyfikatorami zasobów, do których odwołuje się programista w kodzie aplikacji. Automatycznie generowana klasa R zawiera identyfikatory zasobów aplikacji z podkatalogów katalogu /res. Dla każdego rodzaju zasobu zostaje utworzona publiczna statyczna klasa wewnętrzna z modyfikatorem final. Identyfikatory zasobów (pola danych klas wewnętrznych) mają postać stałych typu int, będących identyfikatorami zasobów. Dzięki temu aby odwołać się do zasobu należy: - Wynaleźć zasób w klasie R - Utworzyć nową klasę typu danego zasobu - Przypisać klasę zasobu do klasy na której można wprowadzać zmiany - Dzięki niemu IDE co chwile coś kompiluje - Brak odświeżania pliku R.java sprawia, że komponenty czy zasoby nie są widoczne i nie można na nich operować 9. Co zawiera folder aplikacji scr/main? java kod aplikacji i poszczególnych jej komponentów (klas) res pliki xml + obrazki z używanymi zasobami aplikacji AndroidManifest.xml Plik opisu aplikacji 10. Wypisz i krótko opisz pryncypia Material Design. Enchant Me - Oczaruj mnie Simplify My Life Uprość mi życie Make Me Amazing Zrób to niesamowicie 11. Czym jest Material Design? Od wersji 5.0 (API 21) Android wspiera Material Design jako główny temat systemu i aplikacji. Android dostarcza takie elementy jak: - A new theme - New widgets for complex views - New APIs for custom shadows and animations - Dodatkowo zawiera domyślne palety kolorów, animacje i przejścia między aktywnościami Wprowadzono oś Z przy definiowaniu elementów, dzięki czemu można: - Ustawiać cienie (im większa wartość Z, tym większy będzie cień) - Przykrywać jedne kontrolki innymi API umożliwiające tworzenie animacji dla: - Reakcja na touch Event - Pokazywanie i chowanie elementów
- Zmiana pomiędzy aktywnymi aktywnościami - Bardziej naturalne animacje obrotu - Animacja zmiany właściwości kontrolki - Wykorzystywanie animacji jako elementu drawable 12. Wymień rodzaje Layoutów w androidzie? - Linear layout - Relative layout, - Web-View - List View - Grid View, 13. Czym są kontrolki? Wypisz 3 przykłady. Kontrolki umożliwiają interakcje pomiędzy użytkownikiem a aplikacją. Android posiada szereg różnych kontrolek, które twórca aplikacji może użyć do komunikacji z użytkownikiem końcowym - Button - checkbox - spinner 14. W jaki sposób możemy modyfikować własności kontrolek? - xml lub w kodzie rzutując zmienna zwracana przez findviewbyid() na obiekt odpowiedni typowi kontrolki 15. Opisz kontrolkę Text Field Umożliwia użytkownikowi wprowadzenie tekstu Można podłączyć autouzupełnienie (za pomocą adaptera) Można zmienić rodzaj wyświetlanej klawiatury (text, textemailadress, texturi, number, phone) Można ustalić zachowanie kontrolki (textcapsentences, textcapwords, textautocorrect, textpassword, textmultiline) 16. Opisz SQLite System zarządzania bazą danych Obsługuje deklaratywny język zapytań SQL Jest Lite-light Nie działa w oparciu o architekturę klient-serwer Zajmuje mało miejsca Wykorzystuje niewiele zasobów Baza danych przechowywana jest jako pojedynczy plik binarny Szybka okrojona z niektórych funkcji
Działa na zasadzie B-drzew 17. Wymień i opisz typy danych w SQLite Null pusta wartość Integer liczba całkowita Text typ tekstowy REAL typ zmiennoprzecinkowy BLOB typ nieokreślony (dane binarne) 18. Do czego służy zmienna DATABASE_VERSION? Aby zachować kontrolę nad zmianami w strukturze bazy danych dodaje się zmienną statyczną W metodzie onupdate zazwyczaj usuwa się starą bazę i tworzy nową (o ile została zmieniona struktura) do tego celu używa się zmienną private static final DATABASE_VERSION. 19. Czym jest Content Provider? Umożliwiają dzielenie się danymi pomiędzy aplikacjami Np. książka kontaktów w Androidzie udostępnia Content Provider, dzięki któremu inne aplikacje mogą pobrać zapisane kontakty (i je edytować, usuwać, dodawać) 20. Wymień i krótko opisz 2 sposoby pobierania danych lokalizacyjnych w androidzie. - GPS : Bardzo dokładne Działa raczej tylko na zewnątrz Szybko zużywa baterię Wolno zwraca dane - Network Location Provider (wi-fi, cellural) : Działa i wewnątrz i na zewnątrz Szybko zwraca dane Zużywa mniej baterii 21. Czym są sensory w urządzeniach mobilnych i wymień 3 przykłady. Element składowy większego układu, którego zadaniem jest wychwytywanie sygnałów z otaczającego środowiska, ich rozpoznawanie i rejestrowanie Auto-focus Camera Mikrofon żyroskop
22. Do czego może być używany Motion Sensors? Najczęściej używany do: wykrycie ruchu, potrząśnięcia wykrycie obrotu, przekręcenie, wykrycie ruchu według wybranej osi, zliczanie kroków, wykrycie kroku 23. Do czego może być używany Position Sensors? wykrycie ruchu i obrotu, wskazanie pozycji urządzenia, stworzenie kompasu, wykrycie odległości telefonu od twarzy 24. Do czego może być używany Environment Sensors? pomiar temperatury urządzenia, pomiar temperatury powietrza, rozjaśniania, przyciemniania ekranu, pomiaru ciśnienia powietrza, pomiar wilgotności 25. Opisz usługi (Services). Usługi (Services) jest jednym z podstawowych komponentów aplikacji Android Jest częścią aplikacji działającej niezależnie w tle Nie tworzy automatycznie osobnego wątku ani procesu Może komunikować się z aplikacją Pozwala na tworzenie aplikacji klient-serwer Najczęściej używana do obsługi komunikacji z siecią (np. pobieranie danych) Istnieją dwa rodzaje usług Uruchomiona Usługa niezależna od konkretnej aplikacji Może działać, gdy wywołująca ją aplikacja zostanie zamknięta Nie zwraca rezultatu po wykonaniu swoich czynności Samoczynnie znika, gdy wykona swoją czynność Związana (bind) Związana z konkretną aplikację (usługa pomocnicza) Może być powiązana do różnych aplikacji Posiada interfejs klient-serwer Zostaje usunięta, gdy wszystkie związane z nią aplikacje zostaną zamknięte 26. Czym jest klasa Volley Zarządza pobieraniem danych z sieci Pisze i czyta do Cache Komunikuje się z głównym wątkiem Potrafi obsłużyć błędy sieci Parsuje odpowiedź
Zarządza wieloma zapytaniami Wymaga połączenia pobrania zdalnej biblioteki 27. Opisz proces i wątek. Proces : Wykonywana instancja programu Posiada własne zasoby Wątek : Część programu wykonywana współbieżnie w obrębie jednego procesu Wszystkie wątki współdzielą zasoby urządzenia (pamięć) 28. Opisz 2 podstawowe zasady pracy z wątkami. - Nie blokować wątku głównego - Nie próbować uzyskać dostępu do kontrolek interfejsu spoza wątku głównego 29. Czym jest klasa AsyncTask? Klasa AsyncTask pozwala wykonywać operacje mogące blokować wątek główny, w tzw. wątkach roboczych, a następnie publikować wyniki w do wątku UI, bez konieczności implementacji obsługi wątków oraz ich handlerów do obsługi komunikatów. AsyncTask pozwala także na wymianę informacji z wątkiem głównym w trakcie wykonywania czynności 30. Jakie urządzenia należą do technologii mobilnych. Telefony, Tablety, SmartWatch, SmartBand, SmartTV, Wearables