Recursos ocultos do desenvolvimento do Android?

121

Estou surpreso que ainda não exista uma publicação de Recursos ocultos do Android na série de Recursos ocultos que venho acompanhando há algum tempo.

A série Hidden Features é ótima para pessoas que são novas em um determinado idioma. Ele mostra as cordas e alguns truques valiosos, tudo em um só lugar. Eu acho que é uma ideia brilhante. Até os especialistas às vezes encontram truques sobre os quais nunca ouviram falar.

Estou iniciando o desenvolvimento do Android e gostaria de saber sobre seus recursos, dicas, truques e armadilhas ocultas.

Então, aqui vai: quais são alguns recursos ocultos do Android ?

Artem Russakovskii
fonte

Respostas:

105

Espero que não haja muitos recursos ocultos ocultos - mas aqui estão alguns dos recursos menos conhecidos e não intuitivos disponíveis para Android que definitivamente tornarão sua vida mais fácil e seus aplicativos melhores.

  • Todo o código-fonte da plataforma e todos os aplicativos nativos que não são do Google estão disponíveis para você navegar, baixar, emprestar ou roubar do projeto Android Open Source .
  • Usando a estrutura de recursos , a criação de versões localizadas do seu aplicativo é tão simples quanto adicionar uma nova subpasta anotada (por exemplo, values-fr) que contém um arquivo XML com seqüências de caracteres em um idioma diferente (por exemplo, francês). O Android escolherá a pasta certa em tempo de execução para você.
    • A mesma estrutura de recursos permite que você use layouts alternativos para diferentes configurações de hardware, densidades de pixel da tela e dispositivos de entrada apenas largando-os na pasta nomeada.
  • Desde o Android 1.6, seu aplicativo pode produzir resultados que aparecerão nos resultados de uma pesquisa na Caixa de pesquisa rápida da tela inicial. Isso é conhecido como sugestões de pesquisa personalizadas .
  • Usando Intents e Intent Filters, seus aplicativos podem fazer e atender solicitações anônimas para que uma ação seja concluída (por exemplo, o aplicativo Where pode solicitar uma reserva de tabela no aplicativo Open Table ).
    • Eles podem solicitar um aplicativo desconhecido para concluir uma ação sem precisar saber quais aplicativos podem atender a esse pedido
    • Seu aplicativo pode atender solicitações de aplicativos desconhecidos para concluir ações sem precisar saber quais aplicativos farão as solicitações. Jogue dessa maneira e você pode criar o aplicativo "padrão" do Twitter ou aplicativo de reserva etc.
  • Usando os alarmes, você pode definir seu aplicativo para concluir tarefas em horários predeterminados, mesmo se ele não estiver em execução.
    • Você pode economizar bastante bateria usando o método setInexactRepeating para agendar eventos regulares (como pesquisas ou atualizações do servidor). Ele sincronizará os alarmes de vários aplicativos para que ocorram ao mesmo tempo, em vez de ad-hoc.
  • Usando a estrutura Preferências , você pode criar telas de configurações para seus aplicativos no mesmo estilo que as configurações do sistema. Você pode até incorporar telas de configurações do sistema (por exemplo, Segurança e Localização) na hierarquia de configurações do seu aplicativo.
  • Usando as APIs AudioTrack e AudioRecord , você pode transmitir dados de áudio diretamente de e para os buffers de áudio PCM.
Reto Meier
fonte
35

As ferramentas no diretório / tools do SDK merecem uma menção:

  • nosso designer ficou particularmente impressionado com o draw9patchque ajudou a projetar botões extensíveis. Ele me deu recursos de lá, e eu mudei de uma cor de fundo para um drawable de 9 patches e agora temos um botão personalizado, cantos arredondados etc. esticados para caber no texto.
  • ddms, que também é integrado ao plug-in Eclipse. É imensamente poderoso, mas eu o uso para tirar capturas de tela.
  • adb- interaja com seu dispositivo ou emulador na linha de comando. Eu uso isso para acompanhar os logs do meu dispositivo em uma janela de terminal na área de trabalho, embora eu tenha achado útil para instalar e desinstalar aplicativos que estão se comportando mal.
  • sqlite3 - ótimo para interagir com um banco de dados instalado e experimentar consultas.
  • apkbuilder, zipalign, aapt- grande para correr sem cabeça constrói
  • monkey para testar seu aplicativo de maneira imprecisa.

