Bagikan melalui


Pack200.IPacker Antarmuka

Definisi

Mesin pengemas menerapkan berbagai transformasi ke file JAR input, membuat aliran paket sangat dapat dikompresi oleh kompresor seperti gzip atau 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
Atribut
Penerapan

Keterangan

Mesin pengemas menerapkan berbagai transformasi ke file JAR input, membuat aliran paket sangat dapat dikompresi oleh kompresor seperti gzip atau zip. Instans mesin dapat diperoleh menggunakan #newPacker.

Tingkat kompresi yang tinggi dicapai dengan menggunakan sejumlah teknik yang dijelaskan dalam spesifikasi JSR 200. Beberapa tekniknya adalah mengurutkan, mengurutkan ulang, dan lokasi bersama kumpulan konstanta.

Mesin paket diinisialisasi ke status awal seperti yang dijelaskan oleh propertinya di bawah ini. Status awal dapat dimanipulasi dengan mendapatkan properti mesin (menggunakan #properties) dan menyimpan properti yang dimodifikasi di peta. File sumber daya akan diteruskan tanpa perubahan sama sekali. File kelas tidak akan berisi byte yang identik, karena unpacker bebas untuk mengubah fitur file kelas minor seperti urutan kumpulan konstan. Namun, file kelas akan identik secara semantik, seperti yang ditentukan dalam <kutipan>The Java™ Spesifikasi/kutipan<> Komputer Virtual.

Secara default, pengemas tidak mengubah urutan elemen JAR. Selain itu, waktu modifikasi dan petunjuk deflasi dari setiap elemen JAR dilewatkan tidak berubah. (Informasi arsip ZIP lainnya, seperti atribut tambahan yang memberikan izin file Unix, hilang.)

Perhatikan bahwa pengemasan dan pembukaan kemasan JAR akan secara umum mengubah konten bytewise classfiles dalam JAR. Ini berarti bahwa pengemasan dan pembukaan paket akan secara umum membatalkan tanda tangan digital apa pun yang bergantung pada gambar bytewise elemen JAR. Untuk menandatangani dan mengemas JAR, Anda harus terlebih dahulu mengemas dan membongkah JAR untuk "menormalkan" itu, lalu menghitung tanda tangan pada elemen JAR yang tidak dikemas, dan akhirnya mengemas ulang JAR yang ditandatangani. Kedua langkah pengemasan harus menggunakan opsi yang sama persis, dan batas segmen mungkin juga perlu diatur ke "-1", untuk mencegah variasi batas segmen yang tidak disengaja karena ukuran file kelas sedikit berubah.

(Inilah sebabnya mengapa ini berfungsi: Setiap penyusunan ulang yang dilakukan pengemas dari struktur klasifikasi apa pun idempogen, sehingga pengemasan kedua tidak mengubah urutan yang dihasilkan oleh pengemasan pertama. Selain itu, unpacker dijamin oleh spesifikasi JSR 200 untuk menghasilkan gambar bytewise tertentu untuk urutan transmisi elemen arsip tertentu.)

Untuk mempertahankan kompatibilitas mundur, versi file paket diatur untuk mengakomodasi file kelas yang ada dalam file JAR input. Dengan kata lain, versi file paket akan menjadi yang terbaru, jika file kelas adalah yang terbaru dan sebaliknya versi file paket akan menjadi yang terlama jika versi file kelas juga yang terlama. Untuk versi file kelas menengah, versi file paket yang sesuai akan digunakan. Misalnya: Jika file JAR input hanya terdiri dari 1,5 (atau lebih sedikit) file kelas, file paket yang kompatibel 1,5 diproduksi. Ini juga akan menjadi kasus untuk arsip yang tidak memiliki file kelas. Jika file JAR input berisi file kelas 1.6, maka versi file paket akan diatur ke 1.6.

Catatan: Kecuali dinyatakan lain, meneruskan null argumen ke konstruktor atau metode di kelas ini akan menyebabkan NullPointerException dilemparkan.

Ditambahkan dalam 1.5.

Dokumentasi Java untuk java.util.jar.Pack200.Packer.

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Bidang

ClassAttributePfx

Saat digabungkan dengan nama atribut kelas, menunjukkan format atribut tersebut, menggunakan bahasa tata letak yang ditentukan dalam spesifikasi JSR 200.

CodeAttributePfx

Saat digabungkan dengan nama atribut kode, menunjukkan format atribut tersebut.

DeflateHint

Jika properti ini diatur ke #TRUE atau #FALSE, pengemas akan mengatur petunjuk deflasi yang sesuai dalam arsip output, dan tidak akan mengirimkan petunjuk deflasi individu dari elemen arsip.

Effort

Jika properti ini diatur ke satu digit desimal, pengemas akan menggunakan jumlah upaya yang ditunjukkan dalam mengompresi arsip.

Error

String "error", nilai yang mungkin untuk properti tertentu.

False

String "false", nilai yang mungkin untuk properti tertentu.

FieldAttributePfx

Saat digabungkan dengan nama atribut bidang, menunjukkan format atribut tersebut.

Keep

String "keep", nilai yang mungkin untuk properti tertentu.

KeepFileOrder

Jika properti ini diatur ke #TRUE, pengemas akan mengirimkan semua elemen dalam urutan aslinya dalam arsip sumber.

Latest

String "terbaru", nilai yang mungkin untuk properti tertentu.

MethodAttributePfx

Saat digabungkan dengan nama atribut metode, menunjukkan format atribut tersebut.

ModificationTime

Jika properti ini diatur ke string #LATESTkhusus , pengemas akan mencoba menentukan waktu modifikasi terbaru, di antara semua entri yang tersedia dalam arsip asli atau waktu modifikasi terbaru dari semua entri yang tersedia di setiap segmen.

Pass

String "pass", nilai yang mungkin untuk properti tertentu.

PassFilePfx

Menunjukkan bahwa file harus diteruskan melalui bytewise, tanpa kompresi.

Progress

Kemajuan unpacker sebagai persentase, seperti yang diperbarui secara berkala oleh pembongkar.

SegmentLimit

Properti ini adalah angka yang memberikan perkiraan ukuran target N (dalam byte) dari setiap segmen arsip.

Strip

String "strip", nilai yang mungkin untuk properti tertentu.

True

String "true", nilai yang mungkin untuk properti tertentu.

UnknownAttribute

Menunjukkan tindakan yang harus diambil saat file kelas yang berisi atribut yang tidak diketahui ditemui.

Properti

Handle

Mendapatkan nilai JNI dari objek Android yang mendasar.

(Diperoleh dari IJavaObject)
JniIdentityHashCode

Mengembalikan nilai java.lang.System.identityHashCode() untuk instans yang dibungkus.

(Diperoleh dari IJavaPeerable)
JniManagedPeerState

Status serekan terkelola.

(Diperoleh dari IJavaPeerable)
JniPeerMembers

Akses anggota dan dukungan pemanggilan.

(Diperoleh dari IJavaPeerable)
PeerReference

Mengembalikan instans objek Java yang dibungkus JniObjectReference .

(Diperoleh dari IJavaPeerable)

Metode

AddPropertyChangeListener(IPropertyChangeListener)

Mendaftarkan pendengar untuk peristiwa PropertyChange di peta properti.

Disposed()

Dipanggil ketika instans telah dibuang.

(Diperoleh dari IJavaPeerable)
DisposeUnlessReferenced()

Jika tidak ada referensi yang luar biasa untuk instans ini, maka panggilan Dispose(); jika tidak, tidak melakukan apa pun.

(Diperoleh dari IJavaPeerable)
Finalized()

Dipanggil ketika instans telah diselesaikan.

(Diperoleh dari IJavaPeerable)
Pack(JarFile, Stream)

Mengambil JarFile dan mengonversinya menjadi arsip Pack200.

Pack(JarInputStream, Stream)

Mengambil JarInputStream dan mengonversinya menjadi arsip Pack200.

Properties()

Dapatkan set properti mesin ini.

RemovePropertyChangeListener(IPropertyChangeListener)

Hapus pendengar untuk peristiwa PropertyChange, ditambahkan oleh #addPropertyChangeListener.

SetJniIdentityHashCode(Int32)

Atur nilai yang dikembalikan oleh JniIdentityHashCode.

(Diperoleh dari IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Mesin pengemas menerapkan berbagai transformasi ke file JAR input, membuat aliran paket sangat dapat dikompresi oleh kompresor seperti gzip atau zip.

(Diperoleh dari IJavaPeerable)
SetPeerReference(JniObjectReference)

Atur nilai yang dikembalikan oleh PeerReference.

(Diperoleh dari IJavaPeerable)
UnregisterFromRuntime()

Batalkan pendaftaran instans ini sehingga runtime tidak akan mengembalikannya dari pemanggilan di masa mendatang Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Diperoleh dari IJavaPeerable)

Metode Ekstensi

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android.

JavaCast<TResult>(IJavaObject)

Mesin pengemas menerapkan berbagai transformasi ke file JAR input, membuat aliran paket sangat dapat dikompresi oleh kompresor seperti gzip atau zip.

GetJniTypeName(IJavaPeerable)

Mesin pengemas menerapkan berbagai transformasi ke file JAR input, membuat aliran paket sangat dapat dikompresi oleh kompresor seperti gzip atau zip.

PackAsync(Pack200+IPacker, JarFile, Stream)

Mesin pengemas menerapkan berbagai transformasi ke file JAR input, membuat aliran paket sangat dapat dikompresi oleh kompresor seperti gzip atau zip.

PackAsync(Pack200+IPacker, JarInputStream, Stream)

Mesin pengemas menerapkan berbagai transformasi ke file JAR input, membuat aliran paket sangat dapat dikompresi oleh kompresor seperti gzip atau zip.

Berlaku untuk