次の方法で共有


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) し、変更したプロパティをマップに格納します。 リソース ファイルは、まったく変更なしで渡されます。 アンパックャーはプールの一定順序などのマイナー クラス ファイル機能を自由に変更できるため、クラス ファイルには同じバイトは含まれません。 ただし、クラス ファイルは、Cite>The 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 すと、a NullPointerException がスローされます。

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

の Java ドキュメントjava.util.jar.Pack200.Packer

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

フィールド

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

ラップされた Java オブジェクト インスタンスの a JniObjectReference を返します。

(継承元 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 などのコンプレッサーによってパック ストリームを非常に圧縮可能にします。

適用対象