2016-07-11 2 views
2

요소 ID가 오래가는 프로젝트에서 작업하기. 우리가 시도하고 단축하지만, 응용 프로그램의 복잡성은 레이아웃에 긴 요소 ID의 상황을 만듭니다. 그렇다면 안드로이드 id 요소의 최대 길이는 얼마입니까?android element id의 최대 허용 길이는 얼마입니까?

+0

는 귀하의 ID 명명 무엇입니까 "... 응용 프로그램의 복잡성은 긴 요소 우리의 레이아웃에 ID 년대의 상황을 만들어" 협약? ID는 레이아웃마다 고유해야하기 때문에 너무 자세하게 표현되는 것 같습니다. –

+0

@TimMalseed 여전히 관리 가능하지만 일반적인 ID 이름은 약 30-50 자입니다. 복잡성의 이유는 AndroidStudio의 유형 사전 기능 때문입니다. 레이아웃의 출처와 관계없이 특정 요소 이름에 대한 모든 일치하는 참조를 제공합니다. 처음에는 편리하지만 조각 레이아웃을위한 활동에 대한 특정 레이아웃 ID를 식별하려고 할 때 ID가 여러 레이아웃에 재사용 될 때 혼란이 발생합니다. – giulio

+0

충분합니다. 개인적으로, 그런 종류의 명명 규칙으로는 작업 할 수 없었습니다. 나는 그들을 검색하는 것보다 더 많은 시간을 쓰려고했다. –

답변

3

XML은 문제가되지 않지만 프로젝트가 빌드 될 때 ID가 R 클래스의 일부이므로이 경우 중요한 것은 Java 언어 또는 컴파일러의 잠재적 제한 사항입니다.

자바 SE documentation 이것에 대해 말한다 :

가 명명

[...]

변수 이름은 대소 문자를 구분합니다. 변수의 이름은 법적 식별자가 될 수 - 유니 코드 문자와 숫자의 무제한 길이 순서 [...]

하지만 당신은 당신이 찾아 다음 깊이 파고 때와 같이 아직 파티를 시작하지 마십시오 발표 무서운 제목 4.11. Limitations of the Java Virtual Machine로 섹션이 포함 "자바 가상 머신 사양"문서 :

필드와 방법 이름, 필드 및 방법 설명, 정전류 회로에 의해 참조 포함 및 기타 상수 문자열 값 (의 길이 ntValue (§4.7.2) 속성)은 CONSTANT_Utf8_info 구조체의 16 비트 부호없는 길이 항목 에 의해 65535 자로 제한됩니다. (§4.4.7). 아직

는 "64K는 모두를 위해 충분해야한다":

+0

예 .. 64K는 충분해야합니다. 나는 64 자 정도의 것이 었습니다. 하지만 필자는 요소 ID를 64 자 이하로 유지하려고 노력합니다. – giulio

관련 문제