即时通讯类移动APP开发要点

       即时通讯(IM)软件作为满足人们沟通需求的工具,十几年来一直长盛不衰,并随着移动时代的到来迎来了新的增长。如在国内广泛使用的微信、易信、平安天下通、陌陌、来往,在北美广泛使用的Whatsapp、Kik,在亚洲广泛使用的Line、KakaoTalk。另外还有其他一些以独特视角切入移动IM市场的APP,主打阅后即焚、私密消息等。

     试着从技术的角度来总结这一类应用的开发要点,或者说是相比桌面版的IM软件,移动IM应用开发需要注意的地方,欢迎指正和补充。

一、    网络

移动手机APP经常随着移动设备在不同的网络之间切换,所以处理好网络切换、断网、重连就至关重要。

解决这个问题的办法,就是要求移动手机APP以尽量少的通讯量、尽快的速度重新注册服务器。

比如不再从服务器获取配置信息、联系人信息(群)和联系人状态等。

但是如果这段时间服务器端有变化发生,就需要服务器有推送变化信息的能力

同时,服务器对客户端重连间隔要保持宽容态度,不要因为客户端在给定的较短时间内没有重连上就移除这个会话。要知道,在移动环境下,客户端断掉连接只是不得已,一有机会,它就会努力重连上来的。

另外,由于网络的不稳定性,消息的发送方和接受方一定要有确认机制,不管这种确认机制是端对端的的还是通过服务器中转,以避免客户端突然掉线,而服务器还未及时知晓的情况。

二、    电池

移动手机APP必须尽量减少电池的消耗。

iOS为例,它以三个规则来强制APP最小化电池消耗:

一是APP在后台是不能主动运行的,特定功能的APP可以设置timer唤醒,但最频繁也只能每10分钟运行若干秒。

二是APP在后台被唤醒的次数有严格限制,不能在300秒内被唤醒超过15次,否则被系统终止。

三是APP即使申请后台任务,最多也只有60秒的运行时间。

满足这些要求的最好办法,就是不要试图让IM应用在后台运行。而把网络监听这样的任务,在APP进入后台的时候转交给iOS系统来完成。

而服务器则要有灵活的过滤机制,不管是主动还是被动的,过滤掉绝大多数试图发给客户端的网络通讯,以保持客户端睡眠的状态。而仅仅把必要的信息,如即时消息,推送给客户端。

三、    内存

移动APP要尽量减少内存消耗。

iOS为例,系统会保持尽可能多的APP在内存中,但是内存不足时它就会终止已被挂起的APP来回收内存。这种情况下,首先被回收的就是占内存多的后台APP

解决这个问题的一个办法,就是在内存消耗较多的模块,通常是模型层的组件,提供持久化机制。当APP切换到后台的时候保存大多数暂时不会用到的数据到文件系统,等回到前台的时候再重建这些数据结构。比如所有联系人的详细信息就适合这么做。

四、    系统资源

移动APP要尽量减少对系统资源的占有。

应该以最少使用时间为原则来使用系统资源,以iOS为例,在APP切换到后台之前就要放弃对系统通讯录、系统相册、系统摄像头、系统的麦克风等的访问。

五、    后台运行

以上几点都跟APP在后台运行有关,其实这也是移动IM应用的一大特点。所谓养兵千日、用兵一时,移动IM应用绝大多数时间都躺在后台,所以处理好后台运行就处理好了移动IM应用的大部分。

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值