Android: Cykl Życia Activity i Uprawnienia

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Opisz cykl życia Activity w Androidzie.

Cykl życia Activity w Androidzie obejmuje szereg metod, które są wywoływane w określonych momentach, np. podczas tworzenia, uruchamiania, wstrzymywania, ponownego uruchamiania, zatrzymywania i niszczenia Activity. Najważniejsze metody to:

  • onCreate(): Wywoływana tylko raz, podczas tworzenia Activity, służy do inicjalizacji komponentów.
  • onStart(): Wywoływana podczas uruchamiania Activity, czyni Activity widocznym dla użytkownika.
  • onResume(): Wywoływana, gdy Activity jest w stanie gotowości do interakcji z użytkownikiem.
  • onPause(): Wywoływana, gdy Activity traci ostrość, np. podczas rozmowy telefonicznej.
  • onStop(): Wywoływana, gdy Activity jest niewidoczne dla użytkownika.
  • onRestart(): Wywoływana, gdy Activity jest ponownie uruchamiane.
  • onDestroy(): Wywoływana podczas niszczenia Activity.

Czym są i do czego służą kwalifikatory zasobów w Androidzie?

Kwalifikatory zasobów w Androidzie to atrybuty, które określają specyficzne wersje zasobów, np. obrazków, napisów, układów (layouts) dla różnych konfiguracji urządzenia, takich jak: język, rozdzielczość ekranu, orientacja, rozmiar ekranu, wersja API itp. Dzięki temu można dostarczyć użytkownikowi odpowiednie zasoby dla jego urządzenia, co zapewnia optymalne działanie aplikacji.

W jaki sposób aplikacja w Androidzie uzyskuje uprawnienia do komponentów systemu?

W Androidzie aplikacja musi uzyskać uprawnienia od użytkownika, aby korzystać z komponentów systemu, takich jak aparat, kontakty, lokalizacja itp. Uprawnienia są nadawane w momencie instalacji aplikacji lub podczas jej działania. Użytkownik może zaakceptować lub odrzucić żądanie uprawnień. Od Androida 6.0 (Marshmallow) możliwe jest również przyznawanie uprawnień w trakcie działania aplikacji. Aplikacje mogą prosić o uprawnienia za pośrednictwem manifestu aplikacji (AndroidManifest.xml) lub poprzez API.

Co się dzieje z Activity w Androidzie, gdy telefon zostanie obrócony? Jak zapobiec utracie danych w trakcie tego procesu?

<p>Kiedy telefon zostanie obrócony, Activity w Androidzie zostanie zniszczona i ponownie utworzona. To oznacza, że wszystkie dane, które były przechowywane w pamięci Activity, zostaną utracone. Aby zapobiec utracie danych, należy zastosować mechanizm zapisywania stanu Activity w metodzie <code>onSaveInstanceState()</code> i odtworzenia stanu w metodzie <code>onRestoreInstanceState()</code>. Dzięki temu, po ponownym utworzeniu Activity, dane zostaną przywrócone.</p> Signup and view all the answers

Co oznacza, gdy metoda getDefaultSensor() zwraca null w Androidzie? W jaki sposób wybrać czujnik danego typu, gdy jest ich w systemie więcej niż 1?

<p>Jeżeli metoda <code>getDefaultSensor()</code> w Androidzie zwróci <code>null</code>, oznacza to, że w systemie nie ma dostępnego sensora danego typu. Aby wybrać czujnik danego typu, gdy jest ich w systemie więcej niż 1, należy wykorzystać metodę <code>getSensorList(int sensorType)</code>. Metoda ta zwraca listę dostępnych sensorów danego typu. Następnie można wybrać konkretny sensor z listy, np. na podstawie jego dokładności lub innych parametrów.</p> Signup and view all the answers

Co to jest i do czego służy klasa Intent w Androidzie?

<p>Klasa <code>Intent</code> w Androidzie jest podstawowym mechanizmem komunikacji pomiędzy różnymi komponentami aplikacji, a także pomiędzy aplikacjami. Służy do uruchamiania innych Activity, usług, nadawania broadcastów itp. Intent definiuje akcję, którą chcesz wykonać, a także informacje, które są niezbędne do jej wykonania. Na przykład, Intent do uruchomienia innej Activity może zawierać informacje o tym, jaki typ danych ma być wyświetlony w tej Activity. Intenty mogą być wyraźne (explicit), tzn. określają konkretną Activity, która ma być uruchomiona, lub niejawne (implicit), tzn. określają akcję, której ma zostać dokonana, a system sam decyduje, która Activity ma być uruchomiona.</p> Signup and view all the answers

Czym są i do czego służą filtry intencji (intent-filter) w Androidzie?

<p>Filtry intencji (intent-filter) w Androidzie to mechanizm, który umożliwia aplikacjom reagowanie na Intenty, które są wysyłane przez system lub inne aplikacje. Filtry intencji są definiowane w manifeście aplikacji (AndroidManifest.xml) i określają, na jakie Intenty aplikacja ma odpowiadać. Na przykład, aplikacja może zdefiniować filtr intencji dla Intenta <code>ACTION_VIEW</code>, który ma na celu otwarcie określonego typu pliku. Jeśli użytkownik kliknie na plik tego typu, system automatycznie wybierze aplikację, która ma filtr intencji dla tego Intenta i uruchomi ją.</p> Signup and view all the answers

Czym różnią się metody FINE i COARSE w Androidzie, gdy określają lokalizację urządzenia mobilnego?

<p>Metody <code>FINE</code> i <code>COARSE</code> w Androidzie są używane do określania lokalizacji urządzenia mobilnego. Metodą <code>FINE</code> można uzyskać dokładną lokalizację, np. z wykorzystaniem GPS, Wi-Fi i danych z sieci komórkowej. Metodą <code>COARSE</code> można uzyskać mniej dokładną lokalizację, z wykorzystaniem danych z komórkowej sieci i Wi-Fi. Metoda <code>FINE</code> wymaga od użytkownika zgody na korzystanie z dokładnych danych lokalizacji, natomiast metoda <code>COARSE</code> nie wymaga dodatkowej zgody.</p> Signup and view all the answers

Jakie dwie składowe mierzy akcelerometr? W jaki sposób można rozłożyć pomiary akcelerometru na dwie składowe?

<p>Akcelerometr mierzy przyspieszenie w trzech osiach: X, Y i Z. Aby rozłożyć pomiary na dwie składowe, można skorzystać z następujących wzorów:</p> <ul> <li>Przyspieszenie w osi X: <code>x = sqrt(a^2 + b^2)</code>, gdzie <code>a</code> to pomiar w osi X, a <code>b</code> to pomiar w osi Y.</li> <li>Przyspieszenie w osi Y: <code>y = sqrt(c^2 + d^2)</code>, gdzie <code>c</code> to pomiar w osi Z, a <code>d</code> to pomiar w osi Y.</li> </ul> <p>Wartości <code>x</code> i <code>y</code> reprezentują przyspieszenie w osi poziomej i pionowej.</p> Signup and view all the answers

Jakiego komponentu w Androidzie można użyć do tworzenia rysunków lub animacji? Jaki warunek musi być spełniony, aby metoda onDraw() przerysowywała zawartość po wywołaniu metody invalidate()?

<p>W Androidzie do tworzenia rysunków lub animacji można użyć komponentu <code>View</code>. Aby metoda <code>onDraw()</code> przerysowywała zawartość po wywołaniu metody <code>invalidate()</code>, należy zapewnić, że <code>View</code> jest ponownie narysowany. Można to zrobić, wywołując metodę <code>invalidate()</code> na obiekcie <code>View</code>, co spowoduje ponowne wywołanie metody <code>onDraw()</code> dla tego <code>View</code>.</p> Signup and view all the answers

Co to jest LOGCAT i w jaki sposób można go wykorzystać do debugowania aplikacji w Androidzie?

<p>LOGCAT to narzędzie w Androidzie, które służy do wyświetlania komunikatów dziennika z aplikacji i systemu. Komunikaty te mogą być pomocne w diagnozowaniu problemów z aplikacjami, np. w przypadku błędów, ostrzeżeń lub innych zdarzeń. Do debugowania aplikacji można wykorzystać LOGCAT do wyświetlania komunikatów dziennika, w tym:</p> <ul> <li>Informacje: Komunikaty informacyjne, które pokazują normalne działanie aplikacji lub systemu.</li> <li>Ostrzeżenia: Komunikaty ostrzegawcze o potencjalnych problemach.</li> <li>Błędy: Komunikaty o błędach, które mogą powodować problemy z działaniem aplikacji.</li> <li>Fatalne błędy: Komunikaty o błędach, które powodują awarię aplikacji.</li> </ul> <p>LOGCAT można uruchomić z poziomu Android Studio lub z wiersza poleceń.</p> Signup and view all the answers

