최악의 성능에서 안드로이드 앱 테스트 하기

안드로이드 개발자들 중 다수가 성능 좋은 폰으로 앱을 개발하게 된다. 이렇게 성능이 좋은 폰을 가지고 개발을 하게 되면, 자기폰에는 빠른데 성능이 좋지 않은 폰에서는 버벅거리거나 느려지는 것을 인지 못하고 개발을 지속할 수 있다. 그래서 애초부터 성능이 좋지않은 폰으로 개발하려면 개발 하면서 디버그시 정말 느려 속이 답답한점 한번쯤은 격어 봤을 것이다. 

필자의 경우 평범한 폰으로 개발 후 좀 성능이 저조한 폰에 올려 테스트한다. 하지만 빠른 폰도 내부 Thread를 많이 사용하고 있다면 폰이 분명히 느려 질것이고 Ram이나 Network상황도 마찬가지 일것이다.이런 테스트를 좀 더 개발자스럽게 테스트를 하기위해 LoadTester 소개한다.

LoadTester을 통해서 지속적이고 예측 가능한 작업을 수행 한다. 예를 들어 CPU의 부화를 주기위해 Thread에서 연산을 하게 한다던가, Ram에 큰 이미지를 로그하게 한다던가, Network를 통해 이미지를 불러오게 하는등 지속적으로 작업을 한다. 

LoadTester앱을 통해서 지속적으로 작업을 하게 시작하거나 종료 할 수 있다. 또한 Intent를 통해서 코드로 조작이 가능 한 만큼 개발 하려는 앱의 특정 부분의 성능을 측정 하기위해 사용 할 수도 있다. 

시작

Intent launchLoadTest = new Intent();
launchLoadTest.setAction("com.feigdev.loadtester.api");
long keepAlive = 20 * 1000;
launchLoadTest.putExtra("KEEP_ALIVE", keepAlive);
launchLoadTest.putExtra("CPU_ENABLED", true);
launchLoadTest.putExtra("RAM_ENABLED", true);
launchLoadTest.putExtra("NET_ENABLED", true);
launchLoadTest.putExtra("MODE", LOW");
sendBroadcast(launchLoadTest);

종료

Intent launchLoadTest = new Intent();
launchLoadTest.setAction("com.feigdev.loadtester.api");
launchLoadTest.putExtra("KILL_NOW", "KILL_NOW");
sendBroadcast(launchLoadTest);