inveno

inveno的公共类库


广告框架封装(优先使用)

<h3>1、添加依赖</h3> <pre><code>implementation 'com.inveno.library:AdvertWrap:1.3.1-SNAPSHOT' implementation 'com.inveno.library:network-java:1.6.9-SNAPSHOT' //必须依赖1.4.7或以上版本 implementation 'com.inveno.library:encrypt:1.0.1-SNAPSHOT' //加密框架 //如果使用topon,则添加这个 implementation 'com.inveno.library:TopOn:1.2.0-SNAPSHOT' //implementation 'com.google.code.gson:gson:2.8.6' //使用topon需要添加gson,若工程已有依赖gson,则不用添加 //如果使用growmore,则添加这个 implementation 'com.inveno.library:GrowMore:1.3.0-SNAPSHOT' implementation 'com.inveno.library:oaid_sdk:1.0.22' //使用growmore需要添加oaid,有冲突则可以去掉 //如果使用优量汇,则添加这个 implementation 'com.inveno.library:ylh:1.2.2.5-SNAPSHOT' implementation 'com.inveno.library:meidiation-TTAdapter-custom:4.6.0.7-SNAPSHOT' //如果使用多牛,则使用这个 implementation 'com.inveno.library:donews:1.1.7-SNAPSHOT'</code></pre> <p>注意,如果使用到growmore,还需要在工程的build.gradle文件添加以下依赖</p> <pre><code>buildscript { repositories { //...省略其他 //GroMore SDK依赖 maven { url &amp;quot;https://artifact.bytedance.com/repository/pangle&amp;quot; } //mintegral sdk依赖 引入mintegral sdk需要添加此maven maven { url &amp;quot;https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_support/&amp;quot; } } } allprojects { repositories { //...省略其他 //GroMore SDK依赖 maven { url &amp;quot;https://artifact.bytedance.com/repository/pangle&amp;quot; } //mintegral sdk依赖 引入mintegral sdk需要添加此maven maven { url &amp;quot;https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_support/&amp;quot; } } }</code></pre> <p>如果有用到androidX,则在根目录的gradle.properties文件里添加以下</p> <pre><code>android.useAndroidX=true android.enableJetifier=true</code></pre> <h3>2、在app的builde.gradle文件下添加配置</h3> <pre><code>android { defaultConfig { //省略其他... ndk { // 添加项目所需CPU类型的最小集 abiFilters &amp;quot;armeabi-v7a&amp;quot; //, &amp;quot;armeabi&amp;quot;,&amp;quot;x86&amp;quot; } packagingOptions { doNotStrip &amp;quot;*/armeabi-v7a/*.so&amp;quot; //doNotStrip &amp;quot;*/x86/*.so&amp;quot; //doNotStrip &amp;quot;*/arm64-v8a/*.so&amp;quot; //doNotStrip &amp;quot;*/x86_64/*.so&amp;quot; //doNotStrip &amp;quot;armeabi.so&amp;quot; } multiDexEnabled true } }</code></pre> <h3>3、混淆</h3> <p>[[点击查看TopOn混淆]](<a href="https://www.showdoc.com.cn/inveno/7643934939290749">https://www.showdoc.com.cn/inveno/7643934939290749</a> &quot;[TopOn混淆]&quot;) <a href="https://www.showdoc.com.cn/inveno/7643992162320576">[点击查看Growmore混淆]</a></p> <h3>4、修改清单文件</h3> <pre><code>&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt; &amp;lt;manifest&amp;gt; &amp;lt;application tools:replace=&amp;quot;android:allowBackup&amp;quot; android:allowBackup=&amp;quot;false&amp;quot; android:requestLegacyExternalStorage=&amp;quot;true&amp;quot;&amp;gt; &amp;lt;/application&amp;gt; &amp;lt;/manifest&amp;gt;</code></pre> <h3>5、初始化</h3> <p>在application的onCreate方法里初始化</p> <pre><code>//Android 9及以上必须设置 if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.P) { val processName = getProcessName() if (!getPackageName().equals(processName)) { WebView.setDataDirectorySuffix(processName) } } AdvertManager.REWARD_AD_ID = &amp;quot;&amp;quot; //激励视频广告码 AdvertManager.FULL_AD_ID = &amp;quot;&amp;quot; //全屏视频广告码 AdvertManager.TABLE_AD_ID = &amp;quot;&amp;quot; //插屏视频广告码 AdvertManager.FEED_AD_ID = &amp;quot;&amp;quot; //信息流广告码 AdvertManager.BANNER_AD_ID = &amp;quot;&amp;quot; //banner广告码 AdvertManager.SPLASH_AD_ID = &amp;quot;&amp;quot; //开屏视频广告码 //如果用的是topon,则调用这个方法初始化 AdvertManager.initTopOn(this,&amp;quot;appId&amp;quot;,&amp;quot;appKey&amp;quot;,isDebug) //如果用的是growmore,则调用这个方法初始化 AdvertManager.initGrowMore(this, &amp;quot;appId&amp;quot;, &amp;quot;appName&amp;quot;, isDebug) //如果用的是优量汇,则调用这个方法 初始化 AdvertManager.initYLH(this, &amp;quot;appId&amp;quot;) //如果用的是多牛,则调用这个方法初始化 AdvertManager.initDN(this, &amp;quot;GrowMoreAppId&amp;quot;); //设置全局广告监听 AdvertManager.setCloseCallBack(object : AdvertManager.CloseCallBack{ override fun onTableVideoClose(closeCount: Int) { //当插屏视频关闭时回调 } override fun onRewardVideoClose(closeCount: Int) { //当激励视频关闭时回调 } override fun onFullVideoClose(closeCount: Int) { //当全屏视频关闭时回调 } }) AdvertManager.setLoadCallBack(object : AdvertManager.LoadCallBack{ override fun onTableVideoLoad() { //插屏加载完成时回调 } override fun onRewardVideoLoad() { //激励加载完成时回调 } override fun onFullVideoLoad() { } })</code></pre> <h3>6、使用</h3> <p>优量汇转化归因上报(仅优量汇sdk有)</p> <pre><code>GDTAction.logAction(ActionType.START_APP);</code></pre> <p>广告开关</p> <pre><code>val showAd = true //true则正常播放广告,false则不播放广告,但是会走相应的广告回调(测试使用) AdvertManager.setShowAd(showAd)</code></pre> <p>激励视频</p> <pre><code>AdvertHelper.initRewardVideo(this) //var ecpm = AdvertHelper.getRewardVideoEcpm() //获取ecpm,仅在广告正常播放后有值 AdvertHelper.showRewardVideo(object : VideoCallBack{ override fun onVideoShow() { } override fun onVideoClose() { } override fun onVideoClick() { //内部已自动缓存下一个视频,无须手动缓存 } override fun onVideoReward() { } override fun onError(code: String?, msg: String?) { } })</code></pre> <p>激励视频(带自定义view)</p> <pre><code>AdvertHelper.showRewardVideo(null,object : RewardActivityViewCreator{ override fun createView(context: Context?): View { val view = TextView(context) view.text = &amp;quot;自定义文本&amp;quot; return view } override fun createLayoutParams(): FrameLayout.LayoutParams { val params = FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT) params.leftMargin = 200 //左边距 params.topMargin = 200 //右边距 return params } override fun dismissDelay(): Int { return 0 //延迟几秒消失 } })</code></pre> <p>全屏视频</p> <pre><code>AdvertHelper.initFullVideo(this) //var ecpm = AdvertHelper.getFullVideoEcpm() //获取ecpm,仅在广告正常播放后有值 //如果使用的是growmore,ecpm的单位是分,所以还需要除以100 //if (AdvertManager.isInitGrowMore()) { // ecpm = ecpm / 100; // } AdvertHelper.showFullVideo(object : VideoCallBack{ override fun onVideoShow() { } override fun onVideoClose() { //内部已自动缓存下一个视频,无须手动缓存 } override fun onVideoClick() { } override fun onVideoReward() { //此方法仅在激励视频有回调 } override fun onError(code: String?, msg: String?) { } })</code></pre> <p>插屏视频</p> <pre><code>AdvertHelper.initTableVideo(this) //var ecpm = AdvertHelper.getTableVideoEcpm() //获取ecpm,仅在广告正常播放后有值 //如果使用的是growmore,ecpm的单位是分,所以还需要除以100 //if (AdvertManager.isInitGrowMore()) { // ecpm = ecpm / 100; // } AdvertHelper.showTableVideo(object : VideoCallBack{ override fun onVideoShow() { } override fun onVideoClose() { //内部已自动缓存下一个视频,无须手动缓存 } override fun onVideoClick() { } override fun onVideoReward() { //此方法仅在激励视频有回调 } override fun onError(code: String?, msg: String?) { } })</code></pre> <p>信息流</p> <pre><code>AdvertHelper.initFeed(this) //AdvertHelper.showFeed(container,null) //不需要回调可以传null AdvertHelper.showFeed(container,object : FeedCallBack{ override fun onFeedClick() { } override fun onFeedShow() { } override fun onFeedRenderFail(code: String?, desc: String?) { } override fun onFeedRenderSuccess() { } override fun onFeedShowFail(msg: String?) { } })</code></pre> <p>banner</p> <pre><code>//AdvertHelper.showBanner(this,container,null) //不需要回调可以传null AdvertHelper.showBanner(this,content,object : BannerCallBack{ override fun onBannerError(code: String?, msg: String?) { } override fun onBannerOpened() { } override fun onBannerClosed() { } override fun onBannerClicked() { } override fun onBannerShow() { } })</code></pre> <p>开屏</p> <pre><code>AdvertHelper.showSplash(this,container,object : SplashCallBack{ override fun onSplashShow() { } override fun onSplashClick() { } override fun onSplashSkip() { } override fun onSplashDismiss() { } override fun onError(code: String?, msg: String?) { } })</code></pre>

页面列表

ITEM_HTML