O uso dos smartphones cresceu muitos nos últimos anos. Isso acarretou em um grande esforço dos fabricantes em melhorias no hardware e, das gigantes de software em um reposicionamento quanto aos sistemas operacionais para estes tipos de dispositivos. Esse cenário gerou uma bola de neve que trouxe grandes e constantes inovações no setor, refletindo cada vez mais em usuários e desenvolvedores satisfeitos com as novas tecnologias, que os permitem ficar mais tempo conectados.
Isso também teve outra consequência direta: os usuários passaram a armazenar seus dados não só nos computadores Desktop, mas também em seus smartphones. Logo, estes dispositivos passaram a receber uma quantidade maior e crescente de dados. Principalmente dados de áudio e mídia.
Logicamente, as plataformas móveis perceberam que teriam que fornecer métodos de persistência de dados mais sofisticados que o tradicional armazenamento baseado em arquivos, como acontecia com o RMS (Record Management System), este utilizado pelos programadores Java ME/MIDP para a persistência dos dados. Hoje em dia, todas as principais plataformas oferecem mais de uma maneira de salvar e recuperar informações produzidas por nossos aplicativos.
Com a plataforma Android não poderia ser diferente. Este fornece diferentes métodos de persistência. Alguns deles são através de armazenamento interno (na memória do smartphone) e externo (cartão de memória). Ambos podem ser muito úteis para fazer armazenamento de imagens, por exemplo. No caso do uso do cartão, deve-se atentar para não utilizá-los no armazenamento de informações essenciais para o correto funcionamento do aplicativo, pois a mídia pode ser removida a qualquer momento e o aplicativo deixará de ser executado.
Além disso, a plataforma também fornece as classes chamadas SharedPreferences, sendo estas uma forma de persistir pares de chave/valor para todos os tipos primitivos Java e mais o tipo String. Algo semelhante à utilização de Properties na programação Java tradicional. Seu uso e funcionamento são muito simples, podendo ser muito útil para persistências simples, como a pontuação de um jogo, por exemplo.
Porém, o SharedPrefererences não é indicado para grande quantidade de dados ou conjunto de informações com grande complexidade. Nesse momento entram em ação os bancos de dados relacionais, utilizados há alguns anos em outros ambientes, como web e desktop. No Android o banco de dados mais utilizado é o SQLite.
SQLite
O SQLite é um banco de dados simples e poderoso, formatado para ser executado na plataforma móvel. Este é um repositório de dados que simula um banco de dados relacional. Na prática, os dados são armazenados de forma binária, entretanto, isto funciona de forma transparente ao usuário. Ela é a principal forma de persistência para aplicativos Android.
O SQLite é formado por um conjunto de bibliotecas escritas em C, podendo ser integrado a programas escritos em diferentes linguagens com o intuito de possibilitar a manipulação de dados através de instruções SQL. A diferença para os outros bancos é que tudo isso pode ser feito sem que seja preciso acessar um SGBD (Sistema de Gerenciamento de Banco de Dados), ou seja, todas as instruções podem ser executadas diretamente via código fonte, como criação do banco e de tabelas, sendo por este motivo adotado como o banco de dados nativo da plataforma Android.
Na prática, o SQLite é um mini-SGBD, capaz de criar um arquivo, ler e escrever diretamente nele. O SQLite já está disponível na plataforma Android, não necessitando de instalação, configuração ou administração, suporta commit e rollback, além de ser um banco de dados gratuito.
Além disso, o Android oferece suporte completo ao banco, através de uma API com um rico conjunto de classes e métodos que abstraem as complexidades dos códigos SQL. Assim, não precisamos montar a cláusula SQL inteira para atualizar uma linha na tabela, ou ainda, para fazer uma pesquisa na mesma. O Android nos fornece um método, onde passando alguns parâmetros obtemos um apontador para os dados retornados, podendo navegar pelo resultado como se estivéssemos escolhendo uma folha em um arquivo. Para exemplificar o uso do SQLite, um aplicativo de cadastro de notas será desenvolvido.
O projeto
Para apresentar o SQLite, foi desenvolvido um projeto com nome UsandoSQLite. Como classe principal do projeto, foi criado o PrincipalActivity.java, com a interface activity_principal.xml. Também foi criada uma Activity para apresentar as informações do banco em uma lista, este chamado de ListaActivity.java, com tela activity_lista.xml, conforme a Figura 1.
Figura 1. Tela principal do aplicativo.
A tela principal do aplicativo será formada por três campos: código, nome da disciplina e nota, além de cinco botões: incluir, alterar, excluir, pesquisar e listar.
O campo chave primária do nosso aplicativo é o campo código, sendo este obrigatório para as operações de alterar, excluir e pesquisar. Já para a operação de incluir este campo não é necessário, já que este será AUTOINCREMENT na tabela, ou seja, será incrementado a cada execução. Por fim, como a opção de listar apresenta todos os dados dentro do banco, para esta operação o campo código não precisa ser preenchido.
O aplicativo procura apresentar as funcionalidades do banco de dados SQL, sendo este executado a partir de métodos específicos para inclusão, alteração, e assim por diante. Existe uma maneira mais elaborada para usar o SQLite, a partir da classe SQLiteOpenHelper, que será vista ao final do artigo. A Listagem 1 apresenta o código da tela principal do aplicativo.
Listagem 1. activity_principal.xml – Interface gráfica do tela principal do aplicativo.
01. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
02. xmlns:tools="http://schemas.android.com/tools"
03. android:layout_width="match_parent"
04. android:layout_height="match_parent"
05. android:orientation="vertical"
06. tools:context=".PrincipalActivity" >
07.
08. <TextView
09. android:layout_width="wrap_content"
10. android:layout_height="wrap_content"
11. android:text="Cód.:" />
12.
13. <EditText
14. android:id="@+id/etCod"
15. android:layout_width="fill_parent"
16. android:layout_height="wrap_content"
17. android:inputType="number"/>
18.
19. <TextView
20. android:layout_width="wrap_content"
21. android:layout_height="wrap_content"
22. android:text="Nome Disciplina:" />
23.
24. <EditText
25. android:id="@+id/etNomeDisciplina"
26. android:layout_width="fill_parent"
27. android:layout_height="wrap_content"
28. android:inputType="textCapWords"/>
29.
30. <TextView
31. android:layout_width="wrap_content"
32. android:layout_height="wrap_content"
33. android:text="Nota:" />
34.
35. <EditText
36. android:id="@+id/etNota"
37. android:layout_width="fill_parent"
38. android:layout_height="wrap_content"
39. android:inputType="numberDecimal"/>
40.
41. <LinearLayout
42. android:layout_width="wrap_content"
43. android:layout_height="wrap_content"
44. android:orientation="horizontal">
45.
46. <Button
47. android:id="@+id/btIncluir"
48. android:layout_width="wrap_content"
49. android:layout_height="wrap_content"
50. android:text="Incluir"
51. android:onClick="btIncluirOnClick"/>
52.
53. <Button
54. android:id="@+id/btAlterar"
55. android:layout_width="wrap_content"
56. android:layout_height="wrap_content"
57. android:text="Alterar"
58. android:onClick="btAlterarOnClick"/>
59.
60. <Button
61. android:id="@+id/btExcluir"
62. android:layout_width="wrap_content"
63. android:layout_height="wrap_content"
64. android:text="Excluir"
65. android:onClick="btExclui ...
Confira outros conteúdos:
Programador Mobile
Desenvolvimento de aplicativos para...
Conceitos básicos para programar para...
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,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$ 59,90 /mês
Total: R$ 718,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.