Dispositivos Móveis para as Massas: Atividades e Ícones no Ciclo de Vida de seu Aplicativo Android

Incluir navegação com estilo em seus aplicativos remotos Android

A classe Activity é a base de um aplicativo remoto Android e é o local em que também é possível fazer o ajuste fino das interações de seu aplicativo com o usuário e com o dispositivo móvel. Faça as coisas funcionarem exatamente como deseja no ciclo de vida de seu aplicativo, em seguida, use ícones e barras de ação para guia usuários pela navegação da UI e outros recursos do aplicativo.

Andrew Glover, CTO, App47

Andrew GloverAndrew Glover é desenvolvedor e entusiasta da tecnologia remota. É atualmente CTO da App47 e é fundador da estrutura easyb behavior-driven development (BDD). Também é coautor de três livros: Continuous Integration, Groovy in Action e Java Testing Patterns. É possível acompanhar o Andrew lendo seu blog e seguindo-o no Twitter.



31/Jul/2013

Introdução

Sobre esta Série

A distribuição de aplicativos remotos está explodindo, assim como o mercado para habilidades de desenvolvimento para dispositivos móveis. Esta série do developerWorks apresenta o cenário remoto para desenvolvedores que têm experiência com programação, mas são iniciantes em mobilidade.

Comece a codificar aplicativos nativos em código Java™ , em seguida, expanda seu kit de ferramentas para incluir linguagens JVM, estruturas de script, HTML5/CSS/JavaScript, ferramentas de terceiros e mais. Passo a passo, você irá dominar as qualificações necessárias para atender praticamente qualquer cenário de desenvolvimento para dispositivo móvel.

Dispositivos móveis são incrivelmente eficientes, muito mais do que computadores desktop que muitos desenvolvedores usavam para escrever nossos primeiros programas. Portanto, é fácil de esquecer que um dispositivo móvel ainda é um ambiente com restrição de recursos. Ao desenvolver um aplicativo remoto, nunca deve se esquecer as limitações do ambiente no qual é executado. Isso é geralmente verdadeiro ao considerar que seu aplicativo estará competindo por recursos do sistema com outros aplicativos — alguns deles mais cruciais para as atividades do dia a dia do usuário do que o seu.

Uma maneira de assegurar que seu aplicativo seja amplamente usado, é assegurar que converta recursos do sistema. No Android, um mecanismo para usar e converter recursos do sistema é a classe Activity . Quanto melhor entender o ciclo de vida desse belo burro de carga (que é muito semelhante a um Java Servlet), melhor poderá fazer um ajuste fino do uso de recursos e desempenho de seu aplicativo remoto Android.

Vamos iniciar com um rápido mergulho no ciclo de vida da classe Activity . Você aprenderá sobre os métodos que manipulam cada estágio do ciclo de vida de um aplicativo Android, brincando com eles em um aplicativo demo. Quando entender como esses métodos funcionam juntos, você estará preparado para usar recursos do sistema de forma sábia. Então, você trocará de marcha e atualizará o sistema de navegação de seu aplicativo demo para usar ícones de ação em vez de botões de menu para interação com o usuário. Ícones são bastante padrão em UIs de aplicativos remotos e dispositivos Android mais novos (versão 4.2.2 e superior) descontinuaram o menu de opções a favor de uma barra de ação. Saber como integrar esses recursos a seus aplicativos remotos Android terá uma boa serventia!


O ciclo de vida da classe Activity

O ciclo de vida de uma Activity é mapeado diretamente para o ciclo de vida de um aplicativo remoto Android. À medida que um usuário interage com seu aplicativo ou com o dispositivo que o hospeda, a plataforma Android executa retornos de chamada em uma instância Activity . Quando um usuário inicia seu aplicativo, uma Activity inicial executa um ciclo de vida definido; ela executa um estágio diferente do ciclo de vida quando o aplicativo está em segundo plano e ainda outra quando é encerrado. Figura 1 mostra o ciclo de vida da Activity Android em cada estágio de interação.

