Android集成凤飞sdk(2.6.3) - ff-vipad/FF-Android GitHub Wiki
1、进入凤飞官网登录凤飞开发者账号。
2、下载最新SDK。
1、sdk文件目录
/Demo
/Doc
/libs
2、复制/libs下内容到工程/libs下,其中包括穿山甲(字节跳动)、百青藤(百度)、优量汇(腾讯广点通)、MobVista、SigMob、凤飞sdk,如果已经集成其中的某些广告平台,需要去掉重复sdk,请保留一个尽量新的版本。配置build.gradle如下。
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.6'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
}3、配置AndroidManifest.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" /><!--允许程序访问Wi-Fi网络状态信息 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /><!--允许访问手机的各种状态-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!--获取粗略的位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><!--访问精确位置-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--允许程序访问外部存储设备-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /><!--需要动态申请以上权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!--百度-->
<provider
android:name="com.baidu.mobads.openad.FileProvider"
android:authorities="${packageName}.bd.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/bd_file_paths" />
</provider>
<activity
android:name="com.baidu.mobads.AppActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!--广点通-->
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/gdt_file_path" />
</provider>
<!--穿山甲-->
<provider
android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" />
<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/bu_file_paths" />
</provider>
<!--sigmob-->
<provider
android:name="com.sigmob.sdk.SigmobFileProvider"
android:authorities="${applicationId}.sigprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/sigmob_provider_paths"/>
</provider>
<activity android:name="com.sigmob.sdk.base.common.AdActivity"
android:theme="@android:style/Theme.DeviceDefault"
android:configChanges="keyboardHidden|orientation|screenSize" />
<!-- MobVista -->
<activity
android:name="com.mintegral.msdk.reward.player.MTGRewardVideoActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
<activity
android:name="com.mintegral.msdk.activity.MTGCommonActivity"
android:configChanges="keyboard|orientation"
android:screenOrientation="portrait"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
</activity>
<!--国内流量版本必需,海外版本可以不添加-->
<receiver android:name="com.mintegral.msdk.click.AppReceiver" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<!--国内流量必需,海外版本可以不添加-->
<service android:name="com.mintegral.msdk.shell.MTGService" >
<intent-filter>
<action android:name="com.mintegral.msdk.download.action" />
</intent-filter>
</service>
<provider
android:name="com.mintegral.msdk.base.utils.MTGFileProvider"
android:authorities="${applicationId}.mtgFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/mtg_provider_paths"/>
</provider>
<!--凤飞配置-->
<provider
android:name="com.fengfei.ffadsdk.Common.Downloader.FFFileProvider"
android:authorities="${applicationId}.FFFileProvider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/ff_file_paths" />
</provider>4、在Demo/app/src/main/res找到xml下文件复制到工程,如下
xml/bd_file_paths.xml
xml/bu_file_paths.xml
xml/ff_file_paths.xml
xml/gdt_file_path.xml
xml/mtg_provider_paths.xml
xml/sigmob_provider_paths.xml
5、在AndroidManifest里声明的Application子类中进行初始化
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FFAdInitConfig.init(this, BuildConfig.appId,"test channel");
FFAdInitConfig.setIsTest(true); // 默认false: 如若测试测试环境,可传true
}
}6、混淆配置
#凤飞
-keep public class * extends android.support.v4.**
-keep interface android.support.v4.** { *; }
-keep class android.support.v4.** { *; }
-keep class com.fengfei.ffadsdk.AdViews.** { *; }
-keep class com.fengfei.ffadsdk.Common.Constants.** { *; }
-keep class com.fengfei.ffadsdk.Common.Util.** { *; }
-keep class com.fengfei.ffadsdk.Common.Downloader.** { *; }
-keep class com.fengfei.ffadsdk.FFAdInitConfig { *; }
-keepclassmembers class com.fengfei.ffadsdk.FFAdInitConfig {
public <fields>;
public <methods>;
}
#mobvista
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.mintegral.** {*; }
-keep interface com.mintegral.** {*; }
-dontwarn com.mintegral.**
-keep class **.R$* { public static final int mintegral*; }
-keep class com.alphab.** {*; }
-keep interface com.alphab.** {*; }
# WindAdsigmob
-keep class sun.misc.Unsafe { *; }
-dontwarn com.sigmob.**
-keep class com.sigmob.**.**{*;}
# miitmdid
-keep class com.bun.miitmdid.core.** {*;}
-dontwarn com.bun.miitmdid.core.**
#穿山甲
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.pgl.sys.ces.* {*;}
#百度
-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.baidu.mobad.** { *; }
#广点通(当前版本广点通aar已经集成了混淆配置)