Często zadawane pytania AOSP (FAQ)

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 .

Zgodność

Jaka jest kompatybilność z Androidem?

Urządzenie zgodne z systemem Android definiujemy jako urządzenie, na którym można uruchamiać dowolne aplikacje napisane przez zewnętrznych programistów przy użyciu zestawów SDK i NDK systemu Android. Używamy tego jako filtra, aby oddzielić urządzenia, które mogą uczestniczyć w ekosystemie aplikacji na Androida, od tych, które nie mogą. W przypadku prawidłowo zgodnych urządzeń producenci urządzeń mogą uzyskać zgodę na używanie znaku towarowego Android. Urządzenia, które nie są kompatybilne, pochodzą z kodu źródłowego Androida i nie mogą używać znaku towarowego Android.

Innymi słowy, kompatybilność jest warunkiem wstępnym uczestnictwa w ekosystemie aplikacji na Androida. Każdy może korzystać z kodu źródłowego Androida. Jeśli jednak urządzenie nie jest kompatybilne, nie jest uważane za część ekosystemu Androida.

Jaka jest rola Google Play w zapewnianiu zgodności?

Producenci urządzeń zgodnych z Androidem mogą ubiegać się o licencję na oprogramowanie klienckie Google Play. Licencjonowane urządzenia stają się częścią ekosystemu aplikacji na Androida, umożliwiając użytkownikom pobieranie aplikacji deweloperów z katalogu udostępnianego wszystkim kompatybilnym urządzeniom. Licencjonowanie nie jest dostępne dla niezgodnych urządzeń.

Jakie typy urządzeń mogą być kompatybilne z systemem Android?

Oprogramowanie dla systemu Android można przenieść na wiele różnych urządzeń, w tym na takie, na których aplikacje innych firm nie będą działać poprawnie. Dokument definicji zgodności systemu Android (CDD) określa konkretne konfiguracje urządzeń, które są uważane za zgodne.

Na przykład, chociaż kod źródłowy Androida można przenieść na telefon, który nie ma aparatu, CDD wymaga, aby wszystkie telefony były wyposażone w aparat. Dzięki temu programiści mogą podczas pisania aplikacji polegać na spójnym zestawie funkcji.

CDD stale ewoluuje, aby odzwierciedlać realia rynkowe. Na przykład wersja 1.6 CDD obsługuje tylko telefony komórkowe. Jednak wersja 2.1 umożliwia urządzeniom pominięcie sprzętu telefonicznego, umożliwiając kompatybilność urządzeń innych niż telefony, takich jak odtwarzacze muzyczne typu tablet. Wprowadzając te zmiany, rozszerzymy także Google Play, aby umożliwić programistom zachowanie kontroli nad tym, gdzie są dostępne ich aplikacje. Kontynuując przykład z telefonią, aplikacja zarządzająca wiadomościami SMS nie jest przydatna w odtwarzaczu multimedialnym, dlatego Google Play pozwala programiście ograniczyć tę aplikację wyłącznie do urządzeń telefonicznych.

Jeśli moje urządzenie jest kompatybilne, czy automatycznie uzyskuje dostęp do Google Play i marki?

Nie. Dostęp nie jest automatyczny. Google Play to usługa obsługiwana przez Google. Osiągnięcie kompatybilności jest warunkiem wstępnym uzyskania dostępu do oprogramowania i marki Google Play. Gdy urządzenie zostanie uznane za zgodne z systemem Android , producent urządzenia powinien wypełnić formularz kontaktowy zawarty w licencji Usług mobilnych Google , aby uzyskać dostęp do Google Play. Skontaktujemy się, jeśli będziemy mogli Ci pomóc.

Jeśli nie jestem producentem, jak mogę uzyskać Google Play?

Licencja na Google Play jest udzielana wyłącznie producentom telefonów dostarczającym urządzenia. Jeśli masz pytania dotyczące konkretnych przypadków, napisz na adres android-partnerships@google.com .

Jak mogę uzyskać dostęp do aplikacji Google na Androida, takich jak Mapy?

Aplikacje Google na Androida, takie jak YouTube, Mapy Google i Gmail, to usługi Google, które nie są częścią systemu Android i są licencjonowane osobno. Jeśli masz pytania dotyczące tych aplikacji, napisz na adres android-partnerships@google.com .

Czy kompatybilność jest obowiązkowa?

Nie. Program zgodności z systemem Android jest opcjonalny. Kod źródłowy Androida jest otwarty, więc każdy może go wykorzystać do zbudowania dowolnego rodzaju urządzenia. Jeśli jednak producenci chcą używać nazwy Android w swoich produktach lub chcą uzyskać dostęp do Google Play, muszą najpierw wykazać, że ich urządzenia są kompatybilne .

Ile kosztuje certyfikacja zgodności?

Uzyskanie zgodności urządzenia z systemem Android nie wiąże się z żadnymi kosztami. Pakiet testów zgodności jest oprogramowaniem typu open source i dostępnym dla każdego do testowania urządzeń.

Jak długo trwa kompatybilność?

Proces jest zautomatyzowany. Pakiet testów zgodności generuje raport, który można udostępnić firmie Google w celu sprawdzenia zgodności. Docelowo zamierzamy udostępnić narzędzia samoobsługowe umożliwiające przesyłanie tych raportów do publicznej bazy danych.