Jakie jednostki długości używa się w tworzeniu interfejsu użytkownika w Androidzie?

<p>W tworzeniu interfejsu użytkownika w Androidzie używa się jednostek dp (density-independent pixels) i sp (scale-independent pixels). Dp jest niezależny od gęstości pikseli ekranu, co oznacza, że rozmiar elementu będzie wyglądać tak samo na urządzeniach z różnymi gęstościami pikseli. Sp jest niezależny od rozmiaru tekstu, co oznacza, że rozmiar elementu będzie dopasowany do rozmiaru tekstu.</p> Signup and view all the answers

W jaki sposób należy oprogramować obiekt klasy MediaPlayer do odtwarzania pliku audio w Androidzie?

<p>Aby odtwarzać plik audio w Androidzie, należy:</p> <ol> <li>Utworzyć obiekt klasy <code>MediaPlayer</code>.</li> <li>Wywołać metodę <code>setDataSource()</code> na obiekcie <code>MediaPlayer</code>, aby wskazać ścieżkę do pliku audio.</li> <li>Wywołać metodę <code>prepare()</code> na obiekcie <code>MediaPlayer</code>, aby przygotować odtwarzanie.</li> <li>Wywołać metodę <code>start()</code> na obiekcie <code>MediaPlayer</code>, aby rozpocząć odtwarzanie.</li> <li>Po zakończeniu odtwarzania można wywołać metodę <code>release()</code> na obiekcie <code>MediaPlayer</code>, aby zwolnić zasoby.</li> </ol> <p>Możliwe jest również zastosowanie opcji dodatkowych, takich jak <code>setLooping()</code> (ustawienie odtwarzania w pętli) lub <code>setVolume()</code> (ustawienie głośności).</p> Signup and view all the answers

Opisz metodę korzystania z usług systemowych w Androidzie (np. Bluetooth, Battery).

<p>Korzystanie z usług systemowych w Androidzie odbywa się poprzez dostęp do klas i metod API, które są dostarczane przez system operacyjny. Aby korzystać z usług systemowych, należy najpierw uzyskać uprawnienia od użytkownika. Po uzyskaniu uprawnień można tworzyć obiekty klas, które odpowiadają za dostęp do danej usługi i wywoływać ich metody, aby uzyskać lub zmodyfikować informacje.</p> <p>Przykładowo, aby uzyskać informacje o poziomie naładowania baterii, należy utworzyć obiekt klasy <code>BatteryManager</code> i wywołać metodę <code>getInt()</code>, aby uzyskać dane dotyczące poziomu naładowania baterii. Podobnie, aby korzystać z Bluetooth, należy utworzyć obiekt klasy <code>BluetoothAdapter</code> i wywołać jego metody, aby sprawdzić dostępność Bluetooth, znaleźć urządzenia Bluetooth, połączyć się z urządzeniami Bluetooth itp.</p> <p>W celu rozpoznania i wykorzystania usługi systemowej, warto sprawdzić dokumentację API Androida.</p> Signup and view all the answers

Co to jest Core Data w systemie iOS?

<p>Core Data to framework w systemie iOS, który pomaga w zarządzaniu danymi w aplikacji. Ułatwia tworzenie, pobieranie, aktualizowanie i usuwanie danych w sposób zorganizowany i łatwy do zarządzania. Core Data działa jako pośrednik między interfejsem użytkownika aplikacji a bazą danych.</p> Signup and view all the answers

Opisz mechanizm zarządzający cyklem życia obiektów w systemie iOS.

<p>W systemie iOS cyklem życia obiektów zarządza mechanizm zwany ARC (Automatic Reference Counting). ARC automatycznie śledzi liczbę referencji do obiektu i gdy liczba ta spadnie do zera, obiekt jest niszczony. Pamięć jest przydzielana obiektom podczas ich tworzenia, a zwalniana automatycznie, gdy obiekt jest już niepotrzebny, w ten sposób unikając niedostępnej pamięci.</p> Signup and view all the answers

Jak wygląda definicja interfejsu klasy oraz jego implementacja w Swift?

<p>Definicja interfejsu klasy w Swift zaczyna się od słowa kluczowego <code>protocol</code> i zawiera listę metod i/lub właściwości, które klasa implementująca powinna posiadać. Implementacja interfejsu odbywa się przez dodanie słowa kluczowego <code>extension</code> do klasy, zdefiniowanie interfejsu użytego i implementację wszystkich wymaganych metod i/lub właściwości.</p> Signup and view all the answers

Co zarządza przejściami pomiędzy widokami w systemie iOS?

<p>W systemie iOS przejściami pomiędzy widokami zarządza <code>UINavigationController</code>. Dzięki <code>UINavigationController</code> można tworzyć nawigację między widokami w aplikacji, organizować je w hierarchię, a także sterować animacjami przejścia.</p> Signup and view all the answers

Zaprezentuj cykl życia ViewControllera w systemie iOS.

<p>Cykl życia ViewControllera w systemie iOS jest następujący:</p> <ol> <li><strong>init()</strong>: Tworzenie obiektu ViewControllera.</li> <li><strong>initWithNibName:bundle:</strong> Inicjalizacja ViewControllera.</li> <li><strong>loadView()</strong>: Załadowanie widoku.</li> <li><strong>viewDidLoad()</strong>: Wywoływana zaraz po załadowaniu widoku, służy do konfiguracji widoków i innych ustawień.</li> <li><strong>viewWillAppear()</strong>: Wywoływana, gdy widok ma się stać widoczny.</li> <li><strong>viewDidAppear()</strong>: Wywoływana, gdy widok jest już widoczny.</li> <li><strong>viewWillDisappear()</strong>: Wywoływana, gdy widok ma zniknąć.</li> <li><strong>viewDidDisappear()</strong>: Wywoływana, gdy widok już zniknął.</li> <li><strong>didReceiveMemoryWarning()</strong>: Wywoływana, gdy system ma mało pamięci.</li> <li><strong>dealloc()</strong>: Destruktor obiektu ViewControllera.</li> </ol> Signup and view all the answers

Opisz różnice pomiędzy Garbage Collector'em a ARC w systemie iOS.

<p>Garbage Collector (GC) to mechanizm automatycznej pamięci, który okresowo skanuje pamięć i usuwa nieużywane obiekty. ARC (Automatic Reference Counting) jest bardziej efektywnym i zoptymalizowanym podejściem do zarządzania pamięcią. Zamiast okresowego skanowania pamięci, ARC stale śledzi, ile referencji wskazuje na dany obiekt. Gdy liczba referencji spadnie do zera, obiekt jest automatycznie usuwany z pamięci. W systemie iOS nie używa się Garbage Collector'a.</p> <p>ARC jest szybszy i bardziej wydajny niż GC, a także nie wymaga dodatkowego procesu skanowania pamięci, co przyczynia się do lepszej wydajności aplikacji.</p> Signup and view all the answers

Opisz różnicę pomiędzy "weak" i "strong" w systemie iOS.

<p>W systemie iOS <code>strong</code> i <code>weak</code> są to słowa kluczowe określające typ referencji do obiektu.</p> <ul> <li><code>strong</code>: Silna referencja utrzymuje obiekt w pamięci, dopóki istnieje inna silna referencja do niego.</li> <li><code>weak</code>: Słaba referencja nie utrzymuje obiektu w pamięci. Gdy nie ma innych silnych referencji, obiekt jest usuwany z pamięci, a słaba referencja staje się <code>nil</code>.</li> </ul> <p><code>weak</code> stosowana jest w sytuacjach, gdy chcesz zachować referencję do obiektu, ale nie chcesz utrzymać go w pamięci. Jest to przydatne w przypadku cyklicznych referencji, które mogą prowadzić do wycieku pamięci. <code>strong</code> stosowana jest w pozostałych przypadkach, gdy chcesz utrzymać obiekt w pamięci.</p> Signup and view all the answers

Na przykładzie Objective C, wyjaśnij różnicę pomiędzy obiektami mutowalnymi a niemutowalnymi.

<p>W Objective C obiekty mogą być <code>mutable</code> (zmienne) lub <code>immutable</code> (niezmienne).</p> <p>Przykład:</p> <ul> <li> <p><strong><code>NSMutableArray</code></strong> (zmienny):<br /> <code>NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@&quot;pierwszy&quot;, @&quot;drugi&quot;, nil]; [mutableArray addObject:@&quot;trzeci&quot;]; // Możliwe dodanie elementu</code></p> </li> <li> <p><strong><code>NSArray</code></strong> (niezmienny): <code>NSArray *immutableArray = [NSArray arrayWithObjects:@&quot;pierwszy&quot;, @&quot;drugi&quot;, nil]; [immutableArray addObject:@&quot;trzeci&quot;]; // Błąd kompilacji, ponieważ próbujemy zmodyfikować tablicę</code></p> </li> </ul> <p>Celem obiektów <code>immutable</code> jest zapewnienie bezpieczeństwa, że ​​ich zawartość nie zostanie przypadkowo zmieniona. Obiekty <code>mutable</code> zapewniają elastyczność i możliwość modyfikowania ich zawartości.</p> Signup and view all the answers

