Zarządzanie oprogramowaniem Android

Projekt Android Open Source Project (AOSP) utrzymuje kompletny stos oprogramowania, który może być przenoszony przez producentów OEM i innych implementatorów urządzeń i uruchamiany na ich własnym sprzęcie. Aby utrzymać jakość Androida, firma Google zaangażowała pełnoetatowych inżynierów, menedżerów produktów, projektantów interfejsu użytkownika, testerów kontroli jakości i wszystkie inne role wymagane do wprowadzenia nowoczesnych urządzeń na rynek.

W związku z tym utrzymujemy szereg linii kodu, aby wyraźnie oddzielić obecną stabilną wersję Androida od niestabilnej pracy eksperymentalnej. Wprowadzamy administrację open source i konserwację kodów Androida do większego cyklu rozwoju produktu.

Zarządzanie kodem AOSP

Poniższy wykres przedstawia koncepcje związane z zarządzaniem kodem AOSP i wydaniami.

schemat linii kodu
Rysunek 1. Kod i wydania AOSP
  1. W każdej chwili dostępna jest najnowsza wersja platformy Android. Zwykle przybiera to formę gałęzi w drzewie.
  2. Konstruktorzy urządzeń i współtwórcy pracują z najnowszą wersją, naprawiając błędy, uruchamiając nowe urządzenia, eksperymentując z nowymi funkcjami i tak dalej.
  3. Równolegle Google pracuje wewnętrznie nad kolejną wersją platformy i frameworka Android zgodnie z potrzebami i celami produktu. Opracowujemy kolejną wersję Androida, współpracując z partnerem w zakresie urządzeń nad flagowym urządzeniem, którego specyfikacje zostały wybrane tak, aby popchnąć Androida w kierunku, który naszym zdaniem powinien iść.
  4. Gdy n+1 wersja jest gotowa, jest publikowana w publicznym drzewie źródłowym i staje się nową najnowszą wersją.

Warunki i zastrzeżenia

  • Wydanie odpowiada formalnej wersji platformy Android, takiej jak 1.5 lub 8.1. Wydanie platformy odpowiada wersji w polu SdkVersion plików AndroidManifest.xml i zdefiniowanej w frameworks/base/api w drzewie źródłowym.
  • Projekt nadrzędny to projekt typu open source, z którego stos systemu Android pobiera kod. Oprócz projektów, takich jak jądro Linux i WebKit, nadal migrujemy niektóre półautonomiczne projekty Androida, takie jak ART, narzędzia Android SDK i Bionic, aby działały jako projekty nadrzędne. Ogólnie rzecz biorąc, projekty te są opracowywane w całości w drzewie publicznym. W przypadku niektórych projektów nadrzędnych programiści przyczyniają się bezpośrednio do projektu nadrzędnego. Aby uzyskać szczegółowe informacje, zobacz Projekty upstream . W obu przypadkach migawki są okresowo wprowadzane do wersji.
  • Przez cały czas linia kodu wydania (która może składać się z więcej niż jednej gałęzi w git) jest uważana za jedyny kanoniczny kod źródłowy dla danej wersji platformy Android. Producenci OEM i inne grupy budujące urządzenia powinny pobierać tylko z gałęzi wydania.
  • Opracowywane są eksperymentalne kody, aby wychwytywać zmiany wprowadzane przez społeczność, aby można je było powtarzać z myślą o stabilności.
  • Zmiany, które okażą się stabilne, są ostatecznie wciągane do gałęzi wydania. Dotyczy to tylko poprawek błędów, ulepszeń aplikacji i innych zmian, które nie wpływają na interfejsy API platformy.
  • W razie potrzeby zmiany są pobierane do gałęzi wydania z projektów nadrzędnych (w tym projektów nadrzędnych systemu Android).
  • Wersja n+1 (kolejna główna wersja frameworka i interfejsów API platformy) jest opracowywana wewnętrznie przez Google. Aby uzyskać szczegółowe informacje, zobacz Prywatne linie kodowe .
  • W razie potrzeby zmiany są pobierane z oddziałów nadrzędnych, wydań i eksperymentalnych do prywatnego oddziału Google.
  • Gdy interfejsy API platformy dla następnej wersji zostaną ustabilizowane i w pełni przetestowane, Google wycina wydanie kolejnej wersji platformy (w szczególności nową SdkVersion ). Odpowiada to wewnętrznej linii kodu, która stała się gałęzią publicznego wydania i nowej obecnej linii kodu platformy.
  • Po wycięciu nowej wersji platformy tworzona jest jednocześnie odpowiednia eksperymentalna linia kodu.

Prywatne linie kodowe

Powyższa strategia zarządzania źródłami obejmuje linię kodu, którą Google zachowuje jako prywatną, aby skupić uwagę na bieżącej publicznej wersji Androida.

Producenci OEM i inni producenci urządzeń naturalnie chcą dostarczać urządzenia z najnowszą wersją Androida. Podobnie twórcy aplikacji nie chcą mieć do czynienia z większą liczbą wersji platformy niż to konieczne. Tymczasem Google zachowuje odpowiedzialność za strategiczny kierunek Androida jako platformy i produktu. Nasze podejście koncentruje się na niewielkiej liczbie flagowych urządzeń do obsługi funkcji przy jednoczesnym zapewnieniu ochrony własności intelektualnej związanej z Androidem.

W rezultacie Google często jest w posiadaniu poufnych informacji od stron trzecich i musi powstrzymać się od ujawniania poufnych funkcji do czasu zapewnienia odpowiednich zabezpieczeń. Ponadto istnieje realne ryzyko dla platformy, jeśli jednocześnie istnieje zbyt wiele wersji platformy. Z tych powodów ustrukturyzowaliśmy projekt open source (w tym wkład osób trzecich), aby skoncentrować się na aktualnie publicznej stabilnej wersji Androida. Głęboki rozwój następnej wersji platformy odbywa się prywatnie, dopóki nie będzie gotowy do oficjalnego wydania.

Zdajemy sobie sprawę, że wielu współpracowników nie zgadza się z takim podejściem i szanujemy ich punkt widzenia. Jednak jest to podejście, które naszym zdaniem jest najlepsze i które wybraliśmy do wdrożenia na Androida.