Skip to content

第三方广告网络AndroidManiftest配置说明
Third-party advertising network AndroidManiftest configuration instructions

1.1 腾讯广告
Tencent Advertising

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  • Provider定义
    Provider Definition
xml
<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>
  • gdt_file_path.xml 内容
    gdt_file_path.xml content
xml
<?xml version="1.0" encoding="utf-8"?>
<paths>
    <!-- 这个下载路径也不可以修改,必须为com_qq_e_download -->
    <external-cache-path
        name="gdt_sdk_download_path1"
        path="com_qq_e_download" />
    <cache-path
        name="gdt_sdk_download_path2"
        path="com_qq_e_download" />
</paths>

1.2 穿山甲
CSJ

注:穿山甲SDK自3.9.0.0版本后,默认仅支持arm64-v8a和armeabi-v7a两种架构,不再支持armeabi

Note: Since version 3.9.0.0, CSJ SDK only supports arm64-v8a and armeabi-v7a architectures by default, and no longer supports armeabi

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<!--必要权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!--可选权限-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    tools:node="replace" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.GET_TASKS" />

<!--可选,穿山甲提供“获取地理位置权限”和“不给予地理位置权限,开发者传入地理位置参数”两种方式上报用户位置,两种方式均可不选,添加位置权限或参数将帮助投放定位广告-->
<!--请注意:无论通过何种方式提供给穿山甲用户地理位置,均需向用户声明地理位置权限将应用于穿山甲广告投放,穿山甲不强制获取地理位置信息-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- 如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />

<!-- 穿山甲3400版本新增:建议添加“query_all_package”权限,穿山甲将通过此权限在Android R系统上判定广告对应的应用是否在用户的app上安装,避免投放错误的广告,以此提高用户的广告体验。若添加此权限,需要在您的用户隐私文档中声明! -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
  • Provider定义
    Provider Definition
xml
<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>

<provider
    android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
    android:authorities="${applicationId}.TTMultiProvider"
    android:exported="false" />
  • toutiao.xml 内容
    toutiao.xml content
xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <!--为了适配所有路径可以设置 path = "." -->
    <external-path name="tt_external_root" path="." />
    <external-path name="tt_external_download" path="Download" />
    <external-files-path name="tt_external_files_download" path="Download" />
    <files-path name="tt_internal_file_download" path="Download" />
    <cache-path name="tt_internal_cache_download" path="Download" />
</paths>

1.3 快手广告
Kuaishou Advertising

注:快手SDK自3.3.17版本后,仅支持arm64-v8a和armeabi-v7a两种架构,不再支持armeabi

Note: Kuaishou SDK only supports arm64-v8a and armeabi-v7a architectures since version 3.3.17, and no longer supports armeabi

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<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" />
<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" />
<!--SDK内⾃定义的权限,与下载相关,aar中已经申请-->
<permission
    android:name="${applicationId}.permission.KW_SDK_BROADCAST"
    android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.KW_SDK_BROADCAST" />
  • 如果您的应⽤启⽤了资源混淆或资源缩减,您需要保留SDK的资源,SDK的资源名都是以ksad_开头的。您可以在资源混淆配置⽂件添加如下配置:
    f your application has resource obfuscation or resource reduction enabled, you need to keep the SDK resources. The SDK resource names all start with ksad_. You can add the following configuration to the resource obfuscation configuration file:
xml
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@layout/ksad_*,@id/ksad_*,@style/ksad_*,
@drawable/ksad_*,@string/ksad_*,@color/ksad_*,@attr/ksad_*,@dimen/ksad_*"/>
  • 第三方依赖
    Third-party dependencies
groovy
dependencies {

    //建议使⽤的26以上的support库版本,建议使⽤28最新的即可。
    implementation "com.android.support:appcompat-v7:28.0.0"
    implementation "com.android.support:recyclerview-v7:28.0.0"
    // AndroidX依赖和上面Supprot库依赖,二选一
    implementation "androidx.appcompat:appcompat:1.2.0"
    implementation "androidx.recyclerview:recyclerview:1.2.0"
    
}
  • 混淆配置
    Obfuscation Configuration
java
-keep class com.kwad.sdk.** { *;}
-keep class com.ksad.download.** { *;}
-keep class com.kwai.filedownloader.** { *;}

1.4 百度广告
Baidu Advertising

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permissio.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

