首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

游戏版本更新小记

先大概介绍一下项目,卡牌游戏,主要面向女性用户。前期是走IOS市场,后来又移值到Android平台上,在几家大一点的Android渠道上进行运营。Android接入了十几家渠道,比如:91安卓、奇虎360、小米、百度手机助手、安智、联通沃商店、移动MM、电信EGame、联想、酷派、oppo、HTC(聚乐)、魅族(37Wan)、当乐等(后面还有比如豌豆荚、应用宝),IOS也接入了几家:同步推、PP、快用、91、当乐、ITools等。 项目前台使用的Cocos2d-x(V2.2.3) + 公司自己实现的一套MVC 然后绑的Lua,后台使用的是Java。当天更新采取的策略是IOS、Android一起停服更新,这样带来的好处就是前、后端不用维护多个版本,风险同样也大,这么多渠道,首先要提交至少三~四天出包,然后自己内部先测试(登录、注册、充值、重启、断线重连,这个不算游戏内的新增/修改的功能),然后提交包至各渠道进行审核(有被打回的风险)。然后就是各平台上线的时间无法统一,有的平台是手工操作,点一下立马生效,有的需要等待一段时间,有的都不确定多长时间才会生效(像苹果一样,iClound云里下载的可能还是旧的,虽然作为开发者你已经在后台操作放开了),如果每一家渠道对应一组服务器也就罢了,但实际上每一家在不打广告和推广的情况下是不大可能开一组服务器的,这样就会出现几个渠道混服的情况。就会导致有些平台已经审核并通过了,跟它分在同一组服务器的渠道有可能审核被打回了,不让上架,那么作为该平台的玩家就可能比较郁闷了,都不知道何时才能再进游戏,玩家流失的可能性大大提高了。 说了现状,再重点记录一下遇到的一些问题。因为渠道很多,SDK都不一样,很多SDK不提供SDK内强制更新机制,就导致玩家不知道从哪下载最新的包。有的SDK又不允许游戏内置强制更新机制,以免游戏被导入到其它平台造成利益分成的损失。各家SDK的水平真是参差不齐,导致我们更新后,遇多很多玩家不知道如何更新游戏,一登录游戏又会提醒说版本过低,请下载最新的版本。然后很多玩家都不知道自己到底是是在哪个渠道玩,因为所有的Android玩家都在几个大群里,并没有按渠道分群。他只知道他在哪组服里,而他到底是属于哪家平台的无从得知(光看界面看不出来,因为有几家他们的SDK不提供登录系统,只需要接入他们的支付),只要要求玩家提供在游戏内的角色名, 然后再查出他从哪家平台登录的,说起来真是满脸都是累... 还有就是更新的版本,如果替换了SDK则会有潜在的风险,比如最严重的就是影响到帐号系统,这样导致玩家无法玩以前的号了。更新之后我遇到的一个玩家反映无法登录,说QQ号无法登录。我说我们游戏目前没有QQ号登录这一说法啊,不太明白,然后他反映说是安智的平台,截图给我看,就是在安智的SDK登录界面,下面有新浪微博、QQ的授权登录,不曾想安智最近不知改了什么策略,导致qq授权成功后显示的页面为空白,而无法继续游戏了。之前的版本玩家说好的,一更新就出了这个总是,然后我们仔细查了一下,跟安智那边的技术反复沟通,最终安智说同意我们可以不按他们要求的SDK版本号打包。因为如果按照他们强制要求的Android SDK 15打出来的包,在Android 4.4.3下无法显示授权成功的回调页。

01

Android开发笔记(一百五十八)运行时动态授权管理

App开发过程中,涉及到硬件设备的操作,比如拍照、录音、定位等等,都要在AndroidManifest.xml中声明相关的权限。可是Android系统为了防止某些App滥用权限,从而允许用户在系统设置里面对App禁用某些权限。然而这又带来另一个问题,用户打开App之后,App可能因为权限不足导致无法正常运行,甚至直接崩溃闪退。遇到这种情况,只需用户在系统设置中开启相关权限即可恢复正常,但是用户并非专业的开发者,他怎知要去启用哪些权限呢?再说,每次都要用户亲自打开系统设置页面,再琢磨半天精挑细选那些必须开启的权限,不但劳力而且劳神,这种用户体验实在差劲。 有鉴于此,Android从6.0开始引入了运行时权限管理机制,允许App在运行过程中动态检查是否拥有某项权限,一旦发现缺少某种必需的权限,则系统会自动弹出小窗提示用户去开启该权限。如此这般,一方面开发者无需担心App因权限不足而闪退的问题,另一方面用户也不再头痛是哪个权限被禁止导致App用不了的毛病,这个贴心的动态权限授权功能可谓是皆大欢喜。下面就来看看如何在代码中实现运行时权限管理机制。 首先要检查Android系统是否为6.0及以上版本,因为运行时权限管理机制是6.0才开始支持的功能。其次调用ContextCompat.checkSelfPermission方法,检查检查当前App是否开启了指定的权限。倘若检查结果是尚未开启权限,则再调用ActivityCompat.requestPermissions方法,请求系统弹出开启权限的确认对话框。详细的权限校验代码如下所示:

01
领券