Czym jest i do czego służą IBOutlet i IBAction w systemie iOS?

<p><code>IBOutlet</code> i <code>IBAction</code> to deklaracje w Objective C, które łączą elementy interfejsu użytkownika (UI) z kodem aplikacji.</p> <ul> <li><code>IBOutlet</code>: Umożliwia połączenie elementu UI (np. przycisk, etykieta) z zmienną w kodzie, umożliwiając dostęp do tego elementu z poziomu kodu.</li> <li><code>IBAction</code>: Umożliwia połączenie zdarzenia (np. dotknięcie przycisku) z metodą w kodzie, wywołując tę metodę, gdy wystąpi odpowiednie zdarzenie.</li> </ul> <p><code>IBOutlet</code> i <code>IBAction</code> są wykorzystywane do tworzenia interaktywnego interfejsu użytkownika w aplikacji.</p> Signup and view all the answers

W jaki sposób implementuje się dostęp do kontekstu CoreData z wielu wątków w systemie iOS?

<p>Dostęp do <code>CoreData</code> z wielu wątków w systemie iOS wymaga ostrożności, aby uniknąć konfliktów danych. Należy użyć <code>NSManagedObjectContext</code> dla każdego wątku, który chce uzyskać dostęp do danych. Zaleca się użycie <code>NSManagedObjectContext</code> z <code>NSPrivateQueueConcurrencyType</code> dla operacji na danych, a <code>NSManagedObjectContext</code> z <code>NSMainQueueConcurrencyType</code> dla głównego wątku, który aktualizuje interfejs użytkownika. Dodatkowo można użyć <code>NSPersistentStoreCoordinator</code> do koordynacji zmian danych z różnych <code>NSManagedObjectContext</code>. Ważne jest, aby synchronizować zmiany danych między <code>NSManagedObjectContext</code> i <code>NSPersistentStoreCoordinator</code>!</p> Signup and view all the answers

Wymień modyfikatory dostępu w Objective C.

<p>Modyfikatory dostępu w Objective C określają widoczność elementów (metod, właściwości) i wskazują, które części aplikacji mają do nich dostęp.</p> <ul> <li><strong><code>public</code></strong>: Elementy oznaczone jako publiczne są widoczne z dowolnej części aplikacji.</li> <li><strong><code>protected</code></strong>: Elementy oznaczone jako chronione są widoczne tylko wewnątrz samej klasy i klas dziedziczących po niej.</li> <li><strong><code>private</code></strong>: Elementy oznaczone jako prywatne są widoczne wyłącznie wewnątrz klasy, w której zostały zdefiniowane.</li> </ul> <p>Zastosowanie odpowiednich modyfikatorów dostępu jest kluczowe dla zapewnienia bezpieczeństwa i dobrej praktyki kodowania.</p> Signup and view all the answers

Czym jest NSAutoreleasePool w systemie iOS?

<p><code>NSAutoreleasePool</code> w systemie iOS jest mechanizmem zarządzania pamięcią, który pozwala na tymczasowe przechowywanie obiektów, które powinny zostać zwolnione po zakończeniu pewnego zakresu kodu. Obiekty dodane do <code>NSAutoreleasePool</code> pozostają w pamięci do momentu, gdy pułapka zostanie zniszczona. Zastosowanie <code>NSAutoreleasePool</code> jest szczególnie przydatne w przypadku tworzenia wielu obiektów w określonym zakresie kodu, ale gdy nie ma potrzeby przechowywania ich w pamięci na dłużej.</p> Signup and view all the answers

Czym jest protokół w Objective C?

<p>Protokóły w Objective C to definicje specyfikacji, które określają, jakie metody i właściwości powinna posiadać klasa, aby być zgodna z danym protokołem. Protokół nie zawiera żadnej implementacji metod, jedynie deklaracje. Klasa, która implementuje protokół, musi zdefiniować wszystkie wymagane metody i właściwości, które są opisane w protokole. Protokół zapewnia elastyczność i możliwość tworzenia interfejsów dla obiektów, bez potrzeby specyfikowania ich konkretnego typu.</p> Signup and view all the answers

Jaka jest różnica pomiędzy try, try? i try! w systemie iOS?

