SDK初始化说明
1. SDK 目录结构
- demo-release.apk 示例工程, 用来演示AdHub提供的多种广告展现形式.
- adhub_sdk.aar 主SDK, 包含请求, 展现Adhub自有广告逻辑.
- adpoymer.aar 相应的适配类, 用来展现广告内容.
- open_ad_sdk.aar 相应的适配类, 用来展现广告内容.
注:以上aar需全部集成到项目中.
2. AAR文件简介
Google在发布Android studio的时候就发布了一种独有的格式AAR,专门用于打包UI组件库。与jar相比其多了一些UI组件用到的属性、图片等一系列文件,它的好处在于你不需要再多创建一个Library Module,只需引用这个AAR文件即可,Android Sudio会自动把AAR包里的文件跟你的项目融合。 AdHubSDK也采用了aar作为标准打包形式, 将SDK依赖的文件和资源一并打入AAR包中, 这样开发者只需要依赖单一的AAR文件, 而不需要手工将SDK依赖的文件放入工程中, 大大减轻了SDK使用者的负担.
3. 导入SDK文件
将arr文件夹下内的文件全部粘贴到主项目libs目录下即可.
在工程的build的文件中做如下配置:
allprojects { repositories { flatDir { dirs 'libs' } } }
在app的build文件中添加:
repositories { flatDir { dirs 'libs' } }
//以下依赖必须全部接入 compile(name: 'adhub_sdk', ext: 'aar') compile(name: 'open_ad_sdk', ext: 'aar') compile(name: 'adpoymer', ext: 'aar') compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.6'
eclipse需要将aar转换为library工程文件,以项目工程的形式导入。(关于AAR转成eclispe工程文件请参考搜索百度相关文档)
为了适配下载和安装相关功能:
在工程中引用V4包使用24.2.0以及以上版本:com.android.support:support‐v4:24.2.0
将压缩包内xml文件夹拷贝到主工程res目录下
因SDK内部采用http协议。如果媒体App的targetSdkVersion>=27,麻烦注意Android 9.0/P http 网络请求的问题
4. 初始化SDK
注意:初始化SDK必须在调用AdHub广告接口之前,
// Initialize the Mobile Ads SDK.
//此方法只需要初始化的时候调用一次,建议在application里面调用,不要多次调用。
//注意:demo中是为了提供测试不同的appid,在每一个不同的广告界面都进行了调用。sdk嵌入者只需要调用一次。
AdHub.initialize(applicationContext, appId);
5. 修改AndroidManifest.xml文件, 添加必要权限和Activity
添加访问权限
在AndroidManifest.xml文件中添加
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!-- targetSdkVersion >= 26 时需要配置此权限,否则无法进行安装app的动作 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
注意:以上部分权限为敏感权限,6.0以上版本请做动态权限验证。其中READ_PHONE_STATE、READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE必须在APP主页面做动态权限申请,否则不出广告。
添加SDK Activiy定义
在AndroidManifest.xml文件的application节点下添加
<activity
android:name="com.hubcloud.adhubsdk.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@style/AdhubDialogStyle" />
<service
android:name="com.hubcloud.adhubsdk.DownloadService"
android:exported="false" />
<service
android:name="com.qq.e.comm.DownloadService"
android:exported="false" />
<activity
android:name="com.qq.e.ads.ADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />
<activity
android:name="com.baidu.mobads.AppActivity"
android:configChanges="screenSize|keyboard|keyboardHidden|orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!--如果targetSdkVersion设置值>=24,则必须添加以下provider,否则会影响app变现效率-->
<!--请开发者根据自己PackageName来替换${applicationId}这个字段-->
<!--特别注意这个authorities中的fileprovider为全部小写-->
<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.baidu.mobads.openad.FileProvider"
android:authorities="${applicationId}.bd.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/bd_file_paths" />
</provider>
<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/tt_file_path" />
</provider>
注意:请开发者务必按照上面信息进行注册声明,详情见Demo。