在 Korok 遊戲中整合廣告(Android平台)

來源:互聯網
上載者:User

這幾天我們的新遊戲上線了,說實話還是挺好玩的。首發的是MAC版本,這兩天發布了Android版本,Android版本的盈利方式主要考慮就是廣告。此處記錄一下我們在整合廣告時候的一些經驗。

我們的遊戲引擎底層是基於 Gomobile 來打包的,但是 Gomobile 並沒有提供任何方式來整合第三方的jar包,雖然可以通過 Go->Cgo-Java 的方式來調用java代碼,但是卻無法添加新的java代碼,解決方案其實非常簡單,直接建立一個 Android 工程,然後把打包後的 .so 檔案烤包到 jniLibs 目錄,然後就可以直接運行這個 Android 工程了。

以下是具體的實現細節:

  1. 建立一個 Android 工程
  2. 複製 Gomobile 中的 GoNativeActivity.java 到新的工程
  3. 複製使用 Gomobile 打包的 .so 檔案到 jni 目錄
  4. 配置 AndroidManifest.xml 使用複製來的 Activity

編譯運行,此時可以發現 Android 工程已經可以愉快的運行我們的 Go 項目了。至於 .so 檔案怎麼來的呢?可以使用 gobind 或者直接從 gomobile build 打包 .apk 檔案中解壓出來。

接下來就是添加廣告,添加廣告的過程和普通的 Android 工程添加廣告沒有任何區別。我們把廣告添加在 GoNativeActivity.java 中,需要的注意的一點是,這個Activity繼承自 NativeActivity是沒有View的階層的,一般的解決方案是使用一個 PopupWindow 來容載廣告的View。

其實非常簡單,在我們的實現中大概就是這樣的幾行代碼:

// 裝在廣告Viewpopup = new PopupWindow(this);popup.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));// bannerAdView adView = new AdView(this);popup.setContentView(adView);// 在螢幕下方顯示廣告popup.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM, 0, 0);

整合廣告之後可以像正常的 Android 工程一樣打包簽名,在此不表。

其實這種做法也給我們之後做Android打包提供了一個思路,可以把工程分為 Android 部分和Golang 部分,使用指令碼統一打包,這樣無論對 java 或者 Go 的代碼進行了修改都可以使用同一個打包指令碼來執行,操作上可能會簡單很多。

另外發幾幅我們新遊戲 —— **Shoot Stack **的(很漂亮):


Shoot Stack

的解析度有點降低,實際上高清版非常好的。由於國內的特殊原因上線不了國內市場,現在上線了 itch.io 你可以在這裡下載到 MAC 版本:Shooting!Block by ntop 或者在 GooglePlay 下載 Android 版本:Android: Shoot Stackplay.google.com

googleplay.jpeg

油管視頻:https://youtu.be/MGd_QJ_nahU

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.