Skip to content

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>

ApexAdx SDK Documentation