Kto ustala definicję zgodności?

Google odpowiada za ogólny kierunek rozwoju Androida jako platformy i produktu, dlatego Google przechowuje dokument definicji zgodności (CDD) dla każdej wersji. Projekt CDD dla nowej wersji Androida opracowujemy w porozumieniu z różnymi producentami OEM, którzy przekazują uwagi.

Jak długo każda wersja Androida będzie obsługiwana na nowych urządzeniach?

Kod Androida jest kodem open source, więc nie możemy zabronić komuś korzystania ze starej wersji do uruchomienia urządzenia. Zamiast tego Google decyduje się nie udzielać licencji na oprogramowanie klienckie Google Play do użytku w wersjach uznawanych za przestarzałe. Dzięki temu każdy może nadal dostarczać starsze wersje Androida, ale te urządzenia nie będą używać nazwy Androida i będą istnieć poza ekosystemem aplikacji na Androida, tak jakby nie były kompatybilne.

Czy urządzenie może mieć inny interfejs użytkownika i nadal być kompatybilne?

Program zgodności systemu Android określa, czy na urządzeniu można uruchamiać aplikacje innych firm. Elementy interfejsu użytkownika dostarczane z urządzeniem (takie jak ekran główny, dialer i schemat kolorów) zazwyczaj nie mają większego wpływu na aplikacje innych firm. W związku z tym konstruktorzy urządzeń mogą dowolnie dostosowywać interfejs użytkownika. Dokument definicji kompatybilności ogranicza stopień, w jakim producenci OEM mogą zmieniać interfejs użytkownika systemu w obszarach mających wpływ na aplikacje innych firm.

Kiedy zostaną opublikowane definicje zgodności dla nowych wersji Androida?

Naszym celem jest wydanie nowej wersji dokumentu definicji zgodności systemu Android (CDD), gdy odpowiednia wersja platformy Android osiągnie wystarczającą zbieżność, aby na to pozwolić. Chociaż nie możemy opublikować ostatecznej wersji roboczej CDD dla wersji oprogramowania Android, zanim pierwsze flagowe urządzenie zostanie dostarczone z tym oprogramowaniem, ostateczne CDD są zawsze publikowane po pierwszym urządzeniu. Jednakże, gdy jest to praktyczne, publikujemy wersje robocze CDD.

W jaki sposób weryfikowane są oświadczenia producentów urządzeń dotyczące zgodności?

Nie ma procesu sprawdzania zgodności urządzeń z systemem Android. Jeśli jednak na urządzeniu ma być dostępna usługa Google Play, Google zazwyczaj sprawdza zgodność urządzenia przed wyrażeniem zgody na licencję na oprogramowanie klienckie Google Play.

Co się stanie, jeśli później okaże się, że w urządzeniu twierdzącym, że jest kompatybilne, występują problemy ze zgodnością?

Zazwyczaj relacje Google z licencjobiorcami Google Play pozwalają nam poprosić producenta urządzenia o udostępnienie zaktualizowanych obrazów systemu, które rozwiązują problemy.

Zestaw testów zgodności (CTS)

Jaki jest cel CTS?

Pakiet testów zgodności to narzędzie używane przez producentów urządzeń w celu zapewnienia zgodności ich urządzeń i raportowania wyników testów w celu sprawdzenia. CTS ma być często uruchamiany przez producentów OEM w całym procesie inżynieryjnym, aby wcześnie wykryć problemy ze zgodnością.

Jakiego rodzaju rzeczy testuje CTS?

CTS obecnie testuje, czy wszystkie obsługiwane interfejsy API o silnych typach systemu Android są obecne i działają poprawnie. Testuje także inne zachowania systemowe inne niż API, takie jak cykl życia i wydajność aplikacji. Planujemy dodać obsługę w przyszłych wersjach CTS w celu testowania miękkich interfejsów API, takich jak intencje.

Czy raporty CTS zostaną upublicznione?

Tak. Chociaż obecnie nie zostało to wdrożone, Google zamierza udostępnić producentom OEM internetowe narzędzia samoobsługowe umożliwiające publikowanie raportów CTS tak, aby każdy mógł je przeglądać. Producenci mogą udostępniać raporty CTS dowolnej liczbie odbiorców.

Jak licencjonowany jest CTS?

CTS jest objęty tą samą licencją Apache Software License 2.0, z której korzysta większość systemów Android.

Czy CTS przyjmuje składki?

Tak proszę! AOSP przyjmuje wkład w poprawę CTS, tak jak w przypadku każdego innego komponentu. W rzeczywistości poprawa zasięgu i jakości przypadków testowych CTS to jeden z najlepszych sposobów, aby pomóc Androidowi.

Czy każdy może używać CTS na istniejących urządzeniach?

Dokument definicji zgodności wymaga, aby kompatybilne urządzenia implementowały narzędzie do debugowania adb . Oznacza to, że każde kompatybilne urządzenie (w tym te dostępne w sprzedaży detalicznej) musi mieć możliwość przeprowadzenia testów CTS.

Czy kodeki są weryfikowane przez CTS?

Tak. Wszystkie obowiązkowe kodeki są weryfikowane przez CTS.