初始化 SDK
优质
小牛编辑
135浏览
2023-12-01
1. SDK 目录结构
- demo.apk 示例工程, 用来演示AdHub提供的多种广告展现形式.
- adhub_sdk.aar 主SDK, 包含请求, 展现Adhub自有广告逻辑.
- adpoymer.aar 相应的适配类, 用来展现广告内容.
- Baidu_MobAds_SDK.aar 相应的适配类, 用来展现广告内容.
- GDTSDK.union.4.80.950.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文件
1. 将arr文件夹下内的4个文件全部粘贴到主项目libs目录下即可.
2. 在工程的build的文件中做如下配置:
allprojects {
repositories {
flatDir {
dirs 'libs'
}
}
}
3. 在app的build文件中添加:
repositories {
flatDir {
dirs 'libs'
}
}
//以下依赖必须全部接入
implementation(name: 'adhub_sdk_3.2.3', ext: 'aar')
implementation(name: 'adpoymer-4.1.28', ext: 'aar')
implementation(name: 'GDTSDK.union.4.80.950', ext: 'aar')
implementation(name: 'Baidu_MobAds_SDK5.83', ext: 'aar')
4. eclipse需要将aar转换为library工程文件,以项目工程的形式导入。(关于AAR转成eclispe工程文件请参考搜索百度相关文档)
5. 为了适配下载和安装相关功能:
在工程中引用V4包使用24.2.0以及以上版本:com.android.support:support‐v4:24.2.0
6. 将压缩包内xml文件夹内的两个文件拷贝到主工程res目录下
7. 因SDK内部采用http协议。如果App的targetSdkVersion>=28,需要在 AndroidManifest.xml 添加依赖声明:
<application
android:usesCleartextTraffic="true">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
... ...
</application>
4. 初始化SDK
注意:初始化SDK必须在调用AdHub广告接口之前,
// Init the Mobile Ads SDK.
//此方法只需要初始化的时候调用一次,建议在application里面调用,不要多次调用。
//注意:demo中是为了提供测试不同的appid,在每一个不同的广告界面都进行了调用。sdk嵌入者只需要调用一次。
AdHub.init(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" />
<!-- targetSdkVersion >= 26 时需要配置此权限,否则无法进行安装app的动作 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
注意:以上部分权限为敏感权限,如果您打包App时的 targetSdkVersion >= 23请做动态权限验证。其中READ_PHONE_STATE、READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE必须在APP主页面做动态权限申请,否则不出广告。
添加SDK Activiy定义
在AndroidManifest.xml文件的application节点下添加
<!-- AdHub Ad -->
<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" />
<!-- Fmobi Ad -->
<activity android:name="com.ly.adpoymer.activity.LyVideoActivity" />
<!-- gdt Ad -->
<activity
android:name="com.qq.e.ads.ADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />
<activity
android:name="com.qq.e.ads.PortraitADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.qq.e.ads.LandscapeADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="landscape" />
<service
android:name="com.qq.e.comm.DownloadService"
android:exported="false" />
<!--如果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>
<!-- baidu Ad -->
<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}这个字段-->
<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>
<!-- *****************************以上所有渠道必须接入****************************************** -->
注意:请开发者务必按照上面信息进行注册声明,详情见Demo。