Pack200.IPacker インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
パッカー エンジンは、入力 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 |
このプロパティがまたは |
Effort |
このプロパティが 1 桁の 10 進数字に設定されている場合、パッカーはアーカイブの圧縮に指定された作業量を使用します。 |
Error |
文字列 "error" (特定のプロパティで使用可能な値)。 |
False |
文字列 "false"。特定のプロパティに使用できる値です。 |
FieldAttributePfx |
フィールド属性名と連結する場合は、その属性の形式を示します。 |
Keep |
文字列 "keep" (特定のプロパティで使用可能な値)。 |
KeepFileOrder |
このプロパティが設定 |
Latest |
文字列 "latest" (特定のプロパティで使用可能な値)。 |
MethodAttributePfx |
メソッド属性名と連結する場合は、その属性の形式を示します。 |
ModificationTime |
このプロパティが特殊な文字列 |
Pass |
文字列 "pass" は、特定のプロパティに使用できる値です。 |
PassFilePfx |
圧縮なしでファイルをバイト単位で渡す必要があることを示します。 |
Progress |
アンパックャーによって定期的に更新されたアンパックャーの進行状況をパーセンテージで示します。 |
SegmentLimit |
このプロパティは、各アーカイブ セグメントの推定ターゲット サイズ N (バイト単位) を示す数字です。 |
Strip |
文字列 "strip"。特定のプロパティに使用できる値です。 |
True |
文字列 "true"。特定のプロパティで使用できる値です。 |
UnknownAttribute |
不明な属性を含むクラス ファイルが検出されたときに実行するアクションを示します。 |
プロパティ
Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
JniIdentityHashCode |
ラップされたインスタンスの |
JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
PeerReference |
ラップされた Java オブジェクト インスタンスの a JniObjectReference を返します。 (継承元 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) |
パッカー エンジンは、入力 JAR ファイルにさまざまな変換を適用し、gzip や zip などのコンプレッサーによってパック ストリームを非常に圧縮可能にします。 (継承元 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
によって |
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 などのコンプレッサーによってパック ストリームを非常に圧縮可能にします。 |