<p><code>try</code>, <code>try?</code> i <code>try!</code> to różne metody obsługi błędów w Swift.</p> <ul> <li><code>try</code>: Używane do wykonywania kodu, który może wyrzucić błąd. Jeśli błąd zostanie wyrzucony, zostaje on obsłużony przez blok <code>catch</code>.</li> <li><code>try?</code>: Używane do próby wykonania kodu, który może wyrzucić błąd. Jeśli błąd zostanie wyrzucony, <code>try?</code> zwraca <code>nil</code>, w przeciwnym razie zwraca wynik.</li> <li><code>try!</code>: Używane do próby wykonania kodu, który może wyrzucić błąd. <code>try!</code> zakłada, że ​​błąd nie zostanie wyrzucony, a w przypadku błędu wyrzuca błąd paniki (panic).</li> </ul> <p><code>try</code> używane jest, gdy kód może wyrzucić błąd i chcemy go obsłużyć. <code>try?</code> jest używane, gdy kód może wyrzucić błąd, ale nie chcemy go obsługiwać. <code>try!</code> jest używane, gdy kód nie powinien wyrzucać błędu i chcemy wyrzucić błąd paniki, jeśli błąd jednak wystąpi.</p> Signup and view all the answers

Wyjaśnij, czym jest ORM (Object-Relational Mapping) w kontekście iOS.

<p>ORM (Object-Relational Mapping) to technika programistyczna, która pozwala na połączenie danych przechowywanych w relacyjnej bazie danych (np. SQLite) z obiektami w aplikacji programistycznej. ORM działa jako pośrednik pomiędzy językiem programowania a bazą danych, konwertując dane z jednego do drugiego formatu. ORM ukrywa złożoność zarządzania bazą danych, umożliwiając interakcję z danymi poprzez obiekty w języku programowania. Dzięki ORM programista może tworzyć i aktualizować dane w bazie danych, nie muszą się znać na SQL.</p> Signup and view all the answers

Flashcards

Cykl życia Activity

Cykl życia Activity w Androidzie obejmuje następujące metody: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(). Każda metoda odpowiada za konkretną fazę życia Activity, np. onCreate() uruchamia się podczas tworzenia Activity.

Kwalifikatory zasobów

Kwalifikatory zasobów to specjalne atrybuty, które dodaje się do definicji zasobów (np. obrazów, layoutów) w Androidzie. Pozwalają one na dostosowanie zasobów do konkretnych cech urządzenia, np. rozdzielczości ekranu, języka.

Uprawnienia aplikacji

Aplikacja Androidowa uzyskuje uprawnienia do komponentów systemu poprzez manifest aplikacji (AndroidManifest.xml). W manifescie deklaruje się wymagane uprawnienia, a użytkownik musi je zatwierdzić podczas instalacji aplikacji.

Obrót telefonu

Gdy telefon zostanie obrócony, Activity zostaje zniszczone i stworzone ponownie. Aby zapobiec utracie danych, należy zapisać je w stanie Activity (onSaveInstanceState()) i odtworzyć je po ponownym utworzeniu (onRestoreInstanceState()).

Signup and view all the flashcards

Metoda getDefaultSensor()

Metoda getDefaultSensor() zwraca null, jeśli żaden czujnik danego typu nie jest dostępny w urządzeniu. Aby wybrać konkretny czujnik z kilku dostępnych, można użyć metody getSensorList() i przeiterować po liście wyników.

Signup and view all the flashcards

Klasa Intent

Intent to obiekt, który służy do przekazywania intencji (np. uruchomienia nowej Activity, wyświetlenia danych) między komponentami aplikacji Androidowej.

Signup and view all the flashcards

Filtry intencji

Filtry intencji to deklaracje w AndroidManifest.xml, które określają, które intencje może obsługiwać dana Activity. Dzięki nim system Android może automatycznie rozpoznać, która Activity powinna obsługiwać daną intencję.

Signup and view all the flashcards

Metody FINE i COARSE

Metoda FINE określa dokładną lokalizację, natomiast metoda COARSE może podać przybliżoną pozycję. Różnica polega na dokładności i zużyciu energii - FINE zużywa więcej energii.

Signup and view all the flashcards

Akcelerometr

Akcelerometr mierzy przyspieszenie liniowe w trzech osiach: X, Y i Z. Można rozłożyć pomiary na dwie składowe (np. X i Y) poprzez obliczenie wektora przyspieszenia.

Signup and view all the flashcards

Rysowanie i animacja

