================================
码字不易,且行且珍惜,郑重声明,转载请写明出处,多谢合作
================================
早前项目里接入了AnySDK,接的是lua版本,接入过程相当顺利,出包后能看到对应渠道的sdk调用,感觉很6。既然用到项目里了,就得对项目负责,希望能够清晰的了解AnySDK的技术边界,能改啥,能干啥,能干多远,找出AnySDK可自定义的边界。经过一轮尝试,得出如下几点跟扩展、自定义相关的总结,我在这里抛砖引玉一下。
手游开发完成后,集成AnySDK Framework,所生成的APK包称为母包,该母包通过桌面客户端工具快速生成多个渠道包,大大节约研发人员的时间与精力,提高团队效率。
AnySDK不仅支持C++、Lua、JavaScript接口,还支持Java接口与Unity的C#接口——也就是说,AnySDK可覆盖Cocos2d-x、Unity与大部分自研引擎三种主流需求。
零、测试环境:
MacOSX 10.10.3
AnySDK Version:1.5.0(Mac)
一、AnySDK.app包内文件结构:
其中用得上的有:config、MacOS、Script、tool
二、config/channel:
-
闪屏的smali代码及布局文件
-
放在这里的目的估计是觉得这个是common吧
三、config/sdk/XXX:
-
这个目录是anysdk打包用来实际操作的目录
-
对应XXX插件(渠道的各种sdk)下载回来解压后直接放在这里(anysdk的人提前将这些文件准备好供我们下载),这里面的文件被删除或修改都不会触发anysdk更新,只有这个[渠道]目录被删除的时候才会触发
-
XXX/config.xml文件,从anysdk下载,这个配置影响到anysdk这个软件上的一些表现,比如必填项、下拉菜单等等
-
config.xml里面的operateLs标签,描述了anysdk打包的操作流程,其实就是调用Script文件夹里面的python脚本,支持参数
-
pluginLs标签,描述了这个sdk插件支持什么功能()
-
version,描述插件版本
-
XXX/classes.dex,不解释,使用工具发编译阅读其代码,可以看到里面使用了libPluginProtocol.jar(接入anysdk提供的唯一jar)的一些类,我猜测是:结合tool/mac目录下的工具,通过baksmali将这个classes.dex->smali,然后再将smali和母包的smali合并后,该替换的替换,重新回编译出APK。细细想想,只要框架设计好,统一抽象接口,然后分不同sdk实现,再统一接口返回,是可以做到公共部分和sdk实现部分分离的
-
script.pyc,反编译看了下,就是将smali里的###XXXX_XXXX###替换成当前插件的实际数据
-
其余的就不说了,都是粗暴的merge和替换
四、config/config.db:
-
这个db记录了大部分数据,而且也记录了sdk的版本信息及文件名
-
这个db的数据来源:在anysdk这个软件上的填入的数据操作,数据流大概就是:sdk/XXX/config.xml->anysdk<->config.db
-
关键表:
-
game:主键gameID,游戏id,跟添加的游戏一一对应,唯一
-
tpl_channel:主键idChannel,意为渠道id,唯一,外键idGame(即game表主键gameID),记录每个游戏各有什么渠道
-
tpl_channel_sdk:主键id(idUserSDK),外键idChannel、idSDK,该表是一个“哪个渠道对应使用什么sdk”的表,主键id(idUserSDK)就是一个“记录用户选择渠道所用sdk搭配后的结果”的标识
-
tpl_sdk:主键idSDK,没有外键,就一查找表,里面的SDKName用来匹配config/sdk/XXX的目录
-
tpl_user_sdk_config:没有主键,就一关系表,外键有idUserSDK、idChannel、idSDK,跟tpl_channel_sdk一样,就多了两个name字段
-
tpl_user_sdk_param:主键没啥用,外键idUserSDK,记录用户选择的每种组合用到的键值对
-
总结:gameID对应多个idChannel,每个idChannel可以选择多种idSDK组合成多个idUserSDK,每个idUserSDK都有对应的记录有用信息的键值对
五、Script:
-
anysdk出包用到的python脚本,这个目录没了的话anysdk出包是会闪退的
结论:
-
可以修改所有的支付回调接口,统统传到我们的自己的服务器上,但是意味着跟所有sdk服务器对接的工作都是我们这边完成,工作量非常大
-
第一点提到的就是目前扩展自定义sdk的瓶颈。cp都知道,支付对接通过第三方公司统一操作,明摆着会泄漏收入流水等敏感数据。这块对接工作量虽不大,但是每个sdk的效率、处理甚至沟通方式都不同,所以这块无疑是最花时间的,anysdk帮我们统一做这块,大大方便了cp,所以在收入数据泄漏和游戏赶上市及渠道广度覆盖这个权衡上,需要有所舍有所得
-
如果想添加anysdk没有的sdk,需要自己弄一套config/sdk/XXX,config.xml配置好步骤及必要的信息段,在anysdk软件上支付、登陆回调改成自己的服务器,然后自己的服务器处理好anysdk框架传递的参数,保证客户端、游戏服务器、中转服务器调通即可。由于anysdk没有开源,估计生成classes.dex这一步会比较蛋疼
-
如果想修改已有的插件部分内容,请关注上面提到的config/sdk/XXX
以上,如有错漏烦请及时指出,欢迎讨论
================================
码字不易,且行且珍惜,郑重声明,转载请写明出处,多谢合作
================================
ps:AnySDK确实是一款想法不错的产品,很有前景。但是目前看来,使用者越来越多,除了日常解答群里问题,也要维持旧渠道更新,还要支持新渠道,以及bug修改等等,由于这些的原因,AnySDK的开发团队压力应该不少,个人觉得AnySDK可以考虑一下,开源或者发布更多的辅助工具,让每个开发者都能自己提供想要的sdk支持。祝福AnySDK走的更远更好。
相关推荐
需要一个高德认证开发者账号不然请求次数会不够 由于边界获取的点位太多(还有可能从高德地图获取的边界有出入),需要放到百度地图当中手动加工下
对FLUENT的入口边界进行自定义编辑,满足数值模拟所需要实现的边界条件
通过关注与地层边界同步发生或在地层边界之前不久发生的碰撞触发现象,研究了近40年来在德国北部Uhry附近的两个玻璃砂坑(上马斯特里赫特坑)的K / T边界。玻璃砂的开采。 然而,碎屑序列,沉积在大约10-12 m深度的...
全国最全,各省、市GPS边界坐标点,文本的形式保存,献给有需要的朋友
Java基于要SWing技术自定义标签的边界效果,通过javax.swing.border.Border 接口,进行自定义边界类OwnBorder。可以实现空边界(EmptyBorder)、斜切边界(BevelBorder)、蚀刻边界(EtchedBorder)、线条边界...
我们提出了AdS / CFT世界表边界S矩阵的融合公式。 我们证明,从基本Y = 0边界S矩阵开始,该公式正确地再现了两个粒子的束缚态边界S矩阵。
提出了有关列纳河下游侏罗纪/白垩纪(J / K)边界层的岩石地层和生物地层学的新数据,该处位于Chekurovka角和Chucha角。 Chekurovka剖面的Volgian-Valanginian间隔由Buolkalakh和Kigilyakh地层表示,对应于具有...
1、 产品具有应用范围广、开发效率高、使用简单、国产自主可控、实时性高()、测试环境仿真能力强等特点,接口全并具有良好的可扩展性; 2、 提供嵌入式系统测试培训、测试执行及测试管理的全套解决方案,便于产品...
多塞特郡的Purbeck层,辽宁西部的土城子组或河北省北部的后城组是非海洋侏罗纪/白垩纪(J / K)边界层序。 捷克-中国政府间科技合作项目... 初步的联合研究显示,在寻找中国北方非海上J / K边界方面取得了丰硕的成果。
尽管理论和实证研究表明,谦卑的领导具有积极的影响,但缺乏系统地审查其领导作用和对其积极影响的边界条件的研究。 本文首先简要介绍了谦卑领导者的研究状况,然后结合了谦卑领导者在个人和团体层面的边界条件的...
工程结构疲劳裂纹扩展的二维边界元模拟,曲先强,章晟,目前工程结构中由于裂纹的疲劳扩展而导致断裂破坏的现象非常普遍。从断裂力学角度,建立一船用齿圈的边界元模型进行计算。通过编
线性稳定性理论用于边界层波包型扰动演化的可靠性研究,苏彩虹,,本文研究了马赫数为3的超声速平板边界层中的展向波包型扰动的演化。首先,采用直接数值模拟方法(DNS)计算了扰动的演化,然后,�
三维电磁散射高阶叠层矢量有限元/边界积分方法及预条件技术,杨法,聂在平,本文将基于曲六面体高阶叠层矢量基函数应用到有限元/边界积分方法处理复杂三维电磁散射问题,在减少未知量的同时保证计算精度,��
javax.swing.border 包中提供了一些用来美化Swing 标签边界效果的类,本例通过实现javax.swing.border.Border 接口,进行自定义边界类OwnBorder。Border 接口描述了Swing 组件边界如何绘制。本例将实现如空边界...
SVM 分类软/硬边距线性和二项式内核的用户交互代码。
基于边界特征的图像二值化方法应用研究基于边界特征的图像二值化方法应用研究基于边界特征的图像二值化方法应用研究基于边界特征的图像二值化方法应用研究基于边界特征的图像二值化方法应用研究基于边界特征的图像二...
边界润滑研究现状,王慰祖,黄平,对边界润滑的研究进展进行了总结,着重介绍了边界润滑吸附膜的机理、分子膜粘滑现象、边界润滑模型、边界润滑过程中的磨损等方面
该程序是利用Matlab编写,用于RVE单元。施加周期性边界可以根据源码进行学习PBC原理。
可以求解二维弹性问题的边界元法程序,采用了线性单元来求解