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 mogę zaproponować zmiany w AOSP?

Nowe zmiany należy proponować w android-latest-release (w przypadku korzystania z Repo) lub w najnowszej gałęzi wersji określonej w manifeście android-latest-release (w przypadku korzystania bezpośrednio z Gita). Nie musisz przenosić istniejących proponowanych zmian w innych gałęziach (np.aosp-main).

Z którym rozgałęzieniem mam zsynchronizować dane?

  • Jeśli używasz Repo, zsynchronizuj 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
  • Jeśli używasz Git bezpośrednio, synchronizuj z domyślną gałęzią wersji określoną w android-latest-release pliku manifestu.

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

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

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

Gdzie jest przesyłany kod następnej wersji?

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

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

Po przesłaniu proponowanej zmiany Google ją sprawdzi i w razie akceptacji wprowadzi do wewnętrznego systemu Gerrit.

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

Zaakceptowane i wybrane zmiany pojawią się w przyszłości w wersji gałęzi na hoście Androida i można je zsynchronizować z repozytorium za pomocą polecenia android-latest-release. Nie ma mechanizmu powiadamiania o zaakceptowaniu lub odrzuceniu proponowanej zmiany.

Jak wygląda ogólny przepływ pracy od momentu zaproponowania zmiany przez zewnętrznego współtwórcę do momentu scalenia jej z najnowszą gałęzią wersji?

  1. Współpracownik zewnętrzny proponuje zmianę w android-latest-release (w przypadku korzystania z Repo) lub w najnowszej gałęzi wersji określonej w android-latest-release manifeście (w przypadku bezpośredniego korzystania z Gita).

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

    • Zaakceptowane zmiany są wybierane przez Google i scalane z wewnętrzną gałęzią deweloperską.

    • Nie zaakceptowano, Google nie wybiera zmiany.

  3. Współpracownik zewnętrzny sprawdza wprowadzoną zmianęandroid-latest-release.

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

Jeśli proponowana zmiana nie jest już potrzebna, 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 na rynek aplikacji mobilnych. Chcieliśmy mieć pewność, że operatorzy, producenci OEM i deweloperzy zawsze będą mieli dostępną otwartą platformę, która pozwoli im realizować innowacyjne pomysły. Chcieliśmy też uniknąć centralnego punktu awarii, aby żaden podmiot z branży nie mógł ograniczać ani kontrolować innowacji innych podmiotów. Naszym najważniejszym celem w przypadku AOSP jest zapewnienie jak najszerszego i najbardziej kompatybilnego wdrożenia oprogramowania Android typu open source z korzyścią dla wszystkich.

Jakim rodzajem projektu open source jest Android?

Google nadzoruje rozwój podstawowej wersji AOSP i pracuje nad tworzeniem silnych społeczności deweloperów i użytkowników. Kod źródłowy Androida jest w większości objęty liberalną 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 na Androida. Więcej informacji znajdziesz w artykule Licencje.

Dlaczego Google odpowiada za Androida?

Uruchomienie platformy oprogramowania jest skomplikowane. Otwartość ma kluczowe znaczenie dla długoterminowego sukcesu platformy, ponieważ przyciąga inwestycje deweloperów i zapewnia równe szanse. Platforma musi też być atrakcyjna dla użytkowników.

Google przeznacza niezbędne zasoby inżynierskie, aby zapewnić, że Android jest w pełni konkurencyjną platformą oprogramowania. Google traktuje projekt Androida jako pełnoprawną operację rozwoju produktu i zawiera umowy biznesowe niezbędne do wprowadzenia na rynek świetnych urządzeń z Androidem.

Dbając o to, aby Android był popularny wśród użytkowników, pomagamy zapewnić żywotność Androida jako platformy i projektu open source. Przecież nikt nie chce kodu źródłowego nieudanego produktu.

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

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

Wprowadzamy na konkurencyjny rynek świetne urządzenia. Następnie wprowadzamy innowacje i ulepszenia do podstawowej platformy w postaci kolejnej wersji.

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

Jak powstaje oprogramowanie Androida?

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

Google pracuje nad kolejną wersją platformy Androida 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. Producenci urządzeń chcą oczywiście dostarczać najnowsze oprogramowanie. Z kolei deweloperzy nie chcą ciągle śledzić nowych wersji platformy podczas pisania aplikacji. Obie grupy odczuwają napięcie między wysyłaniem produktów a chęcią nadążania za konkurencją.

