Share via


Pack200.IPacker 인터페이스

정의

압축기 엔진은 입력 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
특성
구현

설명

압축기 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 압축기(예: gzip 또는 zip)에서 압축 가능하도록 팩 스트림을 만듭니다. 를 사용하여 #newPacker엔진의 instance 가져올 수 있습니다.

높은 수준의 압축은 JSR 200 사양에 설명된 여러 기술을 사용하여 달성됩니다. 일부 기술은 상수 풀의 정렬, 다시 정렬 및 공동 위치입니다.

팩 엔진은 아래 속성에 설명된 대로 초기 상태로 초기화됩니다. 엔진 속성을 가져오고(사용 #properties) 수정된 속성을 맵에 저장하여 초기 상태를 조작할 수 있습니다. 리소스 파일은 변경되지 않고 전달됩니다. unpacker는 상수 풀 순서와 같은 부 클래스 파일 기능을 자유롭게 변경할 수 있으므로 클래스 파일에는 동일한 바이트가 포함되지 않습니다. 그러나 Java&거래 인용>에 <지정된 대로 클래스 파일은 의미상 동일합니다. Virtual Machine 사양</인용>.

기본적으로 packer는 JAR 요소의 순서를 변경하지 않습니다. 또한 각 JAR 요소의 수정 시간 및 디플레이션 힌트는 변경되지 않고 전달됩니다. (Unix 파일 권한을 부여하는 추가 특성과 같은 다른 ZIP 보관 정보는 손실됩니다.)

JAR을 압축하고 압축을 풀면 일반적으로 JAR에서 클래스 파일의 바이트 내용이 변경됩니다. 즉, 압축 및 압축을 풀면 일반적으로 JAR 요소의 바이트 이미지를 사용하는 디지털 서명이 무효화됩니다. JAR에 서명하고 압축하려면 먼저 JAR을 압축 및 압축 해제하여 "정규화"한 다음 압축을 풉니다. JAR 요소에서 서명을 계산한 다음 서명된 JAR을 다시 포장해야 합니다. 두 패킹 단계 모두 정확히 동일한 옵션을 사용해야 하며, 클래스 파일 크기가 약간 변경될 때 세그먼트 경계가 실수로 변경되지 않도록 세그먼트 제한을 "-1"로 설정해야 할 수도 있습니다.

(이것이 작동하는 이유는 다음과 같습니다. packer가 클래스파일 구조에서 수행하는 순서를 다시 지정하는 것은 idempotent이므로 두 번째 압축은 첫 번째 압축에서 생성된 순서를 변경하지 않습니다. 또한 unpacker는 JSR 200 사양에 의해 보장되어 보관 요소의 지정된 전송 순서에 대한 특정 바이트 이미지를 생성합니다.)

이전 버전과의 호환성을 유지하기 위해 팩 파일의 버전은 입력 JAR 파일에 있는 클래스 파일을 수용하도록 설정됩니다. 즉, 클래스 파일이 최신인 경우 팩 파일 버전이 최신 버전이고, 반대로 클래스 파일 버전이 가장 오래된 경우 팩 파일 버전이 가장 오래된 버전이 됩니다. 중간 클래스 파일 버전의 경우 해당 팩 파일 버전이 사용됩니다. 예: 입력 JAR 파일만 1.5(이하) 클래스 파일로 구성된 경우 1.5 호환 팩 파일이 생성됩니다. 클래스 파일이 없는 보관 파일의 경우도 마찬가지입니다. 입력 JAR 파일에 1.6 클래스 파일이 포함된 경우 팩 파일 버전은 1.6으로 설정됩니다.

참고: 달리 명시되지 않는 한 이 클래스의 null 생성자 또는 메서드에 인수를 전달하면 가 NullPointerException throw됩니다.

1.5에 추가되었습니다.

에 대한 Java 설명서입니다 java.util.jar.Pack200.Packer.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

필드

ClassAttributePfx

클래스 특성 이름과 연결된 경우 는 JSR 200 사양에 지정된 레이아웃 언어를 사용하여 해당 특성의 형식을 나타냅니다.

CodeAttributePfx

코드 특성 이름과 연결된 경우 는 해당 특성의 형식을 나타냅니다.

DeflateHint

이 속성이 또는 #FALSE#TRUE 설정된 경우 패커는 출력 아카이브에 그에 따라 디플레이션 힌트를 설정하고 보관 요소의 개별 디플레이션 힌트를 전송하지 않습니다.

Effort

이 속성이 10진수로 설정된 경우 압축기는 아카이브를 압축하는 데 지정된 양의 노력을 사용합니다.

Error

특정 속성에 대해 가능한 값인 문자열 "error"입니다.

False

특정 속성에 대해 가능한 값인 문자열 "false"입니다.

FieldAttributePfx

필드 특성 이름과 연결된 경우 는 해당 특성의 형식을 나타냅니다.

Keep

특정 속성에 대해 가능한 값인 문자열 "keep"입니다.

KeepFileOrder

이 속성이 로 #TRUE설정된 경우 packer는 원본 보관 내의 원래 순서로 모든 요소를 전송합니다.

Latest

특정 속성에 대한 가능한 값인 문자열 "latest"입니다.

MethodAttributePfx

메서드 특성 이름과 연결된 경우 는 해당 특성의 형식을 나타냅니다.

ModificationTime

이 속성이 특수 문자열 #LATEST로 설정된 경우 Packer는 원래 보관에서 사용 가능한 모든 항목 또는 각 세그먼트의 사용 가능한 모든 항목의 최신 수정 시간 중에서 최신 수정 시간을 결정하려고 시도합니다.

Pass

특정 속성에 대해 가능한 값인 문자열 "pass"입니다.

PassFilePfx

파일이 압축 없이 바이트 단위로 전달되어야 했음을 나타냅니다.

Progress

unpacker에 의해 주기적으로 업데이트되는 언패커의 진행률을 백분율로 표시합니다.

SegmentLimit

이 속성은 각 보관 세그먼트의 예상 대상 크기 N(바이트)을 제공하는 숫자입니다.

Strip

특정 속성에 대해 가능한 값인 문자열 "strip"입니다.

True

특정 속성에 대한 가능한 값인 문자열 "true"입니다.

UnknownAttribute

알 수 없는 특성이 포함된 클래스 파일이 발견될 때 수행할 작업을 나타냅니다.

속성

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
JniIdentityHashCode

래핑된 instance 값을 반환 java.lang.System.identityHashCode() 합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

AddPropertyChangeListener(IPropertyChangeListener)

속성 맵에서 PropertyChange 이벤트에 대한 수신기를 등록합니다.

Disposed()

instance 삭제될 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
DisposeUnlessReferenced()

이 instance 대한 미해결 참조가 없으면 를 호출Dispose()합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.

(다음에서 상속됨 IJavaPeerable)
Finalized()

instance 완료될 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
Pack(JarFile, Stream)

JarFile을 가져와 Pack200 보관 파일로 변환합니다.

Pack(JarInputStream, Stream)

JarInputStream을 사용하여 Pack200 보관 파일로 변환합니다.

Properties()

이 엔진의 속성 집합을 가져옵니다.

RemovePropertyChangeListener(IPropertyChangeListener)

에 의해 추가된 PropertyChange 이벤트에 대한 수신기를 제거합니다 #addPropertyChangeListener.

SetJniIdentityHashCode(Int32)

에서 반환 JniIdentityHashCode된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

압축기 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 압축기(예: gzip 또는 zip)에서 압축 가능하도록 팩 스트림을 만듭니다.

(다음에서 상속됨 IJavaPeerable)
SetPeerReference(JniObjectReference)

에서 반환 PeerReference된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
UnregisterFromRuntime()

런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

압축기 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 압축기(예: gzip 또는 zip)에서 압축 가능하도록 팩 스트림을 만듭니다.

GetJniTypeName(IJavaPeerable)

압축기 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 압축기(예: gzip 또는 zip)에서 압축 가능하도록 팩 스트림을 만듭니다.

PackAsync(Pack200+IPacker, JarFile, Stream)

압축기 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 압축기(예: gzip 또는 zip)에서 압축 가능하도록 팩 스트림을 만듭니다.

PackAsync(Pack200+IPacker, JarInputStream, Stream)

압축기 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 압축기(예: gzip 또는 zip)에서 압축 가능하도록 팩 스트림을 만듭니다.

적용 대상