Days ago, I wrote an article about porting Golang project to Android with gomobile build
command. These days, Our team has developed a new game, and we are going to integrate AD SDK to make money.
It's not easy to add java code to a Golang project, but if you think in the other way, we can simply copy the go binary to an Android project, that we can take this project as a normal Android project.
So here is the main step:
- Create a new Android project
- Copy the
GoNativeActivity.java
file to project (you can find the file in gomobile package) - Copy the
.so
to project - Configure the
AndroidManifest.xml
file to use your new Acitivity
That's all, Build and Run, you can see that the Android project has been running our Golang code. But where can I get these .so
files? I just unzip the .apk
built from gomobile build -target=android ./
command.
The next step is to add ads. Adding ads to this special project is no different from any Android project. Here, we add the Ad code in GoNativeActivity
. Note that, GoNativeActivity has no view tree, we can't just add AdView as a subview. A way to solve this problem is to use a PopupWindow
to contain the adview.
In fact, it's very simple:
// load adview
popup = new PopupWindow(this);
popup.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
// banner
AdView adView = new AdView(this);
popup.setContentView(adView);
// show ad at bottom of screen
popup.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM, 0, 0);
In my project, I integrated AdMob's Banner SDK. It works very well with test ad-uint-id. Here are screenshots of my game:
I have released the MAC version and Android version. You can get MAC version from itch.io: https://ntop.itch.io/shootingblock or download from GooglePlay: https://play.google.com/store/apps/details?id=io.korok.shootingblock
It's casual game, I really like the art style. (PS: Is there a way to close the ad remotely, it shows always. It seems AdMob doesn't provide a way to control frequency)
Top comments (0)