Ten dokument zawiera odpowiedzi na ogólne pytania dotyczące platformy Android Open Source (AOSP).
Pytania dotyczące otwartego źródła
Dlaczego Google otworzył kod źródłowy Androida?
Google uruchomiło AOSP w odpowiedzi na nasze własne doświadczenia z uruchamianiem aplikacji mobilnych. Chcieliśmy mieć pewność, że operatorzy, producenci OEM i programiści zawsze będą mieli do dyspozycji otwartą platformę, z której będą mogli urzeczywistniać swoje innowacyjne pomysły. Chcieliśmy także uniknąć centralnego punktu awarii, aby żaden pojedynczy gracz z branży nie mógł ograniczać ani kontrolować innowacji żadnego innego gracza. Naszym najważniejszym celem w ramach AOSP jest upewnienie się, że oprogramowanie Android typu open source jest wdrażane tak szeroko i kompatybilnie, jak to możliwe, z korzyścią dla wszystkich.
Jakim rodzajem projektu open source jest Android?
Google nadzoruje rozwój podstawowego AOSP i pracuje nad stworzeniem solidnych społeczności programistów i użytkowników. W większości kod źródłowy Androida jest objęty liberalną licencją Apache 2.0, a nie licencją typu copyleft . Wybraliśmy licencję Apache 2.0, ponieważ wierzymy, że zachęca ona do powszechnego przyjęcia oprogramowania na Androida. Aby uzyskać szczegółowe informacje, zobacz Licencje .
Dlaczego Google odpowiada za Androida?
Uruchomienie platformy oprogramowania jest złożone. Otwartość ma kluczowe znaczenie dla długoterminowego sukcesu platformy, ponieważ otwartość przyciąga inwestycje ze strony programistów i zapewnia równe warunki działania. Platforma musi być także produktem atrakcyjnym dla użytkowników.
Firma Google zaangażowała profesjonalne zasoby inżynieryjne niezbędne do zapewnienia, że Android jest w pełni konkurencyjną platformą programową. Google traktuje projekt Androida jako operację opracowywania produktu na pełną skalę i zawiera umowy biznesowe niezbędne do zapewnienia, że świetne urządzenia z Androidem trafią na rynek.
Dbając o to, aby Android odniósł sukces wśród użytkowników, pomagamy zapewnić jego żywotność jako platformę i projekt typu open source. W końcu kto chce kodu źródłowego nieudanego produktu?
Naszym celem jest zapewnienie pomyślnego ekosystemu wokół Androida. Otworzyliśmy kod źródłowy Androida, aby każdy mógł modyfikować i rozpowszechniać oprogramowanie według własnych potrzeb.
Jaka jest ogólna strategia Google dotycząca rozwoju produktów na Androida?
Wypuszczamy świetne urządzenia na konkurencyjny rynek. Następnie wprowadzamy innowacje i ulepszenia, które wprowadziliśmy do platformy podstawowej jako następną wersję.
W praktyce oznacza to, że zespół inżynierów Androida skupia się na niewielkiej liczbie „flagowych” urządzeń i opracowuje kolejną wersję oprogramowania Android, która będzie wspierać premiery tych produktów. Te flagowe urządzenia przejmują większość ryzyka związanego z produktem i wyznaczają szlaki szerokiej społeczności producentów OEM, która dostarcza kolejne urządzenia korzystające z nowych funkcji. W ten sposób dbamy o to, aby platforma Android ewoluowała zgodnie z potrzebami urządzeń świata rzeczywistego.
Jak powstaje oprogramowanie na Androida?
Każda wersja platformy Androida (taka jak 1.5 lub 8.1) ma odpowiednią gałąź w drzewie open source. Najnowsza gałąź jest uważana za aktualną stabilną wersję gałęzi . Jest to gałąź, którą producenci portują na swoje urządzenia. Gałąź ta jest przez cały czas utrzymywana w stanie nadającym się do wydania.
Jednocześnie istnieje obecna gałąź eksperymentalna , w której opracowywane są wkłady spekulacyjne, takie jak duże funkcje nowej generacji. W razie potrzeby poprawki błędów i inne elementy mogą zostać uwzględnione w bieżącej stabilnej gałęzi z gałęzi eksperymentalnej.
Wreszcie Google pracuje nad kolejną wersją platformy Android równolegle z rozwojem flagowego urządzenia. Ta gałąź pobiera, jeśli to konieczne, zmiany z gałęzi eksperymentalnej i stabilnej.
Aby uzyskać szczegółowe informacje na temat linii kodowych, gałęzi i wydań, zobacz Zarządzanie oprogramowaniem Android .
Dlaczego części Androida są opracowywane prywatnie?
Wprowadzenie urządzenia na rynek zajmuje zwykle ponad rok. I oczywiście producenci urządzeń chcą dostarczać najnowsze oprogramowanie, jakie tylko mogą. Tymczasem programiści nie chcą stale śledzić nowych wersji platformy podczas pisania aplikacji. Obie grupy odczuwają napięcie pomiędzy wysyłką produktów i nie chcą pozostać w tyle.
Aby rozwiązać ten problem, niektóre części następnej wersji Androida, w tym interfejsy API platformy podstawowej, są opracowywane w oddziale prywatnym. Te interfejsy API stanowią kolejną wersję Androida. Naszym celem jest skupienie uwagi na aktualnej, stabilnej wersji kodu źródłowego Androida podczas tworzenia kolejnej wersji platformy. Dzięki temu programiści i producenci OEM mogą korzystać z jednej wersji bez śledzenia niedokończonych przyszłych prac, aby nadążyć. Inne części systemu Android, które nie są związane ze zgodnością aplikacji, są opracowywane na otwartej przestrzeni. Z biegiem czasu zamierzamy przenieść więcej tych części w celu otwartego rozwoju.
Kiedy publikowane są wersje kodu źródłowego?
Kiedy będą gotowe. Udostępnienie kodu źródłowego jest dość złożonym procesem. Niektóre części Androida są opracowywane jako otwarte i ten kod źródłowy jest zawsze dostępny. Pozostałe części są opracowywane najpierw w prywatnym drzewie, a kod źródłowy jest udostępniany, gdy gotowa jest kolejna wersja platformy.
W niektórych wersjach interfejsy API platformy podstawowej są gotowe z wystarczającym wyprzedzeniem, dzięki czemu możemy udostępnić kod źródłowy w celu wcześniejszego sprawdzenia przed wydaniem urządzenia. W innych wersjach nie jest to możliwe. We wszystkich przypadkach udostępniamy źródło platformy, gdy uznamy, że wersja jest stabilna i gdy pozwala na to proces rozwoju.
Co wiąże się z udostępnieniem kodu źródłowego nowej wersji Androida?
Wydanie kodu źródłowego nowej wersji platformy Android to znaczący proces. Po pierwsze, oprogramowanie jest wbudowane w obraz systemu urządzenia i poddawane różnym formom certyfikacji, w tym certyfikacji organów rządowych w regionach, w których telefony będą wdrażane. Kod przechodzi również testy operatorskie. Jest to ważna faza procesu, ponieważ pomaga wykryć błędy oprogramowania.
Kiedy wydanie zostanie zatwierdzone 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 prac nad przygotowaniem wersji open source. Działania te obejmują dokonanie ostatecznych zmian w API, aktualizację dokumentacji (w celu odzwierciedlenia wszelkich modyfikacji, które zostały wprowadzone np. podczas testów kwalifikacyjnych), przygotowanie SDK dla nowej wersji i uruchomienie informacji o kompatybilności platformy.
Nasz zespół prawny dokonuje ostatecznej zgody na udostępnienie kodu w wersji open source. Tak jak współautorzy oprogramowania typu open source muszą podpisać umowę licencyjną dla współtwórców potwierdzającą ich własność intelektualną do swojego wkładu, tak Google musi sprawdzić, czy źródło jest upoważnione do przesyłania datków.
Od momentu rozpoczęcia masowej produkcji proces wydawania oprogramowania trwa zwykle około miesiąca, dlatego wydawanie kodu źródłowego często następuje mniej więcej w tym samym czasie, gdy urządzenia docierają do użytkowników.
W jaki sposób AOSP ma się do Programu zgodności z Androidem?
AOSP utrzymuje oprogramowanie Android i opracowuje 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ą kompatybilne z innymi urządzeniami opartymi na tym samym źródle.
Funkcja Programu zgodności systemu Android polega na zdefiniowaniu podstawowej implementacji systemu Android, która jest kompatybilna z aplikacjami innych firm napisanymi przez programistów. Urządzenia kompatybilne z Androidem mogą korzystać z ekosystemu Android, w tym Google Play; urządzenia, które nie spełniają wymagań dotyczących zgodności, istnieją poza tym ekosystemem.
Innymi słowy, program zgodności Androida pozwala oddzielić urządzenia kompatybilne z Androidem od urządzeń, na których działają jedynie pochodne kodu źródłowego. Akceptujemy wszelkie zastosowania kodu źródłowego Androida, jednak aby móc uczestniczyć w ekosystemie Androida, urządzenie musi zostać zidentyfikowane przez program jako zgodne z Androidem.
Jak mogę przyczynić się do rozwoju Androida?
Możesz zgłaszać błędy, pisać aplikacje na Androida lub przesyłać kod źródłowy do AOSP.
Istnieją ograniczenia dotyczące akceptowanych przez nas rodzajów wkładów w postaci kodu. Na przykład ktoś może chcieć udostępnić alternatywny interfejs API aplikacji, taki jak pełne środowisko oparte na C++. Odrzucilibyśmy ten wkład, ponieważ Android zachęca do uruchamiania aplikacji w środowisku wykonawczym ART. Podobnie nie będziemy akceptować wkładów takich 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 pośrednictwem kanałów wymienionych w Społeczności Androida przed rozpoczęciem jakichkolwiek prac. Aby uzyskać szczegółowe informacje, zobacz Współtworzenie .
Jak zostać osobą zatwierdzającą Androida?
AOSP tak naprawdę nie ma pojęcia osoby zatwierdzającej. Wszystkie teksty (w tym te autorstwa pracowników Google) przechodzą przez system internetowy znany jako Gerrit, będący częścią procesu inżynieryjnego Androida. System ten współpracuje z systemem zarządzania kodem źródłowym Git, umożliwiając przejrzyste zarządzanie wkładem kodu źródłowego.
Wyznaczona osoba zatwierdzająca musi zaakceptować wszystkie przesłane zmiany. Osoby zatwierdzające to zazwyczaj pracownicy Google, ale za wszystkie przesłane dokumenty odpowiadają te same osoby, niezależnie od ich pochodzenia.
Aby uzyskać szczegółowe informacje, zobacz Przesyłanie poprawek .