中文说明
Tinker هي مكتبة حلول Hot Fix لنظام Android ، وهي تدعم تحديث DEX والمكتبة والموارد دون إعادة تثبيت APK.
أضف plugin-plugin tinker-plugin باعتباره تبعية في build.gradle
في جذر مشروعك:
buildscript {
dependencies {
classpath ( ' com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1 ' )
}
}
ثم تحتاج إلى "تطبيق" المكون الإضافي وإضافة تبعيات عن طريق إضافة الأسطر التالية إلى app/build.gradle
.
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 '
إذا كان تطبيقك يحتوي على فئة تنفسي Android.app.application ، فأنت بحاجة إلى تعديل هذه الفئة ، ونقل جميع الأدوات إلى أخذ العينات مثل التطبيق بدلاً من التطبيق:
- public class YourApplication extends Application {
+ public class SampleApplicationLike extends DefaultApplicationLike {
الآن يجب عليك تغيير فئة Application
الخاصة بك ، وجعلها فئة فرعية من TinkerApplication. كما ترون من واجهة برمجة التطبيقات الخاصة بها ، فهي فئة مجردة لا تحتوي على مُنشئ افتراضي ، لذلك يجب عليك تحديد مُنشئ بدون 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" );
}
}
استخدم tinker-android-anno
لإنشاء Application
الخاص بك يوصى به ، تحتاج فقط إلى إضافة تعليق توضيحي لفئة SampleApplicationly
@ DefaultLifeCycle (
application = "tinker.sample.android.app.SampleApplication" , //application name to generate
flags = ShareConstants . TINKER_ENABLE_ALL ) //tinkerFlags above
public class SampleApplicationLike extends DefaultApplicationLike
كيفية تثبيت Tinker؟ تعرف على المزيد في عينة sampleapplication.
بالنسبة إلى Proguard ، لقد جعلنا بالفعل Proguard Config Automatic ، وسيقوم Tinker أيضًا بإنشاء ملف Keep Multidex لك.
لمزيد من تكوينات Tinker ، تعرف على المزيد في نموذج التطبيق/build.gradle.
كيف تدير Tinker على الفلك؟
فقط استخدم الأمر التالي:
bash build_patch_dexdiff.sh old=xxx new=xxx
old
إلى المسار المطلق لنظام Android APK (لم يتم تجميعه بواسطة ARK) مع الأخطاءnew
إلى المسار المطلق لنظام Android APK (لم يتم تجميعه بواسطة ARK) مع الإصلاحيتم تعبئة ملف التصحيح في APK.
تودو
في الوقت الحاضر تم تجميعه بواسطة فريق Ark Penspiler. لا يزال تصحيح الإخراج يتم تعبئته بتنسيق APK دون توقيع.
لـ Tinker-Cli ، أضف الأسطر التالية إلى tinker_config.xml
. خلاف ذلك ، سيتم استخدام التكوين الافتراضي.
< issue id = " arkHot " >
< path value = " arkHot " /> // path of patch
< name value = " patch.apk " /> // name of patch
</ issue >
لـ Gradle ، أضف الأسطر التالية إلى app/build.gradle
. خلاف ذلك ، سيتم استخدام التكوين الافتراضي.
ark {
path = " arkHot " // path of patch
name = " patch.apk " // name of patch
}
يتم تجميع التصحيح بواسطة ARK ووضعه على المسار أعلاه. جميع العمليات اللاحقة هي نفس Tinker-Cli أو Gradle.
يتكون التصحيح النهائي APK من ملفين التصحيح:
classes.dex
patch.apk
مع SO for Ark. هناك بعض المشكلات التي لا يستطيع Tinker تحديثًا ديناميكيًا.
أي مشكلة؟
لمزيد من المعلومات حول المشكلات المساهمة أو طلبات السحب ، راجع دليل المساهمة في Tinker.
Tinker هو تحت رخصة BSD. انظر ملف الترخيص للحصول على التفاصيل.