Android集成有米广告,简单几步就可以让app为你赚钱!

一:介绍

今天心血来潮,在安卓巴士上逛的时候下载了一个开源代码,然后运行起来看到有米的广告,想想自己也做一个集成有米广告的demo吧,然后我就做了有开屏广告,插屏广告和广告条三种形式的广告demo,不含有积分广告.

二:demo运行效果图

1.启动界面的广告,如网易云音乐启动界面3秒的广告



2.然后就是主界面的广告图



三:集成有米的步骤

1.首先进入有米官网点击进入有米官网,如果还没用开发者账号,就注册一个,注册完成之后就进入有米的管理后台,添加应用



2.之后点击下一步,先去下载有米的sdk,Android要和客服联系,然后客服发压缩包给你,解压之后的目录如下图


libs目录里面就是有米的sdk,导入到你的项目的libs目录下,addaslibrary即可,doc里面有集成的官方文档,文档里面提供链接,大家用浏览器打开即可,demo里面就是官方的eclipse工程的demo了,大家可以导入eclipse

3.官方的demo导入eclipse之后,复制里面的清单文件里的这些部分

(1)权限部分

<!-- 配置权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <!-- 如果使用积分墙广告,还需要配置下面权限 -->
    <!-- <uses-permission android:name="android.permission.GET_TASKS" /> -->
    <!-- <uses-permission -->
    <!-- android:name="android.permission.PACKAGE_USAGE_STATS" -->
    <!-- tools:ignore="ProtectedPermissions" /> -->
    <!-- 以下为可选权限 -->
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
(2)组件部分

<!-- 视频组件 -->
        <activity
            android:name="er.kj.iy.video.VideoActivity"
            android:configChanges="keyboard|keyboardHidden|screenSize|orientation"
            android:screenOrientation="landscape"
            android:theme="@android:style/Theme.NoTitleBar" />

        <!-- 其他组件 -->
        <activity
            android:name="er.kj.iy.SD"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
            android:theme="@android:style/Theme.NoTitleBar" />

        <service
            android:name="er.kj.iy.QW"
            android:exported="false" />

        <receiver android:name="er.kj.iy.VB">
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_INSTALL" />

                <data android:scheme="package" />
            </intent-filter>
        </receiver>

        <!-- 有米渠道号(可选配置) 渠道号不能带空格,类型为整数 -->
        <meta-data
            android:name="YOUMI_CHANNEL"
            android:value="0" />

3.就是初始化有米sdk,这里初始化放在第一次启动的activity中,你也可以放在项目的自定义application中,同时别忘了在清单文件里引入你定义的application

//请务必在应用第一个 Activity(启动的第一个类)的 onCreate 中调用以下代码,初始化sdk
        AdManager.getInstance(context).init(appId, appSecret, true);
appId和appSecret是你再 有米后台管理添加应用的时候获取到的,第三个布尔类型的参数表示是否打印日志,处于开发模式的时候设为true


4.在程序的启动activity中加入开屏广告,效果是上面的第一张效果图

/**
     * 设置开屏广告
     */
    private void setupSplashAd() {
        /**
         * 自定义模式
         */
        SplashView splashView = new SplashView(this, null);
        // 设置是否显示倒计时,默认显示
        splashView.setShowReciprocal(true);
        // 设置是否显示关闭按钮,默认不显示
        splashView.hideCloseBtn(true);
        //传入跳转的intent,若传入intent,初始化时目标activity应传入null
        Intent intent = new Intent(this, MainActivity.class);
        splashView.setIntent(intent);
        //展示失败后是否直接跳转,默认直接跳转
        splashView.setIsJumpTargetWhenFail(true);
        //获取开屏视图
        View splash = splashView.getSplashView();

        final RelativeLayout splashLayout = (RelativeLayout) findViewById(R.id.rl_splash);
        splashLayout.setVisibility(View.GONE);
        //添加开屏视图到布局中
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        params.addRule(RelativeLayout.ABOVE, R.id.view_divider);
        splashLayout.addView(splash, params);
        //显示开屏
        SpotManager.getInstance(context).showSplashSpotAds(context, splashView, new SpotDialogListener() {

            @Override
            public void onShowSuccess() {
                Log.i(TAG, "开屏展示成功");
                splashLayout.setVisibility(View.VISIBLE);
                splashLayout.startAnimation(AnimationUtils.loadAnimation(context, R.anim.anim_splash_enter));
            }

            @Override
            public void onShowFailed() {
                Log.i(TAG, "开屏展示失败");
            }

            @Override
            public void onSpotClosed() {
                Log.i(TAG, "开屏被关闭");
            }

            @Override
            public void onSpotClick(boolean isWebPath) {
                Log.i(TAG, "开屏被点击");
            }
        });

        /**
         * 默认模式
         */
        // SpotManager.getInstance(this).showSplashSpotAds(this,
        // MainActivity.class);
    }

