TM Android Flashcards

1
Q

Do czego służy słówko losowe super?

A

W kontekście dziedziczenia służy do wywoływania metod i konstruktorów zwojej superKlasy, czyli klasy nadrzędnej.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

W jaki sposób dziedziczyć 2 klasy wyżej?

A

Należy w klasie, z której dziedziczymy stworzyć etykietę:
e@funkcja
A w klasie dziedziczącej wywołać:
Super e@ funkcja.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Co oznacza open?

A

Oznacza, że metoda jest publiczna i może być nadpisywana przez klasy dziedziczące.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jaka domyślnie jest klasa?

A

Final, to oznacza, że metoda jest prywatna i nie może być nadpisywana przez klasy dziedziczące.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Co oznacza override?

A

Oznacza nową implementację już istniejącej metody.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Czy jeżeli metoda jest open to można dziedziczyć wszystkie jej instancje?

A

Nie, można dziedziczoną metodę opisać:
final override funkcja().

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Czy dziedzicząc można zmieniać takie cechy metody jak val/var czy parametry?

A

Tak, można zamieniać val z var i na przykład i: Int get() na i: Int=0.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Czy powinno się podczas dziedziczenia korzystać z możliwości zmiany rodzaju zmiennej i dostępności?

A

Nie, są to antywzorce.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Czy nazwa interfejsu wyróżnia się czymś poza poprzedzającego ją słówka interface?

A

Tak, powinna się zaczynać od dużej litery I, np. IFigura.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Jakie mamy widoczności składników?

A

Public
Private
Protected
Internal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Co oznacza widoczność internal?

A

Oznacza widoczność jedynie w obrębie modułu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Czym jest funkcja rozszerzająca?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Czym jest enum?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Czym jest object?

A

