A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

+ Curso de Android 19ª Jornada de Cursos. + 5. Criando aplicações Android (cont.)

Apresentações semelhantes


Apresentação em tema: "+ Curso de Android 19ª Jornada de Cursos. + 5. Criando aplicações Android (cont.)"— Transcrição da apresentação:

1 + Curso de Android 19ª Jornada de Cursos

2 + 5. Criando aplicações Android (cont.)

3 + Mudança de Layout Project Name: TrocaLayouts Package Name : br.ufpe.cin.android.applayout Create Activity: AppLayout Application Name: Mudando de layouts Min SDK Version: 10

4 + Mudança de Layout

5 + No arquivo main.xml, adicionaremos o elemento: Button: id: layout_width: “fill_parent” text: “Ir pata tela 2” Crie um arquivo “tela2.xml” na pasta res/layout e adicione os seguintes elementos: TextView text: “Você está na tela 2” Button id: layout_width: “fill_parent” text: “Ir pata tela principal”

6 + Mudança de Layout AppLayout.java public void CarregaTelaPrincipal() { setContentView(R.layout.main); Button bttela2 = (Button) findViewById(R.id.bttela2); bttela2.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { CarregaTela2(); } }); }

7 + Mudança de Layout public void CarregaTela2() { setContentView(R.layout.tela2); Button bttelaprincipal = (Button) findViewById(R.id.bttelaprincipal); bttelaprincipal.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { CarregaTelaPrincipal(); } }); }

8 + Mudança de Layout public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); CarregaTelaPrincipal(); }

9 + Aplicação de cadastro Project Name: AplicacaoDeCadastro Package Name : br.ufpe.cin.android.appcadastro Create Activity: AppCadastro Application Name: Aplicação de Cadastro Min SDK Version: 10

10 + Aplicação de cadastro

11 + main.xml Button Id: layout_width: “fill_parent” text: “Cadastrar pessoa” Button Id: layout_width: “fill_parent” text: “Listar pessoas cadastradas”

12 + Aplicação de cadastro cadastro.xml TextView text: “Módulo de cadastro. Digite seus dados abaixo:” TextView text: “Nome:” EditText id: layout_width: “fill_parent” TextView text: “Profissão:” EditText id: layout_width: “fill_parent” TextView text: “Idade:” EditText id: layout_width: “fill_parent”

13 + Aplicação de cadastro cadastro.xml LinearLayout orientation: horizontal layout_widith: fill_parent gravity: center Button id: text: “Cadastrar pessoa” Button id: text: “Cancelar”

14 + Aplicação de cadastro listacadastrados.xml TextView text: “Lista de pessoas cadastradas.” textColor: “#ffffff” textSize: “20sp” LinearLayout orientation: horizontal layout_widith: fill_parent id: TextView text: “Nome:” textColor: “#ffff00” textSize: “20sp” TextView text: “” TextColor “#ffffff” textSize “20sp” id:

15 + Aplicação de cadastro listacadastrados.xml LinearLayout orientation: horizontal layout_widith: fill_parent id: TextView text: “Profissao:” textColor: “#ffff00” textSize: “20sp” TextView text: “” TextColor “#ffffff” textSize “20sp” id:

16 + Aplicação de cadastro listacadastrados.xml LinearLayout orientation: horizontal layout_widith: fill_parent id: TextView text: “Idade:” textColor: “#ffff00” textSize: “20sp” TextView text: “” TextColor “#ffffff” textSize “20sp” id:

17 + Aplicação de cadastro listacadastrados.xml LinearLayout orientation: horizontal layout_widith: fill_parent gravity: center id: Button id: text: “Voltar” Button id: text: “Avançar” Button id: layout_width: “fill_parent” text: “Menu Princiapal”

18 + Aplicação de cadastro Registro.java public class Registro { String nome; String profissao; String idade; Registro Prox; Registro Ant; }

19 + Aplicação de cadastro AppLayout.java void CarregaTelaPrincipal () { setContentView(R.layout.main); Button btcadpess = (Button) findViewById(R.principal.btcadastrarpessoas); Button btlistapess = (Button) findViewById(R.principal.btlistarpessoas); btcadpess.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ CarregaTelaCadastro(); }}); btlistapess.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ CarregaListaPessoas(); }}); }

