几行代码搞定AndroidManifest.xml的解析和安卓apk版本号获取

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014563989/article/details/81320866

AndroidManifest的解析

  • 最近需要去拿apk的版本号, 所以得通过AndroidManifest.xml来获取版本号, 但这个xml文件是加密的得先解密才行, 于是随便找了个解密轮子封装了一遍

  • API
String parse(String fileUrl);
String parse(InputStream in);
String parse(byte[] in);


  • 实例, 直接调AxmlUtil.parse即可一行搞定
public static void main(String[] args) {
    String axmlPath = "./resource/AndroidManifest.xml";
    String content = AxmlUtil.parse(axmlPath); // content即为明文
    System.out.println(content);
}



Apk版本号的获取

  • 思路很简单:
    • 解压apk获取AndroidManifest.xml—解析AndroidManifest.xml—xml转Document对象—找版本标签属性值
  • 直接贴代码
    public static String getApkVersion(InputStream in) {
        try {
            byte[] zipBytes = IOUtils.toByteArray(in);
            Map<String, byte[]> map = ZipUtil.unzip(zipBytes);
            byte[] xml = map.get("AndroidManifest.xml");
            String xmlStr = AxmlUtil.parse(xml);
            Document doc = XmlUtil.parseXMLContent(xmlStr);
            return doc.getElementsByTagName("manifest").item(0)
                 .getAttributes().getNamedItem("android:versionCode").getTextContent();
        } catch (Exception e) {
            logger.error(e);
        }
        return null;
    }
展开阅读全文

没有更多推荐了,返回首页