Bug sense 분석
description
Transcript of Bug sense 분석
BugSense 클라이언트 분석
Swmaestro 3 기 1-2 차 logdog 팀멘토 : 손영수
멘티 : 정승수 , 오혜성작성자 : 정승수
STAN 분석
STAN 분석
STAN 분석
STAN 분석
STAN 분석
버그센스의 개발자들이 사용하는 기능들에 대하여 분석해 보았다 .
사용법• <uses-permission
android:name="android.permission.INTERNET" />
• 위와같이 xml 파일에 인터넷이 가능하도록 일단 설정 해야 한다 .
사용법• BugSenseHandler.initAndStartSession(
Context, APIKEY);
• 위와 같은 코드를 맨처음 Activity 시작할때 SetContentView 코드를 실행하기 전에 넣어 준다 .
• 단지 코드 한줄로 개발자가 매우 간단하게 사용 할 수 있다 .
사용법• APIKEY 란 ?–버그센스는 서버를 제공하는 것이라 단지 key
값만 가지고도 자신이 만든 계정으로 연결 될수 있다 .
• 위와같이 계정을 만들고 프로젝트를 생성하면 오른쪽 상단위에 APIKEY 가 나온다 .
사용법• 세션을 종료하기 위해 앱 종료 부분에 다음과
같은 코드를 넣어 준다 .– BugsenseHandler.closeSession(Context);
• Savedata 나 기타 것들을 초기화 시키기 위해서는 다음과 같은 코드를 넣어 준다 .– BugSenseHandler.flush(Contexs);
기능 1 사용자 정보 추가
이 같은 코드를 넣게 되면 버그리포트시 위와 같은 정보가 추가되어서 오게 된다 .
위처럼 해쉬 맵을 사용하여 추가정보를 넣을 수 있다 .
기능 1 사용자 정보 추가• 서버에서 온 에러리포트에 추가 된 모습
기능 2. Exception 핸들링시 에러 전송
다음과 같은 코드를 제작하면 divide by zero 라는 예외가 나오게 된다 .
여기서 위와 같은 코드를 추가하게 되면 에러 리포트가 서버쪽으로 전송 되게 된다 .
기능 2. Exception 핸들링시 에러 전송
예외가 서버에 전송된 모습
기능 2. Exception 핸들링시 에러 전송
예외가 서버에 전송된 모습
기능 3. Proguard 사용시 ( 유료 ,Plus)
• 프로가드에서 다음과 같은 라인을 추가하면 된다 .
• -keep public class com.bugsense.*
기능 3. Proguard 사용시 ( 유료 ,Plus)
• 서버쪽 셋팅부문에 파일 (Mapping) 을 업로드해야한다 .
여기서 Proguard 란 ?
• 코드 난독화 오프소스 툴
• GPL 라이선스
• 프로젝트 루트 폴더의 default.properties에 proguard.config=proguard.cfg 이것만 추가 하면 됨
여기서 Proguard 란 ?
• 프로가드 사용시 4 가지 파일이 나온다 .– dump.txt : 내부구조에 대한 대략적인 구조 난독화
과정에서 나오는 덤프들
– mapping.txt : 어떤 클래스와 멤버들이 어떻게 난독화 되어 맵핑 되어 있는지 보여주는 중요한 파일
– seeds.txt : 난독화 되지 않은 것들
– usage.txt : 사용되지 않아 제거된 것들
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
기능 4. Logcat 읽기 ( 유료 ,Enterprise)
• <uses-permission android:name="android.permission.READ_LOGS" />
• 유져퍼미션을 설정
• setLogging(int lines)setLogging(String filter)setLogging(int lines, String filter)
• 다음과 같은 필터를 설정
기능 4. Logcat 읽기 ( 유료 , Enterprise)
이런 방식으로 로그를 읽어 들인다 .
기능 5. 사용자 정의 이벤트 기록• BugSenseHandler.sendEvent(MyActiv
ity.this, "button1 pressed");
• 다음과 같은 코드를 써 넣음으로 사용자 정의 이벤트를 기록 할 수 있다 .
• ( 테스트 해 보았으나 잘 되지 않았다 .)
기능 6. Fix Notification( 유료 ,Indie)
• BugSenseHandler.setLocalizedNotifi-cation("Mi app", "Lo hemos cor-regido", "Por favor, actualice su apli-cacion, este error ha sido corregido!");
• 버그 픽스에 대한 메시지를 사용자에게 보낼 수 있다 .
기능 6. Fix Notification( 유료 ,Indie)
기능 7. Application Crash Report for Android(ACRA) 와의 연동
• @ReportsCrashes(formUri= "http://www.bugsense.com/api/acra?api_key=YOUR_API_KEY", formKey="")
• 단지 formUri 만 위와같이 변경해주고 APIKEY 만 자신의 것으로 바꿔주면 바로 연동이 된다 .
Acra?
ACRA 는 여러 목적지에 충돌 보고서를 보낼 수 있다 .• Google 문서 도구 스프레드 시트 ( 기본 )• 이메일• 자신 서버 측 HTTP POST 의 스크립트• 나만의 보고서를 보낸 사람을 구현하여 다른 가능한 대상
유료정책