5.上面的开屏广告在5秒之后会自动进入主activity,或者用户点击关闭立刻进入主activity,主activity展示的是广告条和插屏广告,下面是完整的主activity的代码

package com.zidiv.youmidemo;

import android.app.Activity;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;

import er.kj.iy.br.AdSize;
import er.kj.iy.br.AdView;
import er.kj.iy.br.AdViewListener;
import er.kj.iy.st.SpotDialogListener;
import er.kj.iy.st.SpotManager;

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "youmi-demo";
    private Context context = this;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //设置插屏
        setupSpotAd();
        //设置广告条
        setupBannerAd();
    }


    /**
     * 设置插屏广告
     */
    private void setupSpotAd() {
        // 预加载插屏广告数据
        SpotManager.getInstance(context).loadSpotAds();
        // 设置插屏动画的横竖屏展示方式,如果设置了横屏,则在有广告资源的情况下会是优先使用横屏图
        SpotManager.getInstance(context)
                .setSpotOrientation(SpotManager.ORIENTATION_LANDSCAPE);
        // 插屏动画效果,0:ANIM_NONE为无动画,1:ANIM_SIMPLE为简单动画效果,2:ANIM_ADVANCE为高级动画效果
        SpotManager.getInstance(context).setAnimationType(SpotManager.ANIM_ADVANCE);

        Button btnShowSpot = (Button) findViewById(R.id.btn_show_spot);
        if (btnShowSpot.getVisibility() == View.GONE) {
            btnShowSpot.setVisibility(View.VISIBLE);
        }

        btnShowSpot.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 展示插屏广告,可以不调用预加载方法独立使用
                SpotManager.getInstance(context)
                        .showSpotAds(context, new SpotDialogListener() {
                            @Override
                            public void onShowSuccess() {
                                Log.i(TAG, "插屏展示成功");
                            }

                            @Override
                            public void onShowFailed() {
                                Log.i(TAG, "插屏展示失败");
                            }

                            @Override
                            public void onSpotClosed() {
                                Log.i(TAG, "插屏被关闭");
                            }

                            @Override
                            public void onSpotClick(boolean isWebPath) {
                                Log.i(TAG, "插屏被点击,isWebPath = " + isWebPath);
                            }
                        });
            }
        });
    }

    /**
     * 设置广告条广告
     */
    private void setupBannerAd() {
        //		/**
        //		 * 普通布局
        //		 */
        //		// 实例化广告条
        //		AdView adView = new AdView(context, AdSize.FIT_SCREEN);
        //		LinearLayout bannerLayout = (LinearLayout) findViewById(R.id.ll_banner);
        //		bannerLayout.addView(adView);
        /**
         * 悬浮布局
         */
        // 实例化LayoutParams(重要)
        FrameLayout.LayoutParams layoutParams =
                new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
        // 设置广告条的悬浮位置,这里示例为右下角
        layoutParams.gravity = Gravity.BOTTOM | Gravity.RIGHT;
        // 实例化广告条
        AdView adView = new AdView(context, AdSize.FIT_SCREEN);
        // 监听广告条接口
        adView.setAdListener(new AdViewListener() {

            @Override
            public void onSwitchedAd(AdView arg0) {
                Log.i(TAG, "广告条切换");
            }

            @Override
            public void onReceivedAd(AdView arg0) {
                Log.i(TAG, "请求广告成功");
            }

            @Override
            public void onFailedToReceivedAd(AdView arg0) {
                Log.i(TAG, "请求广告失败");
            }
        });
        // 调用Activity的addContentView函数
        ((Activity) context).addContentView(adView, layoutParams);
    }

    @Override
    public void onBackPressed() {
        // 如果有需要,可以点击后退关闭插播广告。
        if (!SpotManager.getInstance(context).disMiss()) {
            super.onBackPressed();
        }
    }

    @Override
    protected void onStop() {
        // 如果不调用此方法,则按home键的时候会出现图标无法显示的情况
        SpotManager.getInstance(context).onStop();
        super.onStop();
    }

    @Override
    protected void onDestroy() {
        // 调用插屏,开屏,退屏时退出
        SpotManager.getInstance(context).onDestroy();
        super.onDestroy();
    }
}

