Najczęstsze pytania dotyczące AOSP

Ten dokument zawiera odpowiedzi na ogólne pytania dotyczące platformy Android Open Source Project (AOSP).

Informacje o android-latest-release

Dlaczego nie mogę przesłać zmian do aosp-main?

Nie możesz przesłać zmian do gałęzi aosp-main, ponieważ jest ona teraz tylko do odczytu.

Gdzie mam zaproponować zmiany w AOSP?

Nowe zmiany należy zaproponować w gałęzi android-latest-release (gdy używasz Repo) lub w domyślnej gałęzi rewizji określonej w manifeście android-latest-release (gdy używasz bezpośrednio Gita). Nie trzeba przenosić istniejących proponowanych zmian w innych gałęziach (np. aosp-main).

Więcej informacji znajdziesz w artykule Przesyłanie zmian do sprawdzenia.

Z którą gałęzią mam się zsynchronizować?

  • Gdy używasz Repo, zsynchronizuj się z gałęzią android-latest-release za pomocą tego polecenia:

    repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
  • Gdy używasz bezpośrednio Gita, zsynchronizuj się z domyślną gałęzią wersji określoną w android-latest-release pliku manifestu.

Więcej informacji o synchronizowaniu gałęzi znajdziesz w artykule Inicjowanie klienta Repo.

Czy kod z android-latest-release zostanie scalony z aosp-main?

Nie, kod nie zostanie scalony z gałęzią aosp-main, która od 27 marca 2025 r. jest gałęzią tylko do odczytu.

Gdzie jest przesyłany kod następnej wersji?

Google przesyła kod następnej wersji do najnowszej publicznej gałęzi wersji i aktualizuje android-latest-release manifest, aby wskazywał tę gałąź.

Czy moja prośba o zmianę zostanie przeniesiona z gałęzi android-latest-release do wewnętrznego Gerrit?

Gdy prześlesz proponowaną zmianę, Google ją sprawdzi i, jeśli zostanie zaakceptowana, przeniesie ją do wewnętrznego Gerrit.

Skąd będę wiedzieć, czy moja prośba o zmianę została zaakceptowana?

Zaakceptowane i przeniesione zmiany pojawią się w przyszłym przesłaniu do gałęzi wersji na hoście Androida i można je zsynchronizować za pomocą Repo, używając android-latest-release. Nie ma mechanizmu powiadamiania o zaakceptowaniu lub odrzuceniu proponowanej zmiany.

Jaki jest ogólny proces od momentu zaproponowania zmiany przez zewnętrznego współtwórcę do momentu scalenia jej z najnowszą gałęzią wersji?

  1. Zewnętrzny współtwórca proponuje zmianę w gałęzi android-latest-release (gdy używa Repo) lub w najnowszej gałęzi wersji określonej w manifeście android-latest-release (gdy używa bezpośrednio Gita).

  2. Google sprawdza zmianę. Jeśli zmiana:

    • zostanie zaakceptowana, Google przeniesie ją i scali z wewnętrzną gałęzią deweloperską.

    • nie zostanie zaakceptowana, Google nie przeniesie zmiany.

  3. Zewnętrzny współtwórca sprawdza, czy jego zmiana znajduje się w android-latest-release.

Co zrobić, jeśli nie potrzebuję już proponowanej zmiany?

Jeśli nie potrzebujesz już proponowanej zmiany, nie chcesz, aby została scalona, lub wiesz, że Google już ją sprawdziło, odrzuć ją, aby pozostała w historii proponowanych zmian na hoście Androida.

Pytania dotyczące oprogramowania open source

Dlaczego Google udostępniło kod źródłowy Androida?

Google rozpoczęło projekt AOSP w odpowiedzi na własne doświadczenia związane z wprowadzaniem aplikacji mobilnych. Chcieliśmy mieć pewność, że operatorzy, producenci OEM i deweloperzy będą zawsze mieli dostęp do otwartej platformy, która umożliwi im realizację innowacyjnych pomysłów. Chcieliśmy też uniknąć centralnego punktu awarii, aby żaden podmiot z branży nie mógł ograniczać ani kontrolować innowacji innych podmiotów. Najważniejszym celem projektu AOSP jest zapewnienie, aby oprogramowanie Android typu open source było wdrażane jak najszerzej i jak najbardziej kompatybilnie, z korzyścią dla wszystkich.

Jakiego rodzaju projektem open source jest Android?

