中文说明
Tinker เป็นไลบรารีโซลูชัน Hot-Fix สำหรับ Android รองรับ DEX ห้องสมุดและการอัปเดตทรัพยากรโดยไม่ต้องติดตั้ง APK ใหม่
เพิ่ม Tinker-Gradle-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 '
หากแอปของคุณมีคลาสที่ subclasses Android.app.application คุณต้องแก้ไขคลาสนั้นและย้ายอุปกรณ์ทั้งหมดไปยังตัวอย่างเช่นแอปพลิเคชัน: แอปพลิเคชัน:
- public class YourApplication extends Application {
+ public class SampleApplicationLike extends DefaultApplicationLike {
ตอนนี้คุณควรเปลี่ยนคลาส Application
ของคุณทำให้เป็นคลาสย่อยของ tinkerapplication อย่างที่คุณเห็นจาก API ของมันเป็นคลาสนามธรรมที่ไม่มีตัวสร้างเริ่มต้นดังนั้นคุณต้องกำหนดตัวสร้างที่ไม่มีข้อต่อ:
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
ของคุณแนะนำคุณเพียงแค่ต้องเพิ่มคำอธิบายประกอบสำหรับคลาส SamplePlicaplical
@ DefaultLifeCycle (
application = "tinker.sample.android.app.SampleApplication" , //application name to generate
flags = ShareConstants . TINKER_ENABLE_ALL ) //tinkerFlags above
public class SampleApplicationLike extends DefaultApplicationLike
จะติดตั้ง Tinker ได้อย่างไร? เรียนรู้เพิ่มเติมที่ตัวอย่างตัวอย่าง
สำหรับ Proguard เราได้สร้าง Proguard Config Automatic แล้วและ Tinker จะสร้างไฟล์ Multidex Keep Proguard ให้คุณ
สำหรับการกำหนดค่า Tinker เพิ่มเติมเรียนรู้เพิ่มเติมได้ที่แอพตัวอย่าง/build.gradle
วิธีเรียกใช้ทิงเกอร์บนหีบ?
เพียงแค่ใช้คำสั่งต่อไปนี้:
bash build_patch_dexdiff.sh old=xxx new=xxx
old
หมายถึงเส้นทางที่แน่นอนของ Android APK (ไม่ได้รวบรวมโดย ARK) ด้วยข้อบกพร่องnew
ระบุเส้นทางที่แน่นอนของ Android APK (ไม่ได้รวบรวมโดย ARK) ด้วยการแก้ไขไฟล์แพตช์ถูกบรรจุใน APK
สิ่งที่ต้องทำ
ในปัจจุบันมันรวบรวมโดย ARK Compiler Team แพตช์เอาท์พุทยังคงบรรจุในรูปแบบ 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
Patch APK ของ Ultimated ประกอบด้วยไฟล์แพตช์สองไฟล์:
classes.dex
สำหรับ Androidpatch.apk
ด้วย SO สำหรับ ARK มีปัญหาบางอย่างที่ทิงเกอร์ไม่สามารถอัปเดตแบบไดนามิก
ปัญหาใด ๆ ?
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาการมีส่วนร่วมหรือการร้องขอการดึงดูคู่มือการบริจาคทิงเกอร์ของเรา
Tinker อยู่ภายใต้ใบอนุญาต BSD ดูไฟล์ใบอนุญาตสำหรับรายละเอียด