Ver mensagens sem resposta | Ver tópicos ativos Hoje é 21 Mai 2013, 20:59



Este tópico está trancado, você não pode editar mensagens ou enviar respostas.  [ 13 Mensagens ] 
 [RESOLVIDO] Lista muito pesada, alternativas 
Autor Mensagem
Online
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 164
Mensagem [RESOLVIDO] Lista muito pesada, alternativas
Olá pessoal.
Eu tenho uma lista com registros separados por mês, ou seja, primeiro pego os registros de "janeiro", depois "fevereiro", etc...
Para montar a lista eu não estou usando XML, faço diretamente por código.
Faço um while para cada mês e vou imprimindo os registros em tela.

Acontece que está muito lenta, para abrir 17 registros demora cerca de 7 a 10 segundos.
Imagina se tiver muito mais, 7 segundos já é muito para a paciência de qualquer um hoje em dia...

Alguém tem ideia de como posso fazer melhor?
Eu sei que se usar XML + spinner deve resolver o problema, mas acontece que tenho diversas querys, uma para cada mês, e para cada mês tenho um separador com o nome do mês e só depois os registros daquele mês.

Agradeço a ajuda.

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


Editado pela última vez por filipe_moraes em 29 Ago 2012, 14:53, num total de 1 vezes



23 Ago 2012, 18:27
Perfil
Android application
Android application

Data de registro: 01 Nov 2010, 17:29
Mensagens: 93
Mensagem Re: Lista muito pesada, alternativas
Sua base de dados é no Android ou remoto?

Porque você não traz tudo de uma vez e gera a lista?

Para deixar um pouco mais rápida, atribua a tabela um campo que tenha o número do mês, dai você cria um índice para esse campo e quando for consultar por mês é só comparar com esse campo. Isso vai ajudar um pouco.

Poste o código e mais informações para analisarmos.

_________________
Não existem problemas e sim soluções!


23 Ago 2012, 22:51
Perfil
Online
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 164
Mensagem Re: Lista muito pesada, alternativas
Olá, obrigado pelo seu tempo.
A base de dados é do android.
O índice já existe, tenho o campo mes para facilitar.

O problema e que não posso trazer tudo de uma vez, porque tenho o seguinte:
1 - query para trazer os registros do mês corrente e do dia corrente. ( hoje )
2 - query para trazer os registros do mês corrente mas a partir dia seguinte até ao fim do mês ( os dias que ainda restam no mês )
3 - query para trazer janeiro
4- query para trazer março
...

Para cada query tenho um separador como o respectivo nome do mês, ou no caso da primeira e segunda query, "hoje" e "resto do mês" respectivamente.

Estou trocando tudo que é objeto gerado por código e inserindo no xml para ver se resulta.
Se alguém souber de uma alternativa melhor, agradecia.

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


23 Ago 2012, 23:22
Perfil
Android application
Android application

Data de registro: 22 Nov 2011, 12:58
Mensagens: 84
Mensagem Re: Lista muito pesada, alternativas
Teria como vc posta o código para da uma olhada? Acho que ficaria, mas fácil para tentarmos te ajudar!


24 Ago 2012, 10:18
Perfil
Online
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 164
Mensagem Re: Lista muito pesada, alternativas
Olá.
Penso que não estou a fazer as conexões a base de dados da maneira correta.
Na minha aplicação, tenho um botão que ao clicar, faz conexão com a base de dados e retorna os dados necessários.
Cada vez que clico nesse botão, vou ao "gestor de tarefas" do aparelho e verifico que a memória RAM utilizada aumenta, e mesmo após fechar a activity não diminuiu, ou seja, cada vez que clico no botão só aumenta a utilização da memoria RAM.
Eu vi que chegou a 64MB e 40% da CPU.

É normal isso acontecer? ou ao fechar a activity deveria diminuir a memoria RAM utilizada.
Obrigado.

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


25 Ago 2012, 11:54
Perfil
Dalvik Virtual Machine
Dalvik Virtual Machine

Data de registro: 17 Jul 2011, 10:55
Mensagens: 1990
Localização: São Paulo
Mensagem Re: Lista muito pesada, alternativas
Olá
Sem código fica difícil.
Posta pelo menos o código do botão que faz aumentar a memória.

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Netiqueta:Procure responder as sugestões. Quando encontrar a solução, coloque [Resolvido] no primeiro post o mais rápido possível. Lembre-se de agradecer às pessoas que ajudaram e poste a solução do problema.


