「Android Getting Started SDK8」修訂間的差異

出自TAMedia
跳至導覽 跳至搜尋
 
(未顯示同一使用者於中間所作的 15 次修訂)
行 15: 行 15:
<br>
<br>


== <b>Android Studio專案整合SDK</b> ==
== <b>APP專案整合SDK</b> ==
請按照下列方式設置專案<br><br>
請按照下列方式設置專案<br><br>
<big><u>Step 1: 將SDK放入app專案的<b>libs</b>資料夾</u></big><br><br>
<big><u>Step 1: 將SDK放入app專案的<b>libs</b>資料夾</u></big><br><br>
:請至[[Download MADP Android SDK|下載 Download SDK]]下載SDK,並將壓縮檔內的AAR檔 (adpmobile-lib-r8.0.0.aar) 放至專案的libs資料夾, 若無libs資料夾請自行建立<br>
:請至[[Download MADP Android SDK|下載 Download SDK]]下載SDK,並將壓縮檔內的AAR檔放至專案的libs資料夾, 若無libs資料夾請自行建立<br>


[[檔案:AS SDK8 aar.png | 300px]]
[[檔案:AS SDK8 aar.png | 300px]]
行 29: 行 29:
<br>
<br>
:請加入TAmedia SDK aar與下列相依性函式庫
:請加入TAmedia SDK aar與下列相依性函式庫
:<ul><li>kotlin</li></ul>
:<ul><li>kotlin-coroutines</li></ul>
:<ul><li>retrofit</li></ul>
:<ul><li>retrofit</li></ul>
:<ul><li>google play service identifier</li></ul>
:<ul><li>ads identifier</li></ul>
:<ul><li>gson</li></ul>
:<ul><li>gson</li></ul>
:<ul><li>lifecycle</li></ul>
:<ul><li>appset</li></ul>
:<ul><li>viewModel ktx</li></ul>
:<ul><li>jetpack security-crypto</li></ul>
:<ul><li>appset</ul>
:<ul><li>activity-ktx</li></ul>


== <b>Gradle設定</b> ==


====== MADP SDK 8.0.6 (Kotlin 1.8.x ~ 1.9.22) ======
<source>
<source>
dependencies {
dependencies {
行 51: 行 49:
     // MADP library dependencies
     // MADP library dependencies
     // =======================================================================//
     // =======================================================================//
    // kotlin
    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10'
    // kotlin-coroutines
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0"
     // retrofit
     // retrofit
     implementation 'com.squareup.retrofit2:retrofit:2.9.0'
     implementation 'com.squareup.retrofit2:retrofit:2.9.0'
     implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
     implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
     implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
     implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
     // google play service identifier
     // google ads identifier
     implementation 'com.google.android.gms:play-services-ads-identifier:17.0.1'
     implementation 'com.google.android.gms:play-services-ads-identifier:17.0.1'
    // google app set id
    implementation 'com.google.android.gms:play-services-appset:16.0.1'
     // gson
     // gson
     implementation 'com.google.code.gson:gson:2.8.6'
     implementation 'com.google.code.gson:gson:2.8.6'
    // lifecycle
    def lifecycle_version = "2.4.0-alpha03"
    def arch_version = "2.1.0"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version"
    testImplementation "androidx.arch.core:core-testing:$arch_version"
    // viewModel ktx extension
    implementation 'androidx.activity:activity-ktx:1.3.1'
    // app set id
    implementation 'com.google.android.gms:play-services-appset:16.0.1'
     // Jetpack Security
     // Jetpack Security
     implementation "androidx.security:security-crypto:1.1.0-alpha03"
     implementation 'androidx.security:security-crypto:1.1.0-alpha03'
    // activity-ktx
    implementation 'androidx.activity:activity-ktx:1.9.3'
 


    // CVE-2023-3635
    implementation 'com.squareup.okio:okio:3.4.0'
}
}
</source>
</source>




:compileOptions請加入JAVA 8
 
====== MADP SDK 8.0.7+ (Kotlin 2.0.0+) ======
<source>
<source>
dependencies {


  android {
    // =======================================================================//
     compileOptions {
     // MADP library
        sourceCompatibility JavaVersion.VERSION_1_8
    // =======================================================================//
        targetCompatibility JavaVersion.VERSION_1_8
    implementation files('libs/adpmobile-lib-r8.0.7.aar')
    }
  }


</source>
    // =======================================================================//
<br>
    // MADP library dependencies
 
    // =======================================================================//
<big><u>Step 2-2: 在Project的<b>build.gradle</b>的repositories內加入google()</u></big><br>
    // retrofit
    implementation 'com.squareup.retrofit2:retrofit:3.0.0'
    implementation 'com.squareup.retrofit2:converter-gson:3.0.0'
    implementation 'com.squareup.retrofit2:converter-scalars:3.0.0'
    // google ads identifier
    implementation 'com.google.android.gms:play-services-ads-identifier:18.2.0'
    // google app set id
    implementation 'com.google.android.gms:play-services-appset:16.1.0'
    // gson
    implementation 'com.google.code.gson:gson:2.13.2'
    // Jetpack Security
    implementation 'androidx.security:security-crypto:1.1.0'
    // activity-ktx
    implementation 'androidx.activity:activity-ktx:1.11.0'


[[檔案:Import SDK7 Step2-2.PNG]]
<br>
<source>
buildscript {
    ext.kotlin_version = "1.5.10"
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}


allprojects {
    repositories {
        google()
    }
}
}
</source>
</source>


== <b>權限設定</b> ==


<br><br>
[[檔案:Import SDK7 Step3-1.PNG]]


