3. 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 이라는 앱을 통해서 원하는 센서 값만 받아 볼 수 있다. 개인
적으로 자신의 데이터들을 분석하는데 사용한다.
4. Key feature
• 수집 데이터를 원격지에 주기적으로 보내도록 설정이 가능하
다(원격지 서버가 죽으면 로컬로 데이터를 캐싱해두었다가 서
버가 살아나면 업로드한다)
• 약 15개의 센서정보를 수집가능하다
• One-way hasing 암호화를 통해서 민감한 정보들을 숨긴다(폰
번호, 이름 등)
• 로컬저장하는 database file은 암호화되어 저장된다
• 약 15개월동안 100명이상의 테스터를 통해 실험하여 프레임웍
을 검증하였다
6. Funf 에서 감지가능한 데이터
• 각 데이터는 JSON 형태로 수집된다(구글코드위키에 각 센서별 데이
터 형식 예시와 필요 퍼미션 등을 확인할 수 있다
7. Funf Journal
• Funf framework를 이용하여 만든 애플리케이션으로 간단하게 원하는
센서들의 데이터를 수집할 수 있다.
• 수집을 원하는 센서들을 체크하고 주기 등을 설정해 놓으면 된다
• 설정에서 주기적으로 서버나 메일로 데이터를 전송 할 수 있다
9. Funf in a box
• APP 이름과 데이터를 받을 e-mail을 적고 수집하고 싶은 센서와 수집
주기등을 세팅한 후 생성하면 .apk 파일을 얻을 수 있다
• .apk 파일을 이용해 폰에 설치하면 주기적으로 세팅해 두었던 센서정
보를 메일로 전송받을 수 있다.
10. Funf License = LGPL
• LGPL
– 수정코드 배포시
• 저작권 표시
• No Warranty
• LGPL로 배포
• 소스코드 제공
• 수정 사실 및 일자
11. Funf Data Analysis
• 모은 센서데이터를 visualize 하는 예시 프로그램을 제공한다
(Location, Activity, Battery, Screen on/off, temperature 센서들만)
• 가이드에 있는데로 따라해선 돌아가지 않는다. (센서데이터가 있는
db파일에서 따로 추출해내서 데이터를 넣어줘야하는것같다)
• 내부코드를 보니 visualization 하는 부분은 google visualization을 사
용하고 있었다.
12. Funf 구조
• .funf.configured : 설정 관리
• .funf.opp : Object Push Profile 블루투스 통신 프로파일
• .funf.storage : database 관련 코드
• .funf.probe : Sensor 정보 가져오기-service
• .funf : utils 정보
15. Example
• MainPipeLine.class
– ConfiguredPipeline을 extends함
– Configuration file을 읽고 각 센서들이 적절한 데이터 요청을 하게 만드는
서비스
– 센서들이 데이터를 반환할 때, 데이터들을 받아서 json으로 serialize하고
DB에 암호화하여 저장한다.
• LauncherReceiver.class
– MainPipeLine 서비스가 계속 켜져있도록 유지시켜준다
• JsonUtils.class
– Gson을 사용하여 serialize된 데이터를 Json으로 변환
– Gson : Java object JSON 변환 라이브러리