SDK集成及初始化
开发环境#
操作系统:支持 Linux/Mac/Windows 系统
开发工具:支持 Android Studio
支持设备:Android 5.0 及以上系统的 Android 设备
术语#
AppID:媒体ID,您在游可赢平台创建媒体时获得的ID,对应一个具体的App,是游可赢平台识别该App的唯一ID
PosID:资源位ID,您在游可赢开发者平台为您的媒体创建某个广告场景时获得的ID,对应一个具体的广告位
SDK嵌入#
添加SDK到工程中#
方式一:导入aar包#
将SDK的aar包拷⻉到项目的 libs ⽬录下,并且在 build.gradle 中进⾏相应的配置。
方式二:Maven Central仓库依赖导入sdk#
从2.6.0版本开始,sdk发布到Maven Central仓库。在 build.gradle 中配置:
权限申请#
在AndroidManifest.xml中添加以下权限,在6.0以上还需要进行动态权限申请。
下载文件配置#
为了让SDK能正常下载安装app,必须按下面步骤配置FileProvider。 在项目AndroidManifest.xml的Application标签中添加provider标签:
配置说明
android:authorities必须配置为 应用包名+".klevin.fileProvider",注意区分大小写。
android:resource必须配置为@xml/klevin_provider_paths。
混淆配置#
若启用了混淆,请添加以下klevinAdSDK的混淆配置规则:
资源混淆白名单#
游可赢广告SDK的资源不能被混淆,若开启了资源混淆,请配置SDK的资源为白名单。游可赢广告SDK的资源均以"klevin_"开头,参考whiteList.txt
SDK初始化#
在AndroidManifest.xml中配置AppID,其中value的值为申请的AppID。如代码中指定了AppID,则此处可不配置。
初始化接口必须在主线程中调用,建议在项目的Application类的onCreate()方法中调用SDK的初始化方法:
主要API#
com.tencent.klevin.KlevinConfig.Builder
com.tencent.klevin.KlevinManager
| 方法名 | 说明 | 参数 |
|---|---|---|
| Builder.appId(String appid) | AppId在AndroidManifest.xml中配置,又通过接口调用时,优先使用代码调用传的参数 | 【必须】在游可赢申请的AppId |
| Builder.debugMode(boolean isDebug) | 打开详细的调试日志,release版本中务必关闭 | 【可选】不配置时默认为false |
| Builder.customController(KlevinCustomController controller) | 设置允许sdk获取的用户信息 | KlevinCustomController请参考:隐私信息获取控制 |
| Builder.personalizeEnabled(boolean enabled) | 是否开启个性化推荐,默认开启。true: 开启, false: 关闭。 | 请参考:个性化推荐广告设置 |
| Builder.build() | 构造KlevinConfig作为初始化sdk的参数 | |
| KlevinManager.getVersion() | 获取sdk的版本号 | |
| KlevinManager.init(Context ctx, KlevinConfig config, InitializationListener listener) | sdk初始化接口,可通过KlevinConfig.Builder来构造初始化参数 | InitializationListener:初始化回调接口 |
多进程配置#
KlevinAdSDK中使用了Webview,在Android 9及以上,多进程不能共享一个Webview数据目录。如果您的APP中有多进程使用Webview的场景,必须在Application的初始化SDK之前调用WebView.setDataDirectorySuffix()。
参考:
- https://github.com/react-native-webview/react-native-webview/issues/968
- https://developer.android.com/about/versions/pie/android-9.0-changes-28?hl=zh-cn