Existe uma quantidade de registros no SQLite para uma app offline?
Vamos supor: tenho 35mil registros (+/- 111 campos) que possivelmente deverão entrar na app, qual a melhor forma?
O que usar? O que vcs recomendam?
Existe uma quantidade de registros no SQLite para uma app offline?
Vamos supor: tenho 35mil registros (+/- 111 campos) que possivelmente deverão entrar na app, qual a melhor forma?
O que usar? O que vcs recomendam?
Que o aparelho celular seja no mínimo dual-core! ;x
Usando essa pergunta como gancho.
Nesse caso de várias entradas em uma app, o que roda mais rápido: SQLite ou WebService?
SQLite pois é uma consulta local.
Mesmo com esse número de registros?
Imagina a seguinte situação:
O BD tem, ao todo, 35 mil registros, mas a app utiliza apenas uma pequena parte deles a cada utilização.
Compensa criar o BD em SQLite, processando os 35 mil registros toda vez que vai fazer uma consulta sendo que utiliza apenas uma parte? Não seria melhor o webservice trazer apenas o que a app vai utilizar?
Claro que isso não é uma ciência exata, mas nesse caso o webservice não seria mais rápido?
Você não iria guardar em um banco de dados também no WebService?
E se a APP rodar num desses: http://www.lojasmm.com/ch/prod/7617/685/0/Tablet-Multilaser-PC-Elite-NB003-LCD-Multitoque-Android-23-8GB-Display-70-Multi-Touch-Wi-Fi-CPU-12-GHz-CameraFilmadora-USB.aspx
Tipo um coletor de dados que necessita apenas atualizar os dados e salvá-los para depois descarregar.
o Ambiente: Tablet com Wifi para uso Offline e guardar dados.
A Ideia inicial é:
XML contendo todos os dados a serem atualizados (35mil registros/ 111 campos)
Pesquisa 1 item e Coloca como objeto
Verifica os dados Atualizando-os
Salva no BD
Envia um CSV via FTP quando rede wifi estiver disponivel.
Vcs acham uma boa ideia? é possível fazer? :?: :shock:
Usei dessa foma citada e : :bang:
02-07 15:46:32.128: W/dalvikvm(924): Exception thrown (Ljava/lang/OutOfMemoryError;) while throwing internal exception (Ljava/lang/OutOfMemoryError;)
02-07 15:46:32.128: W/dalvikvm(924): Could not resolve class ref'ed in exception catch list (class index 3010, exception Ljava/lang/OutOfMemoryError;)
02-07 15:46:32.817: E/dalvikvm-heap(924): Out of memory on a 108-byte allocation.
02-07 15:46:33.538: E/dalvikvm-heap(924): Out of memory on a 232-byte allocation.
02-07 15:46:33.608: W/dalvikvm(924): Exception thrown (Ljava/lang/OutOfMemoryError;) while throwing internal exception (Ljava/lang/OutOfMemoryError;)
02-07 15:46:33.608: W/dalvikvm(924): Could not resolve class ref'ed in exception catch list (class index 282, exception Ljava/lang/OutOfMemoryError;)
02-07 15:46:34.408: E/dalvikvm-heap(924): Out of memory on a 96-byte allocation.
02-07 15:46:36.038: E/dalvikvm-heap(924): Out of memory on a 232-byte allocation.
02-07 15:46:36.337: W/dalvikvm(924): Exception thrown (Ljava/lang/OutOfMemoryError;) while throwing internal exception (Ljava/lang/OutOfMemoryError;)
02-07 15:46:36.337: W/dalvikvm(924): Could not resolve class ref'ed in exception catch list (class index 289, exception Ljava/lang/OutOfMemoryError;)
02-07 15:46:37.028: E/dalvikvm-heap(924): Out of memory on a 160-byte allocation.
02-07 15:46:37.747: E/dalvikvm-heap(924): Out of memory on a 232-byte allocation.
02-07 15:46:37.787: W/dalvikvm(924): Exception thrown (Ljava/lang/OutOfMemoryError;) while throwing internal exception (Ljava/lang/OutOfMemoryError;)
02-07 15:46:37.787: W/dalvikvm(924): Could not resolve class ref'ed in exception catch list (class index 333, exception Ljava/lang/OutOfMemoryError;)
02-07 15:46:38.228: W/dalvikvm(924): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-07 15:46:38.240: E/AndroidRuntime(924): FATAL EXCEPTION: main
02-07 15:46:38.240: E/AndroidRuntime(924): java.lang.OutOfMemoryError: [memory exhausted]
02-07 15:46:38.240: E/AndroidRuntime(924): at dalvik.system.NativeStart.main(Native Method)
Tentei fazer esse tutorial de XML: http://mballem.wordpress.com/2011/04/22/manipulando-arquivo-xml-–-parte-i-api-nativa/
tentei fazer os 35mil inserts pela app e isso travou o arquivo no Eclipse, tive que abrir via bloco de notas para retirar estes inserts e o arquivo ficou normal
ainda não consegui fazer um convert desses dados do oracle para colocá-lo direto no SQLite.
Finalizando a Discussão:
Considerando 15 tabelas com 35 mil Registros cada. (ao todo 111 campos)
Opção: Gerar o bd Externo ao tablet e importar na APP
a. A quantidade de INserts realizados são de 35mil, porem o arquivo exportado do oracle, possui 120551 linhas, e No meu (dualCore/2G) Modesto computador, o SQLite Expert não consegue executar, travando e necessitando Reboot do windows.
Opção: Gerar um XML estático com todos os dados.
a. Quando a App vai ler o XML e colocá-lo em memória para iniciar a leitura dos nós, o processamento gera erro de memória. OutOfMemory.
Opção: Gerar um Activity principal contendo os inserts
a. Após inserir as 120mil linhas num activity (main) o eclipse começa a travar, impossibilitando realizar qualquer operação no programa. Tive que entrar nas pastas onde esta a app e realizar a auteração através do Bloco de Notas.
Prováveis Soluções:
Se houverem outras soluções. são bem vindas.