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取得できます。

高い圧縮度は、JSR 200 仕様で説明されている多くの手法を使用して実現されます。 一部の手法には、定数プールの並べ替え、並べ替え、併配置があります。

パック エンジンは、以下のプロパティで説明するように初期状態に初期化されます。 初期状態を操作するには、(を使用して #properties) エンジン プロパティを取得し、変更したプロパティをマップに格納します。 リソース ファイルは、まったく変更なしで渡されます。 アンパック機能はプールの定数順序などのマイナー クラス ファイル機能を自由に変更できるため、クラス ファイルには同じバイトは含まれません。 ただし、クラス ファイルは、java&取引に関するページ>で<指定されているように、意味的に同じになります。仮想マシンの仕様</引用>。

既定では、パッカーは JAR 要素の順序を変更しません。 また、各 JAR 要素の修正時間とデフレ ヒントは変更されずに渡されます。 (Unix ファイルのアクセス許可を与える追加の属性など、その他の ZIP アーカイブ情報は失われます)。

JAR をパッキングおよびアンパックすると、一般に JAR 内のクラスファイルのバイトごとの内容が変更されることに注意してください。 つまり、パッキングとアンパックは一般的に、JAR 要素のバイトごとのイメージに依存するデジタル署名を無効にします。 署名と JAR のパックの両方を行うには、まず JAR をパックしてアンパックして "正規化" してから、アンパックされた JAR 要素で署名を計算し、最後に署名された JAR を再パックする必要があります。 どちらのパッキング手順でも、正確に同じオプションを使用する必要があります。また、クラス ファイルのサイズが若干変化するにつれてセグメント境界が誤って変化するのを防ぐために、セグメントの制限を "-1" に設定する必要がある場合もあります。

(これが機能する理由は次のとおりです。すべてのクラスファイル構造のパッカーの並べ替えはべき等であるため、2 番目のパッキングでは最初のパッキングによって生成される順序は変更されません。また、アンパックャーは JSR 200 仕様によって保証され、アーカイブ要素の特定の伝送順序に対して特定のバイトごとのイメージを生成します)。

下位互換性を維持するために、パック ファイルのバージョンは、入力 JAR ファイルに存在するクラス ファイルに対応するように設定されます。 言い換えると、クラス ファイルのバージョンが最新の場合は、パック ファイルのバージョンが最新になり、逆に、クラス ファイルのバージョンも最も古い場合は、パック ファイルのバージョンが最も古くなります。 中間クラス ファイル バージョンの場合は、対応するパック ファイルのバージョンが使用されます。 たとえば、入力 JAR ファイルが 1.5 (またはそれ以下) のクラス ファイルのみで構成されている場合は、1.5 互換のパック ファイルが生成されます。 これは、クラス ファイルがないアーカイブの場合にも当たります。 入力 JAR ファイルに 1.6 クラス ファイルが含まれている場合、パック ファイルのバージョンは 1.6 に設定されます。

注: 特に明記されていない限り、このクラスのコンストラクターまたはメソッドに引数を渡すと null 、 がスローされます NullPointerException

1\.5 で追加されました。

java.util.jar.Pack200.PackerJava ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

フィールド

ClassAttributePfx

クラス属性名と連結すると、JSR 200 仕様で指定されたレイアウト言語を使用して、その属性の形式が示されます。

CodeAttributePfx

コード属性名と連結すると、その属性の形式が示されます。

DeflateHint

このプロパティが または #FALSE#TRUE設定されている場合、パッカーは出力アーカイブ内でそれに応じてデフレヒントを設定し、アーカイブ要素の個々のデフレヒントを送信しません。

Effort

このプロパティが 1 桁の 10 進数に設定されている場合、パッカーはアーカイブの圧縮に指定された作業量を使用します。

Error

文字列 "error" 。特定のプロパティに使用できる値です。

False

文字列 "false" 。特定のプロパティに使用できる値です。

FieldAttributePfx

フィールド属性名と連結すると、その属性の形式が示されます。

Keep

文字列 "keep" (特定のプロパティで使用可能な値)。

KeepFileOrder

このプロパティが に #TRUE設定されている場合、パッカーはソース アーカイブ内のすべての要素を元の順序で送信します。

Latest

文字列 "latest" 。特定のプロパティに使用できる値です。

MethodAttributePfx

メソッド属性名と連結すると、その属性の形式が示されます。

ModificationTime

このプロパティが特殊な文字列 #LATESTに設定されている場合、パッカーは、元のアーカイブ内のすべての使用可能なエントリ、または各セグメント内のすべての使用可能なエントリの最新の変更時刻のうち、最新の変更時刻を決定しようとします。

Pass

文字列 "pass" 。特定のプロパティに使用できる値です。

PassFilePfx

圧縮なしで、ファイルをバイト単位で渡す必要があることを示します。

Progress

アンパックャーによって定期的に更新されたアンパックャーの進行状況をパーセンテージで示します。

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)

パッカー エンジンは、入力 JAR ファイルにさまざまな変換を適用し、パック ストリームを gzip や zip などのコンプレッサーによって高い圧縮性を実現します。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

によって返される値を PeerReference設定します。

(継承元 IJavaPeerable)
UnregisterFromRuntime()

ランタイムが今後 Java.Interop.JniRuntime+JniValueManager.PeekValue の呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 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 などのコンプレッサーによって高い圧縮性を実現します。

適用対象