Skip to content
master
Go to file
Code

Latest commit

typ0520
91c1c4e

Git stats

Files

Permalink
Failed to load latest commit information.

README.md

fastdex

license Download

Õ”éµ×£õĮĀÕ┐ŹÕÅŚõĖŹõ║åapkķŠ¤ķƤńÜäń╝¢Ķ»æ(Õ░żÕģȵś»ķĪ╣ńø?õĖŁµ£ēÕżÜõˬdex)’╝īfastdexÕÅ»õ╗źÕĖ?ÕŖ®õĮĀÕŖĀÕ┐½apkńö¤µłÉĶ┐ćń©ŗ

fastdex.png

Android API 9(2.3)+ ; android-gradle-build 2.0.0+

ńēłµ£¼Ķ?░ÕĮĢ

õĮ┐ńö©µ¢╣Õ╝Å

idea µÅÆõ╗Č

Õ£©Android StudioõĖŁ’╝īµēōÕ╝õɣń┤óµÅÆõ╗ČķĪĄķØó’╝Ü

  • MacOS

    Android Studio ŌåÆ Preferences ŌåÆ Plugins ŌåÆ Browse repositories

  • Windows ÕÆī Linux

    File ŌåÆ Settings ŌåÆ Plugins ŌåÆ Browse repositories

µÉ£ń┤ófastdexÕ?ēĶŻģķćŹÕÉ»Android StudioÕ░▒ÕÅ»õ╗źõ║åŃĆé

µēŗÕŖ©ķģŹńĮ?

  • 1ŃĆüÕģ│ķŚŁInstant RunÕŖ¤ĶāĮ ńé╣Õć╗ÕĘ”õ˪ͦÆAndroid studio -> Preferences -> Build,Execution,Deployment -> Instant Run -> Enable Instant Run......(µŖŖÕ»╣ÕŗŠÕÄ╗µÄē)

  • 2ŃĆüÕ£©root projectõĖŗńÜäbuild.gradleõĖŁµĘ╗ÕŖĀõŠØĶĄ¢

     buildscript {
         repositories {
             jcenter()
         }
         
         dependencies {
             classpath 'com.github.typ0520:fastdex-gradle:0.8.6'
         }
     }
    
  • 3ŃĆüÕ£©appńÜäķĪ╣ńø?õĖŁńÜäbuild.gradleµĘ╗ժµůõ╗Č

    apply plugin: 'fastdex.app'
    
  • 4ŃĆüńø┤µÄźńé╣Õć╗studiońÜärunµł¢ĶĆģµē¦ĶĪīµēōÕīģÕæĮõ╗ż’╝īÕ░▒õ╝ÜÕ£©õ╗╗ժεē¦ĶĪīńÜäĶ┐ćń©ŗõĖŁÕüÜhook

    ń¼¼õĖƵ¼ĪÕģ©ķćŵēōÕīģµłÉÕŖ¤ÕÉÄ’╝īfastdexµö»µīüµŖŖÕó×ķćÅńÜädexÕÆīĶĄäµ║ɵĩķĆüÕł░µŁŻÕ£©Ķ┐ÉĶĪīńÜäappķćīķćŹÕÉ»Õ╣ČÕŖĀĶĮĮ’╝īĶ┐ÖµĀĘõ╝Üń£üÕÄ╗Õ?ēĶŻģappńÜ䵌ČķŚ┤Õ╝ĆķöĆ
    µŗ┐debugõĖ║õŠŗÕ”éµ×£µ▓ε£ēķģŹńĮ?flavorÕ░▒µē¦ĶĪī(gradlew fastdex${Variant})
    
    Mac/Linux:
    ./gradlew fastdexDebug
    
    Windows:
    gradlew.bat fastdexDebug
    