Figura 1. Ciclo de vida da Activity do Android
Ciclo de vida da Activity do Android

O ciclo de vida do aplicativo remoto Android consiste em quatro estágios:

  • Start
  • Pause and resume
  • Stop and restart
  • Destroy

Saiba sobre cada estágio e seus métodos de retorno de chamada (que podem ser implementados dentro de uma instância de Activity ) nas seções a seguir.

Iniciar o ciclo de vida da Activity

O Aplicativo Demo

Se você vem acompanhando esta série, então, já criou seu próprio aplicativo demo nos primeiro e segundo artigos desta série. Se não tiver um aplicativo demo, recomendo que crie um antes de continuar. Como alternativa, pode clonar o repositório Git para obter meu próprio aplicativo demo Overheard Word (consulte Recursos).

Nos artigos anteriores , você usou o método de retorno de chamada que corresponde a iniciar uma Activity, que é onCreate. Também pode estar familiarizado com onStart e onResume, dois métodos adicionais que são chamados na inicialização. Agora, considere esses métodos no contexto do ciclo de vida da Activity .

Em seu ambiente de desenvolvimento Eclipse Android, é possível substituir métodos facilmente selecionando a opção Override/Implement Methods... , conforme mostrado em Figura 2.

Figura 2. Substituindo os métodos de retorno de chamada do ciclo de vida da Activity
Substituindo os métodos de retorno de chamada do ciclo de vida da Activity

Em seguida, selecione os métodos onStart e onResume :

Figura 3. Escolhendo um retorno de chamada
Escolhendo um retorno de chamada

Agora use a classe Log do Android para inserir algumas trilhas de auditoria, como fiz em Lista 1.

Lista 1. Implementando retornos de chamada da activity do Android
@Override
protected void onResume() {
    super.onResume();
    Log.d("overheardword", "onResume Invoked");
}

@Override
protected void onStart() {
    super.onStart();
    Log.d("overheardword", "onStart Invoked");
}

É possível verificar os resultados disparando uma instância de seu aplicativo e vendo os logs via LogCat, conforme mostrado em Figura 4.

Figura 4. Instruções de depuração do LogCat
Instruções de depuração do LogCat

Criação de log do Android com LogCat

O Android vem com seu próprio sistema de criação de log, android.util.Log. Com essa classe útil, é possível criar log em vários níveis (como info, warn, debug etc.) e ver os logs por meio da ferramenta logcat que é enviada com o SDK do Android. NO Eclipse, você deve ver LogCat como uma guia, que pode ser usada para filtrar tags e, até mesmo, instâncias do aplicativo. LogCat também permite acessar logs em um dispositivo simplesmente conectando o dispositivo à entrada USB de seu desktop ou laptop.

Como provavelmente imaginou, onCreate é chamado na primeira vez que seu aplicativo é carregado, enquanto que onStart e onResume são úteis no contexto de outros estágios, como quando um aplicativo está em segundo plano e é reiniciado.

Pause and resume no ciclo de vida da Activity

Como dispositivos móveis geralmente hospedam muitos aplicativos, que competem de várias maneiras pela atenção do usuário, é importante que seu aplicativo saiba quando deixar outro aplicativo ocupar a tela do dispositivo e consumir mais de seus recursos. Às vezes, um usuário precisará receber uma chamada enquanto usa seu aplicativo ou seu aplicativo pode emitir um diálogo pop-up, como uma solicitação de informações ou uma mensagem de erro. Qualquer uma das duas ações irá obstruir parcialmente a Activity atual.

Quando uma Activity é parcialmente obstruída, o método onPause é chamado. Quando a Activity pausada recupera o foco, onResume é chamado. Um pause-and-resume significa que a atividade afetada foi parcialmente obstruídas, mas não completamente oculta.

Quando o aplicativo for completamente oculto, por exemplo, quando um usuário recebe um telefonema, onPause também é chamado, mas, neste caso, é seguido por onStop. Quando o aplicativo retornar ao primeiro plano, onRestart é chamado, seguido por onStart e, seguida, por onResume.

Vamos ver o que acontece quando você implementa onPause, onRestart e onStop. Se tiver um aplicativo Android com o qual já está trabalhando para esta série, inclua algumas instruções de log em seu código e dispare-o. Dê um toque no botão Home para ocultar completamente a instância e, em seguida, toque seu ícone para dispará-lo novamente. Você deverá ver uma série de métodos sendo chamada. Primeiro, verá onPause seguido por onStop. Ao clicar no ícone para disparar o aplicativo novamente, verá onRestart seguido por onStarte, seguida, por onResume.

Destruir uma Activity também é algo que ocorre no processo normal de executar um aplicativo. Por exemplo, é possível significar o término de uma instância da Activity chamando seu método finish . O que é chave aqui é que porque uma Activity está sendo encerrada, ela seguirá o mesmo ciclo de vida como se estivesse oculta, mas seu retorno de chamada final será onDestroy.

Na Lista 2, uso meu próprio aplicativo Overheard Word (consulte "Mobile for the masses: Take a swipe at it!" ou obtenha a fonte no Github) para demonstrar esse processo, chamando o método finish em um movimento de deslizar para cima.

Lista 2. Destruindo uma instância da Activity
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
   try {
       final SwipeDetector detector = new SwipeDetector(e1, e2, velocityX, velocityY);
       if (detector.isDownSwipe()) {
        return false;
       }else if (detector.isUpSwipe()) {
        finish();
       }else if (detector.isLeftSwipe()) {
        Toast.makeText(getApplicationContext(), "Left Swipe", Toast.LENGTH_SHORT).show();
       }else if (detector.isRightSwipe()) {
        Toast.makeText(getApplicationContext(), "Right Swipe", Toast.LENGTH_SHORT).show();
       }
   } catch (Exception e) {
       // nothing
   }
   return false;
}

Os métodos do ciclo de vida da Activity que mais provavelmente usará são onCreate, onRestart e onDestroy. Por exemplo, eu usei onRestart para atualizar um aspecto em uma visualização de UI do aplicativo e onDestroy para liberar conexões com um banco de dados, como SQLite, que é executado localmente em dispositivos Android.

Pode ser que ainda não esteja aparente, mas quando você começar a trabalhar com recursos externos — como serviços da web externos ou um sistema de arquivos ou banco de dados de um dispositivo — esses estágios do ciclo de vida se tornarão extremamente importantes.

Em seguida, vamos ver o que acontece quando usamos dois métodos gancho da ActivityonCreateOptionsMenu e onOptionsItemSelected— para implementar o comportamento do menu do aplicativo. Quando esses dois métodos estiverem sincronizados, vamos conectar sua funcionalidade a ícones para estilo extra na UI.


Navegação com menus e ações

Quando criei o projeto Overheard Word no Eclipse, a primeira Activity que defini tinha um método stub chamado onCreateOptionsMenu. Como pode imaginar, esse método cria um menu de opções. Em dispositivos Android mais antigos, o menu de opções é representado pelo botão Menu . Em dispositivos mais novos, é representado como uma série de pontos verticais, que são exibidos no próprio aplicativo. Os dispositivos Android mais novos não precisam ter um botão menu.

Em uma instância do emulador que representa um dispositivo mais antigo, você verá um botão chamado "Menu". Ao clicá-lo, uma instância do aplicativo irá exibir um menu de opções. Neste caso, vamos procurar opções para navegação. Se um usuário tiver pressionado o botão Home , por exemplo, ele ou ela deve ser algo como o que é mostrado em Figura 5.

Figura 5. Um item de menu não implementado
Um item de menu não implementado

Em um tablet, não há nenhum botão menu. Em vez de selecionar itens em um menu, é solicitado que os usuários iniciem várias ações. Esse aspecto mais novo da UI, conhecido como barra de ação, é mostrado em Figura 6.

Figura 6. Nova barra de ação do Android
Nova barra de ação do Android

Apesar de um botão de menu e uma barra de ação se comportarem de forma semelhante, a barra de ação está implementada somente em dispositivos mais novos. Como temos como destino uma versão mais antiga do Android (lembre-se de que aproximadamente 50 por cento de todos os dispositivos Android executam Gingerbread!), vou usar o botão menu mais familiar para propósitos de demonstração. Posteriormente mostrarei como atualizar seu código de navegação para implementar uma barra de ação, caso deseja ter como destino versões mais novas do Android e dispositivos correspondentes.

Criar um menu de opções

Uma boa primeira etapa para aperfeiçoar o Overheard Word para interação com o usuário mais eficiente é implementar o menu de opções que permite que um usuário saia do aplicativo. Sair do aplicativo é um estágio do ciclo de vida da Activity , então vamos usar métodos da Activity para implementar essa funcionalidade.

Lembre-se de que tudo relacionado à UI em um aplicativo Android corresponde a um arquivo XML, portanto, editar um arquivo XML de layout é como uma UI é definida. Os arquivos XML de um aplicativo Android residem em diretórios específicos na pasta res do projeto (por exemplo, arquivos de layout residem no diretório layout ).

Para um exercício rápido, dê uma olhada na implementação padrão do método onCreateOptionsMenu na atividade principal do Overheard Word — o que este código lhe diz?

public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.overheard_word, menu);
  return true;
 }

Se estiver pensando em procurar um arquivo XML overheard_word.xml reproduzido em um diretório de recurso denominado menu, então, você está no caminho certo para se tornar um especialista em Android!

Eu... desisto!

Em seguida, vamos editar o arquivo XML de recursos do menu para incluir um item de menu chamado quit. Inicie localizando o arquivo strings.xml em seu diretório res/values . Quando estiver lá, crie uma nova entrada como esta:

<string name="quit_menu">Quit</string>

Essa marcação define a palavra Quit que pode ser referida via o identificador quit_menu (isso facilita a internacionalização de aplicativos de uma boa maneira, por falar nisso). Em seguida, abra o arquivo overheard_word.xml no diretório menu . Nesse arquivo, altere o título para @string/quit_menu, vinculando, assim, a palavra Quit ao item de menu.

Agora, inicie seu emulador e pressione o botão Menu . Você deve ver um menu aparecer na parte inferior de sua tela com uma opção: Quit. Selecioná-la não fará nada, no entanto, pois ainda não foi implementada.

Vamos incluir o código de implementação para a opção Quit em um minuto. Mas primeiro vamos considerar outro elemento importante de qualquer parte funcional de um aplicativo remoto, que é sua aparência. Você pode ter observado que muitas UIS de dispositivos móveis hoje em dia (e mesmo um número crescente de UIs de aplicativos da web) usam ícones para navegação. Vamos ver o que acontece quando substituímos o botão de texto genérico por um ícone gratuito.


Ícones em design de UI de dispositivo móvel

Antes de entrar no desenvolvimento para dispositivo móvel, eu tocava em ícones, mas raramente usava-os em meus aplicativos corporativos. Quando aplicativos da web começaram a se tornar mais interativos, percebi que usava mais os ícones. Não foi até entrar no desenvolvimento para dispositivo móvel, no entanto, que eles realmente se tornaram importantes para mim.

Onde está meu ícone?

Hoje é fácil encontrar ícones disponíveis gratuitamente para uso em aplicativos de software livre e comerciais. Também é possível comprar os direitos de uso de alguns ícones por uma pequena taxa. Eu, pessoalmente, gosto de um pacote chamado Glyphish (consulte Recursos), que tem centenas de ícones para escolher e uma taxa de licenciamento extremamente razoável. Glyphish também oferece uma licença gratuita com atribuição. Sugiro que faça uma procura rápida e encontre um ícone que deseje usar para a demonstração nesta seção.

Se usar ícones para o design de UI de dispositivo móvel Android, é necessário estar bem ciente de resolução de dispositivo. Como o ecossistema do dispositivo Android é tão grande, seu aplicativo provavelmente será executado em uma ampla gama de dispositivos, de dispositivos com tela pequena de baixa resolução até tablets de alta resolução com telas de sete polegadas. Um ícone que exibe bem em um dispositivo de mão, pode parecer granulado em um tablet.

Felizmente, é possível controlar a aparência dos ícones de seu aplicativo em diferentes dispositivos. Dê uma olhada rápida no diretório res de seu aplicativo remoto Android. Você deverá ver alguns diretórios chamados drawable-something-pdi (em que "something" é uma série de letras). Esses diretórios correspondem a várias resoluções de telas de dispositivos. Colocar ícones dimensionados corretamente e outros arquivos de imagem nesses diretórios irá assegurar que seus ícones sejam exibidos corretamente em diferentes tipos de dispositivos.

Para um dispositivo com resolução ultra-alta, por exemplo, o Android irá procurar ícones no diretório drawable-xxhdpi . Um ícone ativador nesse diretório deve ter 96 x 96 pixels e pelo menos 320 dpi. UM ícone ativador no diretório drawable-ldpi deve ter 36 x 26 pixels e 120 dpi. Há também a opção de criar um diretório padrão drawable , que o Android usará se puder localizar um arquivo correspondente para uma determinada resolução de ícone.

Para simplificar as coisas, vou criar um diretório drawable para meu aplicativo Overheard Word. Nele, colocarei um arquivo de ícones 26 x 26 (um .png) que desejo usar para minha opção quit.

Figura 7. Incluindo um ícone em um diretório drawable
Incluindo um ícone em um diretório drawable

Minha próxima etapa é fazer referência a esse ícone em meu menu de opções, que faço atualizando o item menu em meu arquivo overheard_word.xml desta forma:

android:icon="@drawable/quit_icon"

Se estiver me acompanhando, também deve atualizar o id do mesmo elemento. Dê a ele um valor de cadeia de caractere descritivo como este:

android:id="@+id/quit_item"

Ter um valor de cadeia de caractere descritivo facilmente entendido será útil quando chegarmos a nossa próxima etapa, que é implementar o comportamento de quit dentro do método onOptionsItemSelected . Poderemos fazer referência ao item de menu no caso de uma seleção, via o ID de quit_item. Por ora, dispare seu emulador e pressione o botão Menu . Acho que gostará do que verá!

Figura 8. Belo ícone! (cortesia da Glyphish)
Belo ícone! (cortesia da Glyphish)

Implementando comportamento do menu

Agora tenho um ícone com uma bela aparência para meu item de menu Quit (e espero que você tenha um correspondente para seu próprio aplicativo), mas ainda preciso incluir o código que indica a meu aplicativo o que fazer quando esse botão for tocado.

Implementar qualquer comportamento no menu de opções começa com a substituição do método onOptionsItemSelected . Portanto, substitua esse método e, em seguida, atualize seu código para ficar semelhante ao meu abaixo (mas lembre-se de ajustar o ID do item de menu para seu próprio aplicativo):

Lista 3. Manipulando seleção do item de menu
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.quit_item:
        this.finish();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

Observe que esta é apenas uma simples instrução switch . Se o id de quit_item for selecionado, o método finish será chamado, essencialmente encerrando o aplicativo

Experimente esse novo código em seu emulador: toque o botão Menu , pressione a opção quit (X) e acompanhe o que acontece no LogCat. Você deve ver um ciclo de vida da Activity completo executado por seus estágios: onPause seguido por onStop e, seguida, por onDestroy.


Barras de ação no Android 3.x

Como mencionei anteriormente, as versões mais novas do Android (Honeycomb e posterior) renegam o menu de opções a favor de uma barra de ação. Dispositivos mais novos nem precisam ter um botão Menu , então, vale a pena entender como a navegação de seu aplicativo (ou outra funcionalidade) funcionará em uma barra de ação.

Não é necessário muito trabalho para assegurar que sua funcionalidade de navegação, codificada para um menu de opções, também funcionará com uma barra de ação. Você já implementou todos os métodos necessários; o que falta é fazer algumas mudanças em seus recursos XML.

