我的AD的base仓库,其他app的引用仓库
Go to file
jk df3481c924 BaseFragment 权限不使用反射 2025-11-20 16:47:24 +08:00
BaseLibrary BaseFragment 权限不使用反射 2025-11-20 16:47:24 +08:00
LibraryAd 针对权限请求部分优化完成 2025-11-20 14:21:42 +08:00
LibraryAdLib 针对权限请求部分优化完成 2025-11-20 14:21:42 +08:00
android_data BaseFragment 权限的反射方法修复 2025-11-20 16:09:26 +08:00
app BaseFragment 权限不使用反射 2025-11-20 16:47:24 +08:00
gradle/wrapper 优化环境配置 2025-08-22 14:31:13 +08:00
maven/com/chuangketie/jk BaseFragment 权限不使用反射 2025-11-20 16:47:24 +08:00
.gitignore maven内容提交 2025-06-30 13:49:41 +08:00
LICENSE maven内容提交 2025-06-30 13:49:41 +08:00
README.md 针对权限请求部分优化完成 2025-11-20 14:21:42 +08:00
build.gradle 优化环境配置 2025-08-22 14:31:13 +08:00
gradle.properties BaseFragment 权限不使用反射 2025-11-20 16:47:24 +08:00
gradlew maven内容提交 2025-06-30 13:49:41 +08:00
gradlew.bat maven内容提交 2025-06-30 13:49:41 +08:00
settings.gradle 项目名称改中文 2025-08-22 20:49:49 +08:00

README.md

BASE And AD模块集成指南

base-lib and ad 集成指南

项目gradle

maven {
    url "http://124.221.136.193:3000/app-lib/JKBaseLib/raw/master/maven"
    allowInsecureProtocol = true  // 允许HTTP
}

模块的gradle

//noinspection Aligned16KB
//Base_And_Ad
def lib_base = "1.0.1"
implementation "com.chuangketie.jk:lib_base:$lib_base"
def lib_ad = "1.0.1"
implementation "com.chuangketie.jk:lib_ad:$lib_ad"
def lib_ad_aar = "1.0.0"
implementation "com.chuangketie.jk:lib_ad_open_ad_sdk:$lib_ad_aar"
implementation "com.chuangketie.jk:lib_ad_GDTSDK.unionNormal:$lib_ad_aar"
implementation "com.chuangketie.jk:lib_ad_mediation_gdt_adapter:$lib_ad_aar"

BASE

new LibraryApp.Builder(this)
.addSlot(LOG_PRINT, "log_print")
//ANIMATION_SKIP 0:默认从右向左弹出; 1:淡入Fade; 2://缩放+透明度Scale + Fade; 3:缩放+透明度; 4:缩放+旋转;
.addSlot(ANIMATION_SKIP,"0")    
//导航栏颜色 默认白色    
.addSlot(NAVIGATION_BAR_COLOR,"#FFFFFF")    
//dialog样式 默认0样式   
.addSlot(DIALOG_LAYOUT,"0")    
.initialize();//初始化
参数 类型 必填 说明
context Context 应用上下文
LOG_PRINT String Log打印
ANIMATION_SKIP String 页面跳转动画

AD

基础配置(必填项)

new AdApp.Builder(this, Constants.APP_NAME, getChannel(), getAppSplash())
.addSlot(AD_APPID, "app_id")      // APPID
.addSlot(AD_CSJID, "csj_id")      // CSJID
.addSlot(AD_CODE_SPLASH, "splash_id")     // 添加横幅广告位
.addSlot(AD_CODE_REWARD, "reward_id")     // 激励视频广告位
.addSlot(AD_CODE_FEED1, "feed1_id")      // 信息流1广告位
.addSlot(AD_CODE_FEED2, "feed2_id")      // 信息流2广告位
.addSlot(AD_CODE_FEED3, "feed3_id")      // 信息流3广告位
.addSlot(AD_CODE_BANNER, "banner_id")     // banner广告位
.addSlot(AD_CODE_Draw, "draw_id")     // draw广告位
.addSlot(NO_AD,"true")      //强制不开启广告
.initialize();
参数 类型 必填 说明
context Context 应用上下文
APP_NAME String 应用名称
CHANNEL String 渠道
AppSplash int 启动页id
APPID String appid
CSJID String csjid
AD_CODE_* String 各类型广告位id

调试模式

// 开发阶段开启(正式环境需关闭)
- LogAd.setDebug(true);

最佳实践

  • 初始化时机在Application.onCreate()中完成初始化
  • 隐私合规‌:确保用户已同意隐私政策
  • 版本兼容最低支持Android 7.0(API 24)

广告开关初始化失败监听

// 重新请求广告开关
ADStateUtils.setSwitchRequestListener(new ADStateUtils.SwitchRequestListener() {
    @Override
    public void onSwitchRequestChanged() {
        AdUtils.getAdvFlag();
    }
});

注意事项

⚠️ 如果开启了混淆

  混淆AD地址    混淆BASE地址
release {
    minifyEnabled true  // 启用代码混淆
    shrinkResources true    // 移除未使用资源(需配合混淆)
    //激进优化(可能需额外规则适配)
    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
    'proguard-rules.pro',
    //要添加的ad混淆
    'proguard-rules-ad.pro',
    //要添加的base混淆
    'proguard-rules-base.pro'
    signingConfig signingConfigs.release
}

注意事项

⚠️ 正式发布前确认:

  • 调试日志已关闭
  • 所有广告位ID已测试通过
  • 符合广告平台政策要求