µ│©µäÅõ║ŗķĪ╣

  • 1ŃĆüõĖŹĶ”üµŖŖfastdexµēōÕć║µØźńÜäÕīģńö©Õ£©ńö¤õ║¦ńÄ»Õóā’╝īÕøĀõĖ║fastdexµēōÕć║µØźńÜäÕīģķĪ╣ńø?µēƵ£ēńÜäõ╗ŻńĀüķāĮÕ£©ń¼¼õ║īõˬdexÕÉÄķØó’╝īõ╝ÜķƵłÉ5.0õ╗ź õĖŗµ£║Õ֩픢µ¼ĪĶ┐ÉĶĪīµ»öĶŠāµģó(Õ”éµ×£µś»µ£¼Õ£░Ķ░āĶ»ĢÕ░▒µŚĀµēĆĶ░ōõ║å)’╝øÕĮōµēōÕīģńö¤õ║¦ńÄ»ÕóāapkµŚČµ│©ķćŖµÄēÕŖĀÕģźµÅÆõ╗ČńÜäõ╗ŻńĀü //apply plugin: 'fastdex.app'

  • 2ŃĆüfastdexõ╝ÜÕ┐ĮńĢźÕ╝ĆÕÉ»µĘʵĘåńÜäbuildType

  • 3ŃĆüÕ╝║ńāłÕ╗║Ķ??õĮĀńÜäapplicationõĖŹĶ”üńø┤µÄźõŠØĶĄ¢libraryÕĘźń©ŗ’╝īµēōµłÉaarÕīģĶ?®applicationÕĘźń©ŗĶ┐£ń©ŗõŠØĶĄ¢

Õ?×ńÄ░ÕĤńÉå

  • gradleÕ£©µē¦ĶĪītransformClassesWithDexFor${variant}õ╗╗ÕŖĪńö¤µłÉdexµ¢ćõ╗ȵŚČõ╝ÜÕŠłµģó(Õ░żÕģȵś»Õ╝ĆÕÉ»õ║åmultidex)’╝īµłæõ╗¼Õ£©Õ╝ĆÕÅæõĖŁ’╝īõ┐?µö╣ńÜäÕćĀõ╣ÄÕ쩵ś»ķĪ╣ńø?õ╗ŻńĀü’╝īń¼¼õĖēµ¢╣Õ║ōµö╣ÕŖ©µ»öĶŠāÕ░ÅŃĆéfastdexńÜäÕĤńÉåÕ░▒µś»ķóäÕģłµŖŖµēƵ£ēõ╗ŻńĀüńö¤µłÉdex, ÕĮōõĖŗµ¼Īµē¦ĶĪīassembleõ╗╗ժεŚČÕŬõ╝ܵŖŖķĪ╣ńø?ńø?ÕĮĢõĖŗÕÅśÕī¢ńÜäõ╗ŻńĀüńö¤µłÉdex’╝īńäČÕÉÄÕÆīń╝ōÕŁśńÜädexÕÉłÕ╣Čńö¤µłÉapk’╝īĶ┐ÖµĀĘÕŹ│õĖŹÕĮ▒ÕōŹĶ░āͻ̒╝īÕÅłĶāĮÕ£©ńö¤µłÉdexńÜäĶ┐ćń©ŗõĖŁń£üõĖŗõ║åÕż¦ķćÅńÜ䵌ČķŚ┤ŃĆé Ķ»”µāģ

  • Õ║öńö©Õ?ēĶŻģńÜäķƤÕ║”µ»öĶŠāµģó’╝īÕ░żÕģȵś»5.0õ╗źÕÉÄńÜäńēłµ£¼’╝īfastdexõ╝ܵŖŖĶĪźõĖüdexÕÆīĶĄäµ║ÉķĆÜĶ┐ćadbµÄ©Õł░µŁŻÕ£©Ķ┐ÉĶĪīńÜäappķćīńø┤µÄźķćŹÕÉ»app

µēōÕīģµĄüń©ŗ

