为你的移动应用添加广告
有段时间没有写博客了,接了一个android的外包,直到前段时间才收尾,不过弄的够呛的,主要是前期的一些流程没有商量好,加上时间又比较紧张,所以当时就匆匆忙忙的弄了起来,至于后期收款的事情一拖再拖,而且这还是前期的一个demo。
接下来介绍的是给我们自己的app添加广告,这边选择的广告平台是腾讯旗下的Adview平台,地址是:http://www.adview.cn/ 里面提供了相应的sdk和开发文档,里面都有详细的说明,而且提供了三种不同的方式来添加广告,可以从这边http://www.adview.cn/sdk下载文档和sdk,当然这些都是你添加广告的前奏。
下面我们来看看是怎样添加广告吧,下载后的压缩包是这样的:
需要注意的是下载下来的sample里面的demo在我自己的机器上跑不起来,后来自己写了一个其实也挺简单的。Adview提供了三种不同的方式添加广告,分别是布局方式,代码方式,xml布局方式自己可以根据自身的需要选择不同的方式添加广告,我建立一个AdViewActivity,里面相应的布局分别放三个按钮
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/ad_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="布局方式"/> <Button android:id="@+id/ad_code" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="代码方式"/> <Button android:id="@+id/ad_xml" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="xml布局方式"/></LinearLayout>//AdViewActivity private Context mContext;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.adview_layout);mContext = this;findViewById(R.id.ad_layout).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent i = new Intent(mContext, LayoutActivity.class);startActivity(i);}});findViewById(R.id.ad_code).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent i = new Intent(mContext, CodeActivity.class);startActivity(i);}});findViewById(R.id.ad_xml).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent i = new Intent(mContext, XMLAdViewActivity.class);startActivity(i);}});}
LayoutActivity的代码如下:
/*** * @author huangsm * @date 2012-7-9 * @email huangsanm@gmail.com * @desc 布局方式添加 */public class LayoutActivity extends Activity implements AdViewInterface{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.layout);//在调试的时候可以放开,//AdViewTargeting.setRunMode(RunMode.TEST);//AdViewTargeting.setUpdateMode(UpdateMode.EVERYTIME);LinearLayout layout = (LinearLayout) findViewById(R.id.adLayout);AdViewLayout adViewLayout = new AdViewLayout(this, "SDK201207150706098ng5d8fpuvjg0gi");adViewLayout.setAdViewInterface(this);layout.addView(adViewLayout);layout.invalidate();}@Overridepublic void onClickAd() {}@Overridepublic void onDisplayAd() {}}//布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/layout_main"> <LinearLayout android:id="@+id/adLayout" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
通过代码的方式添加广告的方式显得相当灵活,CodeActivity的代码如下:
/*** * @author huangsm * @date 2012-7-9 * @email huangsanm@gmail.com * @desc 纯代码方式 */public class CodeActivity extends Activity implements AdViewInterface{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); /*下面两行只用于测试,完成后一定要去掉,参考文挡说明*/ //AdViewTargeting.setUpdateMode(UpdateMode.EVERYTIME); //每次都从服务器取配置 //AdViewTargeting.setRunMode(RunMode.TEST); //保证所有选中的广告公司都为测试状态 AdViewLayout adViewLayout = new AdViewLayout(this, "SDK201207150706098ng5d8fpuvjg0gi"); adViewLayout.setAdViewInterface(this); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT); params.gravity=Gravity.BOTTOM; setContentView(adViewLayout, params);}@Overridepublic void onClickAd() {// TODO Auto-generated method stub}@Overridepublic void onDisplayAd() {// TODO Auto-generated method stub}}
通过XMLAdViewActivity方式添加:
/*** * @author huangsm * @date 2012-7-9 * @email huangsanm@gmail.com * @desc */public class XMLAdViewActivity extends Activity implements AdViewInterface {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.xml_layout); /*下面两行只用于测试,完成后一定要去掉,参考文挡说明*/ //AdViewTargeting.setUpdateMode(UpdateMode.EVERYTIME); //每次都从服务器取配置 // AdViewTargeting.setRunMode(RunMode.TEST); //保证所有选中的广告公司都为测试状态 /*下面这句方便开发者进行发布渠道统计,详细调用可以参考java doc */ //AdViewTargeting.setChannel(Channel.GOOGLEMARKET); AdViewLayout adViewLayout = (AdViewLayout)findViewById(R.id.adview_layout); adViewLayout.setAdViewInterface(this);}@Overridepublic void onClickAd() {// TODO Auto-generated method stub}@Overridepublic void onDisplayAd() {// TODO Auto-generated method stub}}//布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <com.adview.AdViewLayout android:id="@+id/adview_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"/></LinearLayout>
这样你的应用里面就可以显示广告了,而且广告显示的位置可以自行调整通过gravity布局参数设置广告的位置,
说明:
1:SDK201207150706098ng5d8fpuvjg0gi这个是你注册过后的key
2:需要添加AdViewSDK_Android.jar,这个包是必须要的,例外还可根据自行选择的广告商添加不同的jar,里面的开发“AdView应用互推使用指南”都有相关的说明,
3:需要在androidmanifest.xml文件中声明权限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
代码已经分享到: http://www.oschina.net/code/snippet_127095_11879
再和大家分享一篇关于分析不同广告平台的文章:http://blog.jobbole.com/23008/
更多相关文章
- Android实现View滑动的6种方式
- android studio2.3以后给apk签名打包后安装失败的问题[INSTALL_P
- android 添加外接键盘操作事件流程
- android在java代码中动态添加组件及相关布局方法(LayoutParams)
- Android(安卓)Framework 如何学习,如何从应用深入到Framework?
- [Android]继承式UI界面布局设计
- Android(安卓)ndk探索之一(利用Android(安卓)Studio和ndk编译c)
- Framework StatusBar添加(wifi,bluetooth,gps,sound,rotate)控制面
- Android中广告渠道SDK接入方法