Słowniczek platformy Android

Zobacz poniższą listę, aby poznać podstawową terminologię Android Open Source Project (AOSP). Oto inne źródła definicji kluczowych terminów:

Zobacz Kodowanie z szacunkiem, aby zapoznać się z przykładami terminologii, której należy używać i której należy unikać, aby uzyskać bardziej inkluzywny ekosystem.

Aplikacje

plik .apk
Plik pakietu aplikacji na Androida. Każda aplikacja dla systemu Android jest kompilowana i pakowana w jeden plik, który zawiera cały kod aplikacji (pliki .dex), zasoby, zasoby i plik manifestu. Plik pakietu aplikacji może mieć dowolną nazwę, ale musi mieć rozszerzenie .apk . Na przykład: myExampleAppname.apk . Dla wygody plik pakietu aplikacji jest często określany jako „.apk”.

Powiązane: Aplikacja .

Akcja
Opis czegoś, co chce zrobić nadawca intencji . Akcja to ciąg znaków przypisany do Intentu. Ciągi akcji mogą być definiowane przez system Android lub programistę zewnętrzną. Na przykład android.intent.action.VIEW dla internetowego adresu URL lub com.example.rumbler.SHAKE_PHONE dla niestandardowej aplikacji do wibrowania telefonu.

Powiązane: Intencja .

Czynność
Pojedynczy ekran w aplikacji, z pomocniczym kodem Java, wywodzącym się z klasy Activity . Najczęściej czynność jest widocznie reprezentowana przez okno pełnoekranowe, które może odbierać i obsługiwać zdarzenia interfejsu użytkownika oraz wykonywać złożone zadania, ponieważ okno, którego używa do renderowania swojego okna. Chociaż aktywność jest zwykle pełnoekranowa, może być również pływająca lub przezroczysta.
Podanie
Z perspektywy składnika aplikacja systemu Android składa się z co najmniej jednego działania, usług, odbiorników i odbiorników intencji. Z perspektywy pliku źródłowego aplikacja systemu Android składa się z kodu, zasobów, zasobów i pojedynczego manifestu. Podczas kompilacji pliki te są pakowane w pojedynczy plik zwany plikiem pakietu aplikacji (apk).

Powiązane: .apk , Aktywność

Odbiornik transmisji
Klasa aplikacji, która nasłuchuje intencji, które są emitowane, a nie są wysyłane do pojedynczej aplikacji/działania docelowego. System dostarcza intencję rozgłoszeniową do wszystkich zainteresowanych odbiorników rozgłoszeniowych, które obsługują tę intencję sekwencyjnie.

Powiązane: Intencja , Filtr intencji .

Dostawca treści
Warstwa abstrakcji danych, której można użyć do bezpiecznego udostępnienia danych aplikacji innym aplikacjom. Dostawca zawartości jest oparty na klasie ContentProvider , która obsługuje ciągi zapytań zawartości o określonym formacie w celu zwrócenia danych w określonym formacie. Więcej informacji można znaleźć w temacie Dostawcy treści .

Powiązane: użycie identyfikatora URI w systemie Android

Dialog
Pływające okno, które działa jak lekka forma. Okno dialogowe może zawierać tylko kontrolki przycisków i jest przeznaczone do wykonywania prostej akcji (takiej jak wybór przycisku) i być może zwracania wartości. Okno dialogowe nie jest przeznaczone do utrzymywania się w stosie historii, zawierania złożonego układu ani wykonywania złożonych działań. Android zapewnia domyślne proste okno dialogowe z opcjonalnymi przyciskami, ale możesz zdefiniować własny układ okna dialogowego. Klasa bazowa dla okien dialogowych to Dialog .

Powiązane: Aktywność .

