Skip to content

Sigmob Android SDK 接入说明

准备工作

  • 1 解压我们提供的压缩包,把 wind-sdk-.aar , wind-common-.aar 放入app的libs工程中。

  • 2 SDK 支持 Android API Level 18+。

  • 3 4.15.0 开始默认仅支持Android X。

集成步骤

如仅支持Android Support V4环境, 请将一下代码添加到AndroidManifest.xml中

xml

<manifest>

    <application>
        <!--必要权限-->
        <uses-permission android:name="android.permission.INTERNET" />

        <!--可选权限,仅获取当前网络类型及状态-->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <!--可选,外部存储权限主要用于读写使用应用本身在外部存储的缓存目录,不会访问初应用缓存目录外的其它目录-->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <!--可选,仅用于获取IMEI或者运营商信息-->
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <!--可选,仅广告安装转化-->
        <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

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


</manifest>

添加Sigmob SDK 依赖

groovy
dependencies {
    	//wind SDK aar文件 放入项目libs中
    	implementation fileTree(include: ['wind-*.aar'], dir: 'libs')


    	//以下依赖二选一即可

    	//AndroidX 项目添加
    	implementation "androidx.core:core:1.0.0"

    	//Android Support V4 项目添加
        implementation 'com.android.support:support-v4:23.0.+'

}

混淆配置

资源配置

第三方混淆插件AndResGuard white_list配置

  "R.string.sig_*",
  "R.integer.sig_*",
  "R.layout.sig_*",
  "R.drawable.sig_*",
  "R.style.sig_*",
  "R.dimen.sig_*",
  "R.anim.sig_*",
  "R.color.sig_*",
  "R.id.sig_*"
  "R.attr.sig_*"

AAR内置keep配置文件 sig_keep.xml 内容

xml
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@drawable/sig_*,@layout/sig_*,@id/sig_**,@style/sig_*,@string/sig_*,@anim/sig_*, @xml/sig*,@color/sig_*,@attr/sig_*,@dimen/sig_*"
    tools:ignore="ResourceName" />

代码混淆

java
# 优化 不优化输入的类文件
-dontoptimize

# androidx

-keep class com.google.android.material.** {*;}
-keep class androidx.** {*;}
-keep public class * extends androidx.**
-keep interface androidx.** {*;}
-dontwarn com.google.android.material.**
-dontnote com.google.android.material.**
-dontwarn androidx.**

# android.support.v4

-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.** { *; }
-keep public class * extends android.support.v4.**

# WindAd

-keep class com.sigmob.sdk.**{ *;}
-keep interface com.sigmob.sdk.**{ *;}
-keep class com.sigmob.windad.**{ *;}
-keep interface com.sigmob.windad.**{ *;}
-keep class com.czhj.**{ *;}
-keep interface com.czhj.**{ *;}
-keep class com.tan.mark.**{*;}

# miitmdid

-dontwarn com.bun.**
-keep class com.bun.** {*;}
-keep class a.**{*;}
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.vs.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class com.zui.opendeviceidlibrary.**{*;}
-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}