Android 开发类似开屏广告的实现

在 Android 开发中,开屏广告是一种常见的广告形式,用于在应用启动时展示广告界面。本文将详细介绍如何实现一个简单的开屏广告,并提供每个步骤所需的代码及相关解释。

流程概述

以下是实现开屏广告的基本步骤:

步骤 描述
1. 准备工作 确保已安装 Android Studio 和相应的 SDK。
2. 创建新项目 创建一个新的 Android 项目。
3. 添加广告依赖 在项目中添加 Google Mobile Ads SDK 依赖。
4. 配置 AndroidManifest 在 AndroidManifest.xml 中配置必要的权限和广告活动。
5. 创建开屏广告布局 设计开屏广告的布局文件。
6. 编写开屏广告逻辑 在主要活动中编写代码以加载和显示广告。
7. 测试广告 使用测试广告 ID 确保广告能正常显示。

接下来,我们将详细讨论每个步骤。

步骤详解

1. 准备工作

确保你已安装 Android Studio,并且可以创建新的 Android 项目。

2. 创建新项目

打开 Android Studio,选择“新建项目”。根据向导进行设置,选择“Empty Activity”模板。

3. 添加广告依赖

在项目的 build.gradle 文件中添加 Google Mobile Ads SDK,如下所示:

dependencies {
    implementation 'com.google.android.gms:play-services-ads:20.0.0' // 添加 Google Mobile Ads SDK 依赖
}

点击“Synchronize Now”以同步你的项目。

4. 配置 AndroidManifest

AndroidManifest.xml 文件中添加权限和广告活动。以下是需要添加的内容:

<manifest xmlns:android="
    package="com.example.yourapp">

    <application
        ...>
        <activity
            android:name=".SplashActivity"
            android:theme="@style/Theme.AppCompat.NoActionBar">
        </activity>

        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="YOUR_ADMOB_APP_ID"/> <!-- 替换为你的 AdMob 应用 ID -->
    </application>

    <uses-permission android:name="android.permission.INTERNET"/> <!-- 需要互联网权限 -->
</manifest>

5. 创建开屏广告布局

res/layout 文件夹下创建 activity_splash.xml 文件,添加以下布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginTop="20dp"
        ads:adSize="BANNER"
        ads:adUnitId="YOUR_BANNER_AD_UNIT_ID"/> <!-- 替换为你的广告单元 ID -->

</RelativeLayout>

6. 编写开屏广告逻辑

创建 SplashActivity 类并编写广告加载逻辑:

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;

public class SplashActivity extends AppCompatActivity {

    private AdView mAdView; // 声明广告视图

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        MobileAds.initialize(this, initializationStatus -> {}); // 初始化广告 SDK

        mAdView = findViewById(R.id.adView); // 绑定广告视图
        AdRequest adRequest = new AdRequest.Builder().build(); // 创建广告请求
        mAdView.loadAd(adRequest); // 加载广告
        
        // 延时跳转到主活动
        new Handler().postDelayed(() -> {
            Intent intent = new Intent(SplashActivity.this, MainActivity.class); // 创建主活动意图
            startActivity(intent); // 启动主活动
            finish(); // 结束开屏活动
        }, 3000); // 3000 毫秒后跳转
    }

    @Override
    protected void onPause() {
        if (mAdView != null) {
            mAdView.pause(); // 暂停广告视图
        }
        super.onPause();
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (mAdView != null) {
            mAdView.resume(); // 恢复广告视图
        }
    }

    @Override
    protected void onDestroy() {
        if (mAdView != null) {
            mAdView.destroy(); // 销毁广告视图
        }
        super.onDestroy();
    }
}

7. 测试广告

确保在 AdMob 中获得一个测试广告单元 ID,并替换布局文件中的 YOUR_BANNER_AD_UNIT_ID。在运行应用程序时,你将看到 3 秒的开屏广告,然后进入主界面。

序列图

以下是开屏广告加载和跳转的序列图:

sequenceDiagram
    participant User
    participant SplashActivity
    participant AdView
    participant MainActivity

    User->>SplashActivity: 启动应用
    SplashActivity->>AdView: 初始化广告请求
    AdView-->>SplashActivity: 广告加载完成
    SplashActivity->>User: 显示开屏广告
    User->>SplashActivity: 等待 3 秒
    SplashActivity->>MainActivity: 启动主活动
    User->>MainActivity: 进入主活动

结尾

通过上述步骤,你已经成功实现了一个简单的开屏广告。你可以根据需要自定义广告样式和显示持续时间。记得在发布前测试广告并使用真实的广告单元 ID。这将帮助你更好地了解广告的运行机制,并为你的应用创造潜在的收益。希望这篇文章能对你有所帮助!