ad怎么封装
更多
在 Android 开发中,"AD" 可能指代 Android Device(设备信息)或 Advertising(广告模块),以下是两种常见场景的封装方案:
方案一:设备信息工具类封装(Android Device)
用于统一管理设备信息获取逻辑:
public class DeviceUtils {
// 单例模式封装
private static volatile DeviceUtils instance;
private DeviceUtils() {}
public static DeviceUtils getInstance() {
if (instance == null) {
synchronized (DeviceUtils.class) {
if (instance == null) {
instance = new DeviceUtils();
}
}
}
return instance;
}
// 获取设备基础信息
public String getDeviceInfo() {
return Build.BRAND + " " + Build.MODEL; // 示例:Xiaomi Mi 10
}
// 获取系统版本
public String getAndroidVersion() {
return "Android " + Build.VERSION.RELEASE;
}
// 获取屏幕分辨率(需Context)
public String getScreenResolution(Context context) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
return dm.widthPixels + "x" + dm.heightPixels;
}
}
使用示例:
String deviceInfo = DeviceUtils.getInstance().getDeviceInfo();
方案二:广告模块封装(Advertising SDK)
统一管理广告加载/展示逻辑:
public class AdManager {
private final Context context;
private InterstitialAd mInterstitialAd;
public AdManager(Context context) {
this.context = context.getApplicationContext();
}
// 初始化广告SDK
public void init(String adUnitId) {
MobileAds.initialize(context);
loadInterstitialAd(adUnitId);
}
// 加载插页广告
private void loadInterstitialAd(String adUnitId) {
mInterstitialAd = new InterstitialAd(context);
mInterstitialAd.setAdUnitId(adUnitId);
mInterstitialAd.loadAd(new AdRequest.Builder().build());
}
// 展示广告(带回调)
public void showInterstitialAd(AdCallback callback) {
if (mInterstitialAd != null && mInterstitialAd.isLoaded()) {
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
callback.onAdDismissed();
loadInterstitialAd(mInterstitialAd.getAdUnitId()); // 重新加载
}
});
mInterstitialAd.show();
} else {
callback.onAdFailed("Ad not loaded");
}
}
// 广告回调接口
public interface AdCallback {
void onAdDismissed();
void onAdFailed(String error);
}
}
使用示例:
AdManager adManager = new AdManager(this);
adManager.init("ca-app-pub-3940256099942544/1033173712"); // 测试ID
// 展示广告
adManager.showInterstitialAd(new AdManager.AdCallback() {
@Override
public void onAdDismissed() {
Log.d("AD", "广告关闭后继续流程");
}
@Override
public void onAdFailed(String error) {
Log.e("AD", "广告加载失败: " + error);
}
});
关键封装原则:
-
单一职责
每个类/方法只处理一种设备类型或广告类型 -
接口隔离
广告模块通过回调接口暴露状态(展示成功/失败),避免强耦合 -
集中管理
设备信息统一在工具类中获取,避免代码重复 -
兼容性处理
设备信息获取需考虑不同 API 版本的差异(如使用BuildCompat) -
生命周期管理
广告对象持有Application Context防止内存泄漏
注意事项:
- 权限声明:获取设备信息需在
AndroidManifest.xml添加权限(非敏感信息通常不需要) - 广告合规:遵循 GDPR 和区域广告政策
- SDK 初始化:广告 SDK 初始化应在
Application类中完成
根据您的具体场景选择封装方式,也可结合两者(如设备信息 + 广告个性化)。
PCB设计与封装指导白皮书合集
资料简介: 本书内容为规定公司所有设计PCB板器件封装的命名与设计规范度,保证公司设计的PCB板器件使用的统一性,便于对所有设计的PCB可靠性进行监控,也便于对PCB审核与归档。本文档规定元器件封装
资料下载
elecfans小能手
2022-09-23 16:00:42
常见的电子元器件和芯片封装类型
芯片的世界封装类型太多了,这里总结了70多种常见的芯片封装。希望能让你对封装有一个大概的了解。
资料下载
h1654156022.3134
2021-04-22 09:14:41
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
相关标签