您的位置:首页 > 移动开发 > Android开发

Android 广告植入 简例

2014-07-13 21:46 99 查看
转载自 http://blog.csdn.net/jackystudio/article/details/12150907 2.广告植入
现在这类广告多如牛毛。选择哪家我也就不多说了,免得有广告嫌疑。如何植入广告这里我也只能简单的说下。因为实际植入还是很麻烦的,毕竟广告商的SDK不一样,还涉及到jni技术,java基础,Android开发基础,这些都要有了解。
这里我把广告分为两类,这部分我也算初学,如果有什么错误,烦请指出。。。

2.1.Android广告和cocos2d-x游戏无交互
这类比如开场插屏广告之类的。
这里广告和游戏没有交互,也就是说它和游戏的相对独立的,大体步骤是:
(1)单独的做出一个带有广告LoadingActivity和对应布局,然后在AndroidManifest.xml中把启动Activity指向它。
(2)我们看一下JackyActivityActivity(cocos2d-x自动帮你生成的):

public class JackyAirplane extends Cocos2dxActivity

public class Cocos2dxActivity extends Activity

是的,cocos2d-x游戏也是一个Activity,所以可以在LoadingActivity中实现Runnable接口,开启一个线程调用它。

Runnable runnable=new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
Intent intent = new Intent(LoadActivity.this, JackyAirplane.class);
LoadActivity.this.startActivity(intent);//切换Activity
LoadActivity.this.finish();
}
};

2.2.Android广告和cocos2d-x游戏有交互

这类比如过场广告,暂停广告之类的。
这里处理起来就比无交互的麻烦多了。其实也就是要在C++代码中调用JavaAPI,所以采用了Jni技术。
(1)Java代码:给JackyAirplane添加一个静态广告成员变量。

public class JackyAirplane extends Cocos2dxActivity{
...
public static AdView adView;    // 第3方广告



(2)Java代码:添加静态成员方法,用来显示广告。

public static void showAD() {
  new Thread(new Runnable(){

  @Override
  public void run() {
  adView.setVisibility( adView.VISIBLE );
  }

  }).start();
}

(3)C++代码:通过jni调用showAD()。

#include <jni/JniHelper.h>

JniMethodInfo minfo;
jobject jobj;

bool b = JniHelper::getStaticMethodInfo(minfo,
"com/jacky/jackyAirplane/JackyAirplane", //类路径
"showAD", //静态方法名
"()V"); //括号里的是参数,后面的是返回值
if(b)
jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID);
else
;//打印错误...

如果要控制广告的开关,可以在Java内使用Handler来接收消息控制,不过这个时候就要记得传参(开/关)了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: