Ten dokument zawiera odpowiedzi na ogólne pytania dotyczące platformy Android Open Source Platform (AOSP).
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 na rynku 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 sprzyja ona powszechnemu rozpowszechnieniu oprogramowania Androida. Więcej informacji znajdziesz w artykule Licencje.
Dlaczego Google odpowiada za Androida?
Uruchomienie platformy oprogramowania jest skomplikowane. Otwartość jest kluczowa dla długofalowego sukcesu platformy, ponieważ przyciąga inwestycje ze strony deweloperó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ą oprogramowania. 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 Android był popularny w śród użytkowników, przyczyniamy się do rozwoju tej platformy i projektu open source. W końcu kto chciałby mieć kod źródłowy do produktu, którego nie udało się przenieść?
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. Te flagowe urządzenia pochłaniają duże ryzyko związane z produktem i przecierają szlaki dla szerszej społeczności OEM, która następnie przygotowuje kolejne urządzenia, które będą korzystać z nowych funkcji. Dzięki temu możemy zapewnić, aby platforma Android ewoluowała zgodnie z potrzebami urządzeń używanych 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. Jest to gałąź, która jest dostarczana przez producentów do urządzeń. Ta gałąź jest zawsze odpowiednia do wydania.
Jednocześnie istnieje bieżąca gałąź eksperymentalna, w której rozwijane są spekulacyjne funkcje, takie jak duże funkcje nowej generacji. Poprawki błędów i inne zmiany mogą być uwzględniane w bieżącej stabilnej gałęzi z gałęzi eksperymentalnej.
Google pracuje nad kolejną wersją platformy Androida równolegle z tworzeniem flagowego urządzenia. Ta gałąź pobiera zmiany z gałęzi eksperymentalnej i stabilnej w razie potrzeby.
Szczegółowe informacje o gałęziach i wersjach znajdziesz w artykule Cykl życia wersji.
Dlaczego niektóre części Androida są opracowywane w trybie prywatnym?
Wprowadzenie urządzenia na rynek zajmuje zwykle ponad rok. Oczywiście producenci urządzeń chcą udostępniać najnowsze oprogramowanie. Tymczasem deweloperzy nie chcą stale śledzić nowych wersji platformy podczas pisania 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. Podczas tworzenia kolejnej wersji platformy chcemy skupić się na obecnej stabilnej wersji kodu źródłowego Androida. Dzięki temu deweloperzy i OEM mogą korzystać z pojedynczej wersji bez konieczności śledzenia niedokończonych prac, aby nadążyć za zmianami. Inne części systemu Android, które nie są związane ze zgodnością aplikacji, są rozwijane w ogólnodostępny sposób. Z czasem zamierzamy udostępnić więcej tych elementów.
Kiedy publikowany jest kod źródłowy?
Gdy będą gotowe. Zwolnienie kodu źródłowego to dość skomplikowany proces. Niektóre części Androida są rozwijane w ramach projektu open source, a ich kod źródłowy jest zawsze dostępny. Pozostałe części są najpierw opracowywane na 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 regionach, 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. Do tych działań należy wniesienie ostatecznych zmian w interfejsie API, aktualizacja dokumentacji (aby odzwierciedlić wszelkie modyfikacje wprowadzone na przykład podczas testów kwalifikacyjnych), przygotowanie pakietu SDK na potrzeby nowej wersji oraz udostępnienie 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ą, że są właścicielami praw własności intelektualnej do swoich wkładów, Google musi sprawdzić, czy źródło ma prawo do wkładów.
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ń niezgodnych z innymi urządzeniami wykorzystującymi to samo źródło.
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.
Innymi słowy, dzięki Programowi zgodności z Androidem możemy 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łosić błędy, napisać aplikacje na Androida lub przekazać kod źródłowy 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ę. Szczegółowe informacje znajdziesz w sekcji Współpraca.
Jak zostać autorem commitów w Androidzie?
AOSP nie ma pojęcia o tym, kto wprowadził zmiany. 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. Współpracuje on z systemem zarządzania kodem źródłowym Git, aby w czytelny sposób zarządzać przesłanymi kodami źródłowymi.
Wyznaczona osoba zatwierdzająca musi zaakceptować wszystkie przesłane zmiany. Zatwierdzają je zwykle pracownicy Google, ale te same osoby odpowiadają za wszystkie przesyłane treści, niezależnie od ich pochodzenia.
Szczegółowe informacje znajdziesz w artykule Przesyłanie poprawek.