Eu também destacaria os três Projetos para desempenho , capacidade de resposta e uniformidade , mas também gostaria de adicionar um quarto código para a vida útil da bateria .

Embora o Javadoc possa ser um pouco esparso às vezes, não ajuda muito ter a fonte ali para você olhar.

Também é muito útil ter vários aplicativos de amostra escritos pelos Googlers para criar, examinar e ver como eles o fizeram.

jamesh
fonte
1
Você perdeu outro layout de ferramenta interessante.
100rabh
Outra boa falta que eu uso o tempo todo é o hierarchyviewer.
Artem Russakovskii
25

Acho que vou começar então.


Um bom recurso oculto, eu acho, são as Melhores Práticas da documentação do Android. Ele lista muitas ótimas dicas para projetar aplicativos rápidos e responsivos.

As seções de práticas recomendadas são:

  • Suporte a várias telas (vários tamanhos e resoluções)
  • Diretrizes da interface do usuário
    • Ícone do Design
    • App Widget Design
    • Design de atividades e tarefas
    • Design do menu
  • Projetando para o desempenho
  • Projetando para a capacidade de resposta
  • Projetando para a perfeição

Outro recurso oculto é que esses documentos estão disponíveis offline como parte do SDK. No começo, eu carregava algumas páginas todos os dias para minha viagem de trem pela manhã, mas não precisava mais fazer isso depois de encontrá-las no diretório SDK.


Se você usa o Eclipse, notará que ele não formata muito bem os arquivos XML e, quando o faz, é muito inconsistente (às vezes divide os atributos por novas linhas, às vezes não). Para corrigi-lo, você pode pressionar Ctrl-Shift-F (formato automático). As regras que Ctrl-Shift-F usa estão em Janela-> Preferências-> XML-> Arquivos XML-> Editor.

Artem Russakovskii
fonte
1
O último certamente fará parte do meu fluxo de trabalho. Isso me incomodou na última semana ... Obrigado !!
Mikle
14

O Android suporta XML <shape>'s, que podem ser usados ​​como drawables do tipo SVG. Infelizmente não há documentação para eles. Esta é a melhor informação que pude encontrar:

http://escomic.net/217

Timmmm
fonte
4
Há também idunnolol.com/android/drawables.html com uma documentação completa sobre todos os recursos xml para formas. As formas podem ser muito importantes para executar planos de fundo redondos de courner que mudam de cor quando clicados ou fazem gradientes definidos em xml em vez de desenháveis ​​de fundo personalizados.
Janusz
é possível adicionar várias formas a um documento xml. por exemplo, alguns círculos e retângulos?
skyfoot #
13

Também com relação às práticas recomendadas, você pode conferir o estilo de codificação Android:

http://source.android.com/source/code-style.html

bem como o código eclipse e importa formatadores (android-formatting.xml, android.importorder), encontrados no código-fonte da plataforma em development / ide / eclipse

dljava
fonte
2
Há muitos obstáculos a serem percorridos para obter o código apenas para o formatador Eclipse, então encontre-o aqui: google.com/codesearch/p?hl=en#CRBM04-7BoA/ide/eclipse/…
idbrii
7

O hierarchyviewer em / tools permite depurar / analisar seu layout de exibição: preenchimento, posicionamento, hierarquia de exibição etc.

Isso me salvou muito tempo, algumas vezes, ao tentar descobrir por que as coisas são definidas da maneira que são.

Ivo van der Wijk
fonte