Recursos especiais neste artigo:
Conteúdo sobre boas práticas.
Autores: Allan Carneiro Santos, Alexandre Oliveira e Vitor Granzinoli Vellozo
A performance trata-se de um requisito não funcional de uma aplicação que está diretamente relacionada ao uso eficaz dos recursos da plataforma, à eficiência, à confiabilidade e à manutenibilidade do código. Podemos também dizer que performance é a relação entre a quantidade de processamento realizado por um algoritmo, tempo gasto e recursos utilizados para executar suas tarefas.
Todos estes pontos normalmente não são analisados diretamente pelos usuários (como são para o desenvolvedor), mas o resultado final certamente será percebido por todos. E isto pode ainda ser mais crítico quando a aplicação analisada é utilizada em dispositivos móveis.
Nestes dispositivos, a eficiência do código é apenas um dos pontos a serem tratados, pois aplicações que utilizam conexão com a internet, gráficos em OpenGL, banco de dados e aplicativos que executam em segundo plano, raramente se comportam da mesma forma em todos os dispositivos. É de responsabilidade do desenvolvedor a detecção e otimização dos pontos que afetam a execução de sua aplicação.
O objetivo deste artigo é introduzir ao leitor os principais conceitos e ferramentas para avaliar e otimizar a performance de aplicações para a plataforma Android, abordando as melhores práticas e a prevenção de erros.
Após a leitura deste artigo, o desenvolvedor terá os conceitos indispensáveis sobre gerenciamento de memória, ferramentas para análise, depuração e otimização de aplicações. Com isso, é possível focar as energias na criação de produtos eficazes e performáticos.
Em que situação o tema é útil
Este
tema destina-se aos desenvolvedores de todos os níveis, preocupados com a
criação de aplicações responsivas e de alta qualidade, que possam ser
executadas nos mais diversos dispositivos disponíveis no mercado. Além disso, um
código eficiente pode economizar diversas horas com manutenção, que poderiam
ser investidas na evolução do aplicativo e até mesmo no desenvolvimento de
novas funcionalidades.
Após o lançamento do sistema operacional Android em Setembro de 2008, seguiram-se diversas versões, cada qual adicionando novos recursos e melhorias, visando facilitar a vida dos desenvolvedores e melhorar a experiência dos usuários.
Quando distribuímos aplicações, nos deparamos com uma realidade totalmente diferente do ambiente de desenvolvimento, onde os recursos são relativos à máquina do desenvolvedor e aos dispositivos utilizados para teste.
Nos diversos dispositivos onde a aplicação pode ser executada, os recursos nem sempre são abundantes e por isto, o sistema operacional realiza um monitoramento minucioso em busca de processos que fazem uso indevido destes recursos, e no pior dos casos, ocorre o encerramento da aplicação.
A utilização excessiva de recursos e eficiência do código são apenas alguns pontos a serem tratados, pois aplicações que utilizam conexão com a internet, gráficos em OpenGL, banco de dados e aplicativos que executam em segundo plano, raramente se comportam da mesma forma em todos os dispositivos, sendo o desenvolvedor o responsável por detectar e otimizar os pontos que afetam a execução de sua aplicação.
Dependendo do cenário, o inimigo do desenvolvedor pode ir além dos problemas técnicos, pois problemas relacionados à performance quase sempre afastam o público alvo, raramente fiel a uma aplicação, devido à vasta concorrência no mercado.
Tendo isto em mente, um código eficiente pode economizar diversas horas com manutenção, que poderiam ser investidas na evolução do aplicativo e até mesmo na concretização de novas funcionalidades.
A utilização excessiva de recursos e eficiência do código são apenas alguns pontos a serem tratados, pois aplicações que utilizam conexão com a internet, gráficos em OpenGL, banco de dados e aplicativos que executam em segundo plano, raramente se comportam da mesma forma em todos os dispositivos, sendo o desenvolvedor o responsável por detectar e otimizar os pontos que afetam a execução de sua aplicação.
Dependendo do cenário, o inimigo do desenvolvedor pode ir além dos problemas técnicos, pois problemas relacionados à performance quase sempre afastam o público alvo, que raramente é fiel a uma aplicação, devido à vasta concorrência no mercado.
Assim, um código eficiente pode economizar diversas horas com manutenção, que poderiam ser investidas na evolução do aplicativo e até mesmo na concretização de novas funcionalidades.
Performance
Performance na área de desenvolvimento é um termo normalmente utilizado para avaliar o tempo de execução de um algoritmo, levando-se em conta a velocidade e o consumo de recursos.
Podemos dizer que performance é a relação entre a quantidade de processamento realizado por um algoritmo, tempo gasto e recursos utilizados para executar suas tarefas, podendo ainda sofrer influência de fatores internos e externos.
Fatores internos são instruções como um cálculo matemático ou a apresentação de dados em uma tela. Fatores externos são variáveis como ambiente, rede e serviços que podem afetar a eficiência de execução da aplicação.
Elevando o conceito de performance a algo mais abrangente, podemos incluir a experiência do usuário, o tempo de resposta e a usabilidade da aplicação.
Profiling
Profiling, na engenharia de software, é a maneira de analisar programas dinamicamente para medir, entre diversas coisas, os recursos utilizados por uma aplicação em seu ambiente, com o objetivo de alcançar a melhor otimização, auxiliando na correção de bugs e certamente na qualidade final do produto.
Existem diferentes técnicas que extraem informações relacionadas principalmente à complexidade, ao tempo de execução e ao consumo de memória ao se executar trechos específicos de código.
...Confira outros conteúdos:
Programador Mobile
Desenvolvimento de aplicativos para...
Conceitos básicos para programar para...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.