Introdução ao desenvolvimento Android nativo no Windows

Este guia ajudará você a começar a usar o Windows para criar aplicativos Android nativos. Se preferir uma solução multiplataforma, consulte Visão geral do desenvolvimento Android no Windows para obter um breve resumo de algumas opções.

A maneira mais direta de criar um aplicativo Android nativo é usando o Android Studio com Java ou Kotlin, embora também seja possível usar C ou C++ para desenvolvimento Android se você tiver um propósito específico. As ferramentas SDK do Android Studio compilam seus arquivos de código, dados e recursos em um arquivo .apk de pacote Android de arquivo. Um arquivo APK contém o conteúdo de um aplicativo Android, e é o arquivo que os dispositivos com Android usam para instalar o aplicativo.

Instalar o Android Studio

O Android Studio é o ambiente de desenvolvimento integrado oficial para o sistema operacional Android do Google. Baixe a versão mais recente do Android Studio para Windows.

  • Se você baixou um arquivo .exe (recomendado), clique duas vezes para iniciá-lo.
  • Se você baixou um arquivo .zip, descompacte o ZIP, copie a pasta android-studio para a pasta Arquivos de Programas e abra a pasta bin > android-studio e inicie studio64.exe (para máquinas de 64 bits) ou studio .exe (para máquinas de 32 bits).

Siga o assistente de configuração no Android Studio e instale todos os pacotes SDK recomendados. À medida que novas ferramentas e outras APIs se tornam disponíveis, o Android Studio notificará com um pop-up. Outra opção é verificar se há atualizações selecionando Ajuda>Verificar se há atualizações.

Crie um novo projeto

Selecione Arquivo>Novo>Novo Projeto.

Na janela Escolha seu projeto, você poderá escolher entre estes modelos:

  • Atividade básica: cria um aplicativo simples com uma barra de aplicativos, um botão de ação flutuante e dois arquivos de layout: um para a atividade e outro para separar o conteúdo do texto.

  • Atividade vazia: cria uma atividade vazia e um único arquivo de layout com conteúdo de texto de exemplo.

  • Atividade de navegação inferior: cria uma barra de navegação inferior padrão para uma atividade. Para obter mais informações sobre isso, consulte a seção Componente de navegação inferior das Diretrizes de design de material do Google.

  • Modelos são usados comumente para adicionar atividades a módulos de aplicativos novos e existentes. Por exemplo, para criar uma tela de login para os usuários do seu aplicativo, adicione uma atividade com o modelo de Atividade de Logon. Para saber mais sobre como selecionar uma atividade e adicionar código de um modelo, consulte o Guia do desenvolvedor Android do Google.

Observação

O sistema operacional Android é baseado na ideia de componentes e usa os termos atividade e intenção para definir interações. Uma atividade representa uma tarefa única e focada que um usuário pode realizar. Uma atividade fornece uma janela para criar a interface do usuário usando classes baseadas na classe View. Há um ciclo de vida para atividades no sistema operacional Android, definido por seis retornos de chamada: onCreate(), onStart(), onResume(), onPause(), onStop() e onDestroy(). Os componentes da atividade interagem entre si usando objetos de intenção. A intenção define a atividade a ser iniciada ou descreve o tipo de ação a ser realizada (e o sistema seleciona a atividade apropriada para você, que pode até ser de um aplicativo diferente). Saiba mais sobre Atividades, ciclo de vida de atividades e Intenções no Guia do desenvolvedor Android do Google.

Java ou Kotlin

O Java tornou-se uma linguagem em 1991, desenvolvida pela então Sun Microsystems, mas agora pertencente à Oracle. Ele tornou-se uma das linguagens de programação mais populares e poderosas, com uma das maiores comunidades de suporte do mundo. O Java é baseado em classe e orientado a objetos, projetado para ter o menor número possível de dependências de implementação. A sintaxe é semelhante à do C e C++, mas tem menos recursos de baixo nível do que qualquer um deles.

O Kotlin foi anunciado pela primeira vez como uma nova linguagem de código aberto pela JetBrains em 2011 e foi incluído como uma alternativa ao Java no Android Studio desde 2017. Em maio de 2019, o Google anunciou o Kotlin como sua linguagem preferida para desenvolvedores de aplicativos Android. Portanto, apesar de ser uma linguagem mais recente, também tem uma forte comunidade de suporte e foi identificada como uma das linguagens de programação de crescimento mais rápido. O Kotlin é multiplataforma, com tipa estático e projetado para interoperar totalmente com Java.

O Java é mais amplamente utilizado para uma variedade maior de aplicativos e oferece alguns recursos que o Kotlin não oferece, como exceções verificadas, tipos primitivos que não são classes, membros estáticos, campos não privados, tipos curinga e operadores ternários. O Kotlin foi projetado especificamente para Android e recomendado pelo Android. Também oferece alguns recursos que o Java não oferece, como referências nulas controladas pelo sistema de tipos, sem tipos brutos, matrizes invariantes, tipos de função adequados (em oposição às conversões SAM do Java), variação do site de uso sem curingas, conversões inteligentes e muito mais. Encontre uma visão mais aprofundada da comparação com Java na documentação do Kotlin.

Nível de API mínimo

Você precisa decidir o nível mínimo de API para seu aplicativo. Isso determina para qual versão do Android ele oferecerá suporte. Níveis de API mais baixos são mais antigos e, portanto, geralmente aceitam mais dispositivos, mas níveis de API mais altos são mais recentes e, portanto, oferecem mais recursos.

Tela de seleção mínima de API do Android Studio

Selecione o link Ajude-me a escolher para abrir um gráfico de comparação mostrando a distribuição de suporte do dispositivo e os principais recursos associados à versão da plataforma.

Tela de comparação mínima de APIs do Android Studio

Suporte instantâneo a aplicativos e artefatos Androidx

Você pode perceber uma caixa de seleção para Oferecer suporte a aplicativos instantâneos e outra para Usar artefatos androidx nas opções de criação de projeto. O suporte instantâneo a aplicativos não é verificado, e o androidx é verificado como o padrão recomendado.

Aplicativos instantâneos do Google Play oferecem uma maneira de as pessoas experimentarem um aplicativo ou jogo sem instalá-lo primeiro. Esses aplicativos instantâneos podem aparecer na Play Store, na Pesquisa do Google, nas redes sociais e em qualquer lugar que você compartilhe um link. Ao marcar a caixa Oferecer suporte a aplicativos instantâneos, você está solicitando ao Android Studio que inclua o SDK de desenvolvimento instantâneo do Google Play ao seu projeto. Saiba mais sobre aplicativos instantâneos do Google Play no Guia do desenvolvedor do Android.

Artefatos AndroidX representam a nova versão da biblioteca de suporte Android e fornecem compatibilidade com versões anteriores entre versões do Android. O AndroidX fornece um namespace consistente começando com a cadeia de caracteres androidx para todos os pacotes disponíveis.

Observação

O AndroidX é agora a biblioteca padrão. Para desmarcar essa caixa e usar a biblioteca de suporte anterior, é necessário remover o SDK do Android Q mais recente. Consulte Desmarcar uso de artefatos Androidx no StackOverflow para obter instruções, mas primeiro observe que os pacotes antigos da Biblioteca de Suporte foram mapeados em pacotes androidx.* correspondentes. Para um mapeamento completo de todas as classes antigas e criar artefatos para as novas, consulte Migrando para o AndroidX.

Arquivos de projeto

A janela Projeto do Android Studio contém os seguintes arquivos (certifique-se de que a visualização do Android esteja selecionada no menu suspenso):

app > java > com.example.myfirstapp > MainActivity

A atividade principal e o ponto de entrada do seu aplicativo. Quando você cria e executa seu aplicativo, o sistema inicia uma instância dessa Atividade e carrega o layout.

app > res > layout > activity_main.xml

O arquivo XML que define o layout da interface do usuário (UI) da atividade. Ele contém um elemento TextView com o texto "Olá, Mundo"

app > manifests > AndroidManifest.xml

O arquivo de manifesto que descreve as características fundamentais do aplicativo e cada um dos seus componentes.

Gradle Scripts > build.gradle

Existem dois arquivos com este nome: "Project: My First App", para todo o projeto, e "Module: app", para cada módulo do aplicativo. Um novo projeto terá inicialmente somente um módulo. Use o build.file do módulo para controlar como o plug-in do Gradle cria seu aplicativo. Saiba mais sobre como configurar seu build no Guia do desenvolvedor para Android.

Usar C ou C++ para desenvolvimento de jogos em Android

O sistema operacional Android foi projetado para oferecer suporte a aplicativos escritos em Java ou Kotlin, beneficiando-se de ferramentas embutidas na arquitetura do sistema. Muitos recursos do sistema, como a interface do usuário do Android e o tratamento de intenção, são expostos apenas por meio de interfaces Java. Há alguns casos em que você pode querer utilizar código C ou C++ por meio do Android Native Development Kit (NDK), apesar de alguns dos desafios associados. O desenvolvimento de jogos é um exemplo, já que os jogos normalmente usam lógica de renderização personalizada escrita em OpenGL ou Vulkan e se beneficiam com várias bibliotecas C focadas no desenvolvimento de jogos. O uso de C ou C++ também pode ajudar você a extrair desempenho extra de um dispositivo para obter baixa latência ou executar aplicativos computacionalmente intensivos, como simulações de física. Porém, o NDK não é apropriado para a maioria dos programadores Android novatos. A menos que você tenha uma finalidade específica para utilizar o NDK, recomendamos manter o Java, o Kotlin ou uma das estruturas multiplataforma.

Para criar um novo projeto com suporte para C/C++:

  • Na seção Escolha seu projeto do assistente do Android Studio, selecione o tipo de projeto Native C++*. Selecione Avançar, preencha os campos restantes e selecione Avançar novamente.

  • Na seção Personalizar suporte a C++ do assistente, você pode personalizar seu projeto com o campo Padrão C++. Use a lista suspensa para selecionar qual padronização do C++ você quer utilizar. A seleção de Cadeia de ferramentas padrão usa a configuração padrão do CMake. Selecione Concluir.

  • Depois que o Android Studio criar seu novo projeto, você poderá encontrar uma pasta cpp no painel Projeto, que contém os arquivos de origem nativos, cabeçalhos, scripts de compilação para CMake ou ndk-build e bibliotecas pré-criadas que fazem parte do seu projeto. Também é possível encontrar um arquivo de origem C++ de amostra, native-lib.cpp, na pasta src/main/cpp/ que fornece uma função simples stringFromJNI() retornando a cadeia de caracteres "Hello from C++". Além disso, você deve ver um script de compilação do CMake, CMakeLists.txt, no diretório raiz do módulo necessário para criar sua biblioteca nativa.

Para saber mais, sobre como adicionar código C e C++ ao seu projeto, consulte o Guia do desenvolvedor para Android. Para encontrar exemplos de NDK do Android com integração C++, consulte o repositório de amostras NDK do Android no GitHub. Para compilar e executar um jogo em C++ no Android, use a API de serviços de jogo do Google Play.

Diretrizes de design

Os usuários de dispositivos esperam que os aplicativos pareçam e se comportem de uma determinada maneira, seja passando o dedo, tocando ou usando controles de voz, os usuários manterão expectativas específicas sobre a aparência do seu aplicativo e como utilizá-lo. Essas expectativas devem permanecer consistentes para reduzir a confusão e a frustração. O Android oferece um guia para essas expectativas de plataforma e dispositivo que combina a base do Google Material Design para padrões de elemenetos visuais e de navegação, juntamente com diretrizes de qualidade para compatibilidade, desempenho e segurança.

Saiba mais na documentação de design do Android.

Sistema Fluent Design para Android

A Microsoft também oferece orientação de design para proporcionar uma experiência perfeita em todo o portfólio de aplicativos móveis da Microsoft.

O Sistema Fluent Design para Android projeta e cria aplicativos personalizados que são nativamente Android enquanto ainda são exclusivamente fluentes.

Recursos adicionais