Do tworzenia rysunków i animacji w Androidzie można użyć View. Metoda onDraw() podlega wywołaniu tylko wtedy, gdy View jest ważne (np. po wywołaniu invalidate()), ponieważ Android stara się optymalizować zużycie energii.

Signup and view all the flashcards

LOGCAT

LOGCAT to narzędzie do debugowania aplikacji Androidowych, które udostępnia informacje o zdarzeniach w systemie Android. Umożliwia wyświetlanie i filtrowanie logów, co pomaga w identyfikacji i rozwiązywaniu problemów.

Signup and view all the flashcards

Jednostki długości

W tworzeniu interfejsu użytkownika w Androidzie używa się jednostek dp (density-independent pixels) i sp (scale-independent pixels), które są niezależne od rozdzielczości ekranu i rozmiaru czcionki.

Signup and view all the flashcards

Odtwarzanie audio

Aby odtwarzać plik audio w Androidzie, należy stworzyć obiekt klasy MediaPlayer i wywołać metody: setDataSource(), prepare() i start(). Metoda setDataSource() ustawia ścieżkę do pliku, prepare() przygotowuje odtwarzacz, a start() rozpoczyna odtwarzanie.

Signup and view all the flashcards

Odtwarzanie wideo

Aby odtwarzać plik video w Androidzie, należy stworzyć obiekt klasy MediaPlayer i wywołać metody: setDataSource(), prepare() i start(). Metoda setDataSource() ustawia ścieżkę do pliku, prepare() przygotowuje odtwarzacz, a start() rozpoczyna odtwarzanie.

Signup and view all the flashcards

Usługi systemowe

Aby korzystać z usług systemowych Androida (np. Bluetooth, Battery), należy użyć klasy Context i wywołać metody, które eksportują te usługi. Należy sprawdzić, czy urządzenie obsługuje daną usługę.

Signup and view all the flashcards

Core Data

Core Data to framework w iOS, który ułatwia zarządzanie danymi w aplikacji. Pozwala na tworzenie modeli danych, przechowywanie danych w bazie danych i synchronizację danych z interfejsem użytkownika.

Signup and view all the flashcards

Reference Counting

Mechanizm zarządzania cyklem życia obiektów w iOS (Reference Counting) działa na zasadzie zwiększania lub zmniejszania licznika referencji do obiektu. Gdy licznik spadnie do zera, obiekt jest usuwany.

Signup and view all the flashcards

Interfejs w Swift

Interfejs klasy w Swift definiuje metody, które mogą być implementowane przez klasy, które go implementują. Implementacja interfejsu to dodanie do klasy słów kluczowych 'class' i 'protocol'.

Signup and view all the flashcards

Zarządzanie widokami

W iOS przejścia pomiędzy widokami są zarządzane przez Navigation Controller. Navigation Controller steruje stosowaniem widoków, umożliwiając przechodzenie do przodu i do tyłu.

Signup and view all the flashcards

Cykl życia ViewControllera

Cykl życia ViewControllera to seria metod, które są wywoływane podczas tworzenia, wyświetlania i zamykania ViewControllera. Metody te umożliwiają wykonywanie konkretnych operacji w każdym etapie cyklu życia ViewControllera.

Signup and view all the flashcards

Garbage Collector vs ARC

Garbage Collector (GC) to mechanizm automatycznego usunięcia nieużywanych obiektów w języku Java. Automatic Reference Counting (ARC) to mechanizm automatycznego zarządzania pamięcią w Swift, który eliminuje potrzebę ręcznego zarządzania referencjami.

Signup and view all the flashcards

„Weak

„Weak

Signup and view all the flashcards

„Strong

„Strong

Signup and view all the flashcards

Obiekty mutowalne vs niemutowalne

Obiekty mutowalne (np. NSMutableArray) można modyfikować po utworzeniu (np. dodawać lub usuwać elementy), natomiast obiekty niemutowalne (np. NSArray) są stałe po utworzeniu i nie można ich modyfikować.

Signup and view all the flashcards

IBOutlet i IBAction

IBOutlet to zmienna, która łączy element interfejsu użytkownika (np. przycisk) z kodem. IBAction to metoda, która jest wywoływana, gdy użytkownik wykona akcję na elemencie interfejsu (np. kliknięcie przycisku).

Signup and view all the flashcards

Dostęp do CoreData z wielu wątków

Dostęp do kontekstu CoreData z wielu wątków można zrealizować za pomocą NSManagedObjectContext-u. Należy utworzyć osobny kontekst dla każdego wątku i koordynować zmiany danych między wątkami.

