`
yangshen998
  • 浏览: 1240502 次
文章分类
社区版块
存档分类
最新评论

工作学习笔记——Alljoyn技术、初试Android开发

 
阅读更多

七八个Android门外汉用了一个月时间,做了3个wifi联网的Android小游戏出来,体会了久违的加班的苦与乐。


联网使用的是高通推的AllJoyn技术(一种点对点近场wifi、蓝牙通信方式)。优点我们看来有二:1.提供直接函数调用的通信方式(一端调用另一端上定义的一个函数),省的byte数组转来转去;2.提供成熟的session机制,功能和安全性都有保证。缺点是接口设计的不太有善,想要整套系统跑起来,要建一些bus、proxy这样的比较抽象的东西。(第一次接触网络开发,这次实际编写alljoyn通信部分代码的也不是我,这个优缺点是大家聊天时总结出来的)。这个技术做些联网游戏还是不错的。


客户端部分就是常规的Android游戏开发。时间比较紧,我们是把公司之前的几个j2me游戏移植过去的。这里推荐一下Lgame这个引擎。如果不考虑提升视觉效果和手感的话,一个j2me游戏要在Android手机上跑起来,使用它至多只需要半个小时。这是因为Lgame提供了一套j2me接口,代码完全不用改:)


即使只是移植游戏,因为大家都是第一次接触Android开发,甚至第一次正式写Java代码、第一次正式使用eclipse,在开发环境搭建、部署程序、Android设备特性上还是遇到了不少问题。这里记录一下。

1.使用eclipse无法启动应用;run configuration里看不到程序的main类。这个有可能是AndroidManifest.xml文件里没有定义Activity引起的。

2.运行时出现Permission Deny。可能是AndroidManifest.xml文件里没有加权限,或者本该加user permission却加成了Android:Permission。

3.使用系统接口总是不能正确得到屏幕宽高的像素值。看Android支持多屏幕机制这篇文章。在AndroidManifest.xml里加上那几个屏幕支持就好了。

4.修改手机进程内存限制。先要root手机,然后修改/system/build.prop文件的heapsize的值。具体操作命令见这篇文章

5.查看进程内存占用,adb shell dumpsys meminfo 包名或者进程号。stack overflow上有一篇详细解释

6.出现ANR(系统忙、无法响应)错误时检查哪个进程出现问题。查看/data/anr/trace.txt文件


有很多不明白的问题,暂时没有时间细究了,也记录一下

1.Android的屏幕适配方式

2.Android一个进程可用的内存限制到底包不包括native内存。通过上面写的内存查看命令来看,应该包括,可是网上和点心os的工程师又说不包括,要不哪些大型游戏都没法写了。

3.垃圾回收貌似不太好使(我第一次正式写java程序)。程序跑几次就报out of memory。最后老老实实像c++那样用完立刻释放才好使。


虽然开发Android游戏的时间很短,也还是感到了Android系统的吸引力,我们几个程序员都想继续学习Android开发。比起BREW来,有太多新鲜的东西可以学习研究。可惜公司有安排,接下来又要整一段时间ios了。box2d、opengl es,还有好多新东西要学习啊。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics