Jump to content

Recommended Posts

Posted

Boas pessoal,

Tenho estado a produzir uma mini aplicação que consiste em ter de cumprir certos objectivos para se ganhar certos trofeus. O meu problema chegou à parte de guardar o progesso dum cliente, isto é, que métodos são usados para se guardar informação adicionada/alterada ao programa, por exemplo, pontuações, rankings, etc.

Serialization?

Pergunto isto porque no caso do android (por exemplo), nao vejo apps associadas a BD's, e contudo estas guardam o progresso automaticamente (caso dos jogos por exemplo).

Como é que isto é feito?

Posted

Serialização, ficheiros de texto (JSON, XML, CSV, etc), ficheiro binário, base de dados.... qualquer uma das opções é válida, dependendo do que pretendes pode ser mais ou menos adequada.

Estamos a falar de uma aplicação Java para Desktop, cliente-servidor, que tipo de aplicação é?

Aplicações Android usam bases de dados, tipicamente usam Sqlite que já é fornecido pela plataforma.

Posted

Obrigado pela resposta knitter. Para já estou a desenvolver a versão PC, contudo mais tarde gostava de fazer android seguindo o mesmo código base.

Usando a serialização parece-me mais simples porque na verdade só tenho de guardar os resultados do user que usa a aplicação, não sei é se no android poderei usar o mesmo sistema. Daí a minha duvida.

Não é muita a informação que pretendo guardar, aliás, basicamente é só pontuação do utilizador (como um jogo por exemplo).

Posted

Podes usar o mesmo sistema, tens de ter atenção que ao serializares um objecto, se mais tarde alterares a classe desse objecto (com novos atributos), as versões serializadas deixam de ser compatíveis e deixas de as poder abrir (é mais complicado no que toca a actualizações).

Porque não guardar em ficheiro de texto? Se não houver problema do utilizador conseguir aceder ao ficheiro, escrever para um ficheiro de texto é igualmente simples.

Posted

Se não estiveres a pensar fazer actualizações aos objectos usa serialização, senão usa ficheiros binários que são mais "difíceis" de ler. Agora, batota qualquer um pode fazer em qualquer formato 😄 .

Posted

Se não estiveres a pensar fazer actualizações aos objectos usa serialização, senão usa ficheiros binários que são mais "difíceis" de ler. Agora, batota qualquer um pode fazer em qualquer formato 😄 .

Eheh, realmente tens razão. Embora nos binários já seja mais complicado (penso eu de que). A minhas questão é que se eu usar serialização, não me tenho de me preocupar muito com a questão da "conversão" para android, visto que é embebido no código. Ao contrário do guardar num ficheiro binário, pois aí não sei se o android tem alguma zona própria para ficheiros bin (confesso que sou um newbie no Android, e não sei até que ponto o que estou a dizer faz sentido)

Posted

Embebido?

Serialização não é mais que escrever uma representação do estado de um objecto para um ficheiro, tens de abrir o ficheiro, criar o ficheiro se este não existir, etc., todas as operações que fazes com um ficheiro de texto ou com um ficheiro binário são iguais se usares serialização. A diferença está que a o objectivo da serialização é guardar num ficheiro binário a representação de um objecto de modo a que possa ser lido de volta e teres a mesma representação, guardas a instância e recuperas a instância como se nunca tivesse saído de memória.

Ex.: https://wiki.portugal-a-programar.pt/dev_geral/java/tutorial/090_serializacao/

A plataforma Android dá-te acesso ao disco de forma semelhante ao que tens numa aplicação para Desktop, com limitações próprias mas semelhantes ao que já tens tal como não poderes escrever ficheiros em qualquer lado, não poderes alterar ficheiros para os quais não tens permissões, etc. Além de questões de pormenor como localização em SDCard externo ou memória interna, mas que para todos os efeitos não afectam nada a tua questão.

  • Vote 1
Posted
Em 12/02/2014 às 02:03, Knitter disse:

Embebido?

Serialização não é mais que escrever uma representação do estado de um objecto para um ficheiro, tens de abrir o ficheiro, criar o ficheiro se este não existir, etc., todas as operações que fazes com um ficheiro de texto ou com um ficheiro binário são iguais se usares serialização. A diferença está que a o objectivo da serialização é guardar num ficheiro binário a representação de um objecto de modo a que possa ser lido de volta e teres a mesma representação, guardas a instância e recuperas a instância como se nunca tivesse saído de memória.

Ex.: https://wiki.portugal-a-programar.pt/dev_geral/java/tutorial/090_serializacao/

A plataforma Android dá-te acesso ao disco de forma semelhante ao que tens numa aplicação para Desktop, com limitações próprias mas semelhantes ao que já tens tal como não poderes escrever ficheiros em qualquer lado, não poderes alterar ficheiros para os quais não tens permissões, etc. Além de questões de pormenor como localização em SDCard externo ou memória interna, mas que para todos os efeitos não afectam nada a tua questão.

Pois, não deveria ter usado a palavra embebido. Não soa bem aqui. Mas sim, eu já usei serialização, embora tenha usado noutro propósito (numa aplicação de troca de Mensagens Cliente-Servidor).

Tive a fazer uma pesquisa, e ao que parece o Android tem uma pasta própria para BD's, contudo, neste caso não me parece necessário dar uso a uma BD. Secalhar vou optar mesmo serialização.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.