스터디참석자 : 박지훈, 전형민, 임기영, 구자관, 윤동열, 송형주
- 드라이빙 : 박지훈
- 세팅 : 전형민
zygoteinit.java를 위해 분석을 위해 필요한 지식
1. 자바 문법 : 당연한거죠??
(자바 잘 모르시는 분은 미리 공부를 해놓으시는게 좋을듯 싶습니다.)
저도 지금 자바책 공부중입니다. ^^
2. JNI : Zygoteinit.java 소스 파일이 Dalvik VM과 맞물려 동작하고 있기 때문에
local reference 개념 이해 필요
3. 안드로이드 API
http://developer.android.com/reference/packages.html
- /frameworks/base/preloaded-classes : 안드로이드에서 미리 로드되야 하는 클래스 모음
* preloaded resources에 대한 정보
/frameworks/base/core/res/res/values/arrays.xml
/frameworks/base/core/res/res/drawable/ : 시스템 리소스에 대한 정보
의문점
1. ZygoteInit.java의 prelaodClasses() 함수에서 아래 굵은 줄의 ZygoteInit.class의 의미??
private static void preloadClasses() {
final VMRuntime runtime = VMRuntime.getRuntime();
InputStream is = ZygoteInit.class.getClassLoader().getResourceAsStream(PRELOADED_CLASSES);
...
우선 ZygoteInit.class의 의미가 중요할 것 같습니다.
모든 자바 클래스는 Class 클래스의 static 멤버 필드로 class를 가지고 있는 것 같습니다.
(실제로 이클립스를 통해 테스트해봤습니다.)
그러므로, ZygoteInit.class 는 Class 객체를 가리킴.
[참고] Class 클래스 : http://developer.android.com/reference/java/lang/Class.html
Class 객체는 getClassLoader() 메소드를 가지고 있습니다.
[참고] http://developer.android.com/reference/java/lang/Class.html#getClassLoader%28%29
(송형주) 혹시 다른 의견있으시면 알려주세요
2. ZygoteInit.java의 prelaodClasses() 함수에서
setEffectiveGroup, setEffectiveUser 함수에서 사용된 setregid, setreuid 시스템 콜의 기능은?
// Drop root perms while running static initializers.
setEffectiveGroup(UNPRIVILEGED_GID);
setEffectiveUser(UNPRIVILEGED_UID);
3. ZygoteInit.java의 prelaodClasses() 함수에서
Class.forName(line); 라인의 역할?
try {
if (Config.LOGV) {
Log.v(TAG, "Preloading " + line + "...");
}
Class.forName(line);
if (Debug.getGlobalAllocSize() > PRELOAD_GC_THRESHOLD) {
if (Config.LOGV) {
Log.v(TAG,
" GC at " + Debug.getGlobalAllocSize());
}
runtime.gcSoftReferences();
runtime.runFinalizationSync();
Debug.resetGlobalAllocSize();
}
count++;
}
일단 회사라 대충 정리했습니다.
coach handbags
Nicht selbst im Tod Verwirrung gestürmt werden .coachfactory.com/stroe
Und wie die Pflege der Beziehungen w?hrend des Transports ? Einige halten Kontakt mit ihren Freunden über das Internet , einige Briefe und Postkarten , oder sogar Fotos , andere k?nnen einfach anrufen und sagen, hallo , nur, damit ihre Freunde wissen, dass sie immer noch gesund und munter. Menschen Wege finden, um in Kontakt zu bleiben. Freunde und Bekannte auf dem Weg hilft Reisenden fühlen sich mehr oder weniger zu Hause. Backpackers in Jugendherbergen k?nnen sehr gute Freunde geworden , sogar n?her als Geschwister.Coach Outlet
Beh?lt seine Lager, eine uneinnehmbare Festungcoach purses
Auch wenn Sie als g?be es nicht viel Sie tun, um Unglück oder Probleme ?ndern kann fühlen, k?nnen Sie immer ein wenig - und ein wenig in einer Zeit, schlie?lich macht einen gro?en Unterschied .Coach Factory
Es ist etwas erschreckend in der Stellenausschreibung seines Geistes .coach outlet online
Wenn Sie gesundheitliche Probleme sind , dankbar sein für das, was funktioniert : " Ich wei? wirklich zu sch?tzen meine Augen, die sehen , meine Ohren, die h?ren , dass mein Mund schmeckt , dass meine Beine gehen, dass meine Arme Lift, meine H?nde, die schreiben , mein daran, dass denkt , dass meine Knie beugen und meine Zunge , dass die Gespr?che . " Die M?glichkeiten hier sind vielf?ltig : insert , was funktioniert für Sie und fühlen sich gut dabei !