<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          umeng-muti-channel-build-tool友盟渠道打包工具

          聯(lián)合創(chuàng)作 · 2023-09-24 22:48

          友盟渠道打包工具主要是提供基本的通過工程源碼打包的功能。

          常見錯誤見這里目前不支持的Apk特性見這里(可能會導(dǎo)致發(fā)布的SDK產(chǎn)生嚴(yán)重bug)。

          Google 現(xiàn)在已經(jīng)發(fā)布了最新的構(gòu)建系統(tǒng)(New Building System) , 在 Android Studio 中已經(jīng)支持了最新的 構(gòu)建系統(tǒng),如果開發(fā)者已經(jīng)遷移,可以使用新的系統(tǒng)方面的生成渠道包,這是取代渠道打包工具的最佳方式。

          1. 工程結(jié)構(gòu)

          工程結(jié)構(gòu)圖 :

          - CommonTools 共用的工具類,包括對 `Apktool` , `Jarsigner` , `zipalign` 的封裝
          - UIControls_35   共用的UI類,對大部分控件的樣式都是在這里設(shè)置的
          - UmengMarket  Marekt 組件,現(xiàn)在還沒有實現(xiàn)
          - UmengPackage 打包組件
          - UmengTools 工程主要UI,管理 UmengMarket, UmengPackage, UmengTools 三個組件
          - UmengWidget 小工具組件,目前僅有解包分析的功能

          打包工具組件:

          - Source - Builder - ApkBuilder.cs     通過 APK 打包的 Builder 實現(xiàn)
                             - Builder.cs            抽象 Builder 類,提供打包的主要邏輯
                             - SourceBuilder.cs通過源碼打包的 Builder 實現(xiàn) (目前代碼還沒有實現(xiàn))
          
                   - Worker.cs 打包過程對外接口

          3. 打包流程

          V2.0 版本僅實現(xiàn)了通過 .apk 打包的方式,本質(zhì)上對  apk 文件進(jìn)行反編譯,修改 AndroidManifest.xml 文件后,再重新打包,我們使用的工具是開源的拆包工具 Apktool

          1. 將  apktool  添加到當(dāng)前 process 的環(huán)境變量

          2. 執(zhí)行 apktool d --no-src -f xxxx.apk temp 拆解apk

          3. 替換或者添加 AndroidManifest.xml 中的 友盟channel

          4. 執(zhí)行apktool b temp  unsigned.apk 重新打包apk

          5. 執(zhí)行 SignApk.jar 生成簽名后的 apk 文件

          6. 執(zhí)行 zipAlign 生成對齊優(yōu)化后的 apk 文件

          7. 回到 3 替換新的渠道

          8. 完成打包

          使用  JarSigner.jar 給 Apk 簽名, SignApk.jar  文件是我們修改過的 apk 簽名工具,實現(xiàn)了和 ADT 中一樣的簽名方式,使用如下:

          Usage: signapk file.{keystore} keystore_password key_entry key_password
          input.apk
          output.apk
          
          瀏覽 15
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久成人影音先锋 | 天天澡日日久综 | 99成人视频免费观看 | 影音先锋成人资源在线观看 | 国产jlzz|