Android插件化和動態加載框架:DynamicAPK

jopen 9年前發布 | 44K 次閱讀 Android Android開發 移動開發

實現Android多apk/dex方式的apk加載,支持資源分包

攜程App的插件化和動態加載框架已上線半年,經歷了初期的探索和持續的打磨優化,新框架和工程配置經受住了生產實踐的考驗。 Android DynamicApk 框架實現了多APK動態加載和HotFix解決方案,通過對aapt的修改實現資源分區,各個模塊可以單獨的配置資源的PackageID,做到真正的獨立APK模塊化。詳見:《攜程Android App插件化和動態加載實踐》

Benifit

  • 插件化架構適應開發節奏需求,不但從代碼層面,更從項目控制層面做到了高內聚低耦合,極大降低了溝通成本,提高了工作效率。
  • 拆分成多個小的插件后,dex從此告別方法數天花板。
  • HotFix為app質量做好最后一層保障方案,再也沒有無法挽回的損失了。
  • ABTesting脫離古老丑陋的if/else實現,多套方案隨心挑選按需加載。
  • 編譯速度大大提高,各BU只需使用宿主的編譯成果更新編譯自己子工程部分,分分鐘搞定。
  • App宿主apk大大減小,各業務模塊按需后臺加載或者延遲懶加載,啟動速度優化,告別黑屏和啟動ANR。
  • </ul>

    Modify aapt tool

    • add command argument : apk-module. ex: aapt ...... --apk-module 0x58 (ResourceID Of PackageID=0x58)
    • add RMerge.cpp to merge the --public-R-path and module R Path.So the output R file contains the Main apk R and the module apk R.
    • </ul>

      Build

      To build:

      項目主頁:http://www.baiduhome.net/lib/view/home/1446714684951

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!