丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
另外老版本SDK已经删掉了因为种种原因,新版本SDK已经编码完毕,源码见末尾。
问题:游戏APK,到底是什么?
渠道手游SDK+游戏研发=手游
概念一:渠道手游SDK
在Android开发中,有多渠道打包的概念。简单点说,apk需求完成以后,但需要给用户去下载去可以使用。用户下载使用体验有流量,有流量app才能赚钱盈利。但是你可能说,没事,咱家技术哥体力强技术棒轻松无痛苦在撸一个给用户下载的平台。当然,这是不可能的。因为你不仅要考虑怎样推广怎样运营还需考虑用户量的大小消费者对应用的偏好等等。
引用下《猎场》的台词,找最专业的人,做最专业的事。
这种聚集了一定用户量的平台,一般称为,渠道。通过渠道,就可以解决上面的问题。比如,360手机助手,豌豆荚,应用宝等等,这些就是渠道(这种千万级的渠道也称大渠道)。所以,我们多渠道打包,打的就是渠道包,将这些渠道包,上架到对应的平台上,让他们上架APP,供用户下载使用体验即可。
说完渠道,我们就开始说渠道SDK,上面说了,渠道会有很多家,大渠道如豌豆荚、应用宝这些,小渠道如,XXX、XXXX这些,既然是不同的渠道,那么每一家渠道就会有自己的数据后台以及相应的个性化设置。
那么,渠道SDK就可以简单理解为(个人理解),在同一业务节点上,满足市面上相同业务的基本功能,但提供相对差异化的服务。(相对差异化的服务,简单理解就是UI和数据结构差异,并不能理解为功能上的大差异)。
基于渠道SDK,在举个简单的例子加深其概念理解。当我们集成百度地图or高德地图;极光推送or信鸽推送;热云统计orTalkingData,这些第三方SDK的时候,他们主要完成的功能业务几乎都是一样的,比如地图主要是为了定位和出行方便;比如推送是为了吸引用户,唤起APP;再比如数据统计,是为了收集用户数据做筛选统计等;他们在某一块做着相同的事情,但他们是不同公司的产品(当然,也不排除换马甲的这种可能)也就是不同的渠道。不同的渠道做同一业务节点上SDK的研发,市面上对他们有个统一的说法,就是渠道SDK。
SDK开发(SDK翻译过来就是,软件开发工具包)其开发本质就是,隐藏内部实现细节,对外提供公共的访问方式(是不是很像封装)。但SDK需将逻辑结果告知调用者,这个接口的功能你是调用成功还是失败,成功以后你会通过SDK拿到什么样的数据等等。
SDK开发的优点就是,拓展性较强。这里的拓展性不仅可以理解为,SDK是专注于为某一个功能模块提供一套完整的解决方案,减少各应用开发周期和难度,而且,可以为很多家想使用SDK的应用提供相同的技术方案,复用性较强。
概念二:游戏研发
Sdk.Login();
另外,上面也说到了关于游戏研发的内容,这里不做过多描述。因此,本文所指的游戏研发具体是指,对接渠道游戏SDK的技术人员。需要注意的是,有些公司的SDK开发,不仅要写渠道SDK也负责对接其他家的渠道SDK。当然本文重点是突出如何编写渠道的SDK,因为开源的项目是一套Android渠道SDK。既然是渠道,所以大家可以私人订制、随意扩展。
分析:H5游戏SDK
说完Android在谈谈H5的游戏SDK。顺道说一声,最近在游戏领域H5游戏可谓是趋势刚猛异军突起,可能一说H5,程序猿思维就直接告诉我们,这不是写前端网页的嘛。没错,H5的确是写网页的,但是H5适配客户端的优势相较于之前Html的几个版本优势会更加明显。而且,H5游戏开发周期相对较短,灵活性较强。我们知道,在Android加载H5只需要webview.load(url)即可,所以,现在市面上也很流行将H5游戏打包成Apk(是的,将H5打包成APK,一个包才几M,之前的游戏APK动辄百M,这样也为用户节省内存)网络环境较好的情况下,用户体验也比较流畅,那么,既然是H5的渠道游戏SDK,我们也来分析下其使用的技术栈。
当应用启动的时候,一般会先调用初始化接口。
2:之前开源的那套SDK项目个人觉得太LOW,虽然大家点了上百个star,但思考在三最后还是决定重写,所以原库已被笔者毫无保留的给删除了。
3:最新版本的SDK是基于Android界内流行的MVP架构进行编码设计且抛弃了传统代码布局!
4:新项目短小精悍但是容易拓展,至于怎么拓展怎么玩怎么使用、主观能动性全在开发者自己手中,所以,你懂的。
5:新项目个人更加想表达的并不是针对需求的面面俱到,而是通过分析现象去思考并解决问题,比如现有的设计模式以及设计架构能否满足现阶段开发需求以达到思想互通与共鸣。
项目说明及使用:
好了,下面是项目结构图:
红色矩形:SDK内部逻辑编码层(本质库文件、将其打成jar包给对接技术使用)
另外:关于SDK的配置,诸如横竖屏配置等一些灵活性较强的功能,SDK内部应要提前设计好。笔者这里的UI是基于XML来进行编写,抛弃了传统代码布局那种琐冗余费时费力且不讨好的写法;另外,关于浮标这一功能,我也没有进行编写,因为在github上有位作者开源了此类轮子,虽然笔者没有clone下来仔细研究但貌似效果还是不错。
不积跬步无以至千里,不积小流无以成江海。希望我们能够不断丰富自己的技术栈,早日走上技术之巅!