1. Algumas palavras
2. Detalhes
Android SDK
Coloque seu SDK Android no diretório doméstico ou em outros lugares que não estão relacionados ao aplicativo. Alguns IDEs associarão o SDK ao instalar e colocar o SDK no mesmo diretório do IDE. Quando você precisar atualizar (reinstalar) o IDE ou substituir o IDE, você encontrará algo ruim. Além disso, se o seu IDE estiver em execução em uma conta de usuário em vez de root, não coloque o SDK no diretório no nível do sistema, caso contrário, a permissão do sudo será necessária ao usá-lo.
Sistema de construção
A escolha padrão é gradle. Ant tem muitas restrições e é muito grande. Com o Gradle, você pode fazer isso facilmente:
- Compilar diferentes sabores ou variantes de aplicação
-Criar as classes simples -Script Tarefas
-Manage e baixe dependências
-Custom Keystores
-etc
O plug-in gradle para Android também é designado pelo Google como o novo sistema de compilação padrão, e o Google continua a atualizá-lo.
Estrutura do projeto
Existem duas opções populares: a antiga estrutura do projeto ADT e Eclipse ADT; A nova estrutura do projeto Gradle & Android Studio. Você deve escolher o último. Se o seu projeto usar uma estrutura antiga, substitua -o.
Estrutura antiga
Estrutura antiga ├─ ASTESS├─ LIBS├─ RES├─ SRC│ └─ COM/FUTURICE/PROJETO ├─ AndroidManifest.xml├─ Build.gradle├ulto.Properties└─ Proguard-Rules.Pro
Nova estrutura
new-structure ├─ library-foobar├─ app│ ├─ libs│ ├─ src│ ├─ androidTest│ │ │ └─ java│ │ │ └─ com/futurice/project│ │ └─ main│ ├─ java│ │ └─ main│ ├─ java│ │ └─ com/futurice/project│ │ ├─ res│ │ └─ AndroidManifest.xml│ ├─ Build.gradle│ └─ proGuard-Rules.pro├─ Build.gradle└─ Settings.gradle
A principal diferença entre a nova estrutura é a divisão do 'conjunto de código -fonte' (principal, Androidtest), que é o conceito da Gradle.
O uso do "aplicativo" de nível mais alto é útil para distinguir seu aplicativo de outros projetos de biblioteca referenciados pelo seu aplicativo (como a Biblioteca-Foobar). Em seguida, o Setting.Gradle mantém o índice do aplicativo nessas bibliotecas e o app/build.gradle pode apontar para essas bibliotecas.
Configuração gradle
Arquitetura Geral Siga o Guia do Google no Gradle for Android;
Pequenas tarefas (scripts), você pode usar o gradle para criar pequenas tarefas em vez de shell, python ou perl, etc. Para detalhes, consulte a documentação da gradle;
senha. No seu aplicativo Build.gradle, você precisa definir o SigningConfigs para publicar compilação. Os detalhes são os seguintes:
Não escreva como o seguinte, ele aparecerá no seu sistema de controle de versão:
SigningConfigs {Release {storefile file ("myapp.keystore") storepassword "senha123" keyalias "theKey" keypsassword "senha789"}}Em vez disso, você deve criar um arquivo gradle.properties que não será adicionado ao sistema de controle de versão.
Keystore_password = senha123key_password = senhor789
Este arquivo será importado automaticamente pela Gradle, para que você possa usá -lo no Build.gradle como este:
SigningConfigs {release {try {storefile file ("myapp.keystore") storepasswordkeystore_password keyalias "theKey" keypswordkey_password} catch (ex) {throwenMvalidUSerDataException ("você deve desviar keystore_password e keymword em gradle.Prle.Prle.(Se estiver usando o maven, consulte o documento original)
Biblioteca
Jackson é uma biblioteca Java que pode converter objetos e dados JSON entre si. GSON também é uma escolha igualmente boa. No entanto, achamos que o JSCKSON é melhor porque suporta várias maneiras de lidar com JSON: streaming, modelo de árvore de memória e unidade de ligação de dados JSON-POJO. Mas lembre -se, Jackson é maior que o GSON, então você deve considerá -lo como quiser, se quiser evitar o limite de 65 mil métodos, é melhor usar o GSON. Outras opções: JSON-SMART e BOON JSON
Rede, cache e fotos. Use voleio ou modernização. O voleio também pode ser usado para carregar e cache imagens. Se você escolher retrofit, poderá usar o Picasso para carregar e cache imagens. Em seguida, use o OKHTTP para executar uma solicitação HTTP válida. Esses três tipos: Retrofit, Picasso e Okhttp vêm da mesma empresa, então eles se complementam. Okhttp pode ser usado para se conectar ao voleio.
O RXJava é uma biblioteca de programação responsiva, em outras palavras, lida com eventos assíncronos. (Para detalhes, consulte o documento original)
Retolambda é uma biblioteca Java que ajuda a usar expressões Lambda no Android ou em outras plataformas antes do JDK8. (Para detalhes, consulte o documento original)
Por fim, lembre -se das limitações do método DEX e não use muitas bibliotecas. (Aplicativos do Android, quando embalados em arquivos DEX, têm um limite máximo: 65535 Métodos de referência [1] [2] [3]. Se você exceder o limite, ocorrerá um erro grave. Portanto, não use muitas bibliotecas, use o Libra de Method-Methods, porque as aulas de uso para manter o limite, especialmente o uso da Libra.
Atividades e fragmentos
Os fragmentos devem ser a opção padrão para a sua interface da interface do usuário do Android. Fragmentos podem ser reutilizados em seu aplicativo. Recomendamos o uso de fragmentos em vez de atividades para desenhar interfaces com base nos seguintes pontos:
Estrutura do pacote Java
A estrutura Java nos aplicativos Android está próxima da estrutura MVC (Model-View-Controller). No Android, fragmento e atividade são na verdade classes de controlador. De outra perspectiva, eles fazem parte da interação do usuário, ou seja, pertencem à classe de exibição.
Portanto, é difícil para nós distinguir estritamente se um fragmento (ou atividade) é um controlador ou uma visão. Portanto, da perspectiva dos pacotes Java, é melhor colocar fragmentos em seus próprios pacotes de fragmentos e, em seguida, a atividade está no pacote mais avançado (siga as sugestões colocadas acima). Obviamente, se você deseja ter 2 ou mais atividades, cria um pacote de atividades.
Dessa forma, toda a estrutura parece uma estrutura típica de MVC. Um pacote de modelos contém POJOS, que é usado para converter dados JSON obtidos pela interface da API, e um pacote de visualizações contém visualizações, notificações, vistas de barra de ação, widgets etc. Os adaptadores são uma camada intermediária localizada entre dados e vistas. No entanto, eles geralmente precisam emitir a exibição de visualização através do getView (), para que você possa colocar adaptadores no local do subpackage do pacote de visualizações.
Algumas classes de controlador em nível de aplicativo que pertencem apenas ao sistema Android devem ser colocadas no pacote de gerentes. Várias classes de processamento de dados, como DateUtils, podem ser colocadas no pacote Utils. As classes que interagem com o servidor de segundo plano devem ser colocadas no pacote de rede.
Em suma, a arquitetura geral de interagir com o servidor para interagir com o usuário pode ser projetada da seguinte maneira:
com.futurice.project ├─ Rede ├─ Modelos ├─ Gerentes ├─ Utils ├— Fragmentos ├─ Visualizações ├─ Adaptadores ├─ ActionBar ├— Widgets ├ ├— Notificações
Nomeação do arquivo de recursos
Siga a Convenção de Prefixo, semelhante ao tipo_foo_bar.xml, como: fragment_contact_details.xml, view_primary_button.xml, atividade_main.xml.
Organize arquivos de layout
Se você não sabe como normalizar um arquivo XML de layout, pode consultar as seguintes convenções:
<? xml versão = "1.0" coding = "utf-8"?> <linearlayout xmlns: Android = "http://schemas.android.com/apk/res/android" xmlns: ferramentas = "http://schem.android.com/ont.com/onts" e " Android: Layout_Height = "Match_Parent" Android: Layout_Height = "Match_Parent" Android: Orientation = "Vertical"> <TextView Android: id = "@+id/name" Android: Layout_width = "Match_parent": Layout_Height_Height = WRAPTENT_CONTENTE Android: text = "@string/name" style = "@style/goskText"/> <incluir layout = "@layout/reusable_part"/> </leinearlayout>