天天看點

SDK接入整合,用一個變量切換不同管道

在遊戲開發的最後,都會涉及到接sdk的工作,每個人也都有自己不同的解決方案,在這裡将我自己的做法介紹給大家,僅供參考。sdk主要實作幾個功能:

  • 用一個變量切換不同管道
  • 屏蔽所有管道的差異性

類圖:

SDK接入整合,用一個變量切換不同管道

目錄結構大緻為:

SDK接入整合,用一個變量切換不同管道

下面介紹一下每個類的作用BaseChannel:所有管道類的父類,抽象類,判斷是否用某項功能并且調用對應的功能傳回調用的結果。負責屏蔽各個管道的差異性,通過為每個功能定義一個屬性,類型為BaseXXX,然後使用的時候判斷這個屬性是否為真,如果為真會調用對應的方法。

如果沒有就不必處理,或者直接傳回成功,關鍵代碼:

SDK接入整合,用一個變量切換不同管道

SDKManager:各個管道的工廠類,根據設定的管道号建立不同的channel,在SDK外部使用的時候使用:SDKManager.getChannel().showBanner((result:booelan)=>{}) 的形式完成調用。

不要根據具體平台做邏輯劃分,那樣你的代碼會越來越亂,關鍵代碼:

SDK接入整合,用一個變量切換不同管道

這裡的channelID可以有三種初始化方式:

  • 是在代碼中修改,好處是如果遊戲需要資源伺服器,那麼各管道資源可以公用一份,壞處是每次釋出一個管道,都需要重新編譯打包。
  • 是放到配置檔案中加載後讀取,好處就是釋出不同的管道隻需要在配置檔案中修改管道号。壞處就是如果需要資源伺服器,各管道不能公用一份資源。當然,如果配置不放到資源伺服器也是可以的。
  • 通過url獲得。這個是h5遊戲的做法,因為不同的管道傳給遊戲的url中可以帶着管道号。

相關的資料定義如下

SDK接入整合,用一個變量切換不同管道
SDK接入整合,用一個變量切換不同管道

功能類介紹

  • BaseRewardAd: 激勵視訊的基類,抽象類,定義了所有管道的激勵視訊功能的共有方法和共有屬性。值得一提的是,該結構可以支援不同位置彈出的激勵視訊使用不同的廣告ID。
  • BaseBanner:banner廣告基類,抽象類。
  • BaseLogin: 登陸功能的基類
  • BaseShare:分享功能的基類
  • BaseInsertAd:插屏廣告的基類。
  • 因為隻接了阿拉丁事件統計和分享功能,是以隻執行個體化了這兩個具體的類。其中的屬性已經在BaseChannel中聲明。
SDK接入整合,用一個變量切換不同管道

總結對sdk的封裝就先說這麼多,基本的結構和原理已經比較清楚了。我的微信、頭條小遊戲已「星際戰」剛上線曉衡微店,目前已經獲得3人支援。而且優惠2.5折今天下午結束,感謝支援!

上一篇: Prometheus概述
下一篇: LVS(一)

繼續閱讀