Primeiro, é necessário criar uma instância do emulador que imite um dispositivo que usa uma barra de ação, não um botão menu. A maneira mais fácil de fazer isso é emular um tablet. Dispare o aplicativo de linha de comando do Android SDK Manager a partir da instalação do Android SDK (é o comando android localizado no diretório tools ). Quando o SDK Manager estiver ativado e em execução, selecione a opção Manage AVDs... no menu Tools . Isso apresentará um diálogo no qual é possível definir um novo emulador ou Android Virtual Device (ou AVD). Selecione 7.0'' WSVGA (Tablet) (1024 x 600: mdpi), em seguida, configure o destino do emulador para pelo menos o Android 4.2.2. Com isso, você terá um emulador que não responde ao botão menu, conforme mostrado em Figura 9.

Figura 9. Criando um emulador de tablet
Criando um emulador de tablet

Em seguida, inicie seu aplicativo nessa instância do tablet. Você deve ver uma linha vertical de três pontos no canto inferior direito. Tem uma boa aparência, não tem? Por padrão, o Android retém o comportamento do menu, mesmo nas exibições mais novas. Ao atualizar recursos XML do aplicativo, é possível atualizar a aparência e o comportamento da barra de ação que é mais natural.

Comece com o arquivo AndroidManifest.xml do aplicativo, onde irá atualizar o destino do SDK:

<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="17" />

Em seguida, entre em Properties de seu projeto no Eclipse e atualize o Project Build Target para qualquer versão do Android superior ao Android 4.2.2. Clique em OK e deixe seu projeto se recriar. Em seguida, localize o arquivo XML do menu no diretório menu . Atualize-o da seguinte forma, que manterá a definição item para Quit.

android:showAsAction="always"

Por fim, se seu projeto ainda não tiver dois subdiretórios no diretório res denominados values-v11 e values-v14, crie esses diretórios. Em seguida, em values-v11, inclua o arquivo XML a seguir:

<resources>
 <style name="AppBaseTheme" parent="android:Theme.Holo.Light"></style>
</resources>

No diretório values-v14 , inclua este arquivo:

<resources>
 <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>
</resources>

Agora reiniciamos o emulador e você deve observar seu novo ícone no canto superior direito:

Figura 10. Uma barra de ação com ícones
Uma barra de ação com ícones

Agora, volte ao arquivo menu no diretório menu no qual o item quit está definido e altere showAsAction para never. Execute seu aplicativo novamente e deverá ver aqueles mesmos três pontos verticais no canto superior direito.

Não se esquecer de reconfigurar

Observe que se você deseja manter o destino de seu aplicativo como Gingerbread, será necessário reconfigurar o destino de desenvolvimento de seu projeto e desfazer as mudanças XML a partir dessa seção. Essas mudanças não são compatíveis com versões anteriores!


Mais diversão com ícones

Até o momento você incluiu uma opção de menu em seu aplicativo tendo como destino Gingerbread, viu que converte bem para dispositivos mais novos que implementam a barra de ação e aprendeu como atualizar essa funcionalidade, se optar por isso, com apenas algumas atualizações no XML de seu aplicativo.

Agora, vamos solidificar o que você aprendeu sobre ícones. Você fez o trabalho pesado de incluir um ícone no menu de navegação de seu aplicativo, portanto, não deve ser complicado atualizar seu ícone principal . Esse ícone simboliza o aplicativo para o usuário, portanto, saber como atualizá-lo e customizá-lo é importante.

Vou atualizar o ícone para Overheard Word e será possível acompanhar com seu próprio aplicativo. Novamente, uma procura rápida na Internet apresenta uma abundância de sites de ícones. Entre eles, encontrei um conjunto de ícones interessante e um ícone específico que realmente me agrada:

Figura 11. Um novo ótimo ícone
Um novo ótimo ícone

Lembre-se de que ícones são renderizados de forma diferente em diferentes perfis de dispositivos. Como quero assegurar que os usuários obtenham uma verdadeira boa impressão do Overheard Word, faz sentido acertar a resolução do ícone para uma gama de dispositivos alvo. Felizmente, conheço um site bastante útil para isso.