Signup and view all the flashcards

Modyfikatory dostępu

Modyfikatory dostępu w Objective C to 'public', 'private', 'protected' oraz 'package'. Określają one widoczność elementów klasy (np. metod) dla innych klas.

Signup and view all the flashcards

NSAutoreleasePool

NSAutoreleasePool to mechanizm w Objective C, który zarządza pamięcią. Pool gromadzi obiekty, które są „gotowe do zwolnienia” , , ,

Signup and view all the flashcards

Protokół

Protokół w Objective C to definicja kontraktu (np. metod), którego muszą przestrzegać klasy , ,

Signup and view all the flashcards

„Try”, ,

„Try” , ,

Signup and view all the flashcards

ORM

ORM (Object-Relational Mapping) to technika, która pozwala ,

Signup and view all the flashcards

Study Notes

Android

  • Cykl życia Activity:

    • Zawiera metody, które opisują proces działania Activity.
    • Podaje powody przejścia do określonych metod.
  • Kwalifikatory zasobów:

    • Odgrywają rolę w zarządzaniu zasobami aplikacji.
  • Uprawnienia komponentów systemowych:

    • Opisuje mechanizmy pozyskiwania uprawnień przez aplikacje do komponentów systemowych.
  • Obrót telefonu:

    • Opisuje zachowanie Activity przy zmianie orientacji ekranu.
    • Pojawia się problem utraty danych, które trzeba zabezpieczyć.
  • Metoda getDefaultSensor zwracająca null:

    • Wyjaśnia co się dzieje, gdy metoda ta zwróci null, i jak wybrać czujnik.
  • Klasa Intent:

    • Opisuje co to jest i do czego służy klasa Intent.
  • Filtry intencji (intent-filter):

    • Omówienie ich roli i zastosowania.
  • Lokalizacja (FINE i COARSE):

    • Porównanie metod FINE i COARSE przy określaniu lokalizacji urządzenia.
  • Akcelerometr:

    • Opisuje, jakie dwie składowe mierzy akcelerometr i jak je analizować.
  • Rysunki i animacje:

    • Wymienia komponent, który pozwala tworzyć rysunki i animacje.
    • Opisuje warunek, który musi być spełniony, aby metoda onDraw przerysowywała.
  • LOGCAT:

    • Opisuje funkcjonalność LOGCAT i jak wykorzystać go w procesie debugowania.
  • Jednostki długości w interfejsie użytkownika:

    • Wyjaśnia jednostki długości wykorzystywane przy tworzeniu interfejsu użytkownika.
  • MediaPlayer:

    • Opisuje jak stworzyć obiekt klasy MediaPlayer do odtwarzania plików audio i video.
  • Usługi systemowe:

    • Opisuje korzystanie z usług systemowych, takich jak Bluetooth i baterie.

iOS

  • Core Data:

    • Opis Core Data jako mechanizmu zarządzania danymi.
  • Cykl życia obiektów w iOS:

    • Opisuje mechanizm zarządzający cyklem życia obiektów w systemie iOS.
  • Definicja interfejsu klasy w Swift:

    • Opisuje sposób definiowania interfejsu klasy w Swift wspólnie z jego implementacją.
  • Zarządzanie przejściami między widokami:

    • Opisuje element, który jest odpowiedzialny za zarządzanie przejściami.
  • Cykl życia ViewControllera:

    • Wyjaśnia cykl życia ViewControllera w iOS.
  • Garbage Collector i ARC:

    • Porównuje Garbage Collector i ARC, tj. automatyczny zarządzanie pamięcią.
  • Słaba i silna referencja:

    • Różnice między referencjami weak i strong.
  • Obiekty mutowalne i niemutowalne:

    • Różnice w kontekście Objective C
  • IBOutlet i IBAction:

    • Co to są, do czego służą i jak je wykorzystać.
  • Dostęp do kontekstu CoreData z wielu wątków:

    • Opisuje sposoby dostępu i zarządzania kontekstem.
  • Modyfikatory dostępu w Objective C:

    • Wymienia i opisuje modyfikatory dostępu.
  • NSAutoreleasePool:

    • Opisuje funkcje NSAutoreleasePool.
  • Protokół w Objective C:

    • Opisuje co to jest protokół.
  • try, try?, try!:

    • Różnice pomiędzy różnymi formami instrukcji try.
  • ORM (Object-Relational Mapping) w iOS:

    • Opisuje ORM w kontekście iOS.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Use Quizgecko on...
Browser
Browser