Aby rozwiązać ten problem, niektóre części następnej wersji Androida, w tym podstawowe interfejsy API platformy, są opracowywane w prywatnej gałęzi. Te interfejsy API stanowią kolejną wersję Androida. Chcemy skupić się na bieżącej stabilnej wersji kodu źródłowego Androida, podczas gdy będziemy tworzyć kolejną wersję platformy. Dzięki temu deweloperzy i producenci OEM mogą używać jednej wersji bez konieczności śledzenia niedokończonych prac, aby być na bieżąco.

Kiedy udostępniany jest kod źródłowy?

Gdy będą gotowe. Udostępnienie kodu źródłowego to dość złożony proces. Niektóre części Androida, np. jądro, są rozwijane w sposób otwarty, a ich kod źródłowy jest zawsze dostępny. Pozostałe części są najpierw opracowywane w prywatnym drzewie, a kod źródłowy jest udostępniany, gdy kolejna wersja platformy jest gotowa.

W niektórych wersjach podstawowe interfejsy API platformy są gotowe z dużym wyprzedzeniem, dzięki czemu możemy udostępnić kod źródłowy do wczesnego wglądu przed wprowadzeniem urządzenia na rynek. 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 pozwala na to proces programowania.

Co wiąże się z udostępnieniem kodu źródłowego nowej wersji Androida?

Udostępnienie kodu źródłowego nowej wersji platformy Android to złożony proces. Najpierw oprogramowanie jest wbudowywane w obraz systemu na urządzeniu i poddawane różnym formom certyfikacji, w tym certyfikacji wymaganej przez organy regulacyjne w regionach, w których telefony będą wdrażane. Kod przechodzi też testy operatora. Jest to ważny etap procesu, ponieważ pomaga wykrywać błędy w oprogramowaniu.

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

Równolegle z produkcją masową zespół Google podejmuje szereg działań przygotowujących do udostępnienia projektu w ramach open source. Obejmują one wprowadzenie ostatecznych zmian w interfejsie API, zaktualizowanie dokumentacji (aby odzwierciedlała np. modyfikacje wprowadzone podczas testów kwalifikacyjnych), przygotowanie pakietu SDK dla nowej wersji i udostępnienie informacji o zgodności platformy.

Nasz zespół prawny ostatecznie zatwierdza udostępnienie kodu w ramach otwartego oprogramowania. Podobnie jak w przypadku osób współtworzących oprogramowanie open source, które muszą podpisać umowę licencyjną dla współtwórców, potwierdzającą ich prawa własności intelektualnej do wniesionych przez nie treści, Google musi sprawdzić, czy źródło ma prawo do wnoszenia treści.

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

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

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

Program zgodności z Androidem ma na celu zdefiniowanie podstawowej implementacji Androida, która jest zgodna z aplikacjami innych firm napisanymi przez programistów. Urządzenia zgodne z Androidem mogą uczestniczyć w ekosystemie Androida, w tym w Google Play. Urządzenia, które nie spełniają wymagań zgodności, nie należą do tego ekosystemu.

Innymi słowy, Program zgodności z Androidem pozwala nam odróżnić urządzenia zgodne z Androidem od urządzeń, które jedynie korzystają z pochodnych kodu źródłowego. Zezwalamy na wszelkie sposoby wykorzystania kodu źródłowego Androida, ale aby uczestniczyć w ekosystemie Androida, urządzenie musi zostać uznane przez program za zgodne z Androidem.

Jak mogę pomóc w rozwoju Androida?

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

Istnieją ograniczenia dotyczące rodzajów kodu, które akceptujemy. Na przykład ktoś może chcieć udostępnić alternatywny interfejs API aplikacji, np. pełne środowisko oparte na C++. Odrzucilibyśmy taką propozycję, ponieważ Android zachęca do uruchamiania aplikacji w środowisku wykonawczym ART. Nie akceptujemy też materiałów, takich jak biblioteki GPL czy LGPL, które są niezgodne z naszymi celami licencyjnymi.

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

Jak zostać osobą zatwierdzającą zmiany w Androidzie?

AOSP nie ma pojęcia o osobie zatwierdzającej zmiany. Wszystkie zmiany (w tym te, których autorami są pracownicy Google) przechodzą przez system internetowy o nazwie 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ładem w kod źródłowy.

Wyznaczona osoba zatwierdzająca musi przejrzeć i zaakceptować wszystkie proponowane zmiany. Osobami zatwierdzającymi są zwykle pracownicy Google, ale te same osoby zatwierdzają wszystkie zgłoszenia, niezależnie od ich pochodzenia.

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