Zamiar
Obiekt wiadomości, którego można użyć do asynchronicznego uruchamiania lub komunikowania się z innymi aplikacjami/działaniami. Obiekt Intent jest instancją Intent . Zawiera kilka pól kryteriów, które możesz podać, aby określić, jaka aplikacja/działanie otrzymuje intencję i co robi odbiorca podczas obsługi intencji. Dostępne kryteria obejmują żądaną akcję, kategorię, ciąg danych, typ MIME danych, klasę obsługi i inne. Aplikacja wysyła intencję do systemu Android, zamiast wysyłać ją bezpośrednio do innej aplikacji/działania. Aplikacja może wysłać intencję do pojedynczej aplikacji docelowej lub może wysłać ją jako emisję, która z kolei może być obsługiwana przez wiele aplikacji sekwencyjnie. System Android jest odpowiedzialny za rozwiązanie najlepszego dostępnego odbiornika dla każdej intencji, na podstawie kryteriów podanych w intencji i filtrach intencji zdefiniowanych przez inne aplikacje. Aby uzyskać więcej informacji, zobacz Intencje i filtry intencji .

Powiązane: Filtr intencji , Odbiornik transmisji .

Filtr intencji
Obiekt filtra, który aplikacja deklaruje w swoim pliku manifestu, aby poinformować system, jakie typy intencji każdy z jego komponentów jest skłonny zaakceptować i z jakimi kryteriami. Poprzez filtr intencji aplikacja może wyrażać zainteresowanie określonymi typami danych, akcjami intencji, formatami identyfikatorów URI itd. Podczas rozwiązywania intencji system ocenia wszystkie dostępne filtry intencji we wszystkich aplikacjach i przekazuje intencję do aplikacji/działania, które najlepiej odpowiadają intencji i kryteriom. Aby uzyskać więcej informacji, zobacz Intencje i filtry intencji .

Powiązane: Intencja , Odbiornik transmisji .