<uses-permission
    android:name="android.permission.QUERY_ALL_PACKAGES"
    tools:ignore="QueryAllPackagesPermission" />
  • 第三方依赖
    Third-party dependencies
groovy
dependencies {

    //建议使⽤的26以上的support库版本,建议使⽤28最新的即可。
    implementation "com.android.support:appcompat-v7:28.0.0"
    implementation "com.android.support:recyclerview-v7:28.0.0"
    // AndroidX依赖和上面Supprot库依赖,二选一
    implementation "androidx.appcompat:appcompat:$version"
    implementation "androidx.recyclerview:recyclerview:$version"
    
}
  • 混淆配置
    Obfuscation Configuration
java
-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.** {*;}

1.5 Mintegral_cn

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 如果中国大陆流量版本SDK ,以下两条权限必须加上 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  • Provider定义
    Provider Definition
xml
<provider
    android:name="com.mbridge.msdk.foundation.tools.MBFileProvider"
    android:authorities="${applicationId}.mbFileProvider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/mb_provider_paths" />
</provider>
  • mb_provider_paths.xml 内容
    mb_provider_paths.xml content
xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="."/>
</paths>
  • 第三方依赖
    Third-party dependencies
groovy
dependencies {

    //mintegral provider 依赖androidx
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'

 }
  • Mintegral 混淆配置
    Mintegral obfuscation configuration
java
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.mbridge.** {*; }
-keep interface com.mbridge.** {*; }
-keep interface androidx.** { *; }
-keep class androidx.** { *; }
-keep public class * extends androidx.** { *; }
-dontwarn com.mbridge.**
-keep class **.R$* { public static final int mbridge*; }

1.6 Vungle

  • 第三方依赖
    Third-party dependencies
Vungle
dependencies {
    //vungle
    implementation fileTree(include: ["*.jar","*.aar"], dir: 'libs/AdNetworks/vungle')
    implementation 'androidx.core:core:1.1.0'
    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
 }

1.7 UnityAds

  • 第三方依赖
    Third-party dependencies
UnityAds
dependencies {
    //unityAds
    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/AdNetworks/unity')
}

1.8 AdScope

注:媒体如果使用移动安全联盟提供的获取oaid的sdk版本不是1.0.25、AdScope则需要在Sdk初始化之前请调用如下方法: WindMillAd.sharedAds().setOaidVersion(“x.x.x”);

Note: If the media uses the SDK version provided by the Mobile Security Alliance to obtain oaid but it is not 1.0.25, AdScope needs to call the following method before initializing the SDK: WindMillAd.sharedAds().setOaidVersion("xxx");

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
    <!--必要权限-->
    <!--⽹络访问权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--访问⽹络状态:检测当前⽹络状态是2G、3G、4G还是WiFi-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--磁盘读写权限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!--应⽤安装权限-->
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  • 因SDK内部采用http协议。如果App的targetSdkVersion>=28,需要在AndroidManifest.xml 添加依赖声明:
    Because the SDK uses the http protocol internally. If the App's targetSdkVersion>=28, you need to add a dependency declaration in AndroidManifest.xml:
xml
<application

    android:networkSecurityConfig="@xml/network_security_config">
    ... ...

</application>
  • network_security_config.xml 内容
    network_security_config.xml content
xml
<network-security-config>

    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>

    <domain-config>
        <domain includeSubdomains="true">i.snssdk.com</domain>
        <domain includeSubdomains="true">is.snssdk.com</domain>
        <domain includeSubdomains="true">pangolin.snssdk.com</domain>
        <domain includeSubdomains="true">extlog.snssdk.com</domain>
        <domain includeSubdomains="true">sf3-ttcdn-tos.pstatp.com</domain>
        <domain includeSubdomains="true">bds.snssdk.com</domain>
        <domain includeSubdomains="true">dig.bdurl.net</domain>
    </domain-config>

</network-security-config>
  • Jar包手动依赖
    Manual dependency of Jar package
dependencies {
    //AdScope
    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/AdNetworks/adscope')
}
  • 混淆配置
    Obfuscation Configuration
# 倍孜混淆
-dontwarn com.beizi.fusion.**
-dontwarn com.beizi.ad.**
-keep class com.beizi.fusion.** {*; }
-keep class com.beizi.ad.** {*; }