Najczęstsze pytania dotyczące AOSP

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

Informacje o android-latest-release

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

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

Gdzie należy proponować zmiany w AOSP?

Nowe zmiany należy proponować w gałęzi android-latest-release (w przypadku repozytorium Repo) lub w najnowszej gałęzi wersji określonej w pliku manifestu android-latest-release (w przypadku bezpośredniego korzystania z Git). Istniejące proponowane zmiany w innych gałęziach (np. aosp-main) nie muszą być przenoszone.

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

  • Jeśli używasz repozytorium, zsynchronizuj je z 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, zsynchronizuj z domyślną gałęzią wersji określonej 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 osp-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 publikowany kod następnej wersji?

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

Czy moje żądanie zmiany zostanie wybrane z gałęzi android-latest-release i przesłane do wewnętrznego Gerrita?

Gdy prześlesz proponowaną zmianę, Google ją sprawdzi i, jeśli ją zaakceptuje, wprowadzi ją do wewnętrznego Gerrita.

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

Zaakceptowane i wybrane zmiany pojawią się w przyszłej aktualizacji do gałęzi wersji na hoście Androida i można je zsynchronizować z repozytorium za pomocą android-latest-release. Nie ma mechanizmu powiadomień o przyjęciu lub odrzuceniu proponowanej zmiany.

Jak wygląda ogólny przepływ pracy od momentu, gdy zewnętrzny współtwórca zaproponuje zmianę, do momentu jej połączenia z najnowszą gałęzią wersji?

  1. Zewnętrzny współtwórca proponuje zmianę w android-latest-release (w przypadku korzystania z Repo) lub w najnowszej gałęzi wersji określonej w pliku manifestu android-latest-release (w przypadku bezpośredniego korzystania z Git).

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

    • Po zaakceptowaniu Google wybiera tę zmianę i scala ją z wewnętrzną gałęzią rozwoju.

    • Nie zastosowano, ponieważ Google nie wybiera zmian przypadkowo.

  3. Współautor zewnętrzny sprawdza swoją zmianę w android-latest-release.

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

Jeśli nie chcesz już proponowanych zmian, nie chcesz ich łączyć lub wiesz, że Google już je sprawdziło, odrzuć je, aby pozostały w historii proponowanych zmian na hoście Androida.

Pytania dotyczące open source

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

Google rozpoczęło projekt AOSP w odpowiedzi na nasze własne doświadczenia związane z uruchamianiem aplikacji mobilnych. Chcieliśmy mieć pewność, że zawsze będzie dostępna otwarta platforma dla operatorów, producentów OEM i deweloperów, która pozwoli im wcielać w życie innowacyjne pomysły. Chcieliśmy też uniknąć centralnego punktu awarii, aby żaden z graczy w branży nie mógł ograniczać ani kontrolować innowacji innych graczy. Naszym najważniejszym celem w ramach AOSP jest zapewnienie, aby oprogramowanie Android Open Source było wdrażane na jak największą skalę i w jak najbardziej kompatybilny sposób, co przyniesie korzyści wszystkim.

Jakiego typu projekt open source jest Android?

Google nadzoruje rozwój podstawowej wersji AOSP i działa na rzecz tworzenia solidnych 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ą copyleft. Wybraliśmy licencję Apache 2.0, ponieważ uważamy, że zachęca ona do powszechnego stosowania oprogramowania na Androida. Aby dowiedzieć się więcej, zapoznaj się z artykułem Licencje.

Dlaczego Google odpowiada za Androida?

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

Google przeznacza zasoby na potrzeby profesjonalnych zespołów inżynieryjnych, aby zapewnić, że Android będzie w pełni konkurencyjną platformą. Google traktuje projekt Androida jako pełnowymiarową operację rozwoju produktu i zawiera umowy biznesowe niezbędne do wprowadzenia na rynek świetnych urządzeń z Androidem.

Dbając o to, aby użytkownicy byli zadowoleni z Androida, dbamy o to, aby był on platformą i projektem open source, który będzie się rozwijał. Przecież nikt nie będzie chciał kodu źródłowego nieudanego produktu.

Naszym celem jest zapewnienie udanego ekosystemu na platformie Android. Udostępniliśmy kod źródłowy Androida, aby każdy mógł go modyfikować i rozpowszechniać zgodnie ze swoimi potrzebami.

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

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

W praktyce oznacza to, że zespół inżynierów Androida skupia się na niewielkiej liczbie „flagowych” urządzeń i opracowuje kolejną wersję oprogramowania Androida, aby wspierać wprowadzanie na rynek tych produktów. Flagowe urządzenia pochłaniają większość ryzyka związanego z produktem i stanowią drogę dla całej społeczności OEM, która wprowadza na rynek kolejne urządzenia korzystające z nowych funkcji. Dzięki temu możemy zapewnić, aby platforma Androida ewoluowała zgodnie z potrzebami urządzeń w rzeczywistych warunkach.

Jak powstaje oprogramowanie na Androida?

Każda wersja platformy Android (np. 1.5 lub 8.1) ma odpowiednią gałąź w drzewie oprogramowania open source. Najnowsza gałąź jest uważana za bieżącą wersję stabilnej gałęzi, do której odwołuje się plik manifestu android-latest-release. 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 tworzeniem flagowego urządzenia.

Dlaczego niektóre części Androida są rozwijane w trybie prywatnym?

Wprowadzenie urządzenia na rynek zajmuje zwykle ponad rok. Oczywiście producenci urządzeń chcą dostarczać najnowsze wersje oprogramowania. Z kolei deweloperzy nie chcą stale śledzić nowych wersji platformy podczas tworzenia aplikacji. Obie grupy muszą znaleźć równowagę między wysyłką produktów a chęcią pozostania na bieżąco.

Aby rozwiązać ten problem, niektóre części następnej wersji Androida, w tym interfejsy API platformy podstawowej, są opracowywane w gałęzi prywatnej. Te interfejsy API stanowią kolejną wersję Androida. Naszym celem jest skupienie uwagi na bieżącej stabilnej wersji kodu źródłowego Androida, podczas gdy tworzymy kolejną wersję platformy. Dzięki temu deweloperzy i OEM mogą korzystać z pojedynczej wersji bez konieczności śledzenia niedokończonych prac, aby nadążyć za zmianami.

Kiedy publikowany jest kod źródłowy?

Gdy będą gotowe. Udostępnianie kodu źródłowego to dość skomplikowany proces. Niektóre części Androida, np. jądro, są rozwijane w ramach projektu open source, a ich kod źródłowy jest zawsze dostępny. Pozostałe części są najpierw opracowywane w drzewie prywatnym, a ich kod źródłowy jest udostępniany, gdy gotowa jest następna wersja platformy.

W niektórych wersjach interfejsy API platformy podstawowej są gotowe z dość dużym wyprzedzeniem, abyśmy mogli przesłać kod źródłowy do wstępnej analizy 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 pozwala na to proces programowania.

Co należy zrobić, aby udostępnić kod źródłowy nowej wersji Androida?

Udostępnianie kodu źródłowego nowej wersji platformy Android to skomplikowany proces. Najpierw oprogramowanie jest wbudowane w obraz systemu urządzenia i przechodzi różne formy certyfikacji, w tym certyfikację rządową w przypadku regionów, w których telefony będą wdrażane. Kod jest też testowany przez operatora. Jest to ważny etap procesu, ponieważ pomaga wykrywać błędy oprogramowania.

Gdy wydanie 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 rozpoczął prace nad przygotowaniem wersji open source. Te działania obejmują wprowadzenie ostatecznych zmian w interfejsie API, aktualizację dokumentacji (aby odzwierciedlić wszelkie modyfikacje wprowadzone na przykład podczas testów kwalifikacyjnych), przygotowanie pakietu SDK dla nowej wersji i opublikowanie informacji o zgodności z platformą.

Nasz zespół prawny zatwierdza ostatecznie wydanie kodu na licencji open source. Podobnie jak w przypadku osób, które przyczyniły się do rozwoju oprogramowania open source, które muszą podpisać Umowę licencyjną dla współtwórców, poświadczającą ich własność własności intelektualnej, Google musi sprawdzić, czy źródło ma prawo do wkładu.

Od momentu rozpoczęcia masowej produkcji proces udostępniania oprogramowania trwa zwykle około miesiąca, więc wersje kodu źródłowego często pojawiają się mniej więcej w tym samym czasie, gdy urządzenia trafiają do użytkowników.

Jakie jest powiązanie między AOSP a Programem zgodności z Androidem?

AOSP zajmuje się utrzymaniem oprogramowania Androida i opracowywaniem nowych wersji. Ponieważ jest to oprogramowanie 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.

Celem programu zgodności z Androidem jest określenie podstawowej implementacji Androida, która jest zgodna z aplikacjami innych firm napisanymi przez deweloperów. Urządzenia kompatybilne z Androidem mogą uczestniczyć w ekosystemie Androida, w tym w Google Play. Urządzenia, które nie spełniają wymagań zgodności, znajdują się poza tym ekosystemem.

Inaczej mówiąc, Program zgodności z Androidem pozwala nam odróżnić urządzenia zgodne z Androidem od urządzeń, na których działają tylko pochodne kodu źródłowego. Z zadowoleniem przyjmujemy wszelkie przypadki użycia kodu źródłowego Androida, ale aby urządzenie mogło korzystać z ekosystemu Androida, musi być uznane przez program za zgodne z Androidem.

Jak mogę przyczynić się do rozwoju Androida?

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

Istnieją pewne ograniczenia dotyczące rodzajów kodu, które akceptujemy. Ktoś może na przykład chcieć udostępnić alternatywne API aplikacji, np. środowisko oparte na C++. Odrzucimy tę propozycję, ponieważ Android zachęca do uruchamiania aplikacji w czasie działania ART. Nie akceptujemy też bibliotek GPL lub LGPL, które są niezgodne z naszym podejściem do licencjonowania.

Zachęcamy osoby zainteresowane udostępnieniem kodu źródłowego do skontaktowania się z nami za pomocą kanałów wymienionych na stronie Społeczność Androida, zanim rozpoczną pracę. Więcej informacji znajdziesz w artykule Udział w tworzeniu treści.

Jak zostać autorem commitów w Androidzie?

AOSP nie ma w zasadzie pojęcia committera. Wszystkie wkłady (w tym te autorstwa pracowników Google) przechodzą przez internetowy system 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 zapewnić przejrzyste zarządzanie wkładem w kod źródłowy.

Wyznaczona osoba zatwierdzająca musi przejrzeć i zaakceptować wszystkie proponowane zmiany. Osoby zatwierdzające są zwykle pracownikami Google, ale te same osoby zatwierdzają wszystkie przesyłane treści, niezależnie od ich pochodzenia.

Szczegółowe informacje znajdziesz w artykule Przesyłanie poprawek.