마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

getString 에 대해서 질문입니다.

0 추천
앱에서 strings.xml에서 스트링을 getString(R.id.abc)로 읽어들이는데요

이건 getString을 할때 strings.xml파일을 파싱해서 읽어들이는 건가요?

 

아니면 strings.xml을 이미 메모리상에 올려놓고 getString을 하면 메모리의 내용을 읽는건가요?

 

퍼포먼스를 개선하려고하는데

LoadStringToMemory()

getMemoryString() 같은 방법 속도를 개선해볼 여지가 있는것인지요?
앱솔루션 (180 포인트) 님이 2014년 2월 19일 질문

2개의 답변

0 추천
이것이 정답입니다! 라고 할 수는 없구요 ㅎㅎ

일단 R 이라는 녀석은 프로젝트가 컴파일 되면 gen 폴더에 생성되는 리소스 파일이에요

이클립스환경에서 작업하신다면 디폴트로 오토빌드가 되어 있으므로 저장하면 바로 컴파일이 되는데요

gen 폴더의 R.java 안에 string 을 열어보시면 다음과 같이 정의되어있지요~

 public static final class string {
        public static final int action_settings=0x7f050001;
        public static final int app_name=0x7f050000;
        public static final int hello_world=0x7f050002;
    }

그러니까 리소스의 경우 컴파일 시 이미 정적변수에 할당되있다고 보시는게 맞지 않나 싶네요

 

앱솔루션님 질문으로 답해드리면

전자 : 이건 getString을 할때 strings.xml파일을 파싱해서 읽어들이는 건가요?

후자 : 아니면 strings.xml을 이미 메모리상에 올려놓고 getString을 하면 메모리의 내용을 읽는건가요?

후자가 맞다고 생각되네요
초보개발자ㅠ (33,870 포인트) 님이 2014년 2월 19일 답변
감사합니니다.
제가 원하는 답변입니다.
0 추천
메모리 상의 번지 수를 읽어들인다고 보는 게 맞다고 보실 수 있습니다. 하지만 그닥 눈에 띄는 퍼포먼스 향상 효과는 힘들 것같습니다.
익명사용자 님이 2014년 2월 19일 답변
...