Widget 호환처리
1. Android 버전별 위젯 기능 지원 사항
- 스크롤 지원 : 3.0이상 (SDK_INT 11)
- 위젯 크기 조정 지원 : 3.1이상 (SDK_INT 12)
- 락스크린 위젯 4.2이상 (SDK_INT 17)
2. Android 버전별 위젯 활성/비활성 하기
- 리스트 뷰를 사용한 위젯 : 진저브래드 이하에서는 해당 위젯 사용이 불가능하다.
1) values 폴더의 strings.xml에 해당 위젯 사용에 대한 true/false 값 정의
예) 기본값은 false로 세팅
<string name="use_list_widget">false</string>
2) values-v11 폴더의 strings.xml에 위의 값 정의
예) 허니콤 이상에서 리스트 뷰 사용이 가능하므로 true 세팅
<string name="use_list_widget">true</string>
3) AndroidManifest.xml 에 위젯 프로바이더 정의
예) 위젯 프로바이더 태그에 enabled 속성을 위에서 정의한 값으로 사용
<receiver
android:enabled="@string/use_list_widget"
android:name=".Widget.WidgetProviderForListWidget"
android:label="위젯 이름" >
...
</receiver>
- android:enabled 값이 true/false 문자열 값으로 처리가 가능하다.
- 위젯 사이즈 재조정이나 락스크린용 위젯에 대해서도 위와 같은 방법으로 사용이 가능하다.
2015년 1월 5일 월요일
android - INSTALL_FAILED_DEXOPT
INSTALL_FAILED_DEXOPT
Android 2.3 (진저브레드) 이하 버전에서 발생 할 수 있는 설치관련 에러
에러 원인
1. perm mem(불 확실함)이 5Mbytes로 제한되어 이를 초과한 경우
- class, interface 등 실행에 필요한 사전 정보의 용량이 5Mbytes를 초과할 경우 발생
- apk의 사이즈가 아님
2. method, field가 65536개를 초과한 경우
해결 방법
1. 코드 최적화 툴 사용(proguard, dexguard 등)
2. 불필요한 코드나 라이브러리를 제거
3. dex 분리
4. apk 분리
참고
사용한 라이브러리중 클래스 파일이 많으나 실제 사용하는 클래스가 적은 경우 해당 라이브러리를 다이어트 시켜 사용할 수 도 있다.
Google Play Service 라이브러리의 경우 서비스에 따라 패키지가 분리되어 있어 특정 패키지를 제거할 수 있다.
Android 2.3 (진저브레드) 이하 버전에서 발생 할 수 있는 설치관련 에러
에러 원인
1. perm mem(불 확실함)이 5Mbytes로 제한되어 이를 초과한 경우
- class, interface 등 실행에 필요한 사전 정보의 용량이 5Mbytes를 초과할 경우 발생
- apk의 사이즈가 아님
2. method, field가 65536개를 초과한 경우
해결 방법
1. 코드 최적화 툴 사용(proguard, dexguard 등)
2. 불필요한 코드나 라이브러리를 제거
3. dex 분리
4. apk 분리
참고
사용한 라이브러리중 클래스 파일이 많으나 실제 사용하는 클래스가 적은 경우 해당 라이브러리를 다이어트 시켜 사용할 수 도 있다.
Google Play Service 라이브러리의 경우 서비스에 따라 패키지가 분리되어 있어 특정 패키지를 제거할 수 있다.
피드 구독하기:
글 (Atom)