Google nadzoruje rozwój podstawowego projektu AOSP i pracuje nad tworzeniem silnych społeczności deweloperów i użytkowników. W większości przypadków kod źródłowy Androida jest objęty licencją Apache 2.0, a nie licencją typu copyleft. Wybraliśmy licencję Apache 2.0, ponieważ uważamy, że zachęca ona do szerokiego stosowania oprogramowania Android. Więcej informacji znajdziesz w artykule Licencje.

Dlaczego Google odpowiada za Androida?

Wprowadzenie platformy oprogramowania jest złożonym procesem. Otwartość jest niezbędna do długoterminowego sukcesu platformy, ponieważ przyciąga inwestycje deweloperów i zapewnia równe szanse. Platforma musi też być atrakcyjnym produktem dla użytkowników.

Google przeznaczyło zasoby inżynierskie niezbędne do zapewnienia, że Android jest w pełni konkurencyjną platformą oprogramowania. Google traktuje projekt Android jako pełnowymiarowy proces tworzenia produktu i zawiera umowy biznesowe niezbędne do wprowadzenia na rynek doskonałych urządzeń z Androidem.

Dbając o to, aby Android odnosił sukces wśród użytkowników, pomagamy zapewnić jego żywotność jako platformy i projektu open source. Przecież kto chciałby mieć kod źródłowy nieudanego produktu?

Naszym celem jest zapewnienie sukcesu ekosystemu Android. Udostępniliśmy kod źródłowy Androida, aby każdy mógł modyfikować i rozpowszechniać oprogramowanie zgodnie z własnymi potrzebami.

Jaka jest ogólna strategia Google dotycząca rozwoju produktów na Androida?

Wprowadzamy na konkurencyjny rynek doskonałe urządzenia. Następnie włączamy innowacje i ulepszenia, które wprowadziliśmy do podstawowej platformy, jako następną wersję.

W praktyce oznacza to, że zespół inżynierów Androida koncentruje się na niewielkiej liczbie „flagowych” urządzeń i opracowuje następną wersję oprogramowania Android, aby obsługiwała te urządzenia. Te flagowe urządzenia przejmują większość ryzyka związanego z produktem i wyznaczają ścieżkę dla szerokiej społeczności producentów OEM, którzy wprowadzają na rynek więcej urządzeń korzystających z nowych funkcji. W ten sposób dbamy o to, aby platforma Android rozwijała się zgodnie z potrzebami rzeczywistych urządzeń.

Jak jest rozwijane oprogramowanie Android?

Każda wersja platformy Android (np. 1.5 lub 8.1) ma odpowiednią gałąź w drzewie open source. Najnowsza gałąź jest uważana za aktualną stabilną gałąź wersji, na którą wskazuje manifest android-latest-release. Jest to gałąź, którą producenci przenoszą na swoje urządzenia. Ta gałąź jest zawsze odpowiednia do wydania.

Na koniec Google pracuje nad następną wersją platformy Android równolegle z opracowywaniem flagowego urządzenia.

Dlaczego niektóre części Androida są rozwijane prywatnie?

Wprowadzenie urządzenia na rynek zajmuje zwykle ponad rok. Oczywiście producenci urządzeń chcą dostarczać najnowsze oprogramowanie. Deweloperzy natomiast nie chcą podczas pisania aplikacji stale śledzić nowych wersji platformy. Obie grupy odczuwają napięcie między wprowadzaniem produktów na rynek a niechęcią do pozostawania w tyle.

Aby rozwiązać ten problem, niektóre części następnej wersji Androida, w tym podstawowe interfejsy API platformy, są rozwijane w gałęzi prywatnej. Te interfejsy API stanowią następną wersję Androida. Naszym celem jest skupienie uwagi na aktualnej stabilnej wersji kodu źródłowego Androida podczas tworzenia następnej wersji platformy. Dzięki temu deweloperzy i producenci OEM mogą używać jednej wersji bez konieczności śledzenia niedokończonych prac nad przyszłymi wersjami.

Kiedy są udostępniane wersje kodu źródłowego?

Gdy są gotowe. Udostępnianie kodu źródłowego to dość złożony proces. Niektóre części Androida, takie jak jądro, są rozwijane w otwartym dostępie, a ich kod źródłowy jest zawsze dostępny. Inne części są najpierw rozwijane w drzewie prywatnym, a ich kod źródłowy jest udostępniany, gdy następna wersja platformy jest gotowa.

W niektórych wersjach podstawowe interfejsy API platformy są gotowe na tyle wcześnie, że możemy udostępnić kod źródłowy do wczesnego wglądu przed wydaniem urządzenia. W innych wersjach nie jest to możliwe. W każdym przypadku udostępniamy kod źródłowy platformy, gdy uznamy, że wersja jest stabilna, i gdy proces rozwoju na to pozwala.

