Android用SDKを導入したい

動作環境について

Androidのb→dash mobile SDKにおいて、推奨環境と動作環境について紹介します。
下記に、b→dash mobile SDK(v5.0.2)の推奨環境と動作環境についてまとめましたのでご参照ください。

b→dash mobile SDKは、SDKのバージョンごとに推奨環境と動作環境が異なります。
本記事で紹介しているb→dash mobile SDK(v5.0.2)と異なるバージョンのSDKの推奨環境と動作環境については、貴社カスタマーサクセス担当までお問い合わせください。
Android 言語 Android studio
推奨環境 6.0以上 OpenJDK・JDK8, Kotlin Bumblebee Patch1のみ
動作環境 6.0以上 OpenJDK・JDK8 Bumblebee Patch1のみ
minSdkVersion compileSdkVersion targetSdkVersion
ビルド環境 23のみ 32のみ 32のみ

本SDKの計測は、以下のプラットフォームで動作確認を行っております。

Androidバージョン 対応状況
Android 4.1, 4.2 SDK ver2系から動作対象外
Android 4.4 SDK ver4.0.1から動作対象外
Android 5.0 SDK ver4.0.1から動作対象外
Android 6.0 SDK ver5.0.1から動作対象外
Android 7.0 動作確認済
Android 8.0
Android 9.0
Android 10.0
Android 11.0
Android 12.0

利用している外部ライブラリについて

b→dash Mobile SDK利用している外部ライブラリは以下の一覧をご参照ください。

外部ライブラリ名 利用用途
play-services-ads-identifier 広告 ID (“advertising ID”)を利用するため
AndroidX(※1) OSの互換性の開発に必要なため
GSON v2.8.6 SDK の基盤に必要なため
Okhttp3 v4.9.3 サーバーとの通信に必要なため

※1. サポートライブラリは対象外となります
本SDK では AndroidX を採用しているため、サポートライブラリを利用している場合はAndroidX への移行を行う必要があります。

AndroidXへ プロジェクトを移行する手順

b→dash Mobile SDKでは「AndroidX」を用いて実装を行っています。貴社がサポートライブラリを利用している場合、ビルドが通らないためAndroidXへプロジェクトを移行していただく必要があります

以下ではAndroidXへの移行手順を紹介しますので、導入がお済でない場合はご参照ください。
※ 既にAndroidXを導入している場合は本手順をスキップしてください

build.gradle で compileSdkVersion を 28 以降※にアップデートします

※ 実際の設定値は最新の環境のバージョンに合わせてください

<app/build.gradle>

android{
  compileSdkVersion 28
..
}
build.gradle で gradle plugin を 3.2.0 以降にアップデートします
<build.gradle>

dependencies{
  classpath 'com.android.tools.build:gradle:3.2.0'
}
Migrate to AndroidX を実行する

「Refactor -> Migrate to AndroidX」 を選択すると移行が開始します。

下記の内容が自動的に設定されていればAndroidXに移行完了です
android.enableJetifier=true
android.useAndroidX=true
既にOkhttp3を導入している場合、ビルドが通らない可能性があります

b→dash Mobile SDKでは通信部分の処理を「Okhttp3 v4.9.3」を用いて実装を行っています。
そのため、既に貴社がOkhttp3を導入されている場合、ご利用されているOkhttp3のバージョンによってはビルドが通らない可能性があります。

ビルドが通らない場合は下記の記述を参考に Okhttp3 のバージョンアップを行ってください

<app/build.gradle>
dependencies { 
・・
implementation 'com.squareup.okhttp3:okhttp:4.9.3'
・・
}

※ 2022年2月時点で対応しているOkhttp3の互換性は以下になります
最新のOkhttp3 v4.9.3へのバージョンアップが難しい場合はいずれかの動作確認済みバージョンをご利用ください

Okhttp3 バージョン 対応状況
Okhttp3 v4.9.3 動作確認済&サポートバージョン
Okhttp3 v4.9.1 動作確認済バージョン
Okhttp3 v4.9.0
Okhttp3 v4.8.0
Okhttp3 v4.7.0
Okhttp3 v4.6.0
Okhttp3 v4.5.0
Okhttp3 v4.4.0

SDKのインストール

ここではb→dash mobile SDKのAndroidアプリケーションへのインストール方法について説明します。

SDKファイルの組み込み

SDKファイルは、貴社カスタマーサクセス担当からzipファイル形式でお渡しさせていただきます。カスタマーサクセス担当から共有されたZIPファイルを展開し「bdash-mobile-sdk.aar」をライブラリとしてプロジェクトへ導入します。

プロジェクト導入以降の操作は Android Stuidio 環境での説明になります。
導入のサンプルコードは全て Java 言語で記載していますので、Kotlin を利用されている場合は適宜読み替えて導入をお願いいたします。

zip 同梱のサンプルプロジェクトについて

ご提供しているSDK(zip 内) のSampleディレクトリに、b→dash が提供している 「Push 通知」 と 「アプリ接客」 のサンプルプロジェクトが同梱されています。
SDK組み込み時の参考資料としてご活用ください。

build.gradleの編集

b→dash mobile SDKのコンパイルに必要な設定をプロジェクトのbuild.gradleに追加します。
以下はAndroid Studio 3.6.3以降のサンプルコードとなります。

<app/build.gradle>
dependencies {
implementation(name:'bdash-mobile-sdk', ext:'aar')
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0’

// Push通知を利用する場合は必須
implementation 'com.google.firebase.gms:firebase-messaging:20.2.4'

// AndroidX を利用.
implementation 'androidx.appcompat:appcompat:1.2.0'

// Okhttp3 を利用
implementation 'com.squareup.okhttp3:okhttp:4.9.3'

apply plugin: 'com.google.gms.google-services'
<build.gradle>
dependencies {

// バージョンについては AndroidStudio / gradle の利用バージョンに応じて設定する
classpath 'com.android.tools.build:gradle:3.6.4'
classpath 'com.google.gms:google-services:4.3.5'
AndroidXで 「バージョン競合した」 場合について

Android Studio 3 以降からAndroidXのバージョンが異なるとクラッシュ警告が表記されるようになりました。アプリですでに利用しているバージョンを優先させるには、下記のように gradle に記載します。

configurations.all {
 resolutionStrategy.eachDependency { details ->
  if (details.requested.group == 'androidx.core') {
   details.useVersion '【利用バージョンを指定します】'
  }
 }
}
これで、クラッシュ警告を解除することが出来ます!
AndroidManifest.xml の編集

b→dash mobile SDKの動作/実行に必要な設定をAndroidManifest.xmlに追加します。

以下のパーミッションの設定を「<application>」の前に追加します
パーミッション Protection Level 概要
INTERNET normal b→dash mobile SDKが通信を行うために必要となります。
ACCESS_NETWORK_STATE normal b→dash mobile SDKが通信可能かを確認するために必要となります。
VIBRATE normal b→dash mobile SDKがPush通知を行う際に必要となります。
(Push通知を利用しない場合は不要)

追加の際は、下記パラメーターの記載例をご参照ください。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
以下の<meta-data> を manifest の 「<application>」 内に追加します
パラメーター
APP_BDASH_ACCOUNT_ID カスタマーサクセス担当より連絡しますので、その値を入力してください。
APP_BDASH_APP_ID カスタマーサクセス担当より連絡しますので、その値を入力してください。

追加の際は、下記パラメーターの記載例をご参照ください。

<meta-data android:name="APP_BDASH_ACCOUNT_ID"
android:value="カスタマーサクセス担当より連絡しますので、その値を入力してください。" />

<meta-data android:name="APP_BDASH_APP_ID"
android:value="カスタマーサクセス担当より連絡しますので、その値を入力してください。" />
Proguard の除外設定

Proguard を使って難読化される場合は、アプリケーションの app ディレクトリに有る proguard-project.txt 又は proguard-rules.pro に以下の設定を追加してください。

-keep class com.f_scratch.bdash.mobile.analytics.**{
*;
}
本SDK のパッケージは「com.f_scratch.bdash.mobile.analytics」となっており、難読化は対象外の設定 とします。
SDKバージョンジョンアップ時の対応

SDKのバージョンアップをする場合は、提供したファイル内にある root ディレクトリ(解凍ディレクトリの直下)の「 SDKアップデート時に確認する項目について.txt」というファイルを必ずご確認ください

[参考]ディレクトリ構成

プロジェクトへ導入したSDKは、アプリケーションの[パッケージ名] 以下に下記の構成で「フォルダ/ファイル」を生成します。赤文字で記載した箇所が本SDKで生成するディレクトリです。

shared_prefs > com.f_scratch.bdash.mobile.analytics.gcm.xml
files > com.fsbdash.mobile.analytics.ser > [ログデータ/SDKデータ用のファイル]

各ファイルを消してしまうと、集計したログデータが破損してしまうのでご注意ください。

[参考]SDKのセキュリティ仕様

■暗号化について
b→dash mobile SDKでは https 通信を利用することでネットワークデータは暗号化されています。ローカルデータについては、暗号化はされておりません。

■各プラットフォームでデータが保持されている場所
Android:Library/Application Support
上記の領域は、root権限を行わない限り、他の不正なアプリやユーザーが直接アクセスすることはできません。

■データのデータの保存形式について
CoreDataで保持されています。内部的には SQLite形式となっています。