Pack200 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。
[Android.Runtime.Register("java/util/jar/Pack200", DoNotGenerateAcw=true)]
public abstract class Pack200 : Java.Lang.Object
[<Android.Runtime.Register("java/util/jar/Pack200", DoNotGenerateAcw=true)>]
type Pack200 = class
inherit Object
- 繼承
- 屬性
備註
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 請參閱網路傳輸格式 JSR 200 規格 http://jcp.org/aboutJava/communityprocess/review/jsr200/index.html
一般而言,Packer 引擎是由應用程式開發人員用來在網站上部署或裝載 JAR 檔案。 部署應用程式會使用解除封裝引擎,將位元組數據流轉換回JAR格式。
以下是使用 packer 和 unpacker 的範例:
{@code
import java.util.jar.Pack200;
import java.util.jar.Pack200.*;
...
// Create the Packer object
Packer packer = Pack200.newPacker();
// Initialize the state by setting the desired properties
Map p = packer.properties();
// take more time choosing codings for better compression
p.put(Packer.EFFORT, "7"); // default is "5"
// use largest-possible archive segments (>10% better compression).
p.put(Packer.SEGMENT_LIMIT, "-1");
// reorder files for better compression.
p.put(Packer.KEEP_FILE_ORDER, Packer.FALSE);
// smear modification times to a single value.
p.put(Packer.MODIFICATION_TIME, Packer.LATEST);
// ignore all JAR deflation requests,
// transmitting a single request to use "store" mode.
p.put(Packer.DEFLATE_HINT, Packer.FALSE);
// discard debug attributes
p.put(Packer.CODE_ATTRIBUTE_PFX+"LineNumberTable", Packer.STRIP);
// throw an error if an attribute is unrecognized
p.put(Packer.UNKNOWN_ATTRIBUTE, Packer.ERROR);
// pass one class file uncompressed:
p.put(Packer.PASS_FILE_PFX+0, "mutants/Rogue.class");
try {
JarFile jarFile = new JarFile("/tmp/testref.jar");
FileOutputStream fos = new FileOutputStream("/tmp/test.pack");
// Call the packer
packer.pack(jarFile, fos);
jarFile.close();
fos.close();
File f = new File("/tmp/test.pack");
FileOutputStream fostream = new FileOutputStream("/tmp/test.jar");
JarOutputStream jostream = new JarOutputStream(fostream);
Unpacker unpacker = Pack200.newUnpacker();
// Call the unpacker
unpacker.unpack(f, jostream);
// Must explicitly close the output.
jostream.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
使用 gzip 壓縮的 Pack200 檔案可以裝載於 HTTP/1.1 網頁伺服器上。 部署應用程式可以使用 「Accept-Encoding=pack200-gzip」。。 這表示用戶端應用程式需要以Pack200編碼的檔案版本,並使用 gzip 進一步壓縮。 如需詳細資訊和技術, 請參閱Java部署指南 。
除非另有說明,否則將自變數傳遞 null 至這個類別中的建構函式或方法將會導致 NullPointerException 擲回 。
已在1.5中新增。
的 java.util.jar.Pack200Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| Pack200(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
| Class |
傳回這個 |
| Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
| JniIdentityHashCode |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| JniPeerMembers |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 |
| PeerReference |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
| Dispose() |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| Dispose(Boolean) |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
| GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
| JavaFinalize() |
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| NewPacker() |
取得實作Packer之類別的新實例。 |
| NewUnpacker() |
取得實作 Unpacker 之類別的新實例。 |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| ToArray<T>() |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
| IJavaPeerable.Disposed() |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| IJavaPeerable.Finalized() |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| IJavaPeerable.JniManagedPeerState |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 (繼承來源 Object) |
擴充方法
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
| JavaCast<TResult>(IJavaObject) |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 |
| GetJniTypeName(IJavaPeerable) |
以 Pack200 格式將 JAR 檔案轉換成或從封裝數據流轉換。 |