Õģ©ķćŵēōÕīģµŚČńÜ䵥üń©ŗ:
  • 1ŃĆüÕÉłÕ╣ȵēƵ£ēńÜäclassµ¢ćõ╗Čńö¤µłÉõĖĆõˬjarÕīģ
  • 2ŃĆüµē½µÅŵēƵ£ēńÜäķĪ╣ńø?õ╗ŻńĀüÕ╣ČõĖöÕ£©µ×äķƵ¢╣µ│ĢķćīµĘ╗ÕŖĀÕ»╣fastdex.runtime.antilazyload.AntilazyLoadń▒╗ńÜäõŠØĶĄ¢ Ķ┐ÖµĀĘÕüÜńÜäńø?ńÜ䵜»õĖ║õ║åͦŻÕå│class verifyńÜäķŚ?ķóś’╝ī Ķ»”µāģĶ»Ęń£ŗ Õ?ēÕŹōAppńāŁĶĪźõĖüÕŖ©µĆüõ┐?ÕżŹµŖĆµ£»õ╗ŗń╗Ź
  • 3ŃĆüÕ»╣ķĪ╣ńø?õ╗ŻńĀüÕüÜÕ┐½ń즒╝īõĖ║õ║åõ╗źÕÉÄĶĪźõĖüµēōÕīģµŚČÕ»╣µ»öķéŻõ║øjavaµ¢ćõ╗ČÕÅæńö¤õ║åÕÅśÕī¢
  • 4ŃĆüÕ»╣ÕĮōÕēŹķĪ╣ńø?ńÜäµēĆõ╗źõŠØĶĄ¢ÕüÜÕ┐½ń즒╝īõĖ║õ║åõ╗źÕÉÄĶĪźõĖüµēōÕīģµŚČÕ»╣µ»öõŠØĶĄ¢µś»ÕÉ”ÕÅæńö¤õ║åÕÅśÕ╝īÕ”éµ×£ÕÅśÕī¢ķ£ĆĶ”üµĖģķÖżń╝ōÕŁś
  • 5ŃĆüĶ░āńö©ń£¤µŁŻńÜätransformńö¤µłÉdex
  • 6ŃĆüń╝ōÕŁśńö¤µłÉńÜädex’╝īÕ╣ČõĖöµŖŖfastdex-runtime.dexµÅÆÕģźÕł░dexÕłŚĶĪ©õĖŁ’╝īÕüćÕ”éńö¤µłÉõ║åõĖżõˬdex’╝īclasses.dex classes2.dex ķ£ĆĶ”üÕüÜõĖĆõĖŗµōŹõĮ£ fastdex-runtime.dex => classes.dex classes.dex => classes2.dex classes2.dex => classes3.dex ńäČÕÉÄĶ┐ÉĶĪīµ£¤Õ£©ÕģźÕÅŻApplication(fastdex.runtime.FastdexApplication)õĮ┐ńö©MultiDexµŖŖµēƵ£ēńÜädexÕŖĀĶĮĮĶ┐øµØź
  • @see fastdex.build.transform.FastdexDexTransform
  • 7ŃĆüõ┐ØÕŁśĶĄäµ║ɵśĀÕ░äĶĪ©’╝īõĖ║õ║åõ┐صīüidńÜäÕĆ╝õĖĆĶć┤’╝īĶ»”µāģń£ŗ
  • @see fastdex.build.task.FastdexResourceIdTask
ĶĪźõĖüµēōÕīģµŚČńÜ䵥üń©ŗ
  • 1ŃĆüµŻĆµ¤źń╝ōÕŁśńÜäµ£ēµĢłµĆ¦
  • @see fastdex.build.variant.FastdexVariant ńÜäprepareEnvµ¢╣µ│ĢĶ»┤µśÄ
  • 2ŃĆüµē½µÅŵēƵ£ēÕÅśÕī¢ńÜäjavaµ¢ćõ╗ČÕ╣Čń╝¢Ķ»æµłÉclass
  • @see fastdex.build.task.FastdexCustomJavacTask
  • 3ŃĆüÕÉłÕ╣ȵēƵ£ēÕÅśÕī¢ńÜäclassÕ╣Čńö¤µłÉjarÕīģ
  • 4ŃĆüńö¤µłÉĶĪźõĖüdex
  • 5ŃĆüµŖŖµēƵ£ēńÜädexµīēńģ¦õĖĆÕ?ÜͦäÕŠŗµöŠÕ£©transformClassesWithMultidexlistFor${variantName}õ╗╗ÕŖĪńÜäĶŠōÕć║ńø?ÕĮĢ fastdex-runtime.dex => classes.dex patch.dex => classes2.dex dex_cache.classes.dex => classes3.dex dex_cache.classes2.dex => classes4.dex dex_cache.classesN.dex => classes(N + 2).dex

Thanks

Instant Run

Tinker

Freeline

Õ?ēÕŹōAppńāŁĶĪźõĖüÕŖ©µĆüõ┐?ÕżŹµŖĆµ£»õ╗ŗń╗Ź

AndroidÕ║öńö©ń©ŗÕ║ÅĶĄäµ║ÉńÜäń╝¢Ķ»æÕÆīµēōÕīģĶ┐ćń©ŗÕłåµ×É

You canŌĆÖt perform that action at this time.