반응형
안드로이드의 framework에 style, drawable, attribute 등을 추가하는 방법을 적어봅니다.
안드로이드에서 제공하는 리소스들은 frameworks/base/core/res/res/ 디렉토리에 존재합니다.
그럼 추가 할 리소스를 타입에 맞게 추가를 하면되죠.
그리고 build를 다시하고, api를 업데이트 합니다.
자! 이젠 app을 컴파일하면, 찾을수 없다거나 public 리소스가 아라는 메세지가 보게됩니다.
Error: No resource found that matches the given name (at ...... ).
Error: Resource is not public. (at ...... ).
리소스를 추가하는 것 만으로는 app에서 사용 할 수가 없나 봅니다.
그렇다면 해줘야 할 것은 리소스를 공개해야겠죠.
이름도 나름 명확하게 public.xml이라는 파일에 리소스를 공개하시면 됩니다.
파일의 위치는 frameworks/base/core/res/res/values/public.xml 라는 경로에 있습니다.
public.xml의 내용을 보면.. 아래와 같이 되어있습니다.
...
<public type="attr" name="theme" id="0x01010000" />
<public type="attr" name="label" id="0x01010001" />
<public type="attr" name="icon" id="0x01010002" />
<public type="attr" name="name" id="0x01010003" />
...
여기서 공개할 리소스의 type, name, id를 정의합니다. 여기서 name과 id는 절대 겹쳐서는 안되겠죠?<public type="attr" name="theme" id="0x01010000" />
<public type="attr" name="label" id="0x01010001" />
<public type="attr" name="icon" id="0x01010002" />
<public type="attr" name="name" id="0x01010003" />
...
꼭 확인하시기 바랍니다.
frameworks를 수정했으니 다시 빌드를 하고, api를 업데이트 합니다. 그리고 app을 컴파일하도록 하죠.
]$ m
]$ make update-api
]$ cd packages/apps/<app directory>
]$ mm
m은 전체 빌드이고, mm은 해당 디렉토리를 빌드합니다. ]$ make update-api
]$ cd packages/apps/<app directory>
]$ mm
그리고 framework를 수정하면, make update-api를 해줘야 api를 사용 할 수 있습니다.
만약 nfs를 사용하여 테스트를 하실 때, 제대로 적용이 안된다면 nfs를 날리시고 다시 nfs를 구성해서 하세요.
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] Framework에 Service 추가하기 (0) | 2012.06.21 |
---|---|
[안드로이드] InputStream ↔ String 변환하기 (0) | 2012.05.30 |
[안드로이드] onDestroy() 언제 호출되나? (0) | 2012.03.07 |
[안드로이드] 안드로이드 빌드 시스템 (0) | 2012.03.05 |
[안드로이드] Android.mk 사용하는 이미 정의된 문법 (0) | 2012.03.05 |
[안드로이드] Target Board에 App 설치 및 실행하기 (0) | 2012.01.11 |
[안드로이드] 특정 App의 Main Activity 실행하기 (0) | 2012.01.10 |
[안드로이드] 안드로이드 프로파일링 4가지 방법 (Android Profiling) (0) | 2011.12.28 |
[안드로이드] adb를 사용하여 app 실행하기 (0) | 2011.12.22 |
안드로이드의 Touch Event 디스패치 단계 (0) | 2011.12.13 |