中文说明
Tinker adalah perpustakaan solusi hot-fix untuk Android, mendukung pembaruan Dex, Perpustakaan dan Sumber Daya tanpa menginstal ulang APK.
Tambahkan tinker-gradle-plugin sebagai ketergantungan pada build.gradle
utama Anda.
buildscript {
dependencies {
classpath ( ' com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1 ' )
}
}
Maka Anda perlu "menerapkan" plugin dan menambahkan dependensi dengan menambahkan baris berikut ke app/build.gradle
Anda.
dependencies {
// optional, help to generate the final application
provided( ' com.tencent.tinker:tinker-android-anno:1.9.1 ' )
// tinker's main Android lib
compile( ' com.tencent.tinker:tinker-android-lib:1.9.1 ' )
}
.. .
.. .
apply plugin : ' com.tencent.tinker.patch '
Jika aplikasi Anda memiliki kelas yang subkelas android.app.application, maka Anda perlu memodifikasi kelas itu, dan memindahkan semua alatnya ke sampel seperti aplikasi daripada aplikasi:
- public class YourApplication extends Application {
+ public class SampleApplicationLike extends DefaultApplicationLike {
Sekarang Anda harus mengubah kelas Application
Anda, menjadikannya subclass dari TinkerApplication. Seperti yang dapat Anda lihat dari API-nya, ini adalah kelas abstrak yang tidak memiliki konstruktor default, jadi Anda harus mendefinisikan konstruktor tanpa arg:
public class SampleApplication extends TinkerApplication {
public SampleApplication () {
super (
//tinkerFlags, which types is supported
//dex only, library only, all support
ShareConstants . TINKER_ENABLE_ALL ,
// This is passed as a string so the shell application does not
// have a binary dependency on your ApplicationLifeCycle class.
"tinker.sample.android.app.SampleApplicationLike" );
}
}
Gunakan tinker-android-anno
untuk menghasilkan Application
Anda direkomendasikan, Anda hanya perlu menambahkan anotasi untuk kelas seperti sampel Anda
@ DefaultLifeCycle (
application = "tinker.sample.android.app.SampleApplication" , //application name to generate
flags = ShareConstants . TINKER_ENABLE_ALL ) //tinkerFlags above
public class SampleApplicationLike extends DefaultApplicationLike
Bagaimana cara menginstal Tinker? Pelajari lebih lanjut di sampel sampel seperti.
Untuk Proguard, kami telah membuat konfigurasi proguard otomatis, dan Tinker juga akan menghasilkan file multidex simpan proguard untuk Anda.
Untuk konfigurasi tinker lebih lanjut, pelajari lebih lanjut di sampel aplikasi/build.gradle.
Bagaimana cara menjalankan Tinker di bahtera?
Cukup gunakan perintah berikut:
bash build_patch_dexdiff.sh old=xxx new=xxx
old
menunjukkan jalur absolut apk android (tidak dikompilasi oleh bahtera) dengan bugnew
menunjukkan jalur absolut apk android (tidak dikompilasi oleh bahtera) dengan memperbaikiFile tambalan dikemas dalam APK.
Todo
Saat ini disusun oleh tim kompiler ARK. Patch output masih dikemas dalam format APK tanpa tanda tangan.
Untuk Tinker-Cli, tambahkan baris berikut ke tinker_config.xml
Anda. Jika tidak, konfigurasi default akan digunakan.
< issue id = " arkHot " >
< path value = " arkHot " /> // path of patch
< name value = " patch.apk " /> // name of patch
</ issue >
Untuk Gradle, tambahkan baris berikut ke app/build.gradle
Anda. Jika tidak, konfigurasi default akan digunakan.
ark {
path = " arkHot " // path of patch
name = " patch.apk " // name of patch
}
Patch dikompilasi oleh bahtera dan ditempatkan di jalur di atas. Semua operasi selanjutnya sama dengan Tinker-Cli atau Gradle.
Apk Patch Ultimated terdiri dari dua file tambalan:
classes.dex
untuk Androidpatch.apk
dengan So untuk Ark. Ada beberapa masalah yang tidak dapat diperbarui oleh Tinker.
Ada masalah?
Untuk informasi lebih lanjut tentang masalah yang berkontribusi atau permintaan tarik, lihat Panduan Kontribusi Tinker kami.
Tinker berada di bawah lisensi BSD. Lihat file lisensi untuk detailnya.