主题
SDK接入配置
1. 准备工作
- 解压我们提供的sdk压缩包,把解压后的libs目录下的aar包放入项目的libs工程中,xml目录下的xml文件放入项目的xml目录
2. 集成步骤
2.1 添加 SDK 依赖
groovy
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
implementation 'com.squareup.okhttp3:okhttp:3.8.0'
implementation 'com.google.code.gson:gson:2.8.0'
implementation 'com.squareup.okio:okio:1.13.0'
}加入 AndroidX 或者 Android Support V4 依赖支持库(二选一)
groovy
dependencies {
//AndroidX
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
//Android support v4
implementation 'com.android.support:support-v4:23.0.+'
}2.2 更新 AndroidManifest.xml
权限声明
xml
<!--联网权限-->
<uses-permission android:name="android.permission.INTERNET" />
<!--检测当前网络状态是2G、3G、4G还是WiFi-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--获取设备标识IMEI。用于标识用户-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--读写存储权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="replace" />
<!--获取MAC地址,用于标识用户-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--安装应用权限-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!--定位权限,不强制要求-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application >
<!--穿山甲-->
<provider android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider" android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<!--广点通sdk-->
<provider android:name="com.qq.e.comm.GDTFileProvider"
android:authorities="${applicationId}.gdt.fileprovider" android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/gdt_file_path" />
</provider>
</application>2.3 混淆配置
java
-dontwarn com.beizi.fusion.**
-dontwarn com.beizi.ad.**
-keep class com.beizi.fusion.** {*; }
-keep class com.beizi.ad.** {*; }
-ignorewarnings
-dontwarn com.baidu.mobads.sdk.api.**
-keepclassmembers class * extends android.app.Activity{
public void(android.view.View);
}
-keepclassmembers enum *{
public static []values();
public static valueOf(java.lang.String);
}
-keep class com.baidu.mobads.**{*;}
-keep class com.style.widget.**{*;}
-keep class com.component.**{*;}
-keep class com.baidu.ad.magic.flute.**{*;}
-keep class com.baidu.mobstat.forbes.**{*;}
-keep class org.chromium.** {*;}
-keep class org.chromium.** { *; }
-keep class aegon.chrome.** { *; }
-keep class com.kwai.**{ *; }
-keep class com.kwad.**{ *; }
-dontwarn com.kwai.**
-dontwarn com.kwad.**
-dontwarn com.ksad.**
-dontwarn aegon.chrome.**
-keepattributes Signature
-keepattributes Annotation
-dontwarn sun.misc.**
-keep class com.google.gson.examples.android.model.**{<fields>; }
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.pgl.sys.ces.** {*;}
-keep class com.bytedance.embed_dr.** {*;}
-keep class com.bytedance.embedapplog.** {*;}
-keep class com.kc.openset.**{*;}
-keep class com.od.**{*;}
-dontwarn com.kc.openset.**
-keep @com.qihoo.SdkProtected.OSETSDK.Keep class **{*;}
-keep,allowobfuscation interface com.qihoo.SdkProtected.OSETSDK.Keep
-dontwarn com.sigmob.**
-keep class com.sigmob.**{ *;}
-keep interface com.sigmob.**{ *;}
-dontwarn com.czhj.**
-keep class com.czhj.**{ *;}
-keep interface com.czhj.**{ *;}
-keep class com.tan.**{ *;}
-dontwarn com.windmill.**
-keep class com.windmill.**.**{*;}
-keep interface com.windmill.**{ *;}
-keep class com.aliyun.sls.android.producer.** { *; }
-keep interface com.aliyun.sls.android.producer.* { *; }
-keep class com.meishu.sdk.**{*;}
-keep class com.apex.adx.** {*;}2.4 注意事项
4.0以上版本,对应的穿山甲是68版本以上,该版本要求minSdkVersion为24,即兼容的最小手机系统版本为7.0,可通过以下两种方式支持: a.修改主项目的最低版本minSdkVersion为24即可解决 b.主项目AndroidManifest.xml调整tools:overrideLibrary标签解决,如果开发者主项目清单已经有tools.overrideLibrary标签,则在已有包名后,增加csj相关库名,并以逗号隔开;如果主项目清单没有该标签,则新增该标签再添加相关库名。示例代码如下:
java
//聚合开发者需在tools:overrideLibrary标签内添加以下库名:
//com.bytedance.gromore,com.bytedance.sdk.openadsdk,com.bytedance.msdk.adapter.admob,com.bytedance.msdk.adapter.BaiduMobAds,com.bytedance.msdk.adapter.gdt,com.bytedance.msdk.adapter.ks,com.bytedance.msdk.adapter.mintegral,com.bytedance.msdk.adapter.sigmob,com.bytedance.msdk.adapter.unity,com.bytedance.msdk.adapter.xiaomi,com.bytedance.tools
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
...
//如开发者之前无tools:overrideLibrary,则新建
<uses-sdk tools:overrideLibrary=" com.bytedance.gromore,com.bytedance.sdk.openadsdk,com.bytedance.msdk.adapter.admob,com.bytedance.msdk.adapter.BaiduMobAds,com.bytedance.msdk.adapter.gdt,com.bytedance.msdk.adapter.ks,com.bytedance.msdk.adapter.mintegral,com.bytedance.msdk.adapter.sigmob,com.bytedance.msdk.adapter.unity,com.bytedance.msdk.adapter.xiaomi,com.bytedance.tools"/>
//如开发者之前已有tools:overrideLibrary
<uses-sdk tools:overrideLibrary="com.aaa.bbb,com.ccc.ddd" />
//调整后的,新增了 穿山甲相关库,并以逗号隔开
<uses-sdk tools:overrideLibrary="com.aaa.bbb,com.ccc.ddd, com.bytedance.gromore,com.bytedance.sdk.openadsdk,com.bytedance.msdk.adapter.admob,com.bytedance.msdk.adapter.BaiduMobAds,com.bytedance.msdk.adapter.gdt,com.bytedance.msdk.adapter.ks,com.bytedance.msdk.adapter.mintegral,com.bytedance.msdk.adapter.sigmob,com.bytedance.msdk.adapter.unity,com.bytedance.msdk.adapter.xiaomi,com.bytedance.tools"/>
...
</manifest>