Skip to main content

Android 集成说明

Editor 2019及以上版本导入#

第一步:Project Setting中勾选下图打勾的部分,生成Android编译所需的文件#

第二步:引入Gradle#

(1)baseProjectTemplate.gradle文件中引入所需Maven库,maven库的引用以打包平台生成代码为准#

举例

  • 具体要配置Maven库,开发根据TradPlusSDK下载平台生成代码添加即可
  • 例如:接入IronSource SDK,开发者需要打包平台勾选IronSource广告平台,然后点击生成代码。

  • 将Gradle引用repositories中的仓库复制到baseProjectTemplate.gradle文件中,具体位置见下文示例代码
allprojects {
buildscript {
repositories {**ARTIFACTORYREPOSITORY**
// TradPlus SDK maven库
mavenCentral()
google()
// IronSource的 Maven库
maven { url 'https://android-sdk.is.com/' }
jcenter()
}
}
repositories {**ARTIFACTORYREPOSITORY**
// TradPlus SDK maven库
mavenCentral()
google()
// IronSource的 Maven库
maven { url 'https://android-sdk.is.com/' }
jcenter()
flatDir {
dirs "${project(':unityLibrary').projectDir}/libs"
}
}
}

(2)mainTemplate.gradle文件中配置TP和广告平台的Gradle#

举例

  • 将Gradle引用dependencies中的Gradle依赖复制到mainTemplate.gradle文件中,具体位置见下文示例代码

def tradplus_version = "8.4.0.1"
dependencies {
// noinspection GradleCompatible
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.3.0-alpha02'
// TradPlus SDK
implementation "com.tradplusad:tradplus:${tradplus_version}"
// IronSource SDK
implementation 'com.ironsource.sdk:mediationsdk:7.2.4'
implementation "com.tradplusad:tradplus-ironsource:10.${tradplus_version}"
implementation 'com.google.android.gms:play-services-appset:16.0.0'
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.google.android.gms:play-services-basement:17.5.0'
}

第三步:配置清单文件#

(1)AndroidManifest.xml文件中#

  • 第一步:声明权限,开发根据接入平台添加权限即可
  • 第二步:Apache的兼容
  • 第三步: 配置声明,开发根据TradPlusSDK下载平台生成代码添加即可(下文有截图说明)
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools">
<!--第一步:声明权限-->
<!-- MTG国内、穿山甲CSJ国内将通过此权限在Android R系统上判定广告对应的应用是否在用户的app上安装,避免投放错误的广告-->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
<!-- 穿山甲CSJ国内 必要权限,解决安全风险漏洞,发送和注册广播事件需要调用带有传递权限的接口-->
<permission
android:name="${applicationId}.openadsdk.permission.TT_PANGOLIN"
android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.openadsdk.permission.TT_PANGOLIN" />
<!--穿山甲CSJ 国内、Pangle V45以下,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!--Android 12 以上,同意获取 Android Advertiser Identifier -->
<uses-permission android:name="android.permission.AD_ID" />
<application
>
<!-- 第二步:Apache的兼容 -->
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<!--第三步:配置声明(打包平台生成的meta-data、provider均在此位置添加)-->
<!--添加Google AdMob App ID : ca-app-pub-3940256099942544~3347511713-->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
  • 举例:TradPlusSDK下载平台选择接入腾讯优量汇,清单文件AndroidManifest.xml部分会生成腾讯优量汇所需的provider,开发者直接根据示例代码第三步所在的位置添加即可。

(2)LauncherManifest.xml文件中#

  • 第一步:添加视频广告的硬件加速
  • 第二步:添加网络安全配置文件
<manifest
...
<application android:label="@string/app_name"
android:icon="@mipmap/app_icon"
<!-- 第一步:视频广告的硬件加速Meta、MTG、ChartBoost、Adx等视频广告播放需要启动硬件加速渲染 -->
android:hardwareAccelerated="true"
android:supportsRtl="true"
<!-- AndroidV9.2写入SDK,无需配置;老版本升级的项目会因清单文件中有添加过该配置导致报错,删除配置即可 -->
<!-- 第二步:添加网络安全配置文件:network_security_config见下文 -->
android:networkSecurityConfig="@xml/network_security_config"/>
</manifest>
  • 在项目的Assets\Plugins\Android\res\xml文件夹新增network_security_config.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config
cleartextTrafficPermitted="true">
<domain includeSubdomains="true">127.0.0.1</domain>
</domain-config>
</network-security-config>

第四步:AndroidX配置#

  • AndroidX的项目需要添加,Support项目可直接忽略
  • 在上图文件gradleTemplate.properties中添加配置
android.enableJetifier=true
android.useAndroidX=true

第五步:混淆配置#

  • 在上图文件proguard-user.txt中添加混淆配置
  • minifyEnabled开启后,正常找到TP相关的类和方法,否则会有release包请求广告失败。
-keep public class com.tradplus.** { *; }
-keep class com.tradplus.ads.** { *; }

第六步:资源优化#

广告SDK的资源不能被混淆,如果使用第三方的资源优化框架,请配置SDK的资源为白名单,例如:

# 接入原生、原生横幅、原生拼接开屏等广告类型
R.string.tp_*
R.drawable.tp_*
R.layout.tp_*
R.id.tp_*
# 集成交叉推广、adx
R.string.cp_*
R.drawable.cp_*
R.layout.cp_*
R.id.cp_*
# 集成游可赢Klevin
R.anim.klevin_*
R.color.klevin_*
R.drawable.klevin_*
R.id.klevin_*
R.layout.klevin_*
R.mipmap.klevin_*
R.string.klevin_*
R.integer.klevin_*
R.style.klevin_*
R.dimen.klevin_*
R.xml.klevin_*