안드로이드 앱도 짜지만, 삼성에서 프레임웍 부분만 거의 담당을 하다 보니
앱에서 쓰는 여러가지 기법들이 프레임웍단에서 상당히 복잡하게 구현이 된다는
것을 알았다.
사실 대부분 AOSP에 소스를 따라가며 보는게 블로그에 정리된 내용을 보는 것보다
앱 개발자들에게는 훨씬 도움이 된다. 아리송했던 부분 다른 것에 빗대지 않고 한번에
RAW 소스를 보며 이해하는 것이 좋다.
왜냐면 Concept이 있긴 하지만 구현하면서 바뀌는 부분, 많은 사람들이 동시 코딩을
하는 부분 때문에 절대적으로 맞는 구석이 없고 그런 부분까지 앱 개발자가 알 필요는
없는 것이다.
회사에서도 개인적으로 로컬 빌드를 해서 쓸 요량으로 프레임웍 수정을 해 본 경험을 보면
AOSP에 분석이 힘든 부분은 메시지 큐를 구현한 부분 외엔 없다.
메시지 큐 구현 부분은 연결 소스가 끊어져 있어서 정말 분석이 힘들다. 언젠가 다룰 날이
있겠지 하며...(이 부분은 알아도 시간이 지나면 또 잊혀질 것 같다.)
Context에 대해서 물어오는 사람을 위해서 말을하면,
우선 상대가 프레임웍 개발자라면 그냥 소스 보라고 하고,
앱 개발 자라면 Object Class 같이 void 형 포인터라고 보면 된다.
화면 구성단위가 꼭 Activity는 아니지만 일반적으로 Activity로 구현을 하고 있으며
그 Activity를 가르키는 포인터(자바에서는 인스턴스라고 하지)보다 더 큰 개념이
Context다. 사실 모든 포인터의 짱은 Object라서 Object에 담아도 되지만 안드로이드
개념이 그렇다.
Context에 맞는 인스턴스(포인터) 종류는 실행되는 앱, 액티비티, BR, CP, 서비스다.
BroadcastReceiver, Content Provider까지 비슷한 구조라고 보면 되겠다.
앱에 대한 Context를 얻어 올 때는 getapplicationContext()로 계속 쓰는게 좋다.
왜냐면 Context에서
/**
* Return a class loader you can use to retrieve classes in this package.
*/
public abstract ClassLoader getClassLoader();
/** Return the name of this application's package. */
public abstract String getPackageName();
/** Return the full application info for this context's package. */
public abstract ApplicationInfo getApplicationInfo();
요런 애들은 안 바뀌겠지만,
/**
* Return the Theme object associated with this Context.
*/
public abstract Resources.Theme getTheme();
요런 애들은 바뀔수도 있으니까...(제일 좋은 건 Context에 어떤 멤버변수들이
있는지 한번 확인해 보는 것)
포스팅이란게 쓰다보면 자꾸 쓰게 되어서...
한줄로 요약하면
Context는 앱, 액티비티, BR, CP, 서비스를 담는 포인터다.
자바식으로 표현하면
Context는 앱, 액티비티, BR, CP, 서비스의 객체 상태를 담을 수 있는 싱글톤 클레스이다.
-----------------------------------------------
배터리] 리튬 이온 배터리
리튬 이온 배터리는 자주자주 충전하는게 좋다고 한다.
아이팟 터치 2년 쓴 사람이 그러넹.
아이폰 자주자주 충전해야징.
2011년 2월 16일 수요일
피드 구독하기:
댓글 (Atom)
UPBIT is a South Korean company, and people died of suicide cause of coin investment.
UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...
-
연휴 마지막날 아침... 산책을 하다 한장 찍어보았다. 인생도 마찬가지로 길의 끝을 모른체 선택을 해야하는 경우가 발생한다. 나중에 그 기준이 바뀔수도 있지만. 지금 기준은 많은 사람이 함께 갈 수 있는 길을 선택하고 싶다.
-
□ native modifier 는 자바가 아닌 다른 언어로 작성된 코드를 자바에서 사용하기 위한 것 □ transient modifier 는 객체가 직렬 화되는 과정에서 해당 필드가 저장되지 않아야 한다는 것을 알리기 위해 사용 ...
-
제로보드 세팅. sudo apt-get install apache2 mysql-server libapache2-mod-php5 phpmyadmin ssh 패키지를 이용한 소프트웨어 설치 - APM세팅 및 ssh 설치 ...
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.