6.布局文件其实用的就是官方demo中的布局文件,这里就不展示了,大家下载到官方的压缩包之后解压demo中就有,或者下载我的demo也是可以的,大家根据项目需要调整布局文件即可


四.好了,集成有米的广告还是非常简单的,很方便,这里给出我的demo,大家可以下载点击下载demo



  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Android Studio是一款由Google开发的集成开发环境(IDE),用于开发Android应用程序。它提供了丰富的工具和功能,包括代码编辑器、调试器、布局编辑器、性能分析器等,使开发人员能够更快、更高效地开发出高质量的Android应用程序。使用Android Studio,开发人员可以轻松地创建、测试和部署应用程序,同时还可以利用其强大的插件系统来扩展其功能。 ### 回答2: Android Studio是一款为Android应用开发提供支持的集成开发环境(IDE)。使用Android Studio可以方便地开发、调试和测试Android应用程序。 首先,通过Android Studio,开发者可以轻松地创建新的Android项目。Android Studio提供了一个项目向导,可以引导开发者选择项目的类型、目标设备和其他必要的设置。开发者只需几步简单的操作,就能快速创建一个新的Android应用项目。 其次,Android Studio提供了强大的代码编辑和调试功能。开发者可以在Android Studio中编写Java或Kotlin代码,并通过智能提示和自动补全功能提高开发效率。此外,Android Studio还提供了强大的调试功能,能够帮助开发者找出并修复应用程序中的bug。 此外,Android Studio还提供了丰富的工具和库,可以帮助开发者构建出色的Android应用。例如,开发者可以使用Layout Editor来设计应用程序的用户界面,使用Android Emulator模拟不同设备上的应用程序运行情况,使用Firebase和Google Play服务来添加云功能和集成广告等。 总的来说,Android Studio是一个功能强大且易于使用的工具,可以帮助开发者高效地开发Android应用。它提供了丰富的功能和工具,能够满足开发者的各种需求,并帮助他们创建出色的Android应用。无论是初学者还是经验丰富的开发者,都可以通过Android Studio来开发自己的应用程序。 ### 回答3: Android Studio是一种用于开发Android应用程序的集成开发环境(IDE)。作为Google官方推荐的开发工具,它提供了丰富的功能和工具,可支持开发者开发高质量的Android应用。 首先,Android Studio使用基于Java的编程语言来开发Android应用。Java是一种面向对象的编程语言,具有良好的可维护性和可扩展性。开发者可以利用Java的强大功能,轻松地构建出复杂的应用程序。 其次,Android Studio提供了丰富的界面设计工具,包括可视化布局编辑器和调试器。开发者可以通过拖放组件来快速创建应用界面,并实时预览其效果。同时,调试器可以帮助开发者定位和修复代码中的错误,提高开发效率。 此外,Android Studio还提供了强大的性能分析工具,可帮助开发者优化应用的性能。开发者可以利用这些工具来检测和解决应用程序中的性能问题,从而提高应用的响应速度和稳定性。 最后,Android Studio具有良好的集成性,可以与其他开发工具和第三方库进行无缝集成。开发者可以使用Android Studio来管理项目依赖关系,并轻松地添加和使用各种功能强大的第三方库,以增强应用的功能和表现力。 总之,Android Studio是一款功能强大的开发工具,提供了丰富的功能和工具,支持开发者开发高质量的Android应用。无论是初学者还是有经验的开发者,都可以通过Android Studio来构建出优秀的Android应用。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值