喜糖

移动开发工程师 。涉及 android、ios、jni

导航

聊天类android应用的一些技术细节

Posted on 2011-09-12 20:45  喜糖  阅读(534)  评论(0编辑  收藏  举报

今天跟朋友聊天,他做的是一款基于android平台的聊天类(IM)软件。在聊天过程中,我收获了许多,下面由此篇bolg分享给大家。

1. 软件背景

  这是一款运行在android平台上面的通讯软件。使用socket与服务器进行连接,进行通讯。当用户在打开网络连接的情况下,用户与已经注册该软件的人进行通讯,消息便会走网络进行通讯。条件不满足就会依循移动服务提供商的短信路线了。 剩下的功能可以参见腾讯的“微信”和小米的“米聊”。

2. 技术架构

  网络模块: 应用通过Socket与服务器进行连接。

  DB模块: 数据中存储了玩家的明片信息。

  UI模块:针对标准UI的扩展。

3. 项目中遇到的问题    

  3.1 加快显示?

    onStart() --> onResume()方法的执行速度。图像是在OnResume中才刷出来的,那么就要尽量减少前面的操作。在有条件的情况下,key采用多线程的方法来提升用户体验。

  3.2 减少电量消耗

    由于在网络连接的设备,必须需要一个service来监听网络连接。这个连接是长连接,即是说在系统关闭屏幕的情况下也要运行(设置PowerManager)中的代码。

    心跳包的连接要尽量小,并且需要控制频率。 最好要在1分钟以上。如果是实时性要求较低的应该,可以拉伸到15分钟一次。

  3.3 采用Activity池的方法来减少Acrtivity的创建。采用activityGroup的方式来解决这里的问题。

  3.4 针对bitmap的解析时的优化。

  3.5 针对网络模块这里的内容,消息等相关代码,可以依据服务器来进行调整。采用跟服务器一致的方案,甚至是进行代码复用。这样可以极大的减少代码量。

  3.6 手机应用的安装包大小一定要控制在2M以下,否则很难有人会对该软件有兴趣。

  3.7 注册机制。 上行注册: 设置一个流氓的按钮,直接后天发送一个条短信与服务器进行注册。 下行注册: 玩家得输入自己的手机号码,服务器向玩家发送短信来进行验证。或者是自己给自己发个短信来进行注册