• 大小: 69.17MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-24
  • 语言: Java
  • 标签: ipa  

资源简介

Java解析apk/ipa读取包名、版本名、版本号等等信息源码,自己总结,希望对大家有所帮助。

资源截图

代码片段和文件信息

package com.zsl.cn;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;

import org.apkinfo.api.util.AxmlResourceParser;
import org.apkinfo.api.util.TypedValue;
import org.apkinfo.api.util.xmlPullParser;

import com.dd.plist.NSDictionary;
import com.dd.plist.NSString;
import com.dd.plist.PropertyListParser;
/**
 * 
 * @author ZSL
 *
 */
public final class ReadUtil {
/**
 * 读取apk
 * @param apkUrl
 * @return
 */
public static Mapject> readAPK(String apkUrl){
ZipFile zipFile;
Mapject> map = new HashMapject>();
try {
zipFile = new ZipFile(apkUrl);
Enumeration enumeration = zipFile.entries();
ZipEntry zipEntry = null;
while (enumeration.hasMoreElements()) {
zipEntry = (ZipEntry) enumeration.nextElement();
if (zipEntry.isDirectory()) {

} else {
if (“androidmanifest.xml“.equals(zipEntry.getName().toLowerCase())) {
AxmlResourceParser parser = new AxmlResourceParser();
parser.open(zipFile.getInputStream(zipEntry));
while (true) {
int type = parser.next();
if (type == xmlPullParser.END_DOCUMENT) {
break;
}
String name = parser.getName();
if(null != name && name.toLowerCase().equals(“manifest“)){
for (int i = 0; i != parser.getAttributeCount(); i++) {
if (“versionName“.equals(parser.getAttributeName(i))) {
String versionName = getAttributeValue(parser i);
if(null == versionName){
versionName = ““;
}
map.put(“versionName“ versionName);
} else if (“package“.equals(parser.getAttributeName(i))) {
String packageName = getAttributeValue(parser i);
if(null == packageName){
packageName = ““;
}
map.put(“package“ packageName);
} else if(“versionCode“.equals(parser.getAttributeName(i))){
String versionCode = getAttributeValue(parser i);
if(null == versionCode){
versionCode = ““;
}
map.put(“versionCode“ versionCode);
}
}
break;
}
}
}

}
}
zipFile.close();
} catch (Exception e) {
map.put(“code“ “fail“);
map.put(“error““读取apk失败“);
}
return map;
}

private static String getAttributeValue(AxmlResourceParser parser int index) {
int type = parser.getAttributeValueType(index);
int data = parser.getAttributeValueData(index);
if (type == TypedValue.TYPE_STRING) {
return parser.getAttributeValue(index);
}
if (type == TypedValue.TYPE_ATTRIBUTE) {
return String.format(“?%s%08X“ getPackage(data)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-05-05 22:00  ReadApkAndIpa\
     文件         440  2016-05-05 22:00  ReadApkAndIpa\.classpath
     文件         389  2016-05-05 15:00  ReadApkAndIpa\.project
     目录           0  2016-05-05 15:00  ReadApkAndIpa\.settings\
     文件         598  2016-05-05 15:00  ReadApkAndIpa\.settings\org.eclipse.jdt.core.prefs
     目录           0  2016-05-06 10:49  ReadApkAndIpa\bin\
     文件       47385  2016-05-06 09:50  ReadApkAndIpa\bin\150211092729.ipa
     文件    13403998  2016-05-06 09:34  ReadApkAndIpa\bin\150211100441.apk
     目录           0  2016-05-05 22:00  ReadApkAndIpa\bin\com\
     目录           0  2016-05-05 22:00  ReadApkAndIpa\bin\com\zsl\
     目录           0  2016-05-06 09:43  ReadApkAndIpa\bin\com\zsl\cn\
     文件        7392  2016-05-06 10:49  ReadApkAndIpa\bin\com\zsl\cn\ReadUtil.class
     文件    24385760  2016-05-06 09:43  ReadApkAndIpa\bin\shenmiaotaowang_966.apk
     目录           0  2016-05-06 10:49  ReadApkAndIpa\src\
     文件       47385  2016-05-06 09:50  ReadApkAndIpa\src\150211092729.ipa
     文件    13403998  2016-05-06 09:34  ReadApkAndIpa\src\150211100441.apk
     目录           0  2016-05-05 18:24  ReadApkAndIpa\src\com\
     目录           0  2016-05-05 18:24  ReadApkAndIpa\src\com\zsl\
     目录           0  2016-05-06 09:43  ReadApkAndIpa\src\com\zsl\cn\
     文件        7474  2016-05-06 10:49  ReadApkAndIpa\src\com\zsl\cn\ReadUtil.java
     文件    24385760  2016-05-06 09:43  ReadApkAndIpa\src\shenmiaotaowang_966.apk
     目录           0  2016-05-05 22:00  ReadApkAndIpa\webapp\
     目录           0  2016-05-05 22:00  ReadApkAndIpa\webapp\lib\
     文件     1818834  2016-04-18 12:55  ReadApkAndIpa\webapp\lib\AxmlResourceParser.jar
     文件       63672  2016-04-18 12:55  ReadApkAndIpa\webapp\lib\dd-plist-1.16.jar

评论

共有 条评论