TM Android Flashcards
Do czego służy słówko losowe super?
W kontekście dziedziczenia służy do wywoływania metod i konstruktorów zwojej superKlasy, czyli klasy nadrzędnej.
W jaki sposób dziedziczyć 2 klasy wyżej?
Należy w klasie, z której dziedziczymy stworzyć etykietę:
e@funkcja
A w klasie dziedziczącej wywołać:
Super e@ funkcja.
Co oznacza open?
Oznacza, że metoda jest publiczna i może być nadpisywana przez klasy dziedziczące.
Jaka domyślnie jest klasa?
Final, to oznacza, że metoda jest prywatna i nie może być nadpisywana przez klasy dziedziczące.
Co oznacza override?
Oznacza nową implementację już istniejącej metody.
Czy jeżeli metoda jest open to można dziedziczyć wszystkie jej instancje?
Nie, można dziedziczoną metodę opisać:
final override funkcja().
Czy dziedzicząc można zmieniać takie cechy metody jak val/var czy parametry?
Tak, można zamieniać val z var i na przykład i: Int get() na i: Int=0.
Czy powinno się podczas dziedziczenia korzystać z możliwości zmiany rodzaju zmiennej i dostępności?
Nie, są to antywzorce.
Czy nazwa interfejsu wyróżnia się czymś poza poprzedzającego ją słówka interface?
Tak, powinna się zaczynać od dużej litery I, np. IFigura.
Jakie mamy widoczności składników?
Public
Private
Protected
Internal
Co oznacza widoczność internal?
Oznacza widoczność jedynie w obrębie modułu.
Czym jest funkcja rozszerzająca?
Funkcja ta może dołożyć funkcjonalność do metody podczas jej deklaracji, tak że ta funkcjonalność nie będzie dziedziczna:
fun Funkcja.nowyAtrybut():jegoTyp =
this.get(this.lenght-1)
Czym jest enum?
Jest miękkim słowem kluczowym oznaczającym funkcję wyliczeniową.
Może zawierać metody, a jej główną cechą jest zapewnienie, że enum class Kolor{} przyjmie tylko jedną ze zdefiniowanych wewnątrz wartości.
Czym jest object?
Singleton, który tworzy instancję klasy anonimowej.
object Dyrektor{
private val nazwisko=”Kowal”
fun przedstawSie(){}
}
Czym są klasy danych?
Klasy przechowujące jedynie dane.
Czym są typy generyczne?
Typ klasy, której składowe mogą być różnymi typami danych.
Podaj składnię klasy typu generycznego i deklaracji jej zmiennych.
class nazwa<T>(var zawartość: T)
val zmiennaInt = zmienna<int>(1)</int></T>
Podaj składnię generycznego typu klasy ograniczającą typy do numerycznych.
class nazwa<T: Number(var zawartość: T)
Jak wygląda deklaracja klasy dziedziczącej po innej klasie i implementującej interfejs trzeciej klasy?
class nazwa : 2klasa(), 3klasa.interfejs
Jak wygląda kod deklarujący przycisk?
val przycisk: Button = findViewById(R.id.button)
Jak wygląda kod ustawiający listener na przycisk w klasie?
przycisk.setOnClickListener(this)
Jak wygląda delegacja klasy do konstruktora podczas dziedziczenia?
Chodzi o () w:
class klasa : 2klasa()
Jak zdefiniować UI i czy bez tego można używać funkcji front endowych?
Bez zdefiniowania aplikacja rzuca wyjątek, a definicja wygląda tak:
setContentView(R.layout.activity_main)
Czym jest smart cast?
Funkcja kotlina automatycznie rzutująca zmienna do odpowiedniego typu.
Jak działa operator Elvisa?
Operator Elvisa pilnuje, aby w przypadku próby przypisania wartości null przypisać coś innego:
val zmienna = text ?: 0
Jak działa asercja?
Podaj przykład składni.
Mechanizm kontroli, który zatrzymuje program i zgłasza błąd:
assert(warunek){“komunikat”}
Ile operandów posiada operator Elvisa?
Czy może posiadać return jako operand?
Ma 2 operandy (wyniki po obu jego stronach), a jednym z nich może być return.
Czym jest AssertionError()?
Jest klasą wyjątku, która sygnalizuje błąd asercji.
Jest używana automatycznie przy okazji assert() lub osobno jako:
throw AssertionError(“komunikat”)
Czym jest ART, co było wcześniej i co jest następcą?
Opcjonalne środowisko uruchomieniowe.
Poprzednikiem był Dalvik, a następcą jest LART.
W czym lepszy jest LART?
Kompilacja z wyprzedzeniem (AOT)
Jakie są poziomy bezpieczeństwa?
Normalny
Niebezpieczny
Wersja społecznościowa androida to:
AOSP
Android open source project
Android przystosowany do np. Rasberry Pi.
Lineage
Jak dzielimy androida ze względu na dystrybucję?
Android 1-13 dla telefonów i tabletów
WearOs dla zegarków
ATV było, a teraz jest GTV, czyli google tv
AA - Android Auto dla samochodów
Jakie są kamienie milowe androida w wersji 2.3.x Gingerbread?
Obsługa wielu kamer
Możliwość implementacji aktywności niskopoziomowo - aktywność to ekran, np. logowania, niskopoziomowość polega na używaniu bibliotek .so, które umożliwiają ponowne użycie za pomocą JNI, czyli Java Native Interface
Jakie są kamienie milowe androida 3.x Honeycomb?
Obsługa dużych ekranów (tablety)
Obsługa wielordzeniowych procesorów
Jakie są kamienie milowe androida w wersji 4.0.x Ice Cream Sandwich?
ASLR dla bibliotek systemowych.
Address Space Layout Randomization
Jakie są kamienie milowe androida w wersjach 4.1/4.2/4.3 Jelly Bean?
Pełna obsługa ASLR dla wszystkich bibliotek.
Jakie są kamienie milowe dla androida w wersji 5.x Lollipop?
Wsparcie dla procesorów 64-bitowych.
Jakie są kamienie milowe dla androida w wersji 6.0.x Marshmallow?
Nowa polityka uprawnień
Tryb oszczędzania energii DOZE - WiFi czy Bluetooth pomimo włączenia są dostępne tylko w elastycznym interwale.
Jakie są kamienie milowe androida w wersji 8.x Oreo
Wsparcie Java 8
Aplikacje typu instant bez konieczności ich instalacji
Jak do wersji 4.4 wyglądał proces ściągania i używania nowej aplikacji?
Ściąganie .apk
Rozpakowywanie
Przerabianie na kod maszynowy JIT (Just In time) za pomocą wirtualnej maszyny DALVIK
Pliki pośrednie były typu .dex
Jaki jest następca JIT i związanej z nim maszyny wirtualnej?
AOT - Ahead Of Time
Następca DALVIKA to ART - Android Run Time
Po wersji 4.4 zaczęto instalować (tłumaczyć na kod maszynowy) aplikacje zaraz po ściągnięciu
Jakie kamienie milowe wprowadzono do androida w wersji 10 Q?
Modułowość aplikacji, np. Moduł rejestracji nowego użytkownika, który jest odinstalowywany po rejestracji, czy moduł płatnych opcji bez konta premium, który nie jest instalowany.
Format .aab zamiast .apk
Wsparcie WPA3
Jakie są kamienie milowe androida w wersji 11?
Jednorazowe uprawnienia
Nagrywanie ekranu
Wsparcie 5G
Jakie są kamienie milowe androida w wersji 12?
Projektowanie UI - Material You
Efekty imersyjne np. wibracje podczas klikania
Jakie są kamienie milowe androida w wersji 13?
Notyfikacje o wymaganiu uprawnień
BLE Audio - Bluetooth Low Energy
Co jest wąskim gardłem androida?
Pamięć
Jak wyglądało i wygląda teraz pakowanie aplikacji?
Było .apk, teraz jest .aab.
Wszystko jest pakowane, ale tylko część jest kompresowana.
Jak wygląda architektura androida?
Jest warstwowa:
Jądro linuxa
Biblioteki i maszyna wirtualna
Aplikacje
Jak nazywa się wbudowany silnik przegladarkowy w androidzie?
WebKit - dla Chrome
Jak nazywa się biblioteka języka C zawarta w androidzie?
libc
Jak nazywa się silnik do grafiki 2D/3D wbudowany w Android?
OpenGL/ES - wersja embeded system
Jak nazywa się szyfrowanie zakodowane w androidzie?
SSL
Jak nazywa się androidowy system zarządzania bazą danych?
SQLite
Po co nam karta SD?
Do tworzenia back-up
Jakich użytkowników wyróżniamy w androidzie?
Zwykli użytkownicy
Użytkownik root
Jakie są główne foldery systemu plików?
/system
/data
/mnt/sdcard