Urządzenia z ChromeOS, takie jak Chromebooki, obsługują Sklep Google Play i aplikacje na Androida. W tym dokumencie zakładamy, że masz już aplikację na Androida przeznaczoną na telefony lub tablety, którą chcesz zoptymalizować pod kątem Chromebooków. Aby poznać podstawy tworzenia aplikacji na Androida, przeczytaj artykuł Tworzenie pierwszej aplikacji na Androida.
Aktualizowanie pliku manifestu aplikacji
Aby rozpocząć, zaktualizuj plik manifestu, aby uwzględnić kluczowe różnice w sprzęcie i oprogramowaniu między Chromebookami a innymi urządzeniami z Androidem.
Od wersji M53 ChromeOS wszystkie aplikacje na Androida, które nie wymagają wyraźnie funkcji android.hardware.touchscreen, działają też na urządzeniach z ChromeOS obsługujących funkcję android.hardware.faketouch. Aby jednak aplikacja działała na wszystkich Chromebookach, zaktualizuj plik manifestu tak, aby funkcja android.hardware.touchscreen nie była wymagana, jak pokazano w poniższym 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 są wyposażone w różne zestawy czujników, a Chromebooki mogą nie mieć wszystkich czujników, które znajdują się na urządzeniach przenośnych z Androidem, takich jak GPS i akcelerometry. W niektórych przypadkach funkcjonalność czujnika jest jednak zapewniana w inny sposób. Na przykład Chromebooki mogą nie mieć czujników GPS, ale udostępniają dane o lokalizacji na podstawie połączeń Wi-Fi. Więcej informacji o czujnikach obsługiwanych przez platformę Android znajdziesz w omówieniu 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 edytory IME, widżety aplikacji, animowane tapety i programy uruchamiające aplikacje, nie są obsługiwane i nie można ich zainstalować na Chromebookach. Pełną listę funkcji oprogramowania, które nie są obsługiwane na Chromebookach, znajdziesz w sekcji niekompatybilne funkcje oprogramowania.
Aktualizowanie docelowego pakietu SDK
Zaktualizuj atrybut targetSdkVersion aplikacji do najnowszego dostępnego poziomu interfejsu API, aby korzystać ze wszystkich ulepszeń platformy Android.
Sprawdź ulepszenia platformy 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 sieci LAN systemu. Zamiast tego ruch IPv4 przechodzi przez wewnętrzną warstwę translacji adresów sieciowych (NAT), a ruch IPv6 unicast jest kierowany przez dodatkowy przeskok.
Wychodzące połączenia typu unicast z aplikacji na Androida do internetu działają w większości przypadków bez zmian. Połączenia przychodzące są na ogół blokowane. Pakiety multicast lub broadcast z Androida nie są przekazywane do sieci LAN przez zaporę.
W wyjątku od ograniczenia dotyczącego multiemisji ChromeOS uruchamia usługę, która przekazuje ruch mDNS między Androidem a interfejsem sieci LAN. Dlatego zalecanym sposobem wykrywania innych urządzeń w segmencie sieci LAN są standardowe interfejsy API wykrywania usług sieciowych. Po znalezieniu urządzenia w sieci LAN aplikacja na Androida może używać standardowych gniazd TCP lub UDP unicast do komunikacji z nim.
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 sieciowego. 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 przechodzenie z jednego urządzenia na drugie. Jeśli użytkownik przestanie korzystać z jednego Chromebooka i zacznie używać innego, wystarczy, że się zaloguje, a wszystkie jego aplikacje pojawią się na nowym urządzeniu.
Dzięki tej funkcji możesz tworzyć kopie zapasowe danych aplikacji w chmurze, aby umożliwić synchronizację na różnych urządzeniach. Nie polegaj jednak na połączeniu z internetem, aby aplikacja działała prawidłowo. Zamiast tego zapisuj pracę użytkownika lokalnie, gdy urządzenie jest offline, i synchronizuj ją z chmurą, gdy urządzenie ponownie połączy się z internetem.
Chromebooki mogą być też udostępniane wielu osobom, np. w szkołach. Pamięć lokalna nie jest nieograniczona, więc w każdej chwili można usunąć z urządzenia całe konta wraz z ich pamięcią. W przypadku placówek edukacyjnych warto pamiętać o tym scenariuszu.
Opracowywanie nowych przypadków testowych dla aplikacji
Aby opracować przypadki testowe dla aplikacji, najpierw upewnij się, że masz określone odpowiednie flagi manifestu. W szczególności rozważ ustawienie
screenOrientation na
unspecified. Jeśli chcesz określić orientację poziomą, użyj parametru
sensorLandscape, aby zapewnić optymalne działanie na tablecie.
Jeśli masz specjalne wymagania dotyczące rozmiaru lub orientacji w środowiskach na komputery, możesz dodać metatagi jako wskazówki dotyczące rozmiaru lub orientacji. Aby uwzględnić rozmiar i orientację na telefonach, zamiast tego określ atrybuty układu defaultHeight, defaultWidth lub minHeight.
Jeśli interesuje Cię obsługa konkretnych urządzeń wejściowych w przypadku określonych kategorii urządzeń, wpisz android.hardware.type.pc, aby wyłączyć tryb zgodności wejścia.
Jeśli korzystasz z jakiejkolwiek 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.
Zalecamy sprawdzenie listy przypadków testowych aplikacji na Androida w ChromeOS, których możesz użyć w planie testów. Elementy testowania obejmują typowe scenariusze, na które aplikacje na Androida powinny być przygotowane, jeśli mają działać na urządzeniach z ChromeOS.
Wiele okien i zmiany orientacji
Środowisko wielooknowe ChromeOS może uwidocznić problemy z utrzymywaniem i przywracaniem stanu. Używaj ViewModel, aby w odpowiednich sytuacjach zapisywać i przywracać stan.
Aby sprawdzić trwałość stanu, zminimalizuj aplikację na jakiś czas, uruchom inny proces wymagający dużej ilości zasobów i przywróć aplikację, aby sprawdzić, czy powróci do stanu, w którym została pozostawiona.
Sprawdź zmianę rozmiaru okna, naciskając klawisz pełnego ekranu (F4), maksymalizując i przywracając okno. Aby przetestować bezpłatną zmianę rozmiaru, najpierw włącz ją w opcjach programisty, a potem sprawdź, czy aplikacja zmienia rozmiar płynnie i nie ulega awarii.
Jeśli urządzenie z ChromeOS to obsługuje, 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 sprawdzić zmiany orientacji, a następnie wróć do trybu laptopa. Powtórz ten krok kilka razy.
Upewnij się, że górny pasek nie powoduje nieprawidłowego działania aplikacji przez przesuwanie elementów interfejsu lub danych wejściowych dotykowych opartych na 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, np. pióra, upewnij się, że działa ona prawidłowo podczas wprowadzania zmian w oknie i na urządzeniu opisanych wcześniej.