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 .

Działalność
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ń o zawartość określonego formatu 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ę na 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. Bazową klasą okien dialogowych jest 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 filtrujący, 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 według jakich kryteriów. 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 osobny 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 (jednolitego identyfikatora zasobów) 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łęzienia Git — Gałęzie w pigułce, aby uzyskać więcej informacji.
Gałąź Git — lokalna
Tymczasowa gałąź w bieżącym kliencie repozytorium do wprowadzania zmian w kodzie, rozpoczęta od 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
Opakowanie 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
Zbiór 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.
uprev
Ogólnie rzecz biorąc, uprev aktualizuje podprojekt większego projektu do nowszej wersji. Uprev zmienia poziom wersji na następną wersję przyrostową lub na najnowszą dostępną wersję. W przypadku pakietu HIDL, aby zachować kompatybilność wsteczną rozszerzalności na poziomie pakietu, uprev wersji podrzędnej aktualizuje nowy pakiet do wyższej wersji podrzędnej, zachowując tę ​​samą nazwę i wersję główną, co stary pakiet. W przypadku konfiguracji Bootloader , uprev aktualizuje obsługę wersji nagłówka rozruchowego do najnowszej wersji.

Grafika

Płótno
Powierzchnia rysunkowa, która obsługuje komponowanie 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: Drawable , OpenGL ES , Surface .

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
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 obsługę. 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

Temat
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_”).
Pogląd
Obiekt, który rysuje do prostokątnego obszaru 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. Wizualną reprezentację hierarchii widoków na potrzeby debugowania i optymalizacji można uzyskać za pomocą przeglądarki hierarchii dostarczanej z zestawem SDK systemu Android.

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). 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 zachowanie (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 wykonawcze systemu Android (ART) to zarządzane środowisko wykonawcze 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 Source 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 przesłania i kliknij czerwone łącze 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 wyszukiwania 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 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
Test Google (Test GT)
GTest to platforma Google do testowania i fałszowania C++. Pliki binarne GTest zazwyczaj uzyskują dostęp do warstw abstrakcji niższego poziomu lub wykonują surowe IPC w odniesieniu do różnych usług systemowych. Z tego powodu podejście testowe dla Gtest jest zwykle ściśle powiązane z testowaną usługą. 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 poleceniem am instrument , w którym docelowy proces aplikacji 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 Zrozumienie 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.
Testy przed i po przesłaniu
Testy presubmit są używane do zapobiegania wprowadzaniu błędów do wspólnych jąder. Wyniki nie są obecnie publicznie dostępne.

Testy po przesłaniu Androida są wykonywane, gdy nowa poprawka zostanie zatwierdzona do wspólnej gałęzi jądra. Wprowadzając aosp_kernel jako częściową nazwę gałęzi, możesz zobaczyć listę gałęzi jądra z dostępnymi wynikami. Na przykład wyniki dla `android-mainline` można znaleźć tutaj .
Tradefed
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 rozbudowaną funkcjonalność testowania systemu Android, promuje proces rozwoju oparty na testach i automatyzuje testowanie HAL i jądra systemu operacyjnego. Aby uzyskać więcej informacji, zobacz temat Zestaw testów dostawcy (VTS) i Infrastruktura .