반응형
Hierarchy
FrameLayout을 이용하여 margin이나 padding으로 절대 좌표를 유도할 수 있다.
LinearLayout 한쪽 방향으로 layout해줌
Tablelyout 가로로는 병합 가능 하나 세로로는 병합 불가
RelativeLayout 상대적인 위치를 기입하여 좌표를 잡도록 유도 (권장)
-> 참조해야할 객체가 그 위에 선언되어 있어야 한다.
draw
lock -> unlock을 통한 double buffering이 구현된다.
unlock 시 canvas가 commit되나.
네오엠텔 SMAX 한 번 검색해서 보자 ㅋ
Surface를 C단에서 writing 할 수 있다.
그리고 surface의 우선 순위를 바꿀 수 있다. -> ann 위에 어플이 보이게 만들 수 있다.
invalidate() 호출 시점에 root까지 올라가서 바로 paint된다.
res 에 추가된 파일은 R.ID가 생성된다. AAPT라는 utility 에 의해서 XML에 추가되고, image들은 optimize된다.
res/raw 에 추가된 파일은 deflation되지 않는다.
assets은 original data가 그냥 apk에 포함된다.
dpi 에 따른 res를 각각 저장할 경우 R.java 에 ID는 하나만 생성되고 resourceManager가 참조할 때 현재 dpi를 참조하여 필요한 res를 가져온다.
res/ 하단에 존재하는 directory 명이 특별한 의미를 갖는다.
? 현재 테마 값으로 지정된 ... 값 참조
Alternate Resources
____________________________________________________
Intent
component name : java class name(4 kinds of components)
Action
action Main 이라는 것은 data 가 없다. C 언어의 main(void) 함수와 비슷하다
Category :
Data : parameta ? URI를 넣는다, mime type은 prefix ?
if(공유할 수 없는 위치라면? Content Provider 의 위치를 알려준다 content://)
Extra
Flags
Intent를 새성할 때 category에 Category_default가 추가된다.
따라서 암시적 호출을 받을 application은 intent filter에Category_ default가 있어야 한다.
Intent가 Category_Launcher가 있지 않아도 전달된다.(예외 사항임)
반대로 어플리케이션이 Category_Launcher를 intent-filter에 선언 하여다면, 어플리케이션은 암시적 호출을 받을 수 있다는 것을 말한다.
TAT engine을 보시오
Home application
tat, nemusteck, neometel 등등에서 홈 어플을 개발하였다?
intent를 받을 수 있는 녀석들을 확인 하는 방법
packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
pending intent
remoteView