본문 바로가기

Application/Android

안드로이드 용 크롬 웹 디버깅. Web debuging on Android.


예전에는 아래와 같은 방법으로 불편(?)하게 디버깅을 했었는데


킷캣 이상버전부터는 앱에 내장되어 있는 웹뷰에 대해서도 디버깅을 지원한다.

(앱에 약간의 코딩을 해준다면...)


먼저 킷캣 이하버전에선 아래의 코드가 동작을 하지 않기 때문에 킷캣이상에서만 웹뷰에 대한 디버깅을 활성화 시켜준다.


웹뷰가 초기화 되기 전에 해당 부분이 실행되도록 해주면 된다.


보통 2번 코드를 많이 사용하는데, 


배포버전에 디버깅이 가능하도록 설정되어 있을 경우 코드 인젝션을 통해 앱 보안을 위협할 수도 있기 때문이다.


그래서 2번을 추천한다.


//1.킷캣 이상인 경우 무조건 웹뷰 디버깅이 가능하도록.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
      WebView.setWebContentsDebuggingEnabled(true);
}
//2.아래 코드는 킷캣 이상인 경우, 그리고 디버깅이 가능한경우
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    if (0 != (getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE))
    { WebView.setWebContentsDebuggingEnabled(true); }
}



위의 코드가 삽입된 앱을 설치하고, 단말기를 컴퓨터에 연결해준다.


크롬을 실행시키고 주소창에 아래 커맨드를 입력하면~!


chrome://inspect/#devices


짠~~하고 아래 사진과 같이 해당 단말기에 설치되어 있는,


디버깅이 가능한 앱 리스트가 보인다.

debugging picture사진출처 : 크롬

사진 출처 : 크롬 개발자 페이지(https://developer.chrome.com/devtools/docs/remote-debugging)



요즘 하이브리드앱이 대세인데... 위와 같은 방법으로 디버깅을 하면 조금더 수월한 개발을 할 수 있어서 좋다.


자세한 내용이 필요하다면 아래 링크로 이동해서 보면 됨~!


크롬 개발자 사이트로 이동~!




==============================================================================


1.터미널 또는 커멘드 창에 아래 명령어를 입력.


adb forward tcp:9222 localabstract:chrome_devtools_remote



2. PC용 크롬 주소창에 입력


localhost:9222


그리고... 당근 adb가 설치되어 있어야겠죠..