25 Ago 2012, 19:40
Perfil
Online
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 164
Mensagem Re: Lista muito pesada, alternativas
Olá.
Vou postar o código abaixo.
Reparei em uma coisa, quando removo a aplicação e volto a instala-la, a utilização da memoria RAM fica nos 11/12 MB, porém ao fechar a aplicação e abrir novamente, passa a 24MB, depois fechei e abri novamente passou para 34MB... e assim vai aumentando e só para de aumentar se desinstalar a aplicação e voltar a instalar ou fazer um "kill" pelo "gestor de tarefas".
Como o "gestor de tarefas" contabiliza a memoria utilizada?
Pelo que entendi esta acumulando e não voltando ao inicio.

Estou usando na minha aplicação um scheduler, através do "AlarmManager".
Será que é por isso? Penso que não.

Aplicação como o foursquare, por exemplo, no meu aparelho chegar a consumir 32MB da memoria RAM, mas se desligar a aplicação e voltar a abri-la volta ao normal, consome 11MB.
Porque é que a minha aplicação continua a acumular esses valores? se eu abrir e fechar a minha aplicação 12 vezes, chega a 140MB, o que leva a travar o aparelho por alguns instantes.

Penso que a solução do problema afinal não está na reformulação da lista mas sim na resolução do problema acima.
Porque minha aplicação está consumindo cada vez mais memória ao abrir e fecha-la?

De qualquer forma segue o fonte da activity principal:

//Carregando dados para a lista de datas
        Cursor DATAS;
        DATAS = db.seek("datas", null, 0, "ASC");
        DATAS.moveToFirst();
       
        //verifica se encontrou algum registro
        if(DATAS.getCount()>0){
            DATAS.close();
            //db.close();
           
            //Carrega o layout XML que contem os separadores "Hoje, resto do mês, janeiro, fevereiro..."
            LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            LinearLayout LL = (LinearLayout) inflate.inflate(R.layout.listmonth, null);
            LL.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
            listPanel.addView(LL);
           
            Calendar cDt = Calendar.getInstance();     
            String cY = Integer.toString(cDt.get(Calendar.YEAR));
            String cM = Integer.toString(cDt.get(Calendar.MONTH));
            String cD = Integer.toString(cDt.get(Calendar.DAY_OF_MONTH));
            int nM = cDt.get(Calendar.MONTH);
            int nD = cDt.get(Calendar.DAY_OF_MONTH);
            String cW = "";
            String cTituloSeparador = "";
            String cDzero = nD<10?"0"+cD:cD;
           
            for(int nC=1; nC<=14; nC++){
                //para separar por "Hoje","Ainda esse mes","Janeiro","Fevereiro"...
                switch (nC) {
                    case 1:
                        String[] aData = fData(nD,nM,0,0);
                        cTituloSeparador = this.getString(R.string.hoje)+" "+cDzero+" "+aData[1]+", "+cY;
                        cW = "mes='"+cM+"' AND dia='"+cD+"'";
                        break;
                    case 2:
                        cW = "mes='"+cM+"' AND dia>'"+cD+"'";
                        break;
                    default:
                        if((nC-3)==nM){cW = "mes='"+Integer.toString((nC-3))+"' AND dia<'"+cD+"'";
                        }else{cW = "mes='"+Integer.toString((nC-3))+"'";}
                        break;
                }
               
                //Processa os registros encontrados
                DATAS = db.seek("datas",cW, 0, "ASC");
                DATAS.moveToFirst();
                if(DATAS.getCount()>0){
                   
                    //Altera as propriedades do separador
                    if(nC==1){
                        TextView TV = (TextView) LL.findViewWithTag(Integer.toString(nC));
                        TV.setText(cTituloSeparador);
                    }
                   
                    while (!DATAS.isAfterLast()) {
                        int nId = DATAS.getInt(DATAS.getColumnIndex(pk))+1000;
                       
                        //Busca o contentor correspondente para o mes do registro atual
                        LinearLayout LL_CONT = (LinearLayout) LL.findViewWithTag(Integer.toString(nC+19));
                                               
                        //Carrega os layout XML para cada registro encontrado
                        LayoutInflater inflateDatas = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                        RelativeLayout RL = (RelativeLayout) inflateDatas.inflate(R.layout.listdatas, null);
                        RL.setId(nId);
                        RL.setOnClickListener(fEdit);
                        RL.setOnLongClickListener(fMultiSelect);
                        LL_CONT.addView(RL);
                       
                        //Imagem de acordo com o envio
                        ImageView IV_ENV = (ImageView) RL.findViewById(R.id.ivenv);
                       
                        //Nome da pessoa
                        TextView TV_NOME = (TextView) RL.findViewById(R.id.tvnome);
                        TV_NOME.setText(DATAS.getString(DATAS.getColumnIndex("nome")));
                       
                        //Último envio
                        String cTxtCort = this.getString(R.string.ultimo_envio)+": ";
                        if(DATAS.getString(DATAS.getColumnIndex("ultenv"))==null){
                            cTxtCort = cTxtCort + this.getString(R.string.sem_registro);
                            IV_ENV.setImageResource(R.drawable.relogioc);
                        }else{
                            String cData = DATAS.getString(DATAS.getColumnIndex("ultenv")).replaceAll(" ","");
                            String[] a = cData.split("-");
                            String[] aD = a[0].split("/");
                            String[] aH = a[1].split(":");
                            int nDia = Integer.parseInt(aD[0]);
                            int nMes = Integer.parseInt(aD[1]);
                            int nHora = Integer.parseInt(aH[0]);
                            int nMinu = Integer.parseInt(aH[1]);
                                   
                            String cDia = nDia<10?"0"+Integer.toString(nDia):Integer.toString(nDia);
                            String cMes = nMes<10?"0"+Integer.toString(nMes):Integer.toString(nMes);
                            String cHora = nHora<10?"0"+Integer.toString(nHora):Integer.toString(nHora);
                            String cMinu = nMinu<10?"0"+Integer.toString(nMinu):Integer.toString(nMinu);
                                           
                            cTxtCort = cTxtCort +" "+ cDia+"/"+cMes+"/"+aD[2]+" - "+cHora+":"+cMinu;
                           
                            int nUEnv = DATAS.getInt(DATAS.getColumnIndex("ultok"));
                            if(nUEnv==0){
                                IV_ENV.setImageResource(R.drawable.relogiov);
                            }else if(nUEnv==1){
                                IV_ENV.setImageResource(R.drawable.relogioa);
                            }else{
                                IV_ENV.setImageResource(R.drawable.relogiol);
                            }
                        }
                       
                        //Texto com o ultimo envio
                        TextView TV_ENV = (TextView) RL.findViewById(R.id.tvenv);
                        TV_ENV.setText(cTxtCort);
                                               
                        //Verifica se tem algum alarme programado
                        Cursor AL = db.seek("alarms","keyalarm='"+DATAS.getString(DATAS.getColumnIndex("keyalarm"))+"' AND ativo='1'", 2, "ASC");
                        AL.moveToFirst();
                        ImageView IV_AL = (ImageView) RL.findViewById(R.id.ival);
                        if(AL.getCount()>0){
                            RelativeLayout.LayoutParams IV_AL_PARAM = (android.widget.RelativeLayout.LayoutParams) IV_AL.getLayoutParams();
                            IV_AL_PARAM.width = fPxToDpi(25);
                            IV_AL_PARAM.height = fPxToDpi(25);
                            IV_AL.setLayoutParams(IV_AL_PARAM);
                        }else{
                            RL.removeView(IV_AL);
                        }
                        AL.close();
                       
                        //verifica se a opção de envio automatico está programada
                        ImageView IV_SMS = (ImageView) RL.findViewById(R.id.ivsms);
                        if(DATAS.getInt(DATAS.getColumnIndex("auto"))==1){
                            RelativeLayout.LayoutParams IV_SMS_PARAM = (android.widget.RelativeLayout.LayoutParams) IV_SMS.getLayoutParams();
                            IV_SMS_PARAM.width = fPxToDpi(25);
                            IV_SMS_PARAM.height = fPxToDpi(25);
                            IV_SMS.setLayoutParams(IV_SMS_PARAM);
                            if(nPosId==1){IV_SMS_PARAM.addRule(RelativeLayout.RIGHT_OF,IV_AL.getId());}
                            else{IV_SMS_PARAM.addRule(RelativeLayout.RIGHT_OF,RL_ENV.getId());}
                        }else{
                            RL.removeView(IV_SMS);
                        }
                       
                        //Data da comemoracao
                        Calendar c = Calendar.getInstance();
                        String cDia = DATAS.getInt(DATAS.getColumnIndex("dia"))<10?"0"+DATAS.getString(DATAS.getColumnIndex("dia")):DATAS.getString(DATAS.getColumnIndex("dia"));
                        String[] aData = fData(DATAS.getInt(DATAS.getColumnIndex("dia")),DATAS.getInt(DATAS.getColumnIndex("mes")),DATAS.getInt(DATAS.getColumnIndex("hora")),DATAS.getInt(DATAS.getColumnIndex("minu")));
                        int nDias = difInDays(Integer.parseInt(aData[4]),DATAS.getInt(DATAS.getColumnIndex("mes")),DATAS.getInt(DATAS.getColumnIndex("dia")));
                        String cDias = nDias<10?"(0"+Integer.toString(nDias):"("+Integer.toString(nDias);
                        if(nDias>1){cDias = cDias+" dias)";}
                        else{cDias = cDias+" dia)";}
                       
                        TextView TV_COM = (TextView) RL.findViewById(R.id.tvcom);
                        TV_COM.setText(aData[3]+" "+cDia+" "+aData[1]+", "+aData[4]+" "+cDias);
                       
                        //Pula para o proximo registro encontrado
                        DATAS.moveToNext();
                    }
                }else{
                    //remove do layout o mês que não tem registros
                    LinearLayout LL_CONT = (LinearLayout) LL.findViewWithTag(Integer.toString(nC+19));
                    LL.removeView(LL_CONT);
                }
                DATAS.close();
            }
            db.close();
 


Muito obrigado pela vossa ajuda.

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


25 Ago 2012, 20:20
Perfil
Dalvik Virtual Machine
Dalvik Virtual Machine

Data de registro: 17 Jul 2011, 10:55
Mensagens: 1990
Localização: São Paulo
Mensagem Re: Lista muito pesada, alternativas
Quantos registros você tem no db?
Esse é um caso típico para ListView que reaproveita views, o aumento da memória deve estar relacionado à criação de views por código.

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Netiqueta:Procure responder as sugestões. Quando encontrar a solução, coloque [Resolvido] no primeiro post o mais rápido possível. Lembre-se de agradecer às pessoas que ajudaram e poste a solução do problema.


25 Ago 2012, 20:35
Perfil
Online
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 164
Mensagem Re: Lista muito pesada, alternativas
Tenho cerca de 20 registros na BD.
Mas ao encerrar a aplicação não deveria "reiniciar" o uso da memoria?
É que cada vez que fecho e volto a abrir, consome mais memoria, até o aparelho travar, voltando ao normal somente se for no "gestor de tarefas" e terminar a aplicação.
Ao fechar a aplicação, a memoria deveria ser liberada, porque esta "acumulando"?

Obrigado pela sua ajuda.

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


25 Ago 2012, 20:40
Perfil
Dalvik Virtual Machine
Dalvik Virtual Machine

Data de registro: 17 Jul 2011, 10:55
Mensagens: 1990
Localização: São Paulo
Mensagem Re: Lista muito pesada, alternativas
Como está fechando o app?
Está usando Back ou Home?

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Netiqueta:Procure responder as sugestões. Quando encontrar a solução, coloque [Resolvido] no primeiro post o mais rápido possível. Lembre-se de agradecer às pessoas que ajudaram e poste a solução do problema.


25 Ago 2012, 20:45
Perfil
Online
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 164
Mensagem Re: Lista muito pesada, alternativas
Estou usando o back.
E ao pressiona-lo, chama uma função na minha aplicação, a "onBackPressed".
No fonte abaixo, substitui o "finish()" por "android.os.Process.killProcess(android.os.Process.myPid())".
Resultou, mas não entendo qual a diferença nem mesmo se é seguro usar isso.


//Função que será chamada ao pressionar o botão back do aparelho
    public void onBackPressed(){
        if(!bAlert){
            bAlert = true;
            final Alert alert = new Alert(this);
            alert.setType(1);
            alert.setImageResource(R.drawable.sair);
            alert.setTitle(AniversarioSemXmlActivity.this.getString(R.string.desligar).toUpperCase());
            alert.setText("Fechar aplicação");
            alert.show();
            alert.setPositiveButton(new OnClickListener(){
                public void onClick(View v){
                    alert.close(true);
                    finish();
                }
            });
            alert.setNegativeButton(new OnClickListener(){
                public void onClick(View v){
                    alert.close(false);
                    bAlert = false;
                }
            });
            return;
        }
    }   
 


Obrigado.

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


25 Ago 2012, 20:56
Perfil
Dalvik Virtual Machine
Dalvik Virtual Machine

Data de registro: 17 Jul 2011, 10:55
Mensagens: 1990
Localização: São Paulo
Mensagem Re: Lista muito pesada, alternativas
Dá uma olhada neste tópico: http://stackoverflow.com/questions/8174 ... emory-leak

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Netiqueta:Procure responder as sugestões. Quando encontrar a solução, coloque [Resolvido] no primeiro post o mais rápido possível. Lembre-se de agradecer às pessoas que ajudaram e poste a solução do problema.


26 Ago 2012, 08:09
Perfil
Online
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 164
Mensagem Re: Lista muito pesada, alternativas
Ok, obrigado pela vossa ajuda.
Concluí que a melhor solução no momento é mesmo fazer o "android.os.Process.killProcess(android.os.Process.myPid())" no método "onDestroy".
A H Gusukuma, ao ler os artigos percebi que teria que refazer toda a minha aplicação. Muito obrigado pelas dicas.
Como é a primeira aplicação, penso que vou deixa-la assim mesmo, consegui reduzir bem a utilização da memoria, mas para melhorar de vez só mesmo refazendo aplicando as dicas dos artigos.

Obrigado.

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


27 Ago 2012, 12:39
Perfil
Mostrar mensagens anteriores:  Organizar por  
Este tópico está trancado, você não pode editar mensagens ou enviar respostas.   [ 13 Mensagens ] 

Quem está online

Usuários vendo este fórum: ac0502, ademilson, adenilsonsena, adilson, adilson.afl, agtavares, akaytatsu, alberto, Alexandrercarvalho, alexcost2002, alexmarcolongo, alexsander.miranda, alexvbh, amos, Andre, andreluiz, Antonio Carlos, antoniodourado, apoena, ARAKINIDIO, arnaldo.miranda, BloggerCaOS, brazucx, bruno.abd, btleandro, Caique, CalleHard, Carla Luz, Carlos Almeida, carlos.macleod, Carmizini, cassianotartari, Celso Jr., charly, Christiane, Comandante Cody, comolatti, craudiao, Darkluna, dchechetto, Delão, dentimskol, dobau, Dorpho, Douglas Siviotti, Dudi_FC, edsonel, epsilva, felipe.cintra, fernandodotnet, Filipe larizzatti, filipe_moraes, flaviojps, fraga, frankmendes, Gabriel Teófilo, gabrielatme, geco, gfgodoy, gphonemania, guiba_picolino, GuilhermeZampieri, henrique.cardoso, ismaelbpaiva, jacksonst, jasn, Javanês, jgfelix, jhhm_2008, jhou, jlucasps, jwv, Ki-Adi-Mundi, lalaine, lfirpo, lhdiassilva, lkunta, Lord, LucasNascimento, lucastgomes, lucianoedipo, luizcarlosvb, Luna, Mace Windu, marciosoliveira, marcosf63, martins, masf_33, mauriciobreide, mayahaslinger, Mayara Trevisol, mcurtis, memnoch, miguel, mrangel, mravel, nandopierre, navegador, neviim, Nice, niloleite, nsansilva, Nute Gunray, o-raposa, onaiggac, PAMinhoto, pamonteiro, paulanegreiros, peixe, pemam.com.br, phobos, phpower1, polonia, Qui-Gon Jinn, Rafael Alencar, regeriob2br, reginaldo, renatocoliveira, rfrafael, roberto caceres, robsonrg, rocha, RodReis, romuloigor, rotmeil, Samantha, sasuke_sarutobi, Shinigami, sjta, suissa, taluna, tchou, teamamus, thiagotomais, tiago, Tiago Sousa Roch, tiagocomerio, tiagocordeiro, tirloni, ttaranto, vanmars, vilmartr, viniciusgoncalves, viniciusllima, voliverio, Wendel Carvalho, wesley.messias, wilson.slima, woyzeck, xa:=zin e 11 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2013 Portal Android - Comunidade de Desenvolvedores da Plataforma Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi