정확히는 CM7이라기 보다는,
진저브레드 기반에서 data2sd 같은 것을 사용할 때 어플이 늘어나면 늘어날 수록 부팅 속도가 느려지는 것에 대한 해결책입니다.
진저브레드에서는 대부분의 어플을 SD카드로 이동만 해도 충분한 용량 확보가 가능하기 때문에 data2sd 같은 게 꼭 필요하진 않을 것 같긴 합니다만... 저같이 외장 디스크로 자주 인식시키면, 반대로 외장 디스크로의 전환 속도가 느려지기 때문에 저는 data2sd를 사용중입니다.
(이 전환 속도가 진저브레드에서 개선이 됐을라나 싶긴 한데 확인하긴 귀찮아서...)
일단 부팅 속도가 느려지는 이유는, 내장 메모리에 설치 된 앱들이 부팅시 Native library들을 다시 Unpacking 하기 때문입니다. 그런데 data2sd 같은 것으로 SD카드의 파티션을 data에 마운트 시키다보니, SD카드가 내장 메모리보다 쓰기 속도가 월등히 느리기 때문에 부팅 시간도 그만큼 느려지는 것입니다. 그런데 해당 어플을 SD카드로 이동하면 이 부분이 생략 됩니다.
잘 이해가 안가신다면 이 부분은 굳이 숙지하실 필요는 없고요.
그러므로 우리는 SD카드로 앱을 이동시키면 됩니다.
옮길 수 있는 걸 다 옮기면 어차피 data2sd 같은 것을 쓰는 이유는 없으니 그냥 data2sd를 안 쓰시는 게 좋을 것 같기도 하고요...
Native library를 사용하는 녀석들만 옮겨주면 됩니다.
저 같은 경우는 용량 같은 것들 다 따져서 옮기긴 했으나,
어느정도 스킬이 있지 않으면 어려우므로... 그렇다면 그냥 다음과 같이 하시면 됩니다.
(adb, cmd가 뭔지는 아신다고 가정하고 따로 설명하진 않겠습니다.)
cmd에서 다음과 같이 입력합니다.
adb shell busybox find /data/data/ -name *.so
그럼 다음과 같은 형태로 나옵니다. (예시)
/data/data/net.cdeguet.smartkeyboardpro/lib/libpinyin_smartkbd.so
/data/data/net.cdeguet.smartkeyboardpro/lib/libjni_smartkbd2.so
/data/data/net.cdeguet.smartkeyboardpro/lib/libwnn_smartkbd.so
/data/data/com.adobe.flashplayer/lib/libysshared.so
......
......
이 .so 파일들이 바로 Native library입니다. 이녀석을 사용하는 친구들을 SD카드로 옮겨주면 되는데, 굵은 글씨의 '.' 구분자를 가진 문자열이 이 앱들을 식별할 수 있는 Package name이라는 것입니다. (어플마다 유니크합니다. 그러므로 스마트 키보드 프로는 3개의 so파일을 가지고 있는 것.)
이녀석들을 찾아서 옮겨주시면 됩니다. 패키지명으로 앱을 어느정도 유추할 수는 있으나, 이게 뭔지 잘 모르겠다 싶은 것은 옮기지 말거나 구글 등에서 검색해보시기 바랍니다.
그리고 당연히, 애초에 SD카드로 옮기면 안 되는 것들(홈 런쳐나 위젯, 플래쉬 플러그인이나 키보드 같은 것들)은 옮기시면 안 됩니다.
PS.
반대로 SD 카드로 옮겨진 어플에서 사용하는 Native library 확인은
adb shell busybox find /mnt/asec -name *.so
와 같은 방법으로 하시면 됩니다.
별로 필요는 없겠지만.
으...너무 복잡하네요...ㅜㅜ