Co obejmuje udostępnianie kodu źródłowego nowej wersji Androida?

Udostępnianie kodu źródłowego nowej wersji platformy Android to złożony proces. Najpierw oprogramowanie jest wbudowywane w obraz systemu urządzenia i poddawane różnym formom certyfikacji, w tym certyfikacji regulacyjnej w regionach, w których telefony będą używane. Kod przechodzi też testy operatora. Jest to ważny etap procesu, ponieważ pomaga wykryć błędy w oprogramowaniu.

Gdy wersja zostanie zatwierdzona przez organy regulacyjne i operatorów, producent rozpoczyna masową produkcję urządzeń, a my zaczynamy udostępniać kod źródłowy.

Równolegle z masową produkcją zespół Google rozpoczyna kilka działań przygotowujących wersję open source. Obejmują one wprowadzanie ostatecznych zmian w interfejsie API, aktualizowanie dokumentacji (np. w celu odzwierciedlenia zmian wprowadzonych podczas testów kwalifikacyjnych), przygotowywanie pakietu SDK dla nowej wersji i udostępnianie informacji o zgodności platformy.

Nasz zespół prawny ostatecznie zatwierdza udostępnienie kodu w ramach open source. Podobnie jak współtwórcy open source muszą podpisać umowę licencyjną współtwórcy, która potwierdza ich prawa własności intelektualnej do wkładu, Google musi sprawdzić, czy źródło jest gotowe do wniesienia wkładu.

Od momentu rozpoczęcia masowej produkcji proces wydania oprogramowania trwa zwykle około miesiąca, dlatego udostępnianie kodu źródłowego często następuje w tym samym czasie, gdy urządzenia trafiają do użytkowników.

Jaki jest związek między AOSP a Programem zgodności z systemem Android?

AOSP utrzymuje oprogramowanie Android i opracowuje jego nowe wersje. Ponieważ jest to oprogramowanie open source, można go używać do dowolnych celów, w tym do opracowywania urządzeń, które nie są zgodne z innymi urządzeniami opartymi na tym samym źródle.

Zadaniem Programu zgodności z systemem Android jest zdefiniowanie podstawowej implementacji Androida, która jest zgodna z aplikacjami innych firm napisanymi przez deweloperów. Urządzenia zgodne z Androidem mogą uczestniczyć w ekosystemie Androida, w tym w Google Play. Urządzenia, które nie spełniają wymagań dotyczących zgodności, znajdują się poza tym ekosystemem.

Innymi słowy, Program zgodności z Androidem pozwala nam odróżnić urządzenia zgodne z Androidem od urządzeń, które po prostu działają na pochodnych kodu źródłowego. Z zadowoleniem przyjmujemy wszelkie zastosowania kodu źródłowego Androida, ale aby urządzenie mogło uczestniczyć w ekosystemie Androida, musi zostać uznane przez program za zgodne z Androidem.

Jak mogę współtworzyć Androida?

Możesz zgłaszać błędy, pisać aplikacje na Androida lub współtworzyć kod źródłowy AOSP.

Istnieją ograniczenia dotyczące rodzajów wkładu kodu, które akceptujemy. Na przykład ktoś może chcieć współtworzyć alternatywny interfejs API aplikacji, taki jak pełne środowisko oparte na C++. Odrzucimy taki wkład, ponieważ Android zachęca do uruchamiania aplikacji w środowisku wykonawczym ART. Podobnie nie zaakceptujemy wkładu, takiego jak biblioteki GPL lub LGPL, które są niezgodne z naszymi celami licencyjnymi.

Zachęcamy osoby zainteresowane współtworzeniem kodu źródłowego do skontaktowania się z nami za pomocą kanałów wymienionych w społeczności Androida przed rozpoczęciem pracy. Więcej informacji znajdziesz w artykule Współtworzenie.

Jak zostać współtwórcą Androida?

AOSP nie ma pojęcia współtwórcy. Wszystkie wkłady (w tym te autorstwa pracowników Google) przechodzą przez system internetowy Gerrit, który jest częścią procesu inżynieryjnego Androida. Ten system współpracuje z systemem zarządzania kodem źródłowym Git, aby sprawnie zarządzać wkładami kodu źródłowego.

Wyznaczona osoba zatwierdzająca musi sprawdzić i zaakceptować wszystkie proponowane zmiany. Zatwierdzający to zwykle pracownicy Google, ale ci sami zatwierdzający odpowiadają za wszystkie zgłoszenia, niezależnie od ich pochodzenia.

Więcej informacji znajdziesz w artykule Przesyłanie poprawek.