Computer Science/Energy-aware computing

안드로이드 앱 전력소모 분석을 위한 Battery Historian 2.0 사용방법

JAYNUX 2015. 8. 26. 16:28

Battery Historian 2.0 사용 방법


Google I/O 2015에서 battery historian 2.0으로 개선된 것이 공개 되었다.

기존의 1.0은 python만 설치하면 동작 했었지만 2.0은 설치방법과 사용방법이 그것보다는 약간 더 복잡한 상황이다.

이것에 대해서 다루도록 한다.


GiHub 주소: Battery-Historian



Battery Historian 2.0에서의  사용방법



<요구사항>

android 5.0 이상

android API 21+

2.0에 오면서 go와 javascript를 이용해서 다시 작성 되었다.


<Go Download>

download (다른 운영체제)

Linux: go1.5.linux-amd64.tar.gz


tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz

export PATH=$PATH:/usr/local/go/bin

또는 profile에 추가.



<Workspace 생성> - 필수적으로 해야함 -

#디렉터리 생성

$HOME은 나의경우 /root 이다.

mkdir $HOME/go-worksapce/goCode

#GOPATH 설정

export GOPATH=$HOME/work

#GOBIN 설정

export GOBIN=$GOPATH/bin



< install Go support for Protocol Buffers by running go get>

# Grab the code from the repository and install the proto package.

$ go get -u github.com/golang/protobuf/proto

$ go get -u github.com/golang/protobuf/protoc-gen-go

#이것을 설치하면, $GOBIN으로 설정한 곳에 설치가 된다. 따라서 이것을 하기전에 $GOBIN의 PATH 설정을 필수 이다.



실행 결과로 bin과 pkg에 각각의 파일들이 생성 된다. 핵심은 해당 디렉터리는 $GOPATH로 설정한 곳이라는 것이다.




<download the battery historian 2.0 code>

$ go get -u github.com/google/battery-historian

$ cd $GOPATH/src/github.com/google/battery-historian




<Compile Javascript files using the Closure compiler>

$ bash setup.sh





<Run Historian on your machine (make sure PATH contains GOBIN)

$ go run cmd/battery-historian/battery-historian.go [--port <default:9999>]

주의: $GOPATH/src/github.com/google/battery-historian 항상 이곳에서 실행 해야 한다.

#그다음 웹브라우저로 실행 한다.

http://localhost:9999





<프로파일링 로그 생성>

# bugreport 파일은 dumpsys, dumpstate, locat 파일을 모두 포함 한다.

$ adb bugreport > bugreport.txt

# 로그를 초기화 한다.

$ adb shell dumpsys batterystats --reset


#full wake lock을 활성화 시키고 싶으면 아래의 옵션을 활성화 시킨다.

$ adb shell dumpsys batterystats --enable full-wake-history






이전 version에서의 사용 방법 (Summary)


> adb kill-server

> adb devices

> adb shell dumpsys batterystats --reset


<disconnect and play with app>...<reconnect> (연결 되면 배터리 충전 되므로 이러한 방법을 사용 함).


>adb devices

>adb shell dumpsys batterystats > batterystats.txt

> python historian.py batterystats.txt > batterystats.html