手游項目總結,游項目總結
游戲項目尾聲,做下總結:
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文件,重新打包簽名測試。