Android常用的服务器 android手机 服务器
首先我不知道这篇文章发到Android开发板块是否适合的,因为只部分内容大多数是有关Google appEngine的,但因为这是AppEngine和Android的配合开发,故对Android开发者也有一定的参考意义,故发到这里来了。
其次,在写文章前先谢谢UCWeb Android的产品经理huang,谢谢他的赏识,虽然最后因为一些个人原因我没留在UC,但从笔试和面试的过程中,我发觉UC真是一家严谨、惜才的公司,搞Android的朋友如果有兴趣,可以考虑应聘一下UC的社招。
OK,进入正题!
在做游戏开发的时候,很多游戏都会提供一个全球分数排名的的功能,这就需要使用服务器了,当然,你可以选择搭建自己的服务器,但从成本,稳定性和开发周期上看,我认为Google AppEngine是个很不错的选择,现在Google AppEngine关于Python的参考资料比较详尽,Java的就比较少,所以我把我写的小Demo放上来,做抛砖引玉之用,因为我也是初学者,所以demo一切从简,大侠请不要见笑哦!
Demo1:对象的存储:
步骤1.定义JavaBean:
1. package 2. 3. import 4. import 5. import 6. import 7. import 8. import 9. 10. //标记对象可以持久化 11. @PersistenceCapable(identityType = IdentityType.APPLICATION) 12. public class 13. 14. //标记主键,作以后查询之用 15. @PrimaryKey 16. @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 17. private 18. 19. @Persistent 20. private 21. 22. @Persistent 23. private 24. 25. public 26. this.firstName = firstName; 27. this.lastName = lastName; 28. this.birthDate = birthDate; 29. } 30. 31. public 32. return 33. } 34. }
步骤2.存取Bean(可以写在Servlet的doGet()或者doPost()里面):
1. package 2. 3. import 4. import 5. import 6. import 7. import 8. import 9. import 10. 11. @SuppressWarnings("serial") 12. public class HelloServlet extends 13. public void 14. throws 15. 16. "text/plain"); 17. 18. new Employee("Alfred", "Smith", new 19. //获取用以存取对象的PersistenceManager 20. PersistenceManager pm = PMF.get().getPersistenceManager(); 21. 22. try 23. //存储对象 24. "saving object!"); 25. pm.makePersistent(e); 26. catch(Exception ex){ 27. "cannot persistent!"); 28. ex.printStackTrace(); 29. } 30. finally 31. pm.close(); 32. } 33. 34. try{ 35. //再次获取用以存取对象的PersistenceManager 36. pm = PMF.get().getPersistenceManager(); 37. //由主键检索对象,Alfred之前被定义为主键的 38. class, "Alfred"); 39. //读取新对象的信息检测对象检索是否成功 40. "Employee:"+newE.getFirstName()); 41. catch(Exception ex){ 42. ex.printStackTrace(); 43. "cannot get data!"); 44. pm.close(); 45. } 46. } 47. 48. @Override 49. protected void 50. throws 51. this.doGet(req, resp); 52. } 53. }
其中PMF类的代码如下,没看错应该是个单例模式:
1. package 2. 3. import 4. import 5. 6. public final class 7. private static final 8. "transactions-optional"); 9. 10. private 11. 12. public static 13. return 14. } 15. }
Demo2.使用Google 账户认证服务:
手机访问登录效果:
需要特别指出的是,Google通过在web.xml里面配置权限来区分登录者的权限,可以用下面的代码来配置安全常量从而划定只能由admin访问的区域---admin路径下的所有页面:
参考资料:
http:///intl/zh-CN/appengine/docs/java/overview.html