<big><u>Step 3: 在<b>AndroidManifest.xml</b>的manifest tag宣告權限</u></big><br>
<br>
 
[[檔案:Import SDK7 Step3-1.PNG]]


:<ul><li>Required Permission</li></ul>
:<ul><li>Required Permission</li></ul>
行 141: 行 112:
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
:<ul><li>Optional Permission</li></ul>
:<ul><li>Optional Permission</li></ul>
   &lt;!-- TAmedia Optional Permission -->
   &lt;!-- TAmedia Optional Permission -->
行 151: 行 123:
<br>
<br>


== <b>Target API 為 31+ (Android 12以上) 的應用程式</b> ==
== <b>targetSdk=35 (Android 15) 的應用程式 [[檔案:new-xxl.png|30px]] </b> ==
: Target API 為 31+的開發者應用程式,請於AndroidManifest.xml中加入下列使用權限
 
<source>
: Target API 為 35+的開發者應用程式,但是屬於 <b>闔家適用計畫,或將兒童導向應用程式</b> 請於AndroidManifest.xml中加入下列設定,移除AD_ID使用權限
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
</source>
<br>


: Target API 為 31+的開發者應用程式,但是屬於 <b>闔家適用計畫,或將兒童導向應用程式</b> 請於AndroidManifest.xml中加入下列使用權限
<source>
<source>
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
</source>
</source>
<br>
: Target API 為 30 以下的開發者應用程式,則不須增加此權限
<br>
<br>


行 172: 行 137:
[https://support.google.com/googleplay/android-developer/topic/9877766 Google Play Policy - 家庭]
[https://support.google.com/googleplay/android-developer/topic/9877766 Google Play Policy - 家庭]
<br>
<br>
<br>
== <b>資安相關</b> ==
=== CVE-2023-3635 ===
Square公司知名套件retrofit(處理網路API)其相依性套件okio有DDOS風險
<br>
解決辦法:
build.gradle中增加下列設定
<source>
    // CVE-2023-3635
    // implementation 'com.squareup.okio:okio:3.4.0'
</source>
參考資訊: https://nvd.nist.gov/vuln/detail/CVE-2023-3635
<br>
[[SDK8_Android_SDK_Developer_Guide | 回首頁]]

於 2025年10月15日 (三) 04:21 的最新修訂

簡介

TAmedia SDK提供Android Mobile App開發者簡易迅速的方式整合行動App廣告, 廣告的種類包含
  • Banner
  • Interstitial
  • InRead Anchor
  • Native


系統需求

Android 5.0以上 (API Level 21+)


SDK說明文件

SDK說明文件

APP專案整合SDK

請按照下列方式設置專案

Step 1: 將SDK放入app專案的libs資料夾

請至下載 Download SDK下載SDK,並將壓縮檔內的AAR檔放至專案的libs資料夾, 若無libs資料夾請自行建立

AS SDK8 aar.png


Step 2-1: 編輯app專案中build.gradle

AS SDK8 gradle.png


請加入TAmedia SDK aar與下列相依性函式庫
  • retrofit
  • ads identifier
  • gson
  • appset
  • jetpack security-crypto
  • activity-ktx


MADP SDK 8.0.6 (Kotlin 1.8.x ~ 1.9.22)
dependencies {

    // =======================================================================//
    // MADP library
    // =======================================================================//
    implementation files('libs/adpmobile-lib-r8.0.0.aar')

    // =======================================================================//
    // MADP library dependencies
    // =======================================================================//
    // retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
    // google ads identifier
    implementation 'com.google.android.gms:play-services-ads-identifier:17.0.1'
    // google app set id
    implementation 'com.google.android.gms:play-services-appset:16.0.1'
    // gson
    implementation 'com.google.code.gson:gson:2.8.6'
    // Jetpack Security
    implementation 'androidx.security:security-crypto:1.1.0-alpha03'
    // activity-ktx
    implementation 'androidx.activity:activity-ktx:1.9.3'


}


MADP SDK 8.0.7+ (Kotlin 2.0.0+)
dependencies {

    // =======================================================================//
    // MADP library
    // =======================================================================//
    implementation files('libs/adpmobile-lib-r8.0.7.aar')

    // =======================================================================//
    // MADP library dependencies
    // =======================================================================//
    // retrofit
    implementation 'com.squareup.retrofit2:retrofit:3.0.0'
    implementation 'com.squareup.retrofit2:converter-gson:3.0.0'
    implementation 'com.squareup.retrofit2:converter-scalars:3.0.0'
    // google ads identifier
    implementation 'com.google.android.gms:play-services-ads-identifier:18.2.0'
    // google app set id
    implementation 'com.google.android.gms:play-services-appset:16.1.0'
    // gson
    implementation 'com.google.code.gson:gson:2.13.2'
    // Jetpack Security
    implementation 'androidx.security:security-crypto:1.1.0'
    // activity-ktx
    implementation 'androidx.activity:activity-ktx:1.11.0'


}

權限設定

Import SDK7 Step3-1.PNG


  • Required Permission
 <!-- TAmedia Required Permission -->
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  • Optional Permission
 <!-- TAmedia Optional Permission -->
 <uses-permission android:name="android.permission.VIBRATE" /> 
 <uses-permission android:name="android.permission.CAMERA" />
 <uses-permission android:name="android.permission.RECORD_AUDIO" />
 <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" />


targetSdk=35 (Android 15) 的應用程式 New-xxl.png

Target API 為 35+的開發者應用程式,但是屬於 闔家適用計畫,或將兒童導向應用程式 請於AndroidManifest.xml中加入下列設定,移除AD_ID使用權限
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>


詳情可參考Google網站說明:
2021 年 Google Play 服務更新
Google Play Policy - 家庭