Zacznij tworzyć aplikacje na ChromeOS

Urządzenia z ChromeOS, takie jak Chromebooki, obsługują Sklep Google Play i aplikacje na Androida. W tym artykule zakładamy, że masz już aplikację na Androida przeznaczoną na telefony lub tablety, którą chcesz zoptymalizować pod kątem Chromebooków. Podstawy tworzenia aplikacji na Androida znajdziesz w artykule Tworzenie pierwszej aplikacji na Androida.

Zaktualizuj plik manifestu aplikacji

Aby rozpocząć, zaktualizuj plik pliku manifestu, uwzględniając niektóre kluczowe różnice między sprzętem i oprogramowaniem Chromebooków a innymi urządzeniami z Androidem.

Od wersji ChromeOS M53 wszystkie aplikacje na Androida, które nie wymagają wyraźnie funkcji android.hardware.touchscreen działają również na urządzeniach z ChromeOS, które obsługują funkcję android.hardware.faketouch. Aby jednak mieć pewność, że aplikacja będzie działać na wszystkich Chromebookach, zaktualizuj plik manifestu, aby funkcja android.hardware.touchscreen nie była wymagana, jak pokazano w następującym przykładzie.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          ... >
    <!-- Some Chromebooks don't support touch. Although not essential,
         it's a good idea to explicitly include this declaration. -->
    <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
</manifest>

Różne urządzenia mają różne zestawy czujników, a Chromebooki mogą nie mieć wszystkich czujników, które znajdują się w urządzeniach przenośnych z Androidem, takich jak GPS czy akcelerometr. W niektórych przypadkach funkcje czujnika są jednak realizowane w inny sposób. Na przykład Chromebooki mogą nie mieć czujników GPS, ale dostarczają danych o lokalizacji na podstawie połączeń Wi-Fi. Aby dowiedzieć się więcej o czujnikach obsługiwanych przez platformę Android, zapoznaj się z omówieniem czujników.

Jeśli chcesz, aby aplikacja działała na Chromebookach niezależnie od dostępności czujników, zaktualizuj plik manifestu, aby nie wymagał czujników.

Niektóre funkcje oprogramowania nie są obsługiwane na Chromebookach. Na przykład aplikacje, które udostępniają niestandardowe metody wprowadzania, widżety aplikacji, animowane tapety i programy uruchamiające aplikacje, nie są obsługiwane i nie można ich instalować na Chromebookach. Pełną listę funkcji oprogramowania, które nie są obsługiwane na Chromebookach, znajdziesz w sekcji nieobsługiwane funkcje oprogramowania.

Zaktualizuj docelowy pakiet SDK

Zaktualizuj atrybut targetSdkVersion aplikacji do najnowszego dostępnego poziomu interfejsu API, aby korzystać ze wszystkich ulepszeń platformy Android. Sprawdź ulepszenia na platformie Android w różnych wersjach.

Sprawdzanie wymagań dotyczących sieci

Chromebooki uruchamiają cały system operacyjny Android w kontenerze, podobnie jak Docker lub LXC. Oznacza to, że Android nie ma bezpośredniego dostępu do interfejsu LAN systemu. Zamiast tego ruch IPv4 przechodzi przez wewnętrzną warstwę tłumaczenia adresów sieciowych (NAT), a ruch unicast IPv6 jest kierowany przez dodatkowy skok.

Połączenia unicast wychodzące z aplikacji na Androida do internetu działają w większości bez zmian. Połączenia przychodzące są zazwyczaj blokowane. Pakiety multicast lub broadcast z Androida nie są przekierowywane do sieci LAN przez zaporę sieciową.

Jako wyjątek od ograniczenia dotyczącego transmisji wielodostępnej ChromeOS uruchamia usługę, która przekierowuje ruch mDNS między Androidem a interfejsem LAN. Dlatego standardowe interfejsy API wyszukiwania usług sieciowych są zalecanym sposobem wykrywania innych urządzeń w segmencie LAN. Po znalezieniu urządzenia w sieci LAN aplikacja na Androida może komunikować się z nim za pomocą standardowych gniazd unicastowych TCP lub UDP.

Połączenia IPv4 pochodzące z Androida używają adresu IPv4 hosta ChromeOS. Wewnętrznie aplikacja na Androida widzi prywatny adres IPv4 przypisany do interfejsu sieci. Połączenia IPv6 pochodzące z Androida używają innego adresu niż host ChromeOS, ponieważ kontener Androida ma dedykowany publiczny adres IPv6.

