앱 기능 중에 안드로이드 어플 사이즈를 가져오는 기능을 개발해야 하는데요.
PackageManager에 보면 getPackageSizeInfo()라는 메소드가 있는데, 이 메소드는 Hidden으로 되어 있어, 안드로이드 SDK의 전체 클래스를 Build Path로 지정하지 않으면 이용할수가 없더라고요.
결국 안드로이드 SDK의 풀소스를 trace하면서 찾아보니,
AndroidManifest.xml에서 permission을 GET_PACKAGE_SIZE를 주고,
PackageManager에서 getPackageSizeInfo()를 하게 되면
PackageManagerService란 곳에서 Installer를 이용해 LocalSocket으로 접속하여,
getsize 어플디렉토리 ... 등으로 커맨드를 날려 결과 텍스트를 파싱하여 어플의 사이즈를 알려준다는걸 알아 냈는데요.

현재 안드로이드 전체 SDK의 클래스 파일을 Build Path로 잡고는 어플의 사이즈가 잘 나옵니다. 허나 우려 되는 것은 SDK 버젼이 다를 경우 동작에 문제가 생길 수 있을거 같습니다.
그래서 저렇게 풀빌드된 클래스를 사용하지 않고 앱 소스 내에서 처리를 해보고 싶은데요.(특정 버젼에 종속적이지 않게)
어떤 방법이 있을까요?

AppMonster 어플은 어떤식으로 어플의 사이즈를 얻어온 것일까요?

제가 해본 방법은 Installer를 앱 패키지에 만들어 동작 시켜 봤는데 IOException으로 LocalSocket 접속이 Permission denied 가 발생하여 접속이 불가 하더라고요.