你的位置:首页 > 操作系统

[操作系统]手游项目总结


游戏项目尾声,做下总结:
1.sharesdk微信微博分享
(1) 如果接入众多渠道,选用服务端获取代码配置参数的方式(微信:app_id 微博: app_key, app_secret)代码配置2.x版本需注意setPlatformConfig设置参数时Android和ios设置key不同(Android:AppId AppKey AppSecret; IOS:app_id app_key app_secret)
微博一个应用Android支持多套包名签名分享,IOS需升级weibosdk到3.0以上最新版,通知微博应用后台合并支持多套bundleid,即:微信需要为每个渠道申请一个微信应用(每个开发者账号可申请10个应用,每个应用只支持一套bundleid和一套packagename签名)
(2) Android回调文件WXEntryActivity.java必须在包名packagename指定目录下才能正常监听分享是否成功,注意代理方如果再次接入含微信sdk(如微信登录)WXEntryActivity.java文件会有冲突,目前做法是保留登录sdk此文件,此渠道点分享默认分享成功。
(3) 新浪微博分享网络图片需要申请高级权限:微博高级写入接口,否则报错 
(4) 微博应用未审核通过时,可添加测试账号进行测试
(5) 微博只支持web授权可减少sdk体积(不支持客户端sso授权)
(6) ios9兼容适配
(7) 截屏出现白屏情况:URLayou裁剪方式相关,修改裁剪方式对listview等控件影响。
(8) IOS切包需注意除了代码配置appid等信息,URLSchemes需与微信微博一一对应(微博web授权可不设置)。
(9) 其他问题可以咨询Mob.com 移动开发者服务平台账号:938055289。 
2.Andorid Bugly崩溃统计分析
(1) 上报debug内测版本和release正式版本分开
(2) 及时上传符号表,给so添加版本号,正式版备份so文件(proj.android/obj/local/armeabi/libcocos2dcpp.so)备用,可用addr2line工具配合符号表使用。
(3) 加入崩溃自定义日志,如切入后台前台和转场。
(4) generic / generic_x86 设备机型为模拟器,对OpenGL支持有问题:eglChooseConfig failed。
(5) Bugly官方交流群:130979883
 
3.Android ndk-gdb调试
(1) 配置环境变量(ndk和sdk,ant打包需配置ant),Application.mk文件配置需增加NDK_TOOLCHAIN_VERSION和APP_ABI。
(2) 目前调试只能用支持armeabi的机型,魅族mx5(x86)不支持。
(3) NDK_DEBUG编译,启动apk,开启ndk-gdb可断点调试。
 
3.第三方机型测试
(1) 可设置自定义key输出统计,比如统计场景平静帧频,转场时间。
(2) TestIn测试建议使用TestIn自己的崩溃sdk,屏蔽Bugly。
(3) 特定机型出现的问题可配合优测云手机远程测试。
 
4.UI动态
(1) 动态编辑器冗余数据可删除。
(2) widget不支持递归child透明度渐变,需修改遍历支持。
(3) UI界面页签数量和是否开放对动态的影响(页签数量越增加越多尺寸缩小)。
(4) 动态对其他模块影响,如引导,提供动态执行完毕接口。
(5) 同时播放两个UI动态时动态覆盖问题,需要每个动态都是一个独立单元。 
5.DataEye
(1) 客户端服务端渠道名称统一使用渠道id,然后设置别名。
(2) 虚拟币统计系统错误:数据量大,可选取单日查看,仍然错误,尝试清理浏览器缓存。
(3) 注意客户端与服务端数据统一:渠道,区服等。
(4) 测试渠道正式包时,避免TestIn测试数据统计到正式渠道,可修改版本号等方式。 
6.推送
(1) 本地定时推送使用AlarmManager设置闹钟并监听重启,重启后重新设置闹钟。
(2) 网络推送:信鸽推送需添加支持多包名推送。
 
7.安卓遇到的一些其他的坑
(1) ANR:不要在主线程过多耗时操作,不要在MainAvitivity onCreate里过多初始化各种sdk等操作。
(2) 子线程直接更新UI闪退:使用handler处理。
(3) 子线程调用jni闪退:
(4) 遇到小米1机器上骨骼动画不断闪烁:2.3版本库bug,修改CCTextureAtlas::initWithTexture 方法,如果时Android平台m_uCapacity=32;
(5) 非全屏状态键盘弹出和收回的监听addOnGlobalLayoutListener:
(6) 文字链接按下时会不同触发moved事件,需要做下限定,如判定下_touchStartPos和_touchMovePos的距离超过10像素才判定为moved,否则很难监听到ended文字链接很难点击到。
(7) 资源读取,Android无法读取apk压缩包里的zip中文件,读取方式拷贝到到写路径路解压或直接二进制读取。
(8) launchMode为默认点击本地推送消息会重新开启游戏,singleInstance可能会销毁sdk登录框Activity造成卡在登录步骤。
(9) 渠道提示更新等是根据versionCode,版本更新versionCode必须增加。
(10) 同时播放多个音效时有音效丢失情况修改设置:Cocos2dxSound.java MAX_SIMULTANEOUS_STREAMS_DEFAULT
(11) jni接口,c++调用java方法,返回值要匹配(Android5.0以上不匹配必然闪退)。
 
8.反编译调试渠道包出现问题而母包不出现的问题,可以省略来回切包的步骤
(1) 对应版本本地编译debug带log版本(-DCOCOS2D_DEBUG=1),同时添加调试日志,反编译渠道包替换so文件,重新打包签名测试。