Skuteczne korzystanie z miejsca w chmurze i pamięci lokalnej

Chromebooki umożliwiają użytkownikom łatwe przenoszenie danych z jednego urządzenia na inne. Jeśli użytkownik przestanie korzystać z jednego Chromebooka i zacznie używać innego, wystarczy, że się zaloguje, a wszystkie jego aplikacje będą widoczne.

W związku z tą funkcją utwórz kopię zapasową danych aplikacji w chmurze, aby umożliwić synchronizację na różnych urządzeniach. Niezależnie od tego, czy aplikacja ma działać prawidłowo, nie musi mieć połączenia z internetem. Zamiast tego zapisz pracę użytkownika lokalnie, gdy urządzenie jest offline, a następnie zsynchronizuj ją z chmurą, gdy urządzenie będzie online.

Chromebooki mogą być też udostępniane dużej liczbie osób, np. w szkole. Ponieważ pamięć lokalna nie jest nieograniczona, w każdej chwili można usunąć z urządzenia całe konta wraz z ich zawartością. W przypadku ustawień edukacyjnych warto wziąć pod uwagę ten scenariusz.

Tworzenie nowych przypadków testowych aplikacji

Aby opracować przypadki testowe aplikacji, najpierw upewnij się, że masz określone odpowiednie flagi w pliku manifestu. Warto w szczególności ustawić dyrektywę screenOrientation na unspecified. Jeśli chcesz określić orientację poziomą, możesz użyć sensorLandscape, aby zapewnić optymalne działanie na tablecie.

Jeśli potrzebujesz specjalnych rozmiarów lub orientacji w przypadku środowisk komputerów stacjonarnych, zastanów się nad dodaniem metatagów jako wskazówek dotyczących rozmiaru lub orientacji. Aby uwzględnić rozmiar i orientację na telefonach, określ atrybuty układu defaultHeight, defaultWidth lub minHeight.

Jeśli interesuje Cię obsługa określonych urządzeń wejściowych w przypadku określonych kategorii urządzeń, określ wartość android.hardware.type.pc, aby wyłączyć tryb zgodności z urządzeniami wejściowymi.

Jeśli korzystasz z jakiegokolwiek rodzaju sieci, upewnij się, że aplikacja może ponownie połączyć się z siecią po rozwiązaniu problemu z połączeniem lub po wybudzeniu urządzenia z trybu uśpienia.

Zapoznaj się z listą testów aplikacji na Androida na urządzeniach z ChromeOS, których możesz użyć w planie testów. Przypadki testowe obejmują typowe scenariusze, na które aplikacje na Androida powinny być przygotowane, jeśli mają działać na urządzeniach z ChromeOS.

Zmiany dotyczące wielu okien i orientacji

Środowisko z wieloma oknami w ChromeOS może ułatwić wykrywanie problemów z trwałością stanu i przywoływaniem. Użyj polecenia ViewModel, aby zapisać stan i przywrócić go w razie potrzeby.

Aby przetestować trwałość stanu, zminimalizuj aplikację na jakiś czas, uruchom inny proces intensywnie wykorzystujący zasoby i przywróć aplikację, aby sprawdzić, czy wróci ona do stanu, w którym ją zostawiono.

Testuj zmianę rozmiaru okna, naciskając klawisz pełnego ekranu (F4), maksymalizując i przywracając. Aby przetestować swobodne zmienianie rozmiaru, najpierw włącz tę funkcję w opcjach dla deweloperów, a potem sprawdź, czy aplikacja płynnie zmienia rozmiar bez zawieszania się.

Jeśli Twoje urządzenie z ChromeOS obsługuje tę funkcję, przełącz się z trybu laptopa na tryb tabletu, aby sprawdzić, czy wszystko działa zgodnie z oczekiwaniami. Obróć urządzenie w trybie tabletu, aby przetestować zmiany orientacji, a potem wróć do trybu laptopa. Powtórz ten krok kilka razy.

Upewnij się, że górny pasek nie powoduje problemów w aplikacji przez przesunięcie elementów interfejsu lub dotykowego wejścia na podstawie lokalizacji. W przypadku urządzeń z ChromeOS upewnij się, że aplikacja nie umieszcza ważnych informacji w obszarze paska stanu.

Jeśli używasz aparatu lub innej funkcji sprzętowej, takiej jak pióro, upewnij się, że działa ona prawidłowo po wprowadzeniu zmian w oknie i urządzeniu.