lightbulb_outline Please take our October 2018 developer survey. Start survey

Visão geral

O Instant Apps Android permite que aplicativos nativos do Android sejam executados em resposta ao lançamento de um URL, sem instalar o aplicativo. Quando o Google Play Store recebe uma solicitação de um URL que corresponde a um instant app, ele envia os arquivos de código necessários para o dispositivo Android que enviou a solicitação. O dispositivo então executa o aplicativo.

Observação: o Instant Apps Android só funciona em dispositivos Android que executem o Android 6.0 (nível de API 23) ou versão posterior.

Aplicativos como recursos

O Instant Apps Android oferece uma maneira nova e exclusiva para que desenvolvedores criem aplicativos e para que os usuários os consumam. Antes de introduzir os principais conceitos do Instant Apps Android, é importante entender a terminologia fundamental.

No nível mais básico, os aplicativos têm pelo menos um recurso ou tarefa que eles realizam: encontrar um local em um mapa, enviar um e-mail ou ler as notícias diárias, por exemplo. Muitos aplicativos oferecem diversos recursos. Por exemplo, um aplicativo de mapa pode permitir que os usuários busquem restaurantes nas proximidades por e-mail, além de encontrá-los em um mapa. Cada uma dessas ações — ou seja, encontrar um local, buscar restaurantes próximos, compartilhar links para um local — é um recurso do aplicativo de mapa.

Com o Instant Apps Android, os usuários podem fazer download de um único recurso de um aplicativo da Google Play Store — sem precisar baixar e instalar o aplicativo completo. Quando os usuários solicitam um recurso de um instant app, eles recebem somente o código necessário para executar o recurso em questão e somente isso. Depois que os usuários terminarem de usar o recurso, o sistema pode remover o código.

Retomando o exemplo anterior de um aplicativo de mapa, o instant app de mapa pode expor cada um dos seus recursos como uma entidade discreta dentro do aplicativo. Os usuários podem baixar e usar apenas o recurso de localização, apenas o recurso de guia de restaurantes ou apenas o recurso de compartilhamento. Quando os usuários passarem para outro aplicativo, o sistema poderá remover o código do recurso com segurança.

Cada recurso do instant app deve ter pelo menos uma classe Activity que funcione como entry-point do recurso. Uma atividade entry-point hospeda a IU do recurso e define o fluxo geral do usuário. Quando um usuário inicia o recurso no dispositivo, a atividade entry-point é a primeira coisa que eles veem. Um recurso pode ter mais de uma atividade entry-point, mas ele só precisa de uma.

Módulos de recursos e APKs de recursos

Para oferecer esse download de recursos sob demanda, é preciso dividir seu aplicativo em módulos menores e reuni-los em módulos de recursos.

Quando você cria um projeto de instant app, o resultado é um APK do Instant App que contém um ou mais APKs de recursos. Cada APK de recursos é criado a partir de um módulo de recursos em seu projeto e pode ser baixado sob demanda pelo usuário e iniciado como um instant app.

Cada instant app deve ter um (e somente um) APK de recursos básico. Se seu instant app tiver apenas um recurso, você só precisará do APK de recursos básico; APKs adicionais são opcionais. Se seu instant app tiver vários recursos, o APK de recursos básico normalmente conterá os recursos compartilhados e os arquivos de códigos dos quais os demais recursos dependem. Seguindo o exemplo do instant app de mapa, o APK básico poderá conter o arquivo styles.xml do aplicativo ou uma classe de estrutura de dados para modelar locais e pontos de interesse. O APK de recursos básico é sempre baixado, independentemente de qual recurso for solicitado pelo usuário.

Você pode ter APKs de recursos além do APK de recursos básico. APKs de recursos adicionais podem conter partes do aplicativo que correspondam a um recurso. O APK de recursos contém a atividade entry-point do recurso e qualquer elemento exclusivo exigido por esse recurso.

Quando os usuários solicitam um recurso de um instant app, eles obtém dois APKs de recursos: o APK do recurso correspondente e o APK de recursos básico. Se o mesmo usuário solicitar outro recurso do mesmo instant app, ele poderá receber apenas o APK do recurso, pois o APK básico já foi baixado. Naturalmente, se o instant app tiver apenas um recurso — e, portanto, apenas um APK de recursos básico — o usuário receberá apenas o APK básico.

O diagrama a seguir mostra a relação entre o APK do Instant App e os APKs de recursos.

Solicitar recursos da Google Play Store

Para fazer download de um recurso de um instant app da Google Play Store, os usuários só precisam clicar em um link. Quando a Google Play Store recebe uma solicitação de um instant app, ela analisa o URL para determinar qual recurso foi solicitado pelo usuário. Após encontrar uma correspondência, a Google Play Store envia os APKs de recursos do recurso em questão para o dispositivo do usuário e, em seguida, o tempo de execução de Instant Apps inicia o recurso. Se a Google Play Store não encontrar uma correspondência, ela alertará o tempo de execução de Instant Apps no dispositivo. Então, o tempo de execução de Instant Apps transmitirá um intent para o sistema para processar o URL.

Por esse motivo, cada atividade entry-point em um instant app precisa ser endereçável: ela deve corresponder a um URL exclusivo. Se os URLs dos recursos de um instant app tiverem o mesmo domínio, cada recurso deverá corresponder a um caminho diferente desse domínio.

Seguindo o exemplo de instant app de mapa anterior, há três recursos distintos: a busca de locais, restaurantes próximos e o compartilhamento de locais. Esses recurso têm o mesmo domínio Web: example.com. Para fornecer um URL exclusivo para cada recurso, o instant app especifica um caminho diferente do domínio para cada um deles.

Recurso URL
Busca de local http://example.com/finder
Restaurantes próximos http://example.com/restaurants
Compartilhar local http://example.com/share

Como já foi mencionado, um só recurso pode ter diversas atividades entry-point. Por exemplo, um recurso pode ter duas atividades relacionadas entre as quais o usuário alterna, com cada atividade tendo seu próprio URL. O manifesto do recurso precisa especificar um caminho para cada atividade e uma ordem de prioridade para as atividades, caso sejam apresentadas várias correspondências.

Por exemplo, imagine que o recurso de busca de local do instant app de mapa tem duas atividades: uma atividade de pesquisa e uma de detalhes. O URL da atividade de detalhes é semelhante ao da de pesquisa, mas a atividade de detalhes tem um ID numérico incluído no URL.

Atividade URL Caminho do URL Prioridade
Pesquisa http://example.com/finder/ '/finder/' 1
Detalhes http://example.com/finder/<ID> '/finder/*' 100

Se a Google Play Store receber uma solicitação para o URL 'http://example.com/finder/1234', ela fará a correspondência das atividades de pesquisa e de detalhes. A Google Play Store precisa selecionar uma das duas atividades como ponto de partida para o recurso. Como o instant app especifica que a atividade de detalhes tenha uma prioridade mais alta que a de pesquisa, a Google Play Store especifica que o tempo de execução de Instant Apps deve iniciar o recurso pela atividade de detalhes.

Próximas etapas

Para começar a desenvolver seu próprio instant app, consulte o Guia de primeiros passos.