Investindo em ícones

Tudo bem usar um ícone gratuito para propósitos de demonstração, mas aprendi que realmente vale a pena investir em ícones customizados para aplicativos profissionais. Um ícone (ou um conjunto de ícones) expressa a marca de seu aplicativo, portanto, deve ser exclusivo. Se for genérico, ou obviamente um trabalho amador, o que isso leva os usuários a concluírem sobre seu aplicativo?

Android Asset Studio (consulte Recursos) é um projeto Google Code que tem muitos utilitários úteis para desenvolvedores do Android. Um que uso muito é o Launcher Icons. Tudo que faço é clicar no link Launcher Icons e fazer upload do meu ícone. O utilitário gera arquivos de ícones do tamanho correto para vários perfis de dispositivos, que eu, então, transfiro por download em um arquivo zip. O arquivo tem quatro diretórios, cada um contendo uma versão de resolução e tamanho específica do arquivo transferido por upload.

Figura 12. Launcher Icons dimensionou imagens de ícones corretamente para o Android
Launcher Icons dimensionou imagens de ícones corretamente para o Android

Em seguida, copio o arquivo chamado ic_launcher.png de cada diretório para o mesmo subdiretório exato na pasta res do meu aplicativo. Observe que nesse processo, provavelmente estarei substituindo o arquivo de ícone original gerado pelo Eclipse.

Por fim, executo meu aplicativo novamente e espero até que apareça na instância do meu emulador. Pressiono o botão Home e verifico os resultados: um ícone de aplicativo bonito que significa (para mim, pelo menos) que o OverHeard Word é o aplicativo mais interessante no dispositivo de qualquer usuário!

Figura 13. Agora, isso é icônico!
Agora, isso é icônico!

Em conclusão

Neste artigo, você obteve uma visão de alto nível do ciclo de vida de uma Activity e aprendeu como trabalhar com ela para melhorar o uso de recursos do dispositivo por seu aplicativo. Também aprendeu como definir e implementar construções de navegação usando menus e barras de ação e como substituir botões de texto por ícones.

Tudo que você aprendeu neste artigo é imprescindível para desenvolver aplicativos Android. O desenvolvimento para dispositivo móvel no Android é fácil de entender e, é claro, é muito divertido, mas espero que você também veja que é um paradigma diferente do desenvolvimento Java com o qual pode estar acostumado. Com centenas de milhares de aplicativos disponíveis no Google Play e em outras lojas de aplicativos, os aplicativos que chegam ao topo geralmente são bem planejados, cuidadosamente projetados e habilidosamente codificados. Há muito a se aprender!

Recursos

Aprender

Obter produtos e tecnologias

  • O repositório Github Overheard Word contém o código-fonte usando no artigo.
  • Consulte também Gesticulate: a detecção de deslizar os dedos no Android simplificada.
  • Experimente o gerador de ícones Android Launcher Icons usado no artigo.
  • Ícones para seus aplicativos remotos: Visite ArtDesigner e Glyphish para obter uma seleção de ícones customizados licenciados para aplicativos remotos e da web ou navegue por milhares de ícones gratuitos usando o Icon Finder online.
  • Download Android: O SDK do Android fornece as bibliotecas de API e as ferramentas de desenvolvedor necessárias para desenvolver, testar e depurar aplicativos para o Android.
  • Download IBM developer kits: Atualize seu sistema e obtenha as ferramentas e tecnologias mais recentes aqui.

Discutir

  • Participe da comunidade do developerWorks. Conecte-se a outros usuários do developerWorks enquanto estiver explorando os blogs, fóruns, grupos e wikis direcionados a desenvolvedores.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Desenvolvimento móvel, Tecnologia Java, Software livre
ArticleID=939132
ArticleTitle=Dispositivos Móveis para as Massas: Atividades e Ícones no Ciclo de Vida de seu Aplicativo Android
publish-date=07312013