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文件

  1. 将arr文件夹下内的文件全部粘贴到主项目libs目录下即可.

  2. 在工程的build的文件中做如下配置:

    allprojects {
              repositories {
               flatDir {
                   dirs 'libs'
               }
              }
          }
    
  3. 在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'
    
  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>=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。

results matching ""

    No results matching ""