Singleton, który tworzy instancję klasy anonimowej.
object Dyrektor{
private val nazwisko=”Kowal”
fun przedstawSie(){}
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Czym są klasy danych?

A

Klasy przechowujące jedynie dane.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Czym są typy generyczne?

A

Typ klasy, której składowe mogą być różnymi typami danych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Podaj składnię klasy typu generycznego i deklaracji jej zmiennych.

A

class nazwa<T>(var zawartość: T)
val zmiennaInt = zmienna<int>(1)</int></T>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Podaj składnię generycznego typu klasy ograniczającą typy do numerycznych.

A

class nazwa<T: Number(var zawartość: T)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Jak wygląda deklaracja klasy dziedziczącej po innej klasie i implementującej interfejs trzeciej klasy?

A

class nazwa : 2klasa(), 3klasa.interfejs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Jak wygląda kod deklarujący przycisk?

A

val przycisk: Button = findViewById(R.id.button)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Jak wygląda kod ustawiający listener na przycisk w klasie?

A

przycisk.setOnClickListener(this)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Jak wygląda delegacja klasy do konstruktora podczas dziedziczenia?

A

Chodzi o () w:
class klasa : 2klasa()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Jak zdefiniować UI i czy bez tego można używać funkcji front endowych?

A

Bez zdefiniowania aplikacja rzuca wyjątek, a definicja wygląda tak:
setContentView(R.layout.activity_main)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Czym jest smart cast?

A

Funkcja kotlina automatycznie rzutująca zmienna do odpowiedniego typu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Jak działa operator Elvisa?
Operator Elvisa pilnuje, aby w przypadku próby przypisania wartości null przypisać coś innego: val zmienna = text ?: 0
26
Jak działa asercja? Podaj przykład składni.
Mechanizm kontroli, który zatrzymuje program i zgłasza błąd: assert(warunek){"komunikat"}
27
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.
28
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")
29
Czym jest ART, co było wcześniej i co jest następcą?
Opcjonalne środowisko uruchomieniowe. Poprzednikiem był Dalvik, a następcą jest LART.
30
W czym lepszy jest LART?
Kompilacja z wyprzedzeniem (AOT)
31
Jakie są poziomy bezpieczeństwa?
Normalny Niebezpieczny
32
Wersja społecznościowa androida to:
AOSP Android open source project
33
Android przystosowany do np. Rasberry Pi.
Lineage
34
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
35
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
36
Jakie są kamienie milowe androida 3.x Honeycomb?
Obsługa dużych ekranów (tablety) Obsługa wielordzeniowych procesorów
37
Jakie są kamienie milowe androida w wersji 4.0.x Ice Cream Sandwich?
ASLR dla bibliotek systemowych. Address Space Layout Randomization
38
Jakie są kamienie milowe androida w wersjach 4.1/4.2/4.3 Jelly Bean?
Pełna obsługa ASLR dla wszystkich bibliotek.
39
Jakie są kamienie milowe dla androida w wersji 5.x Lollipop?
Wsparcie dla procesorów 64-bitowych.
40
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.
41
Jakie są kamienie milowe androida w wersji 8.x Oreo
Wsparcie Java 8 Aplikacje typu instant bez konieczności ich instalacji
42
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
43
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
44
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
45
Jakie są kamienie milowe androida w wersji 11?
Jednorazowe uprawnienia Nagrywanie ekranu Wsparcie 5G
46
Jakie są kamienie milowe androida w wersji 12?
Projektowanie UI - Material You Efekty imersyjne np. wibracje podczas klikania
47
Jakie są kamienie milowe androida w wersji 13?
Notyfikacje o wymaganiu uprawnień BLE Audio - Bluetooth Low Energy
48
Co jest wąskim gardłem androida?
Pamięć
49
Jak wyglądało i wygląda teraz pakowanie aplikacji?
Było .apk, teraz jest .aab. Wszystko jest pakowane, ale tylko część jest kompresowana.
50
Jak wygląda architektura androida?
Jest warstwowa: Jądro linuxa Biblioteki i maszyna wirtualna Aplikacje
51
Jak nazywa się wbudowany silnik przegladarkowy w androidzie?
WebKit - dla Chrome
52
Jak nazywa się biblioteka języka C zawarta w androidzie?
libc
53
Jak nazywa się silnik do grafiki 2D/3D wbudowany w Android?
OpenGL/ES - wersja embeded system
54
Jak nazywa się szyfrowanie zakodowane w androidzie?
SSL
55
Jak nazywa się androidowy system zarządzania bazą danych?
SQLite
56
Po co nam karta SD?
Do tworzenia back-up
57
Jakich użytkowników wyróżniamy w androidzie?
Zwykli użytkownicy Użytkownik root
58
Jakie są główne foldery systemu plików?
/system /data /mnt/sdcard
59
Czy Android tworzy kopie zapasowe aplikacji?
Tak, na karcie SD, której jeżeli nie ma fizycznie to jest emulowana. Można tą funkcję włączać i wyłączać w pliku Manifestu podczas programowania.
60
Do których folderów głównych zwykły użytkownik ma dostęp?
Tylko częściowo do folderu /mnt/sdcard
61
Jak nazywa się Identyfikator procesu
PID
62
Czy jedna maszyna wirtualna może obsługiwać kilka programów?
Nie, jedna aplikacja działa na jednej maszynie wirtualnej ART
63
Jaki jest wynik działania procesu init?
Zygote - pseudo-maszyna wirtualna, która bierze na siebie wstępne uruchamianie programu, a następnie "forkuje", czyli kopiuje taki program. COW - copy on wright
64
Jak nazywa się aplikacja bez front-endu?
Usługa/serwis
65
W czym piszemy front end?
.XML Qml HTML Comp
66
Jaka jest funkcja Zygote poza wspomaganiem wystartowania aplikacji?
Jeżeli brakuje pamięci to wyłącza procesu o najniższym priorytecie
67
Jak wygląda uruchamianie systemu Android?
Proces rozruchowy (ROM/Flash) Jądro linuxa Proces init Zygote Dalvik
68
Jakie polecenie pokazuje procesy w systemie Android?
ps - aux talk
69
Jak nazywamy zawieszenie się aplikacji?
ANR - application not responding
70
Jakie polecenie pokazuje katalogi z uprawnieniami?
ls - la
71
Jak działa mechanizm intentów?
Intenty rozgłaszają zdarzenia posługując się filtrami. Filtry mogą być statyczne i dynamiczne, modyfikowalne w czasie działania aplikacji.
72
Co obsługuje intenty?
Zarówno Android jak i inne aplikacje.
73
Czym jest intent niejawny?
Intent wysłany od aplikacji do androida, mówiący: "otwórz aplikacje robiącą zdjęcie". Android wybiera jedną z potencjalnie wielu.
74
Jakie wyróżniamy intenty?
Jawne Niejawne
75
Jakie mogą być rodzaje wysłanych intentów?
SA - Set Activity, np. otwórz aplikację SAFR - Set Activity For Return, otwórz aplikację i wróć do programu
76
Jakie funkcje zdecydowanie przeważają w androidzie?
Nieblokujące - nie blokują programu do końca swojego wykonania, mogą przekazywać kontrolę innym.
77
Czy wysyłając polecenie z intentu podajemy jakieś argumenty?
Tak, rC - unikalny Request Code
78
Co zwraca polecenie SAFR?
rC Result Code - True/False (czy się udało) Intent, który wysłał polecenie
79
Jakie uprawnienia rozróżniamy?
Normalne i niebezpieczne. Chodzi o dostęp do danych wrażliwych.
80
Jeżeli piszemy operację, która ma status niebezpieczna to co musimy zrobić?
Najpierw sprawdzamy czy nasz kod ma już wymagane pozwolenia, jeżeli nie to prosimy androida, aby zapytał użytkownika o zgodę i dostajemy informację zwrotną. Od razu po otrzymaniu zezwolenia należy z niego skorzystać, jeżeli tego nie zrobimy grozi nam wyjątek krytyczny.
81
Jak sprawdzić czy mamy uprawnienia?
checkSelfPermission(this, Manifest.permission.WRITE_CALENDAR) Wynik to PERMISSION_GRANTED lub PERMISSION_DENIED
82
Na jakiej podbudowie pracuje emulator androida?
QEMU
83
Jak nazywamy dostawcę danych?
Content Provider
84
Kto stworzył Kotlin?
JetBrains
85
Czy w Kotlin należy przejmować się zwalnianiem pamięci?
Nie, ponieważ jest GC - Garbage Collector. Jeżeli do obiektu nie ma już aktywnych referencji to jest oznaczany jako gotowy do usunięcia i usuwany.
86
Czym jest ADB?
Android Debug Bridge -
87
Jaką architekturę ma ADB?
Trinitalna Klient - Server - Demon
88
Jakie pliki reprezentują demony?
adbd
89
Czy demony włączają się automatycznie?
Nie, należy włączyć je ręcznie.
90
Jak włączyć debuggowanie w telefonie?
W ustawienia 5x kliknąć w numer wersji androida, co włącza tryb programisty. Podczas takiego debuggowania włączany jest demon.
91
Jak łączy się wiele urządzeń i demony?
Serwer adb dostępny na urządzeniu użytkownika.
92
Jak łączy się demon z serwerem?
Poprzez TCP, zarówno przez kabel jak i WiFi. Nasłuchuje na losowo wygenerowanym podczas jego uruchomienia porcie, o numerze 30000+. Dodatkowo oba urządzenia muszą być sparowane, musi nastąpić autoryzacja. QR / PIN
93
Jakie występują w komputerze standardowe strumienie znakowe?
0,1 i 2, gdzie: 0 to idemtyfikator strumienia wejściowego 1 to Identyfikator strumienia wyjściowego 2 to Identyfikator strumienia wyjściowego błedu
94
Jak nazywa się mechanizm pozwalający obserwować standardowe strumienie o identyfikatorach 1 i 2?
Logcat
95
Jakie istnieją rodzaje wpisów w Logcat?
Informacyjne Ostrzeżenia Błędy
96
Co można zrobić za pomocą ADB?
Sprawdzić podłączone urządzenia Instalować aplikacje Wgrać/pobrać pliki Dostęp do konsoli (shell) bez roota, można się dostać dzięki shell do /proc i zarządzać bazą danych
97
Jak wygląda kod ustawiający nowy port dla demona?
setprop service.adb.tcp.port 1234 stop adbd start adbd adb connect 192.168.1.2:1234
98
Jak nazywa się budowniczy w Kotlinie?
Gradle
99
Języki z rodziny Javy, ale nie Kotlin
Groovy Scala
100
Czym jest KDSL?
Kotlin Domain Specific Language - technologia do pisania skryptów, która zastąpiła Groovy
101
Dzięki czemu Kotlin może obsługiwać skrypty?
Dzięki wyrażeniu Lambda.
102
Jak wygląda struktura projektu na androida?
Główne foldery: app zawiera build z R.java, oraz outputs z plikami .apk, których można używać libs zawiera biblioteki src zawiera: main z naszym kodem i manifest.xml res z drawable (grafiki), Layout z .XML oraz values zawierający słowniki
103
Co zawiera folder values?
Zawiera pliki strings.xml, czyli słowniki z napisami dla różnych języków
104
Jak zdefiniować język słownika strings.xml?
Postfixem, tj. strings-pl.xml
105
Co znajduje się w katalogu raw?
Surowe pliki nieeeytowalne, np. mp3, mp4 czy biblioteki gestów
106
Co znajduje się w katalogu assets?
Pliki webowe. Fasada, czyli widok strony.
107
Co może być zasobem w projekcie?
mp3 grafika katalog raw plik.xml element z plik.xml
108
Co charakteryzuje zasób w projekcie?
Ma swój zasób zapisany hexadecymalnie. 0xa23fe
109
Jak nazywa się narzędzie przydzielające identyfikatory zasobom i jak działa?
AAPT2 - przydziela zasobom identyfikatory za każdym budowaniem nowe
110
Do czego służy klasa R.java?
Resources - zawiera klasy wewnętrzne odpowiadające typom zasobów, np. R.raw czy R.assets. Dzięki niej można się odwoływać do zasobów przez ich nazwy, np. (R.id.nazwa)
111
Co oznacza symbol +?
Podczas odwoływania się do zasobu, jeżeli poprzedzimy go "+", a on jeszcze nie istnieje to zostanie stworzony.
112
Czym jest manifest?
Jest nieodłączną częścią aplikacji zawierającą: Opis struktury aplikacji Umiejscowienie klas Umiejscowienie serwisów Uprawnienia aplikacji Musi zawierać tagi Może zawierać aktywności i filtry intentów
113
Jak nazywa się główny wątek aplikacji?
MainThread
114
Jakie zadanie ma główny wątek?
Obsługę UI, jest to jedyne miejsce, które może zmieniać UI. Inne wątki mogą jedynie sugerować MainThread, aby coś zrobił.
115
Jak nazywa się technologia przetwarzania zadania na kilku wątkach po kolei w Kotlinie?
Korutyny
116
Jak wygląda cykl życia aktywności?
onCreate() - Tworzenie aktywności onStart() onResume() onPause() - stąd można iść do onResume() lub onStop() onStop() onDestroy()
117
Jaka instrukcja tworzy UI?
setContentView(R.layout.main)
118
Czy zawsze można się odnieść do fasady?
Tylko po wykonaniu instrukcji ją tworzącej, tj. setContentView. Inaczej dostaniemy błąd Null Pointer Exception.
119
Jak określić długość pokazania komunikatu?
Trzeba nadać mu parametr LENGTH_SHORT lub LENGTH_LONG, gdzie short to 2 sekundy, a long 5
120
Jakie są rodzaje układów elementów aktywności?
Linear Layout Relative Layout - już nieużywany Constraint Layout - z ograniczeniami
121
Jak dzielimy Linear Layout?
Horizontal Vertical
122
Czy Layout'y można zagnieżdżać?
Tak, nawet horyzontalny w wertykalnym i odwrotnie.
123
Czy przypisywanie tekstu na sztywno w elementach widoku jest dobrą praktyką?
Nie, lepiej użyć etykiety do pliku .XML, w którym jest treść, np. text="@string/hello" - w pliku string.xml mamy etykietę o nazwie hello, zawierającą tekst.
124
Jakie są obowiązkowe parametry elementu w Layout?
Weight i Height, mogą być zadeklarowane bezpośrednio jako ilość pikseli, lub jako wrap_content, czy match_parent.
125
Co było przed match_parent?
Fill_parent
126
Jak działa wrap_content?
Zajmij tak mało miejsca ile się da, jednocześnie poprawnie wyświetlając zawartość.
127
Jak działa match_parent?
Zajmij tyle miejsca ile pozwoli Ci rodzic, tzn. ile zostało, czyli całe możliwe.
128
Co się stanie jak 2 przyciski będą miały ustawione match_parent?
Zależnie od ustawienia weight, czyli wagi, tj. Float <0,1>, określa procentowy udział obiektu w widoku. Jeżeli nie ma określonych wag to pierwszy przysłoni drugi obiekt, bo drugi nie znajdzie dla siebie miejsca.
129
Czym jest layout_gravity i jakie są jego rodzaje?
Przyciąganie w danym kierunku, np.: Left Right Top Bottom Center_vertical Center_horizontal Center
130
Jak nazywa się współczynnik sprężystości sprężynek w layoucie?
bias
131
Jak działa bias?
Można go ustawić od 0 do 1 i działa procentowo. Przycisk przypięty do dwóch krawędzi aktywności będzie miał bias ustawione na 0.5 na obu sprężynkach.
132
Jedną z podstawowych cech Kotlina jest kompatybilność z ...
Javą w wersji 6
133
Jakiej technologii używa Kotlin do kompilacji na kod maszynowy?
Kotlin Native przy użyciu środowiska uruchomieniowego LLVM - Low Level Virtual Machine.
134
Jakie rozszerzenie mają pliki z kodem źródłowym Kotlina?
.kt - dla programu .kts - dla scryptu
135
Jaka jest klasa bazowa dla wszystkich klas?
Any
136
Jaki jest Kotlin?
Obiektowy Strukturalny Funkcyjny Imperatywny Statyczne typowany
137
Pod jakim adresem dostępna jest piaskownica?
try.kotlinlang.org
138
Jakie jest docelowe środowisko programistyczne?
IntelliJ IDEA
139
Jakim słówkiem rozpoczyna się deklaracja prototypu funkcji?
fun
140
Jaka funkcja wypisuje na konsole?
println()
141
Jak wygląda ciało wyrażeniowe funkcji?
fun funkcja(): Int = 5, gdzie :Int można pominąć, ze względu na domniemanie typów: fun funkcja() = 5
142
Czy zastąpiono ".." z Javy?
vararg
143
Czy jest zapis oktalny?
Nie
144
Czym jest mutowalność?
val/var czyli const/zmienna
145
Czy zmiennej val można przypisać wartość już po jej zadeklarowaniu?
Tak, można zadeklarować zmienną bez podawania wartości i wtedy można ją podać później, ale nie działa wtedy domniemanie typów.
146
Pozwala używać bibliotek .so
JNI
147
Pakiet zawierający biblioteki Android Jetpack
Androidx