WeakReference


약한 참조. 어떤 객체에 대한 참조가 WeakReference 밖에 남아있지 않으면, 그 객체는 GC의 대상이 된다.


SoftReference


WeakReference 보단 강한 참조. 기본적으로 WeakReference와 동일. 하지만 메모리의 남은 공간이 넉넉하다면 GC의 대상이 되지 않는다.



WeakReference  용어 그대로 약한 레퍼런스이다. 메모리 관리를 위해 고안된것으로 레퍼런스를 WeakReference로 하면 gc에 해당 레퍼런스가 관여되지 않는다.
private WeakReference<Launcher> mLauncher; // 변수선언
void setLauncher(Launcher launcher) {
    mLauncher = new WeakReference<Launcher>(launcher); // 참조를 WeakReference로 저장함.

}
if (mLauncher != null) {

    final Launcher launcher = mLauncher.get(); // 사용 시에는 get을 호출하여 null을 반드시 체크하여 사용

        if (launcher != null) {

            launcher.loadWallpaper();

        }

    }


참고로, 강제로 GC시키는 방법은
System.gc();

출저 : http://androidanddevelop.blogspot.kr/2012/09/android-memory-weakreference.html



android studio compilesdkversion android-21 requires compiling with jdk 7


JDK, JRE 7이상 버전 깔고 

JDK 위치 변경

/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home


+ Recent posts