Visão geral do desenvolvimento do Android no Windows

Um guia para ajudar você a configurar seu ambiente de desenvolvimento em um computador Windows 10 ou Windows 11 para desenvolver aplicativos Android. O Android é uma marca registrada do Google LLC. Se você é um desenvolvedor interessado em usar o sistema operacional Windows para criar aplicativos que funcionam em dispositivos Android e em outras plataformas de dispositivos, este guia é para você.

Você também pode aprender sobre como usar o Subsistema Windows para Android™️ para atualizar e testar seu aplicativo Android para que ele funcione em um dispositivo Windows 11 usando a Amazon Appstore. Saiba mais.

Windows como seu ambiente de desenvolvimento

Existem vários caminhos para desenvolver um aplicativo de dispositivo Android usando o sistema operacional Windows. Esses caminhos se dividem em três tipos principais: Desenvolvimento Android nativo, Desenvolvimento multiplataforma e Desenvolvimento de jogos para Android. Esta visão geral ajudará você a decidir qual caminho de desenvolvimento seguir para desenvolver um aplicativo Android e, em seguida, fornecerá as próximas etapas para ajudar você a começar a usar o Windows para desenvolver com:

*Se você tem usado o Xamarin para aplicativos multiplataforma, consulte Migrar do Xamarin para o .NET MAUI.

Além disso, este guia fornecerá dicas sobre como usar o Windows para:

Android nativo

O Desenvolvimento Android nativo no Windows significa que seu aplicativo está direcionado apenas para Android (não para iOS ou dispositivos Windows). Você pode usar o Android Studio ou o Visual Studio para desenvolver dentro do ecossistema projetado especificamente para o sistema operacional Android. O desempenho será otimizado para dispositivos Android, a interface do usuário terá a aparência e a sensação consistentes com outros aplicativos nativos no dispositivo, e quaisquer recursos ou capacidades do dispositivo do usuário serão diretos para acessar e utilizar. O desenvolvimento do seu aplicativo em um formato nativo ajudará a "parecer certo", pois ele segue todos os padrões de interação e de experiência do usuário estabelecidos especificamente para dispositivos Android.

Plataforma cruzada

As estruturas multiplataforma fornecem um único código-base que pode (na maioria das vezes) ser compartilhado entre Android, iOS e dispositivos Windows. Usar um estrutura multiplataforma pode ajudar seu aplicativo a manter a mesma aparência, sensação e experiência em plataformas de dispositivos, além de se beneficiar da implantação automática de atualizações e correções. Em vez de precisar entender uma variedade de linguagens de código específicas do dispositivo, o aplicativo é desenvolvido em um código-base compartilhado, geralmente em um idioma.

Embora as estruturas multiplataforma visem parecer e sentir o mais próximo possível dos aplicativos nativos, eles nunca serão tão integrados quanto um aplicativo desenvolvido nativamente e podem sofrer com velocidade reduzida e desempenho degradado. Além disso, as ferramentas usadas para criar aplicativos multiplataforma podem não ter todos os recursos oferecidos por cada plataforma de dispositivo diferente, potencialmente exigindo soluções alternativas.

Um código-base é geralmente composto por código de interface do usuário, para criar a interface do usuário como páginas, controles de botões, rótulos, listas, etc., e código lógico, para chamar serviços da Web, acessar um banco de dados, invocar capacidades de hardware e gerenciar estado. Em média, 90% disso pode ser reutilizado, embora geralmente haja alguma necessidade de personalizar o código para cada plataforma de dispositivo. Esta generalização depende em grande parte do tipo de aplicativo que você está construindo, mas fornece um pouco de contexto que, esperamos, ajudará em sua tomada de decisão.

Escolhendo um estrutura multiplataforma

.NET MAUI

  • Uma estrutura multiplataforma para criar aplicativos móveis e de área de trabalho nativos com C# e XAML.
  • Desenvolva aplicativos que podem ser executados no Android, iOS, macOS e Windows a partir de uma única base de código compartilhada, com acesso profundo a todos os aspectos de cada plataforma nativa a partir de uma única API unificada que permite uma experiência de desenvolvimento de gravação única e em qualquer lugar.
  • Compartilhe o layout e o design da interface do usuário entre plataformas.
  • Uma evolução de código aberto do Xamarin.Forms, estendida de cenários móveis para desktop, com controles de interface do usuário recriados para desempenho e extensibilidade.
  • Migrar do projetos Xamarin.Android para o .NET MAUI

React Native

  • Código de interface do usuário: JavaScript
  • Código lógico: JavaScript
  • O objetivo do React Native não é escrever o código uma vez e executá-lo em qualquer plataforma, mas aprender uma vez (o modo React) e escrever em qualquer lugar.
  • A comunidade adicionou ferramentas como Expo e Create React Native App para ajudar aqueles que desejam criar aplicativos sem usar o Xcode ou o Android Studio.
  • Semelhante ao .NET MAUI (C#), o React Native (JavaScript) chama elementos de interface do usuário nativos (sem a necessidade de escrever Java/Kotlin ou Swift).

PWAs (Aplicativos Web Progressivos)

  • Código de interface do usuário: HTML, CSS, JavaScript
  • Código lógico: JavaScript
  • PWAs são aplicativos da Web criados com padrões Standard para permitir que eles aproveitem os recursos da Web e dos aplicativos nativos. Eles podem ser criados sem um estrutura, mas algumas estruturas populares a serem consideradas são a Ionic e Apache Cordova.
  • Os PWAs podem ser instalados em um dispositivo (Android, iOS ou Windows) e podem funcionar offline graças à incorporação de um service-worker.
  • Os PWAs podem ser distribuídos e instalados sem uma loja de aplicativos usando apenas uma URL da Web. A Microsoft Store e a Google Play Store permitem que os PWAs sejam listados, a Apple Store atualmente não, embora ainda possam ser instalados em qualquer dispositivo iOS executando 12.2 ou posterior.
  • Para saber mais, confira esta introdução aos PWAs no MDN.

Desenvolvimento de jogos

O desenvolvimento de jogos para Android geralmente é exclusivo em relação ao desenvolvimento de um aplicativo Android padrão, pois os jogos normalmente usam lógica de renderização personalizada, geralmente escrita em OpenGL ou Vulkan. Por esse motivo, e por causa das muitas bibliotecas C disponíveis que dão suporte ao desenvolvimento de jogos, é comum que os desenvolvedores usem o C/C++ com o Visual Studio, juntamente com o Android Kit de Desenvolvimento Nativo (NDK), para criar jogos para Android. Introdução ao C/C++ para desenvolvimento de jogos.

Para obter mais diretrizes sobre o desenvolvimento de jogos para Android, consulte o site do desenvolvedor Android: Noções básicas sobre desenvolvimento de jogos. Você encontrará orientações sobre o uso de um mecanismo de jogo (como Unity, Unreal, Defold, Godot), bem como o uso de IDEs (como Android Studio ou Visual Studio).

Próximas etapas