Pack200.IPacker 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
packer 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 gzip 또는 zip과 같은 압축기에서 팩 스트림을 압축할 수 있도록 합니다.
[Android.Runtime.Register("java/util/jar/Pack200$Packer", "", "Java.Util.Jar.Pack200/IPackerInvoker")]
public interface Pack200.IPacker : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/jar/Pack200$Packer", "", "Java.Util.Jar.Pack200/IPackerInvoker")>]
type Pack200.IPacker = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 특성
- 구현
설명
packer 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 gzip 또는 zip과 같은 압축기에서 팩 스트림을 압축할 수 있도록 합니다. 를 사용하여 #newPacker
엔진 인스턴스를 가져올 수 있습니다.
높은 수준의 압축은 JSR 200 사양에 설명된 여러 기술을 사용하여 달성됩니다. 일부 기술은 상수 풀의 정렬, 다시 정렬 및 공동 위치입니다.
팩 엔진은 아래 속성에 설명된 대로 초기 상태로 초기화됩니다. 엔진 속성을 가져오고(사용 #properties
) 수정된 속성을 맵에 저장하여 초기 상태를 조작할 수 있습니다. 리소스 파일은 변경되지 않고 전달됩니다. unpacker는 상수 풀 순서와 같은 부 클래스 파일 기능을 자유롭게 변경할 수 있으므로 클래스 파일에는 동일한 바이트가 포함되지 않습니다. 그러나 클래스 파일은 Java&trade 인용>에 <지정된 대로 의미 체계적으로 동일합니다. Virtual Machine 사양</인용>.
기본적으로 packer는 JAR 요소의 순서를 변경하지 않습니다. 또한 각 JAR 요소의 수정 시간 및 디플레이션 힌트는 변경되지 않고 전달됩니다. (Unix 파일 권한을 부여하는 추가 특성과 같은 다른 ZIP 보관 정보는 손실됩니다.)
JAR 압축 및 압축을 풀면 일반적으로 JAR에서 클래스 파일의 바이트 내용이 변경됩니다. 즉, 압축 및 압축을 풀면 일반적으로 JAR 요소의 바이트 이미지를 사용하는 모든 디지털 서명이 무효화됩니다. JAR에 서명하고 압축하려면 먼저 JAR을 압축 및 압축 해제하여 "정규화"한 다음 압축을 풉니다. 그런 다음 압축을 풉니다. 두 패킹 단계 모두 정확히 동일한 옵션을 사용해야 하며, 클래스 파일 크기가 약간 변경될 때 세그먼트 경계의 우발적인 변화를 방지하기 위해 세그먼트 제한을 "-1"로 설정해야 할 수도 있습니다.
(이것이 작동하는 이유는 다음과 같습니다. 모든 클래스 파일 구조의 packer가 수행하는 순서를 다시 지정하는 것은 idempotent이므로 두 번째 압축은 첫 번째 압축에서 생성된 순서를 변경하지 않습니다. 또한 unpacker는 JSR 200 사양에 의해 보장되어 보관 요소의 지정된 전송 순서에 대한 특정 바이트 이미지를 생성합니다.)
이전 버전과의 호환성을 유지하기 위해 팩 파일의 버전은 입력 JAR 파일에 있는 클래스 파일을 수용하도록 설정됩니다. 즉, 클래스 파일이 최신이면 팩 파일 버전이 최신이고, 반대로 클래스 파일 버전이 가장 오래된 경우 팩 파일 버전이 가장 오래된 버전이 됩니다. 중간 클래스 파일 버전의 경우 해당 팩 파일 버전이 사용됩니다. 예를 들어 입력 JAR 파일이 1.5(이하) 클래스 파일로만 구성된 경우 1.5 호환 팩 파일이 생성됩니다. 클래스 파일이 없는 보관 파일의 경우에도 해당됩니다. 입력 JAR 파일에 1.6 클래스 파일이 포함된 경우 팩 파일 버전은 1.6으로 설정됩니다.
참고: 달리 명시되지 않는 한 이 클래스의 null
생성자 또는 메서드에 인수를 전달하면 throw됩니다 NullPointerException
.
1.5에 추가되었습니다.
에 대한 java.util.jar.Pack200.Packer
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
필드
ClassAttributePfx |
클래스 특성 이름과 연결된 경우 JSR 200 사양에 지정된 레이아웃 언어를 사용하여 해당 특성의 형식을 나타냅니다. |
CodeAttributePfx |
코드 특성 이름과 연결된 경우 해당 특성의 형식을 나타냅니다. |
DeflateHint |
이 속성을 설정 |
Effort |
이 속성을 10진수로 설정하면 압축하는 데 지정된 양의 노력이 사용됩니다. |
Error |
특정 속성에 대해 가능한 값인 문자열 "error"입니다. |
False |
특정 속성에 대해 가능한 값인 문자열 "false"입니다. |
FieldAttributePfx |
필드 특성 이름과 연결된 경우 해당 특성의 형식을 나타냅니다. |
Keep |
특정 속성에 대해 가능한 값인 문자열 "keep"입니다. |
KeepFileOrder |
이 속성을 설정 |
Latest |
특정 속성에 대해 가능한 값인 문자열 "latest"입니다. |
MethodAttributePfx |
메서드 특성 이름과 연결된 경우 해당 특성의 형식을 나타냅니다. |
ModificationTime |
이 속성이 특수 문자열 |
Pass |
특정 속성에 대해 가능한 값인 문자열 "pass"입니다. |
PassFilePfx |
파일이 압축 없이 바이트 단위로 전달되어야 했음을 나타냅니다. |
Progress |
unpacker가 주기적으로 업데이트한 언패커의 진행률을 백분율로 표시합니다. |
SegmentLimit |
이 속성은 각 보관 세그먼트의 예상 대상 크기 N(바이트)을 제공하는 숫자입니다. |
Strip |
특정 속성에 대해 가능한 값인 문자열 "strip"입니다. |
True |
특정 속성에 대해 가능한 값인 문자열 "true"입니다. |
UnknownAttribute |
알 수 없는 특성이 포함된 클래스 파일이 발생할 때 수행할 작업을 나타냅니다. |
속성
Handle |
기본 Android 개체의 JNI 값을 가져옵니다. (다음에서 상속됨 IJavaObject) |
JniIdentityHashCode |
래핑된 인스턴스의 |
JniManagedPeerState |
관리되는 피어의 상태입니다. (다음에서 상속됨 IJavaPeerable) |
JniPeerMembers |
멤버 액세스 및 호출 지원. (다음에서 상속됨 IJavaPeerable) |
PeerReference |
JniObjectReference 래핑된 Java 개체 인스턴스의 값을 반환합니다. (다음에서 상속됨 IJavaPeerable) |
메서드
AddPropertyChangeListener(IPropertyChangeListener) |
속성 맵에 PropertyChange 이벤트에 대한 수신기를 등록합니다. |
Disposed() |
인스턴스가 삭제되었을 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
DisposeUnlessReferenced() |
이 인스턴스에 대한 미해결 참조가 없으면 호출 |
Finalized() |
인스턴스가 종료될 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
Pack(JarFile, Stream) |
JarFile을 가져와 Pack200 보관 파일로 변환합니다. |
Pack(JarInputStream, Stream) |
JarInputStream을 가져와 Pack200 보관 파일로 변환합니다. |
Properties() |
이 엔진의 속성 집합을 가져옵니다. |
RemovePropertyChangeListener(IPropertyChangeListener) |
에 의해 추가된 PropertyChange 이벤트에 대한 수신기를 제거합니다 |
SetJniIdentityHashCode(Int32) |
에서 반환 |
SetJniManagedPeerState(JniManagedPeerStates) |
packer 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 gzip 또는 zip과 같은 압축기에서 팩 스트림을 압축할 수 있도록 합니다. (다음에서 상속됨 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
에서 반환 |
UnregisterFromRuntime() |
런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 인스턴스의 등록을 취소합니다. (다음에서 상속됨 IJavaPeerable) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
packer 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 gzip 또는 zip과 같은 압축기에서 팩 스트림을 압축할 수 있도록 합니다. |
GetJniTypeName(IJavaPeerable) |
packer 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 gzip 또는 zip과 같은 압축기에서 팩 스트림을 압축할 수 있도록 합니다. |
PackAsync(Pack200+IPacker, JarFile, Stream) |
packer 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 gzip 또는 zip과 같은 압축기에서 팩 스트림을 압축할 수 있도록 합니다. |
PackAsync(Pack200+IPacker, JarInputStream, Stream) |
packer 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 gzip 또는 zip과 같은 압축기에서 팩 스트림을 압축할 수 있도록 합니다. |