안드로이드에는 런쳐(홈 앱)에 위젯을 사용자 마음대로 설치할 수 있다. 사용자는 주어진 기능이기 때문에 원하는대로 사용하려고 하게되는데, 많이 설치하면 할수록 런쳐가 사용하는 메모리가 커진다는 것을 잘 이해하지 못하는 것 같다. 개발자들도 위젯을 개발해 보지 않으면 위젯의 생명 주기를 잘 이해하지 못하곤 한다.위젯은 런쳐의 메모리를 사용한다.그렇다. 위젯은 런쳐의 메모리를 사용하고 지속적으로 점유한다. 그런데 런쳐는 사실상 계속 살아있는 앱이므로 런쳐의 메모리가 커지면 가용램이 줄어든다고 말할 수 있다 이는 곧 전체적인 폰의 성능 저하로 이어지게 된다. 만약 게임등에 의해 메모리 사용이 극대화 되고 가용램이 없게되면 LMK(Low Memory Killer)에 의해 우선순위에 따라 프로세스들이 죽어가게 된..
Jelly Bean 업그레이드 테스트를 하는 도중 위젯이 계속 로딩중이고 로그에 오류가 나서 보았더니Broadcast할 때 FLAG에 Intent.FLAG_ACTIVITY_CLEAR_TOP 이 있어서 그랬습니다. Broadcast 할 때에는 FLAG_ACTIVITY로 시작하는 FLAG는 붙이지 말아야 합니다. 01-02 00:02:19.818: E/ActivityManager(672): Activity Manager Crash01-02 00:02:19.818: E/ActivityManager(672): java.lang.IllegalArgumentException: Can't use FLAG_RECEIVER_BOOT_UPGRADE here01-02 00:02:19.818: E/ActivityManager..