Software

안드로이드에서 adb shell로 apk 추출하기

adb shell을 이용한 apk 추출 가이드는 그림과 함께 친절히 작성된 글이 인터넷에 이미 많이 있습니다. 개인적 기록 차원에서 적어둡니다. 설치된 패키지를 찾습니다. >adb shell pm list packages | find “<패키지 이름이나 키워드>” apk의 정확한 패키지 이름 확인 후, apk 설치 위치를 확인합니다. >adb shell dumpsys package <패키지 이름> | find “path” apk 설치 위치를 찾은 […]

안드로이드에서 adb shell로 apk 추출하기 더 읽기"

Cleartext HTTP traffic to not permitted

P OS부터 targetSdk를 28로 올리면 네트워크 통신 시 아래와 같은 에러를 만날 수 있다. 08-21 18:15:53.165 16809-16917/me.sunphiz.android.test W/System.err: java.io.IOException: Cleartext HTTP traffic to <your-domain> not permitted at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:115) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:458) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127) … IOException가 발생한 원인은 P OS부터 앱이 서버와 통신 시 TLS 기반하도록 기본값이 변경되었기 때문이다. 이해를 돕기 위해 여기서는 가장 많이 쓰이는 HTTP에

Cleartext HTTP traffic to not permitted 더 읽기"

안드로이드 package dump 분석

이 글은 단말 dumpstate 파일 중에서 패키지 정보에 대한 부분만 소개하는 글이다. dumpstate의 설명을 찾는면, 이 글을 살펴보자. 패키지 dump는 dumpstate에도 포함되어 있고, 아래와 같은 명령어를 통해 단말에서 패키지 dump만 뽑을 수도 있다. adb shell dumpsys package <패키지 이름> 패키지 dump는 아래와 같은 모양을 갖고, 앱의 정보를 총망라하여 보여준다. Package [com.android.calendar] (4a50e0): userId=10118 pkg=Package{330fe6f com.android.calendar}

안드로이드 package dump 분석 더 읽기"

상황 별 호출되는 액티비티의 생명주기 메소드들

안드로이드의 앱을 구성하는 일명 4대 컴포넌트는 모두 생명주기가 있다. 이 중, 가장 복잡한 생명주기를 가진 컴포넌트가 액티비티다. 액티비티의 생명주기에 대한 글은 수없이 많다. 하지만, 그런 글들을 읽고 액티비티의 생명주기를 이해하더라도, 문제 분석 시 ‘그래서 지금 사용자가 뭘 했길래 이렇게 호출된거야?’라는 생각이 드는 경우가 있다. 그러므로, 여기서는 액티비티 생명주기 소개 대신에 상황 별로 호출되는 액티비티의 생명주기

상황 별 호출되는 액티비티의 생명주기 메소드들 더 읽기"

FragmentManager와 ChildFragmentManager

허니컴(Honeycomb)부터 액티비티나 프레그먼트 안에 프레그먼트를 추가할 수 있다. 이 프레그먼트 객체를 관리하는 것이 FragmentManager다. 프레그먼트 전반에 대한 소개는 공식문서를 참고하고, 여기서는 종종 헷갈려하는 FragmentManager와 일명 ChildFragmentManager의 차이점에 대해서만 설명한다. 먼저 ChildFragmentManager라는 용어부터 짚고 넘어가자. ChildFragmentManager라는 클래스는 따로 없다.  대신, Activity.getFragmentManager()나 Fragment.getFragmentManager()에서 반환하면 FragmentManager(이하 FM), Fragment.getChildFragmentManager() 메소드에서 반환되는 FragmentManager 객체를 ChildFragmentManager(이하 CFM)라고 보통 부른다. FM과 CFM

FragmentManager와 ChildFragmentManager 더 읽기"