20 + Aplicação de cadastro void CarregaTelaCadastro() { setContentView(R.layout.cadastro); Button btcadastrar = (Button) findViewById(R.cadastro.btcadastrar); Button btcancelar = (Button) findViewById(R.cadastro.btcancelar); btcadastrar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ try { reg = new Registro(); ednome = (EditText)findViewById(R.cadastro.ednome); edprof = (EditText)findViewById(R.cadastro.edprofissao); edidade = (EditText)findViewById(R.cadastro.edidade);

21 + Aplicação de cadastro reg.nome = ednome.getText().toString(); reg.profissao = edprof.getText().toString(); reg.idade = edidade.getText().toString(); if(pri==null) pri=reg; reg.Ant = ult; if(ult==null) ult=reg; else { ult.Ant = reg; ult=reg; } numreg++; showMessage("Cadastro efetuado comsucesso", "Aviso"); CarregaTelaPrincipal(); } catch(Exception e) { showMessage("Erro ao cadastrar", "Erro"); }} });

22 + Aplicação de cadastro btcancelar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ CarregaTelaPrincipal(); } }); } void CarregaListaPessoas() { if(numreg==0) { showMessage("Nenhum registro cadastrado", "Aviso"); CarregaTelaPrincipal(); return; } setContentView(R.layout.listacadastrados); pos=1; aux=pri;

23 + Aplicação de cadastro TextView txtnome = (TextView) findViewById(R.lista.txtnome); TextView txtidade = (TextView) findViewById(R.lista.txtidade); TextView txtprofissao = (TextView) findViewById(R.lista.txtprofissao); Button btmenu = (Button) findViewById(R.lista.btmenu); Button btavancar = (Button) findViewById(R.lista.btavancar); Button btvoltar = (Button) findViewById(R.lista.btvoltar); txtnome.setText(aux.nome); txtidade.setText(aux.idade); txtprofissao.setText(aux.profissao); btmenu.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ CarregaTelaPrincipal(); } });

24 + Aplicação de cadastro btvoltar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ if(pos==1) return; pos--; aux=aux.Ant; TextView txtnome = (TextView) findViewById(R.lista.txtnome); TextView txtidade = (TextView) findViewById(R.lista.txtidade); TextView txtprofissao = (TextView) findViewById(R.lista.txtprofissao); txtnome.setText(aux.nome); txtidade.setText(aux.idade); txtprofissao.setText(aux.profissao); } });

25 + Aplicação de cadastro btavancar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ if(pos==numreg) return; pos++; aux=aux.Prox; TextView txtnome = (TextView) findViewById(R.lista.txtnome); TextView txtidade = (TextView) findViewById(R.lista.txtidade); TextView txtprofissao = (TextView) findViewById(R.lista.txtprofissao); txtnome.setText(aux.nome); txtidade.setText(aux.idade); txtprofissao.setText(aux.profissao); } }); }

26 + Aplicação de cadastro Registro pri,reg,ult,aux; EditText ednome,edprof,edidade; int numreg,pos; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); numreg=0; pri=null; ult=null; CarregaTelaPrincipal(); } public void showMessage(String Caption,String itle) { AlertDialog.Builder dialogo = new AlertDialog.Builder(AppCadastro.this); dialogo.setTitle(Title); dialogo.setMessage(Caption); dialogo.setNeutralButton("OK", null); dialogo.show(); }

27 + Melhorando! Vamos adicionar uma imagem associada à pessoa cadastrada; Essa imagem deve ser escolhida de uma galeria (obviamente, contendo mais de uma imagem); Habilite a função de edição, onde todos os dados serão alterados; DICA: Use a mesma tela do cadastro!

28 + 6. Deploy de sua aplicação

29 + Distribuindo sua aplicação Verificações necessárias antes da distribuição: Retirar toda a geração de log: Remova arquivos; Desative o código de geração de Log; Se você está usando o atributo "android:debuggable", no tag, do "AndroidManifest.xml", marque como "false" ou retire o atributo;

30 + Distribuindo sua aplicação Modifique os atributos "android:versionCode" e "android:versionName", da tag no "AndroidManifest.xml", para as versões corretas. Isto é de fundamental importância, especialmente se você está gerando uma atualização; Verifique os atributos: "android:icon" e "android:label" do tag, no "AndroidManifest.xml", para a versão de produção; Verifique se o ícone e o título estão corretos.

31 + Distribuindo sua aplicação Você tem que ter certeza que está com a versão de "produção" pronta. É recomendado o uso de um software de SCM (Software Configuration Management), que gerencie versões e rótulos, como o SVN ou CVS. Marque a versão de produção com um rótulo, faça "commit" e gere uma versão exclusiva para subir para o Google Play.

