java 解析android apk中AndroidManifest.xml文件思路:将apk文件当做zip文件,读取zip文件中AndroidManifest.xml,然后采用解析xml方式读取,读取过程中需要对解析的androidmanifest.xml采用AXMLPrinter2进行乱码解析
ZipFile zip = new ZipFile(req.getRealPath("") + "/apk/ElectricitySecurity.apk");
ZipEntry entry = zip.getEntry("AndroidManifest.xml");
InputStream inputStream = zip.getInputStream(entry);
String context = AXMLPrinter2.parse(inputStream);
SAXReader reader = new SAXReader();
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(context.getBytes("UTF-8"));
try {
Document doc = reader.read(byteArrayInputStream);
Element rootElement = doc.getRootElement();
PrintWriter writer = resp.getWriter();
JSONObject json = new JSONObject();
json.put("code", rootElement.attributeValue("versionCode"));
json.put("name", rootElement.attributeValue("versionName"));
writer.write(json.toString());
writer.close();
} catch (DocumentException e) {
e.printStackTrace();
}