2013-11-15 1 views
1

나는 dalvik을 배우는 것에 대해 새로운 지식을 가지고 있으며, 나는 dalvik에서 모든 지시 사항을 버리고 싶다. 하지만 코드를 작성하는 방법에 관계없이 3 가지 지침이 있습니다. 'not-int', 'not-long', 'const-string/jumbo'입니다.dalvik에서 'not-int'및 'const-string/jumbo'명령어를 생성하는 표현식은 무엇입니까?

나는 '하지-INT'를 얻기 위해 다음과 같이 작성했지만 실패 :

int y = ~x; 

는 달빅은 '배타적 X -1'은 생성 대신.

'const-string/jumbo'는 코드에 65535 개 이상의 문자열이 있고 인덱스가 32 비트라는 것을 알고 있습니다. 그러나 코드에서 70000 개의 문자열을 제거했을 때 컴파일러는 코드가 너무 길다고 말했다.

그래서 질문 : 자바 코드로 dalvik에서 'not-int'와 'const-string/jumbo'를 얻는 방법은 무엇입니까?

답변

2

const-string/jumbo은 쉽습니다. 언급했듯이, 65535 개 이상의 문자열을 정의하고 나중에 문자열 중 하나를 참조하면됩니다. 그것들은 모두 동일한 DEX 파일에있는 단일 클래스 파일에 있어야 할 필요는 없습니다.

특히 많은 수의 문자열이있는 Java 소스 파일을 생성하는 "빌드"스크립트 인 dalvik/tests/056-const-string-jumbo을 살펴보십시오.

까지 not-intnot-long까지 나는 그들이 생성 된 것으로 생각하지 않습니다. Android 4.4 APK 더미 전체에 dexdump -d을 실행했지만 어느 하나의 인스턴스도 찾지 못했습니다.