5. Appendix1 : 안드로이드 어플을 통해 스마트워치 데이터 분석하기 - GachonCapstoneHCI/pingpong_score GitHub Wiki

스마트워치 프로젝트시작하기

스마트 워치에서 측정되는 센서들의 값 변화를 보기 위해 안드로이드 앱인 "Sensor Dashboard" 를 사용한다
Sensor Dashboard 의 특징은 다음과 같다

  1. 센서별로 실시간 데이터를 수집하고 확인할 수 있다.
  2. 실시간으로 측정되는 데이터를 text 파일로 export 해서 분석할 수 있다. (여기)[https://github.com/pocmo/SensorDashboard]

시작하기

1. 위에 링크를 타고 들어가서 Sensor Dashboard를 github에서 다운받는다
2. 안드로이드 스튜디오로 프로젝트 열기
3. Sensor Dashboard 가 약 3~4년 전까지만 업데이트된거라서 나름 최신 버전으로 gradle 을 설정해줘야한다.
4. 안드로이드 스튜디오 창 왼쪽 Project 탭에서 Gradle Scripts/build.gradle, wear/build.gradle, mobile/build.gradle, shared/build.gradle 을 수정해야한다.
이유는 3~4년 전 기준으로 설정되어있는 targetSDK 와 compileSDK 를 수정해주기 위해서.

build.gradle(Project: SensorDashboard-master)

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        google()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath "io.realm:realm-gradle-plugin:4.4.0"
    }
}

ext {
    compileSdkVersion = 26
    buildToolsVersion = "26.0.2"
}

allprojects {
    repositories {
        jcenter()
        google()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }

    }
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.

build.gradle/Module:mobile

apply plugin: 'com.android.application'

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "com.github.pocmo.sensordashboard"
        minSdkVersion 20
        targetSdkVersion 26
        versionCode 5
        versionName "1.1.1"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    buildToolsVersion '26.0.2'
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "com.github.pocmo.sensordashboard"
        minSdkVersion 18
        targetSdkVersion 26
        versionCode 5
        versionName "1.1.1"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    buildToolsVersion '26.0.2'
}

dependencies {
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    wearApp project(':wear')

    compile project(':shared')

    //wearable
    compile 'com.google.android.gms:play-services-wearable:7.5.0'
    compile 'com.google.android.gms:play-services-analytics:7.5.0'
    
    compile 'com.android.support:design:26.1.0'
    compile 'com.squareup:otto:1.3.6'

}

build.gradle(Module:shared)

apply plugin: 'com.android.library'
apply plugin: 'realm-android'

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        minSdkVersion 20
        targetSdkVersion 26

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

build.gradle(Module:wear)

apply plugin: 'com.android.application'


android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "com.github.pocmo.sensordashboard"
        minSdkVersion 20
        targetSdkVersion 26
        versionCode 5
        versionName "1.1"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    buildToolsVersion '26.0.2'
}

dependencies {
    compile 'com.google.android.support:wearable:1.1.0'
    compile 'com.google.android.gms:play-services-wearable:7.5.0'
    compile "com.android.support:appcompat-v7:26.0.2"


    compile project(':shared')
}
5. 이렇게 해도 문제가 발생하는 경우가 있다. 
(1) google() 을 찾을 수가 없다(https://github.com/googlemaps/android-samples/issues/82)
의미 : 프로젝트의 gradle 버전이 낮게 잡혀있다.
해결책 : 프로젝트의 gradle 버전을 수정한다.
윈도우 기준 : File > Project Structure > Project > gradle 이 2.3 으로 잡혀있으면 4.1 로 수정하고 build 한다. 
다른 버전으로 하면또 다른 문제가 발생할 수 있으니 조심! 그리고 안드로이드 스튜디오 버전도 확인해야한다. 
여기서는 Android Studio version 3.0을 사용했다. 
혹시 버전이 낮거나 높으면 에러가 발생할 수 있으니 그 때는 gradle 을 다른 버전으로 설정하는 등 확인해야한다!
6. 스마트 워치 앱과 스마트폰 앱에 대해서 각각 빌드한다.
스마트워치 앱은 빌드 설정에서 wear로, 스마트폰 앱은 빌드 설정에서 mobile로 한다.
⚠️ **GitHub.com Fallback** ⚠️