질문에 대답하려면 :
부팅시 Dalvik이 무효화되지 않은 Android 버전을 인식하지 못합니다. 어쩌면 초기 버전 1.0에는 Eclair, Froyo, Gingerbread, Ice Cream Sandwich를 겪었을 수도 있습니다. 소스 트리를 살펴보고 CupCake 또는 Donut (각각 1.5 및 1.6)으로 리베이스해야합니다.
자세한 이유 :)
와이프 캐시를 사용해야 하는 이유는 시스템 APK를 포함한 모든 APK에 덱스 파일이 첨부되어 있기 때문입니다. ROM이 처음 부팅 될 때 Android의 Dalvik은 이러한 APK를 각각 하나씩 통과하여 추출합니다. dex 파일을 캐시 /data/dalvik-cache
에 넣고 앱 자체의 실행 속도를 높입니다.
대부분의 ROM에는 odex 'apk가 있으며 캐시는 외부 파일로 apk 자체에 번들로 제공됩니다.
많은 커스텀 ROM modders는 apk deodex 'd를 가질 것입니다 . 이는 dex 파일이 apk를 테마 / 수정하기 쉽도록 대체하고 다시 패키지한다는 의미입니다.
사용자 정의 ROM을 플래시하고 캐시를 지우지 않으면 최신 사용자 정의 ROM의 APK에는 다른 dex 파일이 첨부되어 있으며 Dalvik이이를 통과하면 디렉토리에있는 기존의 캐시 된 dex 파일을보고 앱을 건너 뛰면 강제 종료 또는 ANR (Application Not Responding)이 보장됩니다.
ClockWorkMod Recovery를 사용하고 데이터 지우기 를 선택 하면 데이터 자체가 손실되지 않으며 예, 앱과 관련된 모든 설정이 깨끗하게 지워 /data/app
집니다.
당신이 할 수 있도록 캐시를 닦아 하지만 데이터를 닦아 효과적으로 수행 무엇, 그것은 설정이 유지가있는 장소에 새로운 APK가에 슬롯된다. 불안정한 / 테스트 ROM 빌드가 플래시되고 설정이 캐시 지우기로 유지되는 CyanogenMod nightlies의 경우 매우 일반적인 시나리오입니다. 마일리지는 시장에서 다운로드 한 앱에 따라 다릅니다 (버전 범프에 따라 설정이 변경되었을 수 있음).
최상의 결과를 얻으 려면 앱 자체 내에서 무결성을 유지하고 프로그램 오류가 없도록 Wipe Data 와 Wipe Cache 를 모두 수행하는 것이 좋습니다 .
그렇습니다. 부팅 시간은 느리지 만 초기 순간은 한 번입니다. 그 후에는 더 빨리 부팅됩니다. 간단히 말해서 CWM을 통해 캐시 자체를 명시 적으로 닦아내는 것은 실제로 속도를 높이고 이전 버전의 잔해가 없어 질 수 있도록 도와줍니다 (이 단계에서는 모든 공정성에서 귀하의 질문을 실제로 실현하고 있습니다. 안드로이드가 새로운 ROM을 플래시 할 때 부팅시 캐시 자체의 무효화를 수행하지 않는 것을 보았습니다 ..)
소스 루크를 진지하게 사용하십시오 ! :디
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
각 apk 런타임의 부팅 코드입니다. dalvik
디렉토리 트리에있는 네이티브 C 코드와 상호 작용하여 특정 칩셋 명령어가 포함되어 apk에서 네이티브 CPU 명령어 세트로 바이트 코드를 해석합니다. ARMv6은 ARMv5의 해킹 된 버전 (Eclair 이전의 이전 Android 버전에서 원래 칩셋 임)이므로 Google의 AOSP 소스에 ARMv6이 표시되지 않습니다. CyanogenMod는 ARMv6을 소스에 포함합니다.