SDK 集成
SDK 集成
此章节将演示如何集成ZJSDK
到您的原生
项目中。
提示
接入完成后,在正式上线前需要提供测试包,测试广告正常展现
SDK 不支持模拟器运行,需要使用真机调试
版本配置
SDK 可运行于 Android5.0 (API Level 21) 及以上版本,请确保build.gradle
中的minSdkVersion
参数不小于21
资源引入
提示
导入后无法编译等问题详见常见问题-编译
OAID SDK 说明
Android10 起无法通过常规方式获取 IMEI 等设备 ID,影响部分广告网络正常广告加载、展示等业务。
2.4.6
版本起 SDK 不再主动集成OAID SDK
,开发者需要自行接入才可以正常加载这些广告网络的广告。
集成方式见OAID SDK 集成说明
配置仓库
首先需要在项目的build.gradle
文件中引入如下配置
allprojects {
repositories {
//...
google()
jcenter()
mavenCentral()
// 添加以下仓库地址
maven { url 'https://maven.aliyun.com/repository/public' }
}
}
配置 APPCOMPAT
SDK 功能依赖于AppCompat
包,开发者需要根据当前应用的开发环境引入对应的AppCompat
依赖,其中:
AndroidX
环境下的依赖版本号可以根据项目调整,不做要求Support
环境下要求support-library
版本不低于26.0.0
depedencies {
//...
// AndroidX 工程需要添加
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
//...
}
depedencies {
//...
// Support 工程需要添加
implementation 'com.android.support:appcompat-v7:26.0.0'
implementation "com.android.support:support-v4:26.0.0"
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
//...
}
AndroidX 配置
如果当前的项目环境为AndroidX
,需要在工程根目录的gradle.properties
中配置enableJetifier
android.enableJetifier=true
引入 SDK
将 SDK 压缩包内的zj_sdk_x.y.z.aar
、kssdk_x.y.z.aar
复制到application module/libs
文件夹(没有的话须手动创建), 并增加依赖
注意
引入文件时,请将上文提到的x、y、z
替换为压缩包内的最新版本
depedencies {
//...
// 建议开发者优先集成OAID。Android 10 无法通过常规方式获取IMEI,影响广告测试及正式广告的填充
implementation files('./libs/oaid_sdk_1.0.25.aar')
// x5内核,需要引入,如已引入,可忽略
implementation 'com.tencent.tbs:tbssdk:44286'
// 微信 OpenSdk ,需要引入,如已引入,可忽略
implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.28'
// SDK包
implementation files('./libs/zj_sdk_x.y.z.aar')
implementation files('./libs/kssdk_x.y.z.aar')
implementation ("com.tanx:TanxUISDK:3.5.6")
implementation files('./libs/open_ad_sdk_x.y.z.aar')
implementation files('./libs/pangle_mediation_adapter_x.y.z.aar')
implementation files('./libs/beizi_ad_sdk-x.y.z.aar')
implementation files('./libs/beizi_fusion_sdk-x.y.z.aar')
implementation files('./libs/octopus_ad_sdk_x.y.z.aar')
implementation files('./libs/zj_adsdk_windmill-sdk-x.y.z.aar')
//...
}
兼容版额外引入
使用兼容版 SDK
时,需要在引入上方内容后,将以下aar
中不冲突的内容全部引入到工程中:
depedencies {
//...
// 兼容版需要额外引用不冲突的联盟SDK
implementation files('./libs/Baidu_MobAds_SDK-release_x.y.z.aar')
implementation files('./libs/kssdk_x.y.z.aar')
implementation files('./libs/GDTSDK.unionNormal.x.y.z.aar')
implementation files('./libs/wind-common-x.y.z.aar')
implementation files('./libs/wind-sdk-x.y.z.aar')
//...
}
小说书城额外引入
当应用需要接入小说书城广告时,需要额外引入小说书城SDK:
depedencies {
//...
// 小说包
implementation files('./libs/novelsdk-x.y.z.aar')
//...
}
并修改应用的tartgetSDKVerion
不大于28
,否则小说页面无法正常运行。
修改 AndroidManifest
SUPPORT 工程额外配置
如工程为Android Support
环境, 请将以下代码添加到AndroidManifest.xml
中的application
节点下
<application>
<provider
android:name="com.sigmob.sdk.SigmobFileV4Provider"
android:authorities="${applicationId}.sigprovider"
android:exported="false"
android:initOrder="200"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/sigmob_provider_paths"/>
</provider>
</application>
权限声明
若您的 targetSDKVersion>=23
,您还需要在运行时进行动态权限申请(可参考示例工程)
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 安装APK权限-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- 如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
提示
SDK 不强制获取以上权限,即使没有获取可选权限 SDK 也能正常运行。获取以上权限将帮助优化投放广告精准度和用户的交互体验,提高收益
如果开发者声明 targetSdkVersion 到 API23 以上,请确保调用初始化前已经申请到了 SDK 要求的所有权限,否则 SDK 部分特性可能受限