다음을 통해 공유


Pack200.IPacker 인터페이스

정의

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.PackerJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

필드

ClassAttributePfx

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

CodeAttributePfx

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

DeflateHint

이 속성을 설정 #TRUE 하거나 #FALSE설정하면 패커는 출력 보관 파일에서 그에 따라 디플레이션 힌트를 설정하고 보관 요소의 개별 디플레이션 힌트를 전송하지 않습니다.

Effort

이 속성을 10진수로 설정하면 압축하는 데 지정된 양의 노력이 사용됩니다.

Error

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

False

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

FieldAttributePfx

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

Keep

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

KeepFileOrder

이 속성을 설정 #TRUE하면 packer는 원본 보관 파일 내에서 원래 순서로 모든 요소를 전송합니다.

Latest

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

MethodAttributePfx

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

ModificationTime

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

Pass

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

PassFilePfx

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

Progress

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

SegmentLimit

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

Strip

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

True

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

UnknownAttribute

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

속성

Handle

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

(다음에서 상속됨 IJavaObject)
JniIdentityHashCode

래핑된 인스턴스의 java.lang.System.identityHashCode() 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

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

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 인스턴스의 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

AddPropertyChangeListener(IPropertyChangeListener)

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

Disposed()

인스턴스가 삭제되었을 때 호출됩니다.

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

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

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

인스턴스가 종료될 때 호출됩니다.

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

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

Pack(JarInputStream, Stream)

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

Properties()

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

RemovePropertyChangeListener(IPropertyChangeListener)

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

SetJniIdentityHashCode(Int32)

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

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

packer 엔진은 입력 JAR 파일에 다양한 변환을 적용하여 gzip 또는 zip과 같은 압축기에서 팩 스트림을 압축할 수 있도록 합니다.

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

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

(다음에서 상속됨 IJavaPeerable)
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과 같은 압축기에서 팩 스트림을 압축할 수 있도록 합니다.

적용 대상