전체 글 131

ResolverActivity - 여러 개의 Activity가 Intent에 매칭될 때

Default로 설정할 때 ResolverActivity.OnClick() { ..... if (filter != null) { final int N = mAdapter.mList.size(); ComponentName[] set = new ComponentName[N]; int bestMatch = 0; for (int i=0; i bestMatch) bestMatch = r.match; } getPackageManager().addPreferredActivity(filter, bestMatch, set, intent.getComponent()); } } Default 해제 할 때 (Settings>Launch by default>Clear defaults) InstalledAppDetails.onCl..

Tips/Android 2013.02.24

Remote debug를 이용한 target debugging

1. 사전 빌드 시 해당 모듈의 AndroidManifest.xml 파일의 application 속성에서 debuggable을 true로 설정2. Existing Project로 소스에 있는 app 불러오기 (compile error가 있어도 상관없음)3. Run -> Debug Configurations4. 왼쪽 탭의 Remote Java Application선택->오른쪽 마우스버튼->New5. name에 이름설정6. project에 android 프로젝트이름7. Host = localhost, port = 8700 (DDMS에서 각 process를 8700으로 forwarding시켜줌)8. click Debug9. eclipse의 perspective를 debug로 전환10. Debug 모드에서 br..

Tips/Android 2013.02.24

proguard - 타겟 빌드 시 ClassNotFoundException, NoClassDefFoundError 가 나는 경우

App. 개발팀으로 자리를 옮기고 개발환경을 꾸미다가 삽질을 해서 정리합니다. 안드로이드 타겟 빌드할 때 분명히 클래스파일이 있고, 컴파일도 제대로 된 것 같은데 ClassNotFoundException, NoClassDefFoundError가 발생하는 경우가 있습니다. 컴파일러가 코드를 최적화하는 과정에서 링크를 빼버리는 것 같습니다. 이때는 다음처럼 해 주면 잘 동작합니다. 1. Adroid.mk파일에 다음 옵션을 추가 LOCAL_PROGUARD_FLAG_FILES := proguard.flags 2. proguard.flags 파일에 아래 내용을 기술 -dontshrink 원래는 Proguard(컴파일러가 최적화 시키지 못하도록) 하는 부분을 기술해줘야 하는데 위와 같이 하면 무조건 최적화 옵션을 ..

Tips/Android 2013.02.24