麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > OS > 安卓 > 正文

Android使用美團多渠道打包方案詳解

2024-09-11 17:15:18
字體:
來源:轉載
供稿:網(wǎng)友

Andorid渠道市場有多分散呢?分散到比Android碎片化還嚴重,你還在為多渠道打包而頭疼嗎?美團提供了速度快到白駒過隙的多渠道打包方案。說的有點夸張,對,雖然夸張,但是確實很快,不夸張不足以形容其快。廢話不多說,先講原理,再講實踐方法。

新舊打包方法原理對比講解

傳統(tǒng)方式

在AndroidManifest定義渠道的年代,多渠道打包無非以下兩種方案:

方案一:完全的重新編譯,即在代碼重新編譯打包之前,在AndroidManifest中修改渠道標示; 方案二:通過ApkTool進行解包,然后修改AndroidManifest中修改渠道標示,最后再通過ApkTool進行打包、簽名。

這兩種打包方式,不管是哪種,效率都很低,方案一毫無效率可言,而且打包的渠道規(guī)模非常小,第二種方案效率稍微高些,打包的渠道規(guī)模也還可以,但是這兩種方案速度慢的驚人,如果你打個上百的渠道包試試,估計你的電腦能卡一下午。慢,當然也有好處,你可以不用工作了,喝著咖啡,玩著手機慢慢等也很愜意是不?哈哈……

美團高效的多渠道打包方案

美團高效的多渠道打包方案是把一個Android應用程序包當作一個zip文件包進行解壓,然后發(fā)現(xiàn)在簽名生成的目錄下添加一個空文件,空文件用渠道名來命名,而且不需要重新簽名。這種方式不需要重新簽名,編譯等步驟,使得這種方法非常高效。

第一步:解壓apk文件

我們直接解壓apk,解壓后的根目錄會有一個META-INF目錄

如果在META-INF目錄內(nèi)添加空文件,可以不用重新簽名應用。因此,通過為不同渠道的應用添加不同的空文件,可以唯一標識一個渠道。

第二步:用python腳本向apk文件中添加空渠道文件

我們用python代碼來給apk添加空的渠道文件,渠道名的前綴為mtchannel_:

import zipfilezipped = zipfile.ZipFile(your_apk, 'a', zipfile.ZIP_DEFLATED) empty_channel_file = "META-INF/mtchannel_{channel}".format(channel=your_channel)zipped.write(your_empty_file, empty_channel_file)

添加完空渠道文件后的目錄,META-INFO目錄多了一個名為mtchannel_meituan的空文件

第三步:用java代碼讀取渠道名,并動態(tài)設置渠道名

我們用腳本生成了文件之后,文件的名字是用渠道名來命名的,所以我們在啟動程序的時候,可以用java代碼動態(tài)讀取渠道名,并動態(tài)的去設置。

java代碼讀取渠道名的方法:

public static String getChannel(Context context) {    ApplicationInfo appinfo = context.getApplicationInfo();    String sourceDir = appinfo.sourceDir;    String ret = "";    ZipFile zipfile = null;    try {      zipfile = new ZipFile(sourceDir);      Enumeration<?> entries = zipfile.entries();      while (entries.hasMoreElements()) {        ZipEntry entry = ((ZipEntry) entries.nextElement());        String entryName = entry.getName();        if (entryName.startsWith("mtchannel")) {          ret = entryName;          break;        }      }    } catch (IOException e) {      e.printStackTrace();    } finally {      if (zipfile != null) {        try {          zipfile.close();        } catch (IOException e) {          e.printStackTrace();        }      }    }    String[] split = ret.split("_");    if (split != null && split.length >= 2) {      return ret.substring(split[0].length() + 1);    } else {      return "";    }  }
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 制服丝袜日日夜夜 | 国产91丝袜在线播放0 | 免费毛片视频 | 久久亚洲精品11p | 国产精品99久久久久久大便 | 午夜在线视频观看 | 欧美a∨一区二区三区久久黄 | 久草在线高清 | 国产成人自拍小视频 | 草草视频免费观看 | 国产精品久久久久久久久久久久午夜 | 久久蜜桃精品一区二区三区综合网 | 欧美精品在线视频观看 | 国产成人观看 | 欧产日产国产精品乱噜噜 | 国产日韩大片 | 国产剧情v888av | 欧美a区 | 91麻豆精品国产91久久久无需广告 | 深夜视频在线 | 欧美日韩手机在线观看 | 91短视频版高清在线观看免费 | 欧美性生活免费视频 | 禁漫天堂久久久久久久久久 | 欧洲精品久久久久69精品 | 九九热在线视频观看这里只有精品 | 性盈盈盈影院 | 亚洲国产精品久久久久久久久久 | 国产精品自拍av | 久久国产一级片 | 亚洲精品a在线观看 | 久久精品视频16 | chinese hd xxxx tube | 成年人国产视频 | 男人久久天堂 | 久久噜噜噜精品国产亚洲综合 | 欧美性色生活片免费播放 | www国产免费 | 久久国产精品久久久久久 | 日日做夜夜操 | 午夜激情视频免费 |