AndroidStudio的使用andnroid打包

美团多渠道打包原理以及使用

2016-08-11  本文已影响2080人  JonyLiu

传统打包方法原理

美团打包方法原理

实现

BDD16B70-7D68-471A-8511-E175E6381819.jpg
/** 
 * 从apk中获取版本信息 
 * @param context 
 * @param channelKey 
 * @return 
 */  
private static String getChannelFromApk(Context context, String channelKey) {  
    //从apk包中获取  
    ApplicationInfo appinfo = context.getApplicationInfo();  
    String sourceDir = appinfo.sourceDir;  
    //注意这里:默认放在meta-inf/里, 所以需要再拼接一下  
    String key = "META-INF/" + channelKey;  
    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(key)) {  
                ret = entryName;  
                break;  
            }  
        }  
    } catch (IOException e) {  
        e.printStackTrace();  
    } finally {  
        if (zipfile != null) {  
            try {  
                zipfile.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
    }  
    String[] split = ret.split("_");  
    String channel = "";  
    if (split != null && split.length >= 2) {  
        channel = ret.substring(split[0].length() + 1);  
    }  
    return channel;  
}  

实践使用

AnalyticsConfig.setChannel(ChannelUtil.getChannel(this))。

最后,喜欢的同学可以关注我的微信公众号,我会不定期的写一些相关的文章,吹一些牛逼、砍一些大山、来一些心灵鸡汤、搞一些不为人知的故事

qrcode_for_gh_5ab52f4f1c92_430.jpg

↑↑↑↑↑识别他、关注他↑↑↑↑↑

上一篇 下一篇

猜你喜欢

热点阅读