Os dispositivos ChromeOS, como os Chromebooks, são compatíveis com a Google Play Store e Apps Android. Este artigo presume que você já tenha um app Android projetado para smartphones ou tablets que você quer otimizar para Chromebooks. Para aprender as noções básicas sobre como criar apps Android, consulte Como criar seu primeiro app Android app.
Atualizar o arquivo de manifesto do app
Para começar, atualize o arquivo de manifesto para considerar alguns hardwares importantes e diferenças de software entre Chromebooks e outros dispositivos com Android.
A partir da versão M53 do ChromeOS, todos os apps Android que não exigem explicitamente a
android.hardware.touchscreen
também funciona em dispositivos ChromeOS compatíveis com o
android.hardware.faketouch
. No entanto, para garantir que seu app funcione em todos
Chromebooks, atualize o arquivo de manifesto para que o
O recurso android.hardware.touchscreen
não é necessário, como mostrado
exemplo a seguir.
<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>
Diferentes dispositivos de hardware vêm equipados com diferentes conjuntos de sensores. Os Chromebooks podem não ter todos os sensores encontrados em dispositivos portáteis Android, como GPS e acelerômetros. No entanto, em alguns casos, a funcionalidade de um sensor é fornecida de outra forma. Por exemplo, os Chromebooks podem não têm sensores de GPS, mas fornecem dados de local com base em conexões Wi-Fi. Consulte a visão geral de sensores para saber mais mais sobre os sensores com suporte na plataforma Android.
Se você quer que seu app seja executado em Chromebooks independentemente da disponibilidade do sensor, atualizar o arquivo de manifesto para que nenhum sensor seja necessário.
Alguns recursos de software não são compatíveis com Chromebooks. Por exemplo, apps que fornecem IMEs personalizados, widgets de apps, planos de fundo interativos e inicializadores de apps não são compatíveis e não podem ser instalados em Chromebooks. Para uma lista completa recursos de software incompatíveis com Chromebooks, consulte incompatíveis recursos de software.
Atualizar seu SDK de destino
Atualizar o targetSdkVersion
do app
atributo para o nível de API mais recente disponível para aproveitar todos os
melhorias na plataforma Android. Analisar as melhorias no Android
a plataforma em diferentes versões.
Verificar os requisitos de rede
Os Chromebooks executam todo o sistema operacional Android em um contêiner, semelhante ao Docker ou ao LXC. Isso significa que o Android não tem acesso direto à LAN do sistema. interface gráfica do usuário. Em vez disso, o tráfego IPv4 passa por uma camada interna de rede conversão de endereços de rede (NAT) e o tráfego unicast IPv6 é roteado salto.
Conexões unicast de saída de um app Android para a Internet, principalmente para funcionar no estado em que se encontra. Em geral, as conexões de entrada são bloqueadas. Multicast ou transmissão pacotes do Android não são encaminhados para a LAN pelo firewall.
Como exceção à restrição de multicast, o ChromeOS executa um serviço que encaminha o tráfego mDNS entre o Android e a interface da LAN para que o padrão APIs de descoberta de serviço de rede são a maneira recomendada de descobrir outros dispositivos no segmento de LAN. Depois encontrar um dispositivo na LAN, um app Android poderá usar o unicast TCP ou UDP padrão para se comunicar com ele.
As conexões IPv4 originárias do Android usam o endereço IPv4 do host do ChromeOS. Internamente, o app Android vê um endereço IPv4 particular atribuído à rede interface gráfica do usuário. As conexões IPv6 originárias do Android usam um endereço diferente do host do ChromeOS, porque o contêiner Android tem um endereço IPv6.
Usar nuvem e armazenamento local de forma eficaz
Os Chromebooks permitem que os usuários migrem facilmente de um dispositivo para outro. Se um usuário parar usando um Chromebook e começar a usar outro, basta fazer login, e todos os apps dele vão aparecer.
Devido a esse recurso, faça backup dos dados do seu app na nuvem para ativar a sincronização. entre dispositivos. No entanto, não dependa de uma conexão de Internet para que seu aplicativo a funcionar normalmente. Em vez disso, salve o trabalho do usuário localmente quando o dispositivo estiver e sincronizar com a nuvem assim que o dispositivo voltar a ficar on-line.
Os Chromebooks também podem ser compartilhados entre um grande número de pessoas, como em escolas. Como o armazenamento local não é infinito, contas inteiras juntas com o armazenamento, podem ser removidos do dispositivo a qualquer momento. Para contextos educacionais, é uma boa ideia ter esse cenário em mente.
Atualizar as bibliotecas do NDK
Se o app usa as bibliotecas do Android NDK e a versão do SDK de destino é 23 ou superior, certifique-se de que as realocações de texto sejam removidas do ARM e do x86 das suas bibliotecas do NDK, já que elas não são compatíveis com o Android 6.0 (API nível 23) e superiores. Ao deixar realocações de texto nas bibliotecas do NDK, você também pode causar erros de compatibilidade com Chromebooks, executados em dispositivos com arquitetura x86.
Desenvolver novos casos de teste para seu app
Para desenvolver casos de teste para seu app, primeiro especifique as opções
sinalizações do manifesto. Especificamente, considere definir screenOrientation
.
para unspecified
. Se você quiser especificar uma orientação de paisagem, considere usar
sensorLandscape
para garantir que a experiência em um tablet seja ideal.
Se você tiver necessidades especiais de tamanho ou orientação em ambientes de desktop, considere
adicionar metatags como dicas de tamanho ou orientação. Para incluir tamanho e orientação
em celulares, especificar o layout
defaultHeight
,
defaultWidth
,
ou minHeight
atributos.
Se você estiver interessado no processamento de dispositivos de entrada específicos para dispositivos específicos
categorias, especifique android.hardware.type.pc
para desativar a entrada
modo de compatibilidade.
Se você estiver usando qualquer tipo de rede, verifique se o app pode se reconectar à rede depois que um problema de conexão é resolvido ou após o dispositivo ser reativado modo hibernar.
Recomendamos que você verifique a lista de casos de teste de apps Android no Chrome OS, que você pode usar no seu plano de teste. Os casos de teste abrangem cenários comuns para os quais os apps Android precisam estar preparados. se eles serão executados em dispositivos ChromeOS.
Alterações de orientação e várias janelas
O ambiente de várias janelas do ChromeOS pode tornar o estado de persistência e recall
problemas mais óbvios. Usar ViewModel
para salvar e restaurar seu estado quando apropriado.
Para testar a persistência de estado, minimize seu app por algum tempo e inicie outro processo que consome muitos recursos e restaurar seu app para confirmar que ele retorna ao o estado em que você a deixou.
Redimensione a janela de teste pressionando a tecla de tela cheia (F4), maximizando e restauração. Para testar o redimensionamento livre, primeiro ative-o nas opções do desenvolvedor e, Em seguida, verifique se o app é redimensionado sem problemas.
Se o dispositivo ChromeOS for compatível, mude do modo laptop para tablet para verificar se tudo está funcionando como esperado. Gire o dispositivo uma vez no modo tablet para testar mudanças de orientação e voltar para o modo laptop. Repita esta etapa algumas vezes.
Confira se a barra superior não está corrompendo o app ao deslocar elementos da interface. ou por toque com base na localização. Para dispositivos ChromeOS, verifique se o app não coloca informações importantes na área da barra de status.
Se você estiver usando a câmera ou outro recurso de hardware, como a caneta, verifique para garantir que ele se comporte corretamente ao realizar as mudanças de janela e dispositivo descritos anteriormente.