32 + Geração do Certificado e Assinatura A assinatura digital de uma aplicação protege seus usuários ao garantir que ela é autêntica e que não foi adulterada. Um detalhe muito importante é que, aplicações assinadas pelo mesmo certificado podem compartilhar o mesmo processo e os mesmos dados. Antes de instalar, é necessário assinar digitalmente o seu APK. Se você não fizer isto, não poderá instalar via ADB, (embora seja possível executar copiando o APK diretamente para seu dispositivo).

33 + Geração do Certificado e Assinatura A tendência do Android é acabar com o uso de aplicações sem assinatura digital. Logo, é recomendado que sempre você sempre assine as suas aplicações. Para assinar, é preciso um certificado digital de Code Signing ou Assinatura de Código. Você tem duas opções: adquirir um certificado emitido por uma Autoridade Certificadora reconhecida, ou criar um certificado auto-assinado.

34 + Geração do Certificado e Assinatura Para adquirir um certificado de assinatura de código, você pode procurar boas empresas, como estas abaixo: Serasa: Validade 12 meses: R$ 1.255,20; Verisign: Validade 12 meses: US$ 499,00; Thawte: Validade 12 meses: US$ 299,00. Existem várias empresas no Brasil: Comodo; CertSolutions; Certisign.

35 + Geração do Certificado e Assinatura O grande problema reside no fato de que as regras do Google Play exigem um certificado que seja válido até 2033! Não é muito provável que uma empresa emita um certificado com essa validade, pelo preço que seja. Mas nem tudo está perdido! Ainda podemos gerar uma aplicação auto-assinada...

36 + Geração do Certificado e Assinatura Você pode emitir um certificado e assinar seu código com ele. Isto garante que o seu código não foi violado, mas apenas para você mesmo. É por isso que é recomendada a aquisição e uso de um certificado de Assinatura de Código emitido por uma empresa reconhecida. Porém, os custos são altos, tornando o certificado auto-assinado a alternativa mais viável.

37 + Geração do Certificado e Assinatura Gerando uma aplicação auto-assinada com o ADT

38 + Geração do Certificado e Assinatura

39 +

40 +

41 +

42 + ZipAlign ZipAlign é um alinhador de arquivo que provê uma importante otimização para arquivos de aplicações Android (.apk). O propósito é assegurar que todos os dados não comprimidos comecem com um alinhamento particular em relação ao início do arquivo.

43 + ZipAlign Arquivos de imagens, por exemplos são alinhados em “pedaços” de 4 bytes. Isso possibilita que todas as porções seja acessadas diretamente, mesmo que contenham dados binários com restrições de alinhamento. Isso reduz significativamente o consumo de memória RAM quando utilizamos a aplicação.

44 + ZipAlign Esta ferramenta sempre deveria ser utilizada para alinhar o arquivo.apk antes da sua distribuição para usuários finais. Quando utilizamos o Eclipse com o ADT, o Assistente de Exportação automaticamente usa o zipalign no arquivo.apk gerado.

45 + Google Play O Google Play é um serviço que torna mais fácil aos usuários encontrarem e fazerem downloads de aplicações Android para os seus dispositivos, seja do aplicativo embarcado ou pelo website (http://play.google.com).http://play.google.com Desenvolvedores utilizam o Google Play para distribuir as suas aplicações para os usuários.

46 + Google Play Uma vez registrado, é possível fazer upload de aplicações, atualizá-las e publicá-las quando estiverem prontas. Tudo isso o número de vezes que forem necessárias. Quando publicadas, usuários poderão ver, baixar e classificar as suas aplicações.

47 + Google Play Para publicar aplicações no Google Play, primeiro é necessário se registrar no serviço utilizando uma conta Google e aceitar os termos de serviço, além de pagar uma taxa pelo registro (US$ 25,00). https://play.google.com/apps/publish/.play.google.com/apps/publish A qualquer momento depois de publicar uma aplicação, o desenvolvedor pode fazer o upload e publicar uma atualização de uma aplicação.

48 + Google Play Quando uma atualização é publicada, os usuários que já tiverem instalado a aplicação receberão uma notificação de que uma atualização está disponível para a aplicação. Então, eles podem escolher se irão atualizar para a versão mais recente. Antes de fazer o upload da aplicação, tenha a certeza de que você alterou os atributos “android:versionCode” e “android:versionName” na tag do arquivo manifest.xml.

49 + Google Play O nome do pacote deve ser o mesmo da versão existente da aplicação, e deve ser assinada com a mesma chave. Se essas condições não estiverem satisfeitas, o Google Play irá considerar a atualização como uma nova aplicação, não sendo oferecida como atualização para os usuários.


Carregar ppt "+ Curso de Android 19ª Jornada de Cursos. + 5. Criando aplicações Android (cont.)"

Apresentações semelhantes


Anúncios Google