Zasoby
Nieprogramistyczne składniki aplikacji, które są zewnętrzne względem skompilowanego kodu aplikacji, ale które można załadować z kodu aplikacji przy użyciu dobrze znanego formatu referencyjnego. System Android obsługuje różne typy zasobów, ale zasoby typowej aplikacji składają się z ciągów interfejsu użytkownika, składników układu interfejsu użytkownika, grafiki lub innych plików multimedialnych i tak dalej. Aplikacja wykorzystuje zasoby, aby wydajnie obsługiwać lokalizację oraz różne profile i stany urządzeń. Na przykład aplikacja zawierałaby oddzielny zestaw zasobów dla każdego obsługiwanego typu lokalnego lub urządzenia i mogłaby zawierać zasoby układu, które są specyficzne dla bieżącej orientacji ekranu (pozioma lub pionowa). Aby uzyskać więcej informacji o zasobach, zobacz Zasoby i zasoby . Zasoby aplikacji są zawsze przechowywane w podfolderach res/* projektu.
Usługa
Obiekt klasy Service który działa w tle (bez obecności interfejsu użytkownika) w celu wykonywania różnych trwałych działań, takich jak odtwarzanie muzyki lub monitorowanie aktywności sieciowej.

Powiązane: Aktywność

Identyfikatory URI w Androidzie
System Android używa ciągów identyfikatora URI (Uniform Resource Identifier) ​​jako podstawy do żądania danych w dostawcy zawartości (takich jak pobieranie listy kontaktów) oraz do żądania akcji w intencji (takich jak otwieranie strony sieci Web w przeglądarce). Schemat i format identyfikatora URI są wyspecjalizowane w zależności od rodzaju użycia, a aplikacja może obsługiwać określone schematy i ciągi identyfikatorów URI w dowolny sposób. Niektóre schematy URI są zarezerwowane przez składniki systemu. Na przykład żądania danych od dostawcy treści muszą używać content:// . W Intent identyfikator URI korzystający ze schematu http:// będzie obsługiwany przez przeglądarkę.

Budować

adb
Android Debug Bridge, aplikacja do debugowania wiersza polecenia dołączona do zestawu SDK. Zapewnia narzędzia do przeglądania urządzenia, kopiowania narzędzi na urządzeniu i przekazywania portów do debugowania. Jeśli programujesz w Android Studio, adb jest zintegrowany z Twoim środowiskiem programistycznym. Zobacz Android Debug Bridge, aby uzyskać więcej informacji.
Projekt na Androida
Repozytorium Git na hoście Android Gerrit. Zobacz Narzędzia kontroli źródła > Gerrit, aby uzyskać więcej informacji.
Zbuduj odcisk palca
Odcisk cyfrowy kompilacji to unikalny, czytelny dla człowieka ciąg znaków zawierający informacje o producencie wydawane dla każdej kompilacji. Zobacz Opis odcisków palców kompilacji, aby uzyskać więcej informacji.
Gita
Narzędzie do kontroli źródła używane przez system Android, które historycznie działało w jednym repozytorium Git. Używany w połączeniu z Repo dla wielu repozytoriów Git. Zobacz Narzędzia kontroli źródła > Git, aby uzyskać więcej informacji.
Gałąź Git — kanoniczna
Odrębne wersje dla każdego repozytorium Git, takie jak android-11.0.0_r1 , można znaleźć pod adresem cs.android.com/android/platform/superproject/+/android-11.0.0_r1 . Zobacz Rozgałęzianie Git — gałęzie w pigułce, aby uzyskać więcej informacji.
Gałąź Git — lokalna
Tymczasowa gałąź w bieżącym kliencie repo start branch-name . do wprowadzania zmian w kodzie, rozpoczęta od nazwy repo start branch-name . Komenda. aktywna linia rozwoju. Najnowsze zatwierdzenie w gałęzi jest określane jako końcówka tej gałęzi.
Repozytorium Git
Czasami określany jako projekt, jest to część bazy kodu reprezentująca określony komponent lub typ urządzenia, taki jak frameworks/base lub platform/packages/apps/Car/Media .
Plik manifestu
Plik XML opisujący pogrupowanie repozytoriów Git według gałęzi, wersje Git, w których należy pobrać te repozytoria oraz ich układ w systemie plików. Ten plik XML, zwykle o nazwie default.xml , jest powiązany z gałęzią Repo i opisuje repozytoria Git i gałęzie Git wyewidencjonowane podczas inicjowania i synchronizacji gałęzi Repo. Ten plik definiuje różne repozytoria Git, które narzędzie Repo powinno pobrać do kasy klienta Repo w celu zbudowania produktu (takiego jak Android Automotive OS). Zobacz wszystkie manifesty na android.googlesource.com/platform/manifest/+refs . Zobacz domyślny manifest zawarty w plikach AndroidManifest , aby pobrać pliki platformy Android (AOSP) na android.googlesource.com/platform/manifest/+/refs/heads/master/default.xml . Zobacz plik AndroidManifest.xml, aby uzyskać informacje o aplikacji i format manifestu repozytorium, aby uzyskać informacje na temat rozwoju platformy.
Aktualizacja bezprzewodowa (OTA)
Działające w terenie urządzenia z systemem Android mogą odbierać i instalować bezprzewodowe aktualizacje systemu, oprogramowania aplikacji i reguł stref czasowych. Zobacz aktualizacje OTA, aby uzyskać więcej informacji.
Repo
Opakowania wokół Git, aby umożliwić łatwiejsze operacje na wielu repozytoriach Git. Agreguje i zarządza wieloma repozytoriami Git jako pojedynczą kasą lub bazą kodu. Zobacz Narzędzia kontroli źródła > Repo, aby uzyskać więcej informacji.
Oddział Repo
Kolekcja repozytoriów Git przechwyconych w pliku AndroidManifest , który reprezentuje wersję (kompilację) bazy kodu Androida, taką jak android11-gsi lub aosp-android-games-sdk , pobraną za pomocą poleceń repo init i repo sync . Zobacz opis pliku manifestu, aby znaleźć linki do wszystkich plików manifestu i użyj https://cs.android.com/, aby wyszukać ich kompilacje.

Grafika

Brezentowy
Powierzchnia rysunkowa, która obsługuje składanie rzeczywistych bitów względem obiektu Bitmap lub Surface . Posiada metody standardowego komputerowego rysowania bitmap, linii, okręgów, prostokątów, tekstu itd. i jest powiązany z bitmapą lub powierzchnią. Canvas to najprostszy i najłatwiejszy sposób rysowania obiektów 2D na ekranie. Klasą bazową jest Canvas .

Powiązane: Rysowalny , OpenGL ES , Powierzchnia .

Do rysowania
Skompilowany zasób wizualny, którego można użyć jako tła, tytułu lub innej części ekranu. Element do rysowania jest zwykle ładowany do innego elementu interfejsu użytkownika, na przykład jako obraz tła. Obiekt do rysowania nie może odbierać zdarzeń, ale przypisuje różne inne właściwości, takie jak „stan” i planowanie, aby włączyć podklasy, takie jak obiekty animacji lub biblioteki obrazów. Wiele obiektów do rysowania jest ładowanych z plików zasobów do rysowania — plików xml lub bitmap, które opisują obraz. Zasoby do rysowania są kompilowane w podklasy android.graphics.drawable . Aby uzyskać więcej informacji o rysunkach i innych zasobach, zobacz zasoby .

Powiązane: Zasoby , Płótno

Zasób układu
Plik XML opisujący układ ekranu czynności.

Powiązane: Zasoby

Obraz dziewięciołatkowy / dziewięciołatkowy / dziewięciołatkowy
Zasób mapy bitowej o zmiennym rozmiarze, którego można używać jako tła lub innych obrazów na urządzeniu. Aby uzyskać więcej informacji, zobacz Rozciągliwy obraz z dziewięcioma łatami .

Powiązane: Zasoby .

OpenGL ES
System Android udostępnia biblioteki OpenGL ES do renderowania 3D z akceleracją sprzętową. W przypadku renderowania 2D kanwa jest prostszą opcją”. OpenGL ES jest dostępny w zestawie Android Native Development Kit (NDK), co ułatwia javax.microedition.khronos.opengles Pakiety android.opengl i javax.microedition.khronos.opengles udostępniają funkcjonalność OpenGL ES.

Powiązane: Płótno , powierzchnia

Powierzchnia
Obiekt typu Surface reprezentujący blok pamięci, który jest łączony z ekranem. Surface zawiera obiekt Canvas do rysowania i udostępnia różne metody pomocnicze do rysowania warstw i zmiany rozmiaru powierzchni. Nie powinieneś używać tej klasy bezpośrednio; zamiast tego użyj SurfaceView .

Powiązane: Płótno

Widok powierzchni
Obiekt View, który otacza Surface do rysowania i udostępnia metody dynamicznego określania jego rozmiaru i formatu. SurfaceView zapewnia sposób rysowania niezależnie od wątku interfejsu użytkownika w przypadku operacji wymagających dużej ilości zasobów (takich jak podglądy gier lub kamer), ale w rezultacie wykorzystuje dodatkową pamięć. SurfaceView obsługuje zarówno grafikę Canvas, jak i OpenGL ES. Klasą bazową jest SurfaceView .

Powiązane: Powierzchnia

Motyw
Zestaw właściwości (rozmiar tekstu, kolor tła itd.) zebranych razem w celu zdefiniowania różnych domyślnych ustawień wyświetlania. Android udostępnia kilka standardowych motywów, wymienionych w R.style (zaczynając od „Theme_”).
Widok
Obiekt, który rysuje prostokątny obszar na ekranie i obsługuje kliknięcia, naciśnięcia klawiszy i inne zdarzenia interakcji. Widok jest klasą bazową dla większości elementów układu ekranu działania lub okna dialogowego (pola tekstowe, okna itd.). Otrzymuje wywołania od swojego obiektu nadrzędnego (zobacz ViewGroup ) w celu narysowania siebie i informuje obiekt nadrzędny o tym, gdzie i jak duży chciałby być (co może, ale nie musi być przestrzegane przez rodzica). Aby uzyskać więcej informacji, zobacz View .

Powiązane: Wyświetl hierarchię , ViewGroup , Widget

Wyświetl hierarchię
Układ obiektów View i ViewGroup, który definiuje interfejs użytkownika dla każdego składnika aplikacji. Hierarchia składa się z grup widoków, które zawierają jeden lub więcej widoków podrzędnych lub grup widoków. Można uzyskać wizualną reprezentację hierarchii widoku dla debugowania i optymalizacji za pomocą Hierarchy Viewer , który jest dostarczany z Android SDK.

Powiązane: Widok , Grupa widoków

Grupa Widoków
Obiekt kontenera, który grupuje zestaw widoków podrzędnych. Grupa widoków jest odpowiedzialna za decydowanie, gdzie znajdują się widoki podrzędne i jak duże mogą być, a także za wywoływanie każdego z nich, aby samodzielnie rysował. Niektóre grupy widoków są niewidoczne i służą tylko do układu, podczas gdy inne mają wewnętrzny interfejs użytkownika (na przykład przewijane pole listy). Wszystkie grupy widoków znajdują się w pakiecie widget , ale rozszerzają ViewGroup .

Powiązane: Widok , Widok hierarchii

Widżet
Jedna z zestawu w pełni zaimplementowanych podklas View, które renderują elementy formularzy i inne komponenty interfejsu użytkownika, takie jak pole tekstowe lub menu podręczne. Ponieważ widżet jest w pełni zaimplementowany, sam zajmuje się mierzeniem i rysowaniem oraz reagowaniem na zdarzenia na ekranie. Wszystkie widżety znajdują się w pakiecie android.widget .
Okno
W aplikacji systemu Android obiekt pochodzący z abstrakcyjnej klasy Window który określa elementy okna ogólnego, takie jak wygląd i działanie (tekst paska tytułu, położenie i zawartość menu itd.). Dialog i Activity używają implementacji tej klasy do renderowania okna. Nie musisz implementować tej klasy ani używać okien w swojej aplikacji.

Platforma

Android Runtime (ART) i Dalvik
Środowisko uruchomieniowe systemu Android (ART) to zarządzane środowisko uruchomieniowe używane przez aplikacje i niektóre usługi systemowe w systemie Android. Środowisko uruchomieniowe systemu Android (ART) to domyślne środowisko uruchomieniowe dla urządzeń z systemem Android 5,0 (poziom interfejsu API 21) lub nowszym. ART i jego poprzednik Dalvik zostały pierwotnie stworzone specjalnie dla Android Open Soure Project. ART jako środowisko wykonawcze wykonuje format Dalvik Executable i specyfikację kodu bajtowego Dex. ART i Dalvik to kompatybilne środowiska uruchomieniowe z kodem bajtowym Dex, więc aplikacje opracowane dla Dalvik powinny działać z ART.
Linia kodowa
Linia kodu zawiera wersję oprogramowania. Składa się z jednej lub więcej gałęzi z jednego lub więcej repozytoriów, z których wszystkie są często jednocześnie aktywnie rozwijane. Linia kodu jest punktem agregacji i celem wydania. Aby uzyskać więcej informacji na temat linii kodu, zobacz Zarządzanie oprogramowaniem w systemie Android .
plik .dex
Skompilowany plik kodu aplikacji na Androida.

Programy na Androida są kompilowane do plików .dex (Dalvik Executable), które z kolei są spakowane do pojedynczego pliku .apk na urządzeniu. Pliki .dex można tworzyć poprzez automatyczne tłumaczenie skompilowanych aplikacji napisanych w języku programowania Java.

Test

Artefakty
Artefakty to dzienniki związane z kompilacją umożliwiające lokalne rozwiązywanie problemów. Te dzienniki są dostępne bezpośrednio od Gerrita podczas przeglądania listy zmian. Przewiń w dół do opcji Stan wstępnego zgłoszenia i kliknij czerwony link kompilacji, aby wyświetlić lub pobrać powiązany plik build_error.log . Te artefakty można również pobrać z centralnego serwera ciągłej integracji systemu Android pod adresem ci.android.com/ , klikając ikonę Pobierz (strzałka w dół) dla celu i kompilacji. Aby uzyskać więcej informacji na temat znajdowania artefaktów, zobacz Ciągła integracja systemu Android .
CDD
Dokument definicji zgodności z systemem Android (CDD) wylicza wymagania, które muszą zostać spełnione, aby Twoje urządzenia były zgodne z najnowszą wersją systemu Android. Aby zostać uznane za zgodne z systemem Android, implementacje urządzeń MUSZĄ spełniać wymagania przedstawione w niniejszej definicji zgodności, w tym wszelkie dokumenty włączone przez odniesienie. Aby uzyskać więcej informacji na temat CDD, zobacz Dokument definicji zgodności z systemem Android .
CTS
Zestaw testów zgodności (CTS) to zestaw testów zapewniający poprawność API i specyfikację przedstawioną w CDD. Jest dostępny jako źródło w AOSP i do pobrania jako plik binarny. Aby uzyskać więcej informacji, zobacz Zestaw testów zgodności .
Weryfikator CTS
Weryfikator zestawu testów zgodności (CTS Verifier) ​​jest uzupełnieniem CTS. CTS Verifier zapewnia testy interfejsów API i funkcji, których nie można przetestować na urządzeniu stacjonarnym bez ręcznego wprowadzania danych (np. jakość dźwięku, akcelerometr itp.). Aby uzyskać więcej informacji, zobacz Korzystanie z weryfikatora CTS .
Debugowanie
Debugowanie wymaga znajdowania i naprawiania błędów w kodzie platformy Android, zarówno w funkcjach, jak i ich testach. Aby uzyskać więcej informacji, zobacz debugowanie kodu natywnej platformy Android
gtest
GoogleTest to platforma Google do testowania i podrabiania języka C++. Znajdź kod na github.com/google/googletest, a dokumentację na google.github.io/googletest .
Test oprzyrządowania
Test oprzyrządowania zapewnia specjalne środowisko wykonywania testu uruchamiane przez polecenie am instrument , w którym proces aplikacji docelowej jest ponownie uruchamiany i inicjowany z podstawowym kontekstem aplikacji, a wątek oprzyrządowania jest uruchamiany na maszynie wirtualnej procesu aplikacji. Aby uzyskać więcej informacji, zobacz Testy oprzyrządowania .
Logcat
Logcat to narzędzie wiersza polecenia, które zrzuca dziennik komunikatów systemowych, w tym ślady stosu, gdy urządzenie zgłasza błąd i komunikaty, które zostały napisane z aplikacji przy użyciu klasy Log . Aby uzyskać więcej informacji, zobacz Narzędzie wiersza polecenia Logcat .
Logowanie
Logowanie w systemie Android jest skomplikowane ze względu na mieszankę stosowanych standardów, które są połączone w logcat . Aby uzyskać szczegółowe informacje na temat głównych używanych standardów, zobacz Opis rejestrowania .
Scal konflikt
Konflikt scalania występuje, gdy co najmniej dwie wersje tego samego pliku nie mogą być scalane automatycznie przez serwer kompilacji systemu Android. Zwykle wymagają one ręcznej edycji pliku w celu rozwiązania wszystkich sprzecznych aktualizacji.
Test natywny
Natywny test dla platformy zazwyczaj uzyskuje dostęp do warstw abstrakcji niższego poziomu lub wykonuje surowe IPC dla różnych usług systemowych. Dlatego podejście do testowania jest zwykle ściśle powiązane z testowaną usługą. Aby uzyskać więcej informacji, zobacz Testy natywne .
Handlowane
Wiązka testowa Federacji Handlowej (w skrócie Tradefed lub TF) to ciągła platforma testowa przeznaczona do przeprowadzania testów na urządzeniach z systemem Android. Na przykład Tradefed służy do uruchamiania CTS i VTS. Aby uzyskać więcej informacji, zobacz Omówienie federacji handlowych .
VTS
Pakiet Android Vendor Test Suite (VTS) zapewnia szeroką funkcjonalność testowania systemu Android, promuje proces rozwoju oparty na testach i automatyzuje testowanie jądra HAL i systemu operacyjnego. Aby uzyskać więcej informacji, zobacz temat Zestaw testów dostawcy (VTS) i Infrastruktura .