funf - Android Sensing Framework

15
Funf fHalo
  • date post

    20-Oct-2014
  • Category

    Technology

  • view

    1.862
  • download

    1

description

Android Sensing Framework 인 funf를 소개한다.

Transcript of funf - Android Sensing Framework

Page 1: funf - Android Sensing Framework

Funf

fHalo

Page 2: funf - Android Sensing Framework

신재명 , 오유환 , 강미경 , 김영호

fHalo 팀

손영수

Page 3: funf - Android Sensing Framework

Who is Funf for?

• API-Level Developers– Funf 의 내부단을 사용하지 않고 3rd-party 개발자 API 만 사용하여서 개발

할 수 있도록 해준다

• Study Managers/Researchers– 센서를 통해 얻는 여러 정보들을 모아서 분석하고 연구하는데 사용한다 .

• Core-Level Developers– Funf 프레임웍중 원하는 feature 를 이용한다 . Funf 에 없는 새로운 센서를

추가하거나 기존에 있는 센서측정의 performance 를 높인다 .

• Self-Tracking– Funf Journal 이라는 앱을 통해서 원하는 센서 값만 받아 볼 수 있다 .

개인적으로 자신의 데이터들을 분석하는데 사용한다 .

Page 4: funf - Android Sensing Framework

Key feature

• 수집 데이터를 원격지에 주기적으로 보내도록 설정이 가능하다 ( 원격지 서버가 죽으면 로컬로 데이터를 캐싱해두었다가 서버가 살아나면 업로드한다 )

• 약 15 개의 센서정보를 수집가능하다

• One-way hasing 암호화를 통해서 민감한 정보들을 숨긴다 ( 폰번호 , 이름 등 )

• 로컬저장하는 database file 은 암호화되어 저장된다

• 약 15 개월동안 100 명이상의 테스터를 통해 실험하여 프레임웍을 검증하였다

Page 5: funf - Android Sensing Framework

Funf 에서 감지가능한 데이터

Page 6: funf - Android Sensing Framework

Funf 에서 감지가능한 데이터• 각 데이터는 JSON 형태로 수집된다 ( 구글코드위키에 각 센서별 데이터

형식 예시와 필요 퍼미션 등을 확인할 수 있다

Page 7: funf - Android Sensing Framework

Funf Journal

• Funf framework 를 이용하여 만든 애플리케이션으로 간단하게 원하는 센서들의 데이터를 수집할 수 있다 .

• 수집을 원하는 센서들을 체크하고 주기 등을 설정해 놓으면 된다• 설정에서 주기적으로 서버나 메일로 데이터를 전송 할 수 있다

Page 8: funf - Android Sensing Framework

Funf Journal

• 수집된 데이터는 *.db 파일이며 , 암호화 되어있다 .

Value 값 (JSON 형태로 저장 )

Page 9: funf - Android Sensing Framework

Funf in a box

• APP 이름과 데이터를 받을 e-mail 을 적고 수집하고 싶은 센서와 수집 주기등을 세팅한 후 생성하면 .apk 파일을 얻을 수 있다

• .apk 파일을 이용해 폰에 설치하면 주기적으로 세팅해 두었던 센서정보를 메일로 전송받을 수 있다 .

Page 10: funf - Android Sensing Framework

Funf License = LGPL

• LGPL

– 수정코드 배포시• 저작권 표시• No Warranty• LGPL 로 배포• 소스코드 제공• 수정 사실 및 일자

Page 11: funf - Android Sensing Framework

Funf Data Analysis

• 모은 센서데이터를 visualize 하는 예시 프로그램을 제공한다(Location, Activity, Battery, Screen on/off, temperature 센서들만 )

• 가이드에 있는데로 따라해선 돌아가지 않는다 . ( 센서데이터가 있는 db파일에서 따로 추출해내서 데이터를 넣어줘야하는것같다 )

• 내부코드를 보니 visualization 하는 부분은 google visualization을 사용하고 있었다 .

Page 12: funf - Android Sensing Framework

Funf 구조• .funf.configured : 설정 관리 • .funf.opp : Object Push Profile 블루투스 통신 프로파일• .funf.storage : database 관련 코드• .funf.probe : Sensor 정보 가져오기 -service• .funf : utils 정보

Page 13: funf - Android Sensing Framework

Tutorial

• Assets/default_config.json– 센서들의 configuration 정의– MainPipeLine 이란 class 가 여기서 읽어서 세팅한다

• 사용할 서비스와 퍼미션 등록

Page 14: funf - Android Sensing Framework

Tutorial

• 서비스 실행

• Asset 에 정의하지 않고 코드로 정의할 경우

Page 15: funf - Android Sensing Framework

Example

• MainPipeLine.class – ConfiguredPipeline 을 extends 함– Configuration file 을 읽고 각 센서들이 적절한 데이터 요청을 하게 만드는

서비스– 센서들이 데이터를 반환할 때 , 데이터들을 받아서 json 으로 serialize

하고 DB 에 암호화하여 저장한다 .

• LauncherReceiver.class– MainPipeLine 서비스가 계속 켜져있도록 유지시켜준다

• JsonUtils.class– Gson 을 사용하여 serialize 된 데이터를 Json 으로 변환– Gson : Java object JSON 변환 라이브러리