tcms Posted February 11, 2014 at 12:14 AM Report #544772 Posted February 11, 2014 at 12:14 AM 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?
Knitter Posted February 11, 2014 at 12:34 AM Report #544774 Posted February 11, 2014 at 12:34 AM 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.
tcms Posted February 11, 2014 at 12:58 AM Author Report #544777 Posted February 11, 2014 at 12:58 AM 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).
Knitter Posted February 11, 2014 at 01:47 AM Report #544779 Posted February 11, 2014 at 01:47 AM 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.
tcms Posted February 11, 2014 at 10:26 AM Author Report #544806 Posted February 11, 2014 at 10:26 AM Pois Knitter, o problema é mesmo esse. Não convem que user possa aceder, pois aí vai haver "cheating" eheh
Knitter Posted February 11, 2014 at 12:37 PM Report #544827 Posted February 11, 2014 at 12:37 PM 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 😄 .
tcms Posted February 12, 2014 at 12:19 AM Author Report #544962 Posted February 12, 2014 at 12:19 AM 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)
Knitter Posted February 12, 2014 at 01:03 AM Report #544975 Posted February 12, 2014 at 01:03 AM 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. 1 Report
tcms Posted February 12, 2014 at 10:53 AM Author Report #544994 Posted February 12, 2014 at 10:53 AM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now