# BASE And AD模块集成指南 #### base-lib and ad 集成指南 #### 项目gradle ```java maven { url "http://124.221.136.193:3000/app-lib/JKBaseLib/raw/master/maven" allowInsecureProtocol = true // 允许HTTP } ``` #### 模块的gradle ```java //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 ```java 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 ### 基础配置(必填项) ```java 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 | ### 调试模式 ```java // 开发阶段开启(正式环境需关闭) - LogAd.setDebug(true); ``` ### 最佳实践 - 初始化时机‌:在Application.onCreate()中完成初始化 - 隐私合规‌:确保用户已同意隐私政策 - 版本兼容‌:最低支持Android 7.0(API 24) ### 广告开关初始化失败监听 ```java // 重新请求广告开关 ADStateUtils.setSwitchRequestListener(new ADStateUtils.SwitchRequestListener() { @Override public void onSwitchRequestChanged() { AdUtils.getAdvFlag(); } }); ``` ### 注意事项 #### ⚠️ 如果开启了混淆 ######   [混淆AD地址](http://124.221.136.193:3000/app-lib/JKBaseLib/src/branch/master/app/proguard-rules-ad.pro)    [混淆BASE地址](http://124.221.136.193:3000/app-lib/JKBaseLib/src/branch/master/app/proguard-rules-base.pro) ```java 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已测试通过 - 符合广告平台政策要求