1. 将SDK添加到项目中
1.1 将以下内容添加到应用程序的 build.gradle 文件的 repositories 部分
我们有两种不同的业务场景:
- Google Play
allprojects {
repositories {
flatDir {
dirs 'libs'
}
jcenter()
google()
maven { url 'https://dl.bintray.com/yodo1/android-sdk' }
maven { url 'https://jitpack.io'}
maven { url "https://applovin.bintray.com/Android-Adapter-SDKs" }
maven { url 'https://dl.bintray.com/ironsource-mobile/android-sdk' }
maven { url "https://chartboostmobile.bintray.com/Chartboost" }
maven { url "http://dl.appnext.com/" }
maven { url "https://fyber.bintray.com/marketplace" }
maven { url "https://dl.bintray.com/mintegral-official/mintegral_ad_sdk_android_for_oversea" }
}
}
- 中国应用市场
allprojects {
repositories {
flatDir {
dirs 'libs'
}
jcenter()
google()
maven { url 'https://jitpack.io' }
maven { url 'https://dl.bintray.com/yodo1/android-sdk' }
}
}
1.2 打开您的应用程序级build.gradle并添加相关代码
- Google Play
dependencies {
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.google.android.gms:play-services-base:16.+'
implementation 'com.google.android.gms:play-services-ads-identifier:16.+'
implementation 'com.google.android.gms:play-services-basement:16.+'
implementation 'com.yodo1:advert-gp:3.13.0'
}
-
中国应用市场
dependencies {
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.yodo1:advert-cn:3.13.0'
}
1.3 将以下内容添加到应用程序的 build.gradle 文件的 android 部分
android {
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
}
1.4 将以下内容添加到工程的 gradle.properties 文件中.
android.useAndroidX=true
android.enableJetifier=true
2. 添加AdMob应用id (Google Play Global Only)
注:如果您正在使用中文应用程序商店,请跳过。
将你的AdMob应用ID添加到你的应用的AndroidManifest.xml中。通过添加如下所示的<meta-data>标记来创建xml文件。你可以在MAS UI中找到你的App ID。请将android:value替换为您自己的AdMob App ID,如下图所示。
<manifest>
<application>
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="YOUR_ADMOB_APP_ID"/>
</application>
</manifest>
3. 设置应用商店标识
需在 Manifest 文件中配置 <meta-data>,示例如下:
<meta-data
android:name="Yodo1ChannelCode"
android:value="GooglePlay"
tools:replace="android:value" />
4. Android P 适配
为了兼容Android P(API level 28),请完成以下步骤:
1. 在res文件夹下创建一个xml文件夹
2. 然后创建一个xml文件(res/xml/network_security_config.xml). In the res/xml/network_security_config.xml file,在res/xml/network_security_config.xml文件中添加如下内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
...
<base-config cleartextTrafficPermitted="true" />
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">127.0.0.1</domain>
</domain-config>
...
</network-security-config>
然后在你的应用的AndroidManifest.xml文件中添加下面的配置,应用属性如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
</manifest>
5. 初始化SDK
下面是在activity中初始化Yodo1Advert SDK的方法。
protected void onCreate() {
super.onCreate();
Yodo1Advert.initSDK(activity, "Your appKey");
}
6. 混淆
如果您的应用需要混淆,必须将以下代码添加到您的ProGuard文件中(Android Studio: ProGuard-rules.pro或Eclipse: proguard-project.txt):
- Google Play-Global
-ignorewarnings
-keeppackagenames com.yodo1.**
-keep class com.yodo1.** { *; }
-keep class com.yodo1.advert.open.** { *; }
-keep class com.yodo1.advert.unity.** { *; }
-keep class com.yodo1.advert.callback.** { *; }
-keep class com.yodo1.advert.entity.** { *; }
-keep public class * extends com.yodo1.advert.AdapterAdvertBase
-keep class com.google.ads.** { *; }
-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface {
public *;
}
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep public class com.google.android.gms.ads.** {
public *;
}
-keep class com.ironsource.adapters.** {
*;
}
-dontwarn com.ironsource.mediationsdk.**
-dontwarn com.ironsource.adapters.**
-dontwarn com.moat.**
-keep class com.moat.** { public protected private *; }
-keepattributes SourceFile,LineNumberTable
-keepattributes JavascriptInterface
-keep class android.webkit.JavascriptInterface {
*;
}
-keep class com.unity3d.ads.** {
*;
}
-keep class com.unity3d.services.** {
*;
}
-dontwarn com.google.ar.core.**
-dontwarn com.unity3d.services.**
-dontwarn com.ironsource.adapters.unityads.**
-keepattributes Signature,InnerClasses,Exceptions,Annotation
-keep public class com.applovin.sdk.AppLovinSdk{
*;
}
-keep public class com.applovin.sdk.AppLovin* {
public protected *;
}
-keep public class com.applovin.nativeAds.AppLovin* {
public protected *;
}
-keep public class com.applovin.adview.* {
public protected *;
}
-keep public class com.applovin.mediation.* {
public protected *;
}
-keep public class com.applovin.mediation.ads.* {
public protected *;
}
-keep public class com.applovin.impl.*.AppLovin {
public protected *;
}
-keep public class com.applovin.impl.**.*Impl {
public protected *;
}
-keepclassmembers class com.applovin.sdk.AppLovinSdkSettings {
private java.util.Map localSettings;
}
-keep class com.applovin.mediation.adapters.** {
*;
}
-keep class com.applovin.mediation.adapter.**{
*;
}
-keep class com.chartboost.** {
*;
}
-dontwarn com.facebook.ads.internal.**
-keeppackagenames com.facebook.*
-keep public class com.facebook.ads.** {public protected *;}
-keep class com.tapjoy.** { *;}
-keep class com.moat.** { *;}
-keepattributes JavascriptInterface
-keepattributes *Annotation*
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keep class com.google.android.gms.ads.identifier.** { *;}
-dontwarn com.tapjoy.**
-keep class com.vungle.warren.** { *;}
-dontwarn com.vungle.warren.error.VungleError$ErrorCode
-keep class com.moat.** { *;}
-dontwarn com.moat.**
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8
-keepattributes Signature
-keepattributes *Annotation*
-dontwarn sun.misc.**
-keep class com.google.gson.examples.android.model.** { *;}
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
-keep class com.google.android.gms.internal.** { *;}
-dontwarn com.google.android.gms.ads.identifier.**
-keepattributes SourceFile,LineNumberTable
-keep class com.my.target.** {*;}
-keep class com.yandex.mobile.ads.** {*;}
-dontwarn com.yandex.mobile.ads.**
-keepattributes *Annotation*
-keep public class com.bytedance.sdk.openadsdk.*{ public *;}
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
-dontwarn com.sensorsdata.analytics.android.**
-keep class com.sensorsdata.analytics.android.** {
*;
}
-keep class com.yodo1.sensor.** {
*;
}
-keep class **.R$* {
<fields>;
}
-keep public class * extends android.content.ContentProvider
-keepnames class * extends android.view.View
-keep class * extends android.app.Fragment {
public void setUserVisibleHint(boolean);
public void onHiddenChanged(boolean);
public void onResume();
public void onPause();
}
-keep class android.support.v4.app.Fragment {
public void setUserVisibleHint(boolean);
public void onHiddenChanged(boolean);
public void onResume();
public void onPause();
}
-keep class * extends android.support.v4.app.Fragment {
public void setUserVisibleHint(boolean);
public void onHiddenChanged(boolean);
public void onResume();
public void onPause();
}
-dontwarn org.json.**
-keep class org.json.**{*;}
-keep public class com.bytedance.sdk.openadsdk.*{
public *;
}
-keepattributes SourceFile,LineNumberTable
-keep class com.inmobi.** {
*;
}
-keep public class com.google.android.gms.**
-dontwarn com.google.android.gms.**
-dontwarn com.squareup.picasso.**
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient{
public *;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info{
public *;
}
# skip the Picasso library classes
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.okhttp.**
# skip Moat classes
-keep class com.moat.** {*;}
-dontwarn com.moat.**
# skip IAB classes
-keep class com.iab.** {*;}
-dontwarn com.iab.**
-keep class com.umeng.** {*;}
-keep class com.uc.** {*;}
-keepclassmembers class * {
public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class com.zui.** {*;}
-keep class com.miui.** {*;}
-keep class com.heytap.** {*;}
-keep class a.** {*;}
-keep class com.vivo.** {*;}
-keep class com.uc.crashsdk.** { *; }
-keep interface com.uc.crashsdk.** { *; }
- 中国应用市场
-ignorewarnings
-keeppackagenames com.yodo1.**
-keep class com.yodo1.** { *; }
-keep class com.yodo1.advert.open.** { *; }
-keep class com.yodo1.advert.unity.** { *; }
-keep class com.yodo1.advert.callback.** { *; }
-keep class com.yodo1.advert.entity.** { *; }
-keep public class * extends com.yodo1.advert.AdapterAdvertBase
-keep class com.qq.e.** {
public protected *;
}
-keep class android.support.v4.**{
public *;
}
-keep class android.support.v7.**{
public *;
}
-keep class yaq.gdtadv{
*;
}
-keep class com.qq.e.** {
*;
}
-keep class com.tencent.** {
*;
}
-keep class cn.mmachina.JniClient {
*;
}
-keep class c.t.m.li.tsa.** {
*;
}
-keep class * extends java.lang.annotation.Annotation { *; }
-keep interface * extends java.lang.annotation.Annotation { *; }
-keep, allowobfuscation class com.qq.e.comm.plugin.services.SDKServerService {*;}
-keepclassmembers, allowobfuscation class com.qq.e.comm.plugin.net.SecurePackager {
public *;
}
-keepclasseswithmembers,includedescriptorclasses class * {
native <methods>;
}
-keep class * extends com.qq.e.mediation.interfaces.BaseNativeUnifiedAd { *; }
-keep class * extends com.qq.e.mediation.interfaces.BaseSplashAd { *; }
-keep class * extends com.qq.e.mediation.interfaces.BaseRewardAd { *; }
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.pgl.sys.ces.* {*;}
-dontwarn com.tencent.smtt.sdk.WebView
-dontwarn com.tencent.smtt.sdk.WebChromeClient
-dontwarn androidx.annotation.Nullable
-dontwarn androidx.annotation.NonNull
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient$Info
-dontwarn androidx.appcompat.app.AlertDialog
-dontwarn androidx.appcompat.view.menu.ListMenuItemView
-dontwarn androidx.recyclerview.widget.RecyclerView
-dontwarn androidx.swiperefreshlayout.widget.SwipeRefreshLayout
-dontwarn androidx.viewpager.widget.ViewPager
-dontwarn androidx.recyclerview.widget.RecyclerView
-dontwarn androidx.annotation.RequiresApi
-dontwarn androidx.fragment.app.FragmentActivity
-dontwarn androidx.fragment.app.Fragment
-dontwarn androidx.annotation.AnyThread
-dontwarn androidx.annotation.WorkerThread
-keepattributes Exceptions,InnerClasses,Signature,*Annotation*
-keepnames class * implements java.io.Serializable
-keep class com.tencent.mid.**{*;}
-keep class com.tencent.stat.**{*;}
-keep class com.androidquery.**{*;}
-keep public class cn.redmobi.api.game.** {*;}
-keep public class com.bumptech.glide.** {*;}
-keep public class com.lotuseed.android.** {*;}
-keep public class android.support.** {*;}
-keepattributes SourceFile,LineNumberTable
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
-dontwarn com.sensorsdata.analytics.android.**
-keep class com.sensorsdata.analytics.android.** {
*;
}
-keep class com.yodo1.sensor.** {
*;
}
-keep class **.R$* {
<fields>;
}
-keep public class * extends android.content.ContentProvider
-keepnames class * extends android.view.View
-keep class * extends android.app.Fragment {
public void setUserVisibleHint(boolean);
public void onHiddenChanged(boolean);
public void onResume();
public void onPause();
}
-keep class android.support.v4.app.Fragment {
public void setUserVisibleHint(boolean);
public void onHiddenChanged(boolean);
public void onResume();
public void onPause();
}
-keep class * extends android.support.v4.app.Fragment {
public void setUserVisibleHint(boolean);
public void onHiddenChanged(boolean);
public void onResume();
public void onPause();
}
-dontwarn org.json.**
-keep class org.json.**{*;}
-keep class com.umeng.** {*;}
-keep class com.uc.** {*;}
-keepclassmembers class * {
public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class com.zui.** {*;}
-keep class com.miui.** {*;}
-keep class com.heytap.** {*;}
-keep class a.** {*;}
-keep class com.vivo.** {*;}
-keep class com.uc.crashsdk.** { *; }
-keep interface com.uc.crashsdk.** { *; }
评论
0 条评论
请登录写评论。