读取APK包中配置文件AndroidManifest.xml中的版本信息

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

import net.sf.json.JSONObject;

import org.apkinfo.api.util.AXMLPrinter2;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class ApkUtil {

    public JSONObject getApkInfo(String path) throws Exception {
        JSONObject json = new JSONObject();
        ZipFile zip = null;
        InputStream inputStream = null;
        try {
            zip = new ZipFile(path);
            ZipEntry entry = zip.getEntry("AndroidManifest.xml");
            inputStream = zip.getInputStream(entry);
            String context = AXMLPrinter2.parse(inputStream);
            SAXReader reader = new SAXReader();
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(context.getBytes("UTF-8"));
            Document doc = reader.read(byteArrayInputStream);
            Element rootElement = doc.getRootElement();
            json.put("versionCode", rootElement.attributeValue("versionCode"));
            json.put("versionName", rootElement.attributeValue("versionName"));
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(zip != null){
                zip.close();
            }
            if(inputStream != null){
                inputStream.close();
            }
        }
        return json;
    }

}