Pack200.IPacker Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 |
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 |
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 |
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 |
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 |
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 |
SetJniIdentityHashCode(Int32) |
Atur nilai yang dikembalikan oleh |
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 |
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. |