29
BugSense 클클클클클 클클 Swmaestro 3 클 1-2 클 logdog 클 클클 : 클클클 클클 : 클클클 , 클클클 클클클 : 클클클

Bug sense 분석

  • Upload
    logdog

  • View
    801

  • Download
    5

Embed Size (px)

DESCRIPTION

버그센스 클라이언트 부분 분석

Citation preview

Page 1: Bug sense 분석

BugSense 클라이언트 분석

Swmaestro 3 기 1-2 차 logdog 팀멘토 : 손영수

멘티 : 정승수 , 오혜성작성자 : 정승수

Page 2: Bug sense 분석

STAN 분석

Page 3: Bug sense 분석

STAN 분석

Page 4: Bug sense 분석

STAN 분석

Page 5: Bug sense 분석

STAN 분석

Page 6: Bug sense 분석

STAN 분석

Page 7: Bug sense 분석

버그센스의 개발자들이 사용하는 기능들에 대하여 분석해 보았다 .

Page 8: Bug sense 분석

사용법• <uses-permission

android:name="android.permission.INTERNET" />

• 위와같이 xml 파일에 인터넷이 가능하도록 일단 설정 해야 한다 .

Page 9: Bug sense 분석

사용법• BugSenseHandler.initAndStartSession(

Context, APIKEY);

• 위와 같은 코드를 맨처음 Activity 시작할때 SetContentView 코드를 실행하기 전에 넣어 준다 .

• 단지 코드 한줄로 개발자가 매우 간단하게 사용 할 수 있다 .

Page 10: Bug sense 분석

사용법• APIKEY 란 ?–버그센스는 서버를 제공하는 것이라 단지 key

값만 가지고도 자신이 만든 계정으로 연결 될수 있다 .

• 위와같이 계정을 만들고 프로젝트를 생성하면 오른쪽 상단위에 APIKEY 가 나온다 .

Page 11: Bug sense 분석

사용법• 세션을 종료하기 위해 앱 종료 부분에 다음과

같은 코드를 넣어 준다 .– BugsenseHandler.closeSession(Context);

• Savedata 나 기타 것들을 초기화 시키기 위해서는 다음과 같은 코드를 넣어 준다 .– BugSenseHandler.flush(Contexs);

Page 12: Bug sense 분석

기능 1 사용자 정보 추가

이 같은 코드를 넣게 되면 버그리포트시 위와 같은 정보가 추가되어서 오게 된다 .

위처럼 해쉬 맵을 사용하여 추가정보를 넣을 수 있다 .

Page 13: Bug sense 분석

기능 1 사용자 정보 추가• 서버에서 온 에러리포트에 추가 된 모습

Page 14: Bug sense 분석

기능 2. Exception 핸들링시 에러 전송

다음과 같은 코드를 제작하면 divide by zero 라는 예외가 나오게 된다 .

여기서 위와 같은 코드를 추가하게 되면 에러 리포트가 서버쪽으로 전송 되게 된다 .

Page 15: Bug sense 분석

기능 2. Exception 핸들링시 에러 전송

예외가 서버에 전송된 모습

Page 16: Bug sense 분석

기능 2. Exception 핸들링시 에러 전송

예외가 서버에 전송된 모습

Page 17: Bug sense 분석

기능 3. Proguard 사용시 ( 유료 ,Plus)

• 프로가드에서 다음과 같은 라인을 추가하면 된다 .

• -keep public class com.bugsense.*

Page 18: Bug sense 분석

기능 3. Proguard 사용시 ( 유료 ,Plus)

• 서버쪽 셋팅부문에 파일 (Mapping) 을 업로드해야한다 .

Page 19: Bug sense 분석

여기서 Proguard 란 ?

• 코드 난독화 오프소스 툴

• GPL 라이선스

• 프로젝트 루트 폴더의 default.properties에 proguard.config=proguard.cfg 이것만 추가 하면 됨

Page 20: Bug sense 분석

여기서 Proguard 란 ?

• 프로가드 사용시 4 가지 파일이 나온다 .– dump.txt : 내부구조에 대한 대략적인 구조 난독화

과정에서 나오는 덤프들

– mapping.txt : 어떤 클래스와 멤버들이 어떻게 난독화 되어 맵핑 되어 있는지 보여주는 중요한 파일

– seeds.txt : 난독화 되지 않은 것들

– usage.txt : 사용되지 않아 제거된 것들

Page 21: Bug sense 분석

Proguard 콜스택 디버깅• Windows 에서는 retrace.bat • Linux 나 MacOS X 에서는 retrace.sh

• <sdk_root>/tools/proguard/ directory 에 이러한 파일이 존재

• retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]

• 예를 들어– retrace.bat -verbose mapping.txt bfuscated_trace.txt

Page 22: Bug sense 분석

기능 4. Logcat 읽기 ( 유료 ,Enterprise)

• <uses-permission android:name="android.permission.READ_LOGS" />

• 유져퍼미션을 설정

• setLogging(int lines)setLogging(String filter)setLogging(int lines, String filter)

• 다음과 같은 필터를 설정

Page 23: Bug sense 분석

기능 4. Logcat 읽기 ( 유료 , Enterprise)

이런 방식으로 로그를 읽어 들인다 .

Page 24: Bug sense 분석

기능 5. 사용자 정의 이벤트 기록• BugSenseHandler.sendEvent(MyActiv

ity.this, "button1 pressed");

• 다음과 같은 코드를 써 넣음으로 사용자 정의 이벤트를 기록 할 수 있다 .

• ( 테스트 해 보았으나 잘 되지 않았다 .)

Page 25: Bug sense 분석

기능 6. Fix Notification( 유료 ,Indie)

• BugSenseHandler.setLocalizedNotifi-cation("Mi app", "Lo hemos cor-regido", "Por favor, actualice su apli-cacion, este error ha sido corregido!");

• 버그 픽스에 대한 메시지를 사용자에게 보낼 수 있다 .

Page 26: Bug sense 분석

기능 6. Fix Notification( 유료 ,Indie)

Page 27: Bug sense 분석

기능 7. Application Crash Report for Android(ACRA) 와의 연동

• @ReportsCrashes(formUri= "http://www.bugsense.com/api/acra?api_key=YOUR_API_KEY", formKey="")

• 단지 formUri 만 위와같이 변경해주고 APIKEY 만 자신의 것으로 바꿔주면 바로 연동이 된다 .

Page 28: Bug sense 분석

Acra?

ACRA 는 여러 목적지에 충돌 보고서를 보낼 수 있다 .• Google 문서 도구 스프레드 시트 ( 기본 )• 이메일• 자신 서버 측 HTTP POST 의 스크립트• 나만의 보고서를 보낸 사람을 구현하여 다른 가능한 대상

Page 29: Bug sense 분석

유료정책