`
wiseideal
  • 浏览: 449666 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

解析apk文件的图标等内容

 
阅读更多

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.ArrayList;

import eric.test.R;

import android.app.Activity;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class main extends Activity {
	private ImageView img;
	private String archiveFilePath =Environment.getExternalStorageDirectory() + "/"+ "lindong/生活百事通之营养.apk";
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		img = (ImageView)findViewById(R.id.img);
		Drawable icon = getUninstallAPKIcon(this, archiveFilePath);
		img.setBackgroundDrawable(icon);
	}
	public static Resources getResources(Context context , String apkPath) throws Exception {  
        String PATH_AssetManager = "android.content.res.AssetManager";        
        Class assetMagCls = Class.forName(PATH_AssetManager);    
        Constructor assetMagCt = assetMagCls.getConstructor((Class[]) null);    
        Object assetMag = assetMagCt.newInstance((Object[]) null);    
        Class[] typeArgs = new Class[1];    
        typeArgs[0] = String.class;    
        Method assetMag_addAssetPathMtd = assetMagCls.getDeclaredMethod("addAssetPath",    
                typeArgs);    
        Object[] valueArgs = new Object[1];    
        valueArgs[0] = apkPath;    
        assetMag_addAssetPathMtd.invoke(assetMag, valueArgs);  
        Resources res = context.getResources();    
        typeArgs = new Class[3];    
        typeArgs[0] = assetMag.getClass();    
        typeArgs[1] = res.getDisplayMetrics().getClass();    
        typeArgs[2] = res.getConfiguration().getClass();    
        Constructor resCt = Resources.class.getConstructor(typeArgs);    
        valueArgs = new Object[3];    
        valueArgs[0] = assetMag;    
        valueArgs[1] = res.getDisplayMetrics();    
        valueArgs[2] = res.getConfiguration();    
        res = (Resources) resCt.newInstance(valueArgs);          
        return res;  
    }  
	
	public static Drawable getUninstallAPKIcon(Context context,String apkPath) {    
	    PackageManager pm = context.getPackageManager();    
	        PackageInfo info = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);          
	        Resources res = null;  
	        try {  
	        res = getResources(context,apkPath);  
	    } catch (Exception e) {  
	        return null;  
	    }  
	    if(info != null){  
	        ApplicationInfo appInfo = info.applicationInfo;  
	        return res.getDrawable(appInfo.icon);   
	    }  
	          
	    return null;          
	    } 
	

}

 

 其实关键还是获取可以获取apk内容的Resource对象

 

转自:http://blog.csdn.net/sky181772733/article/details/7220401

分享到:
评论

相关推荐

    java解析apk文件

    总结一下,Java解析APK文件涉及理解APK的ZIP结构、XML解析以及可能的外部工具调用。对于开发人员来说,掌握这些技能有助于在不安装Android Studio或SDK的环境中分析和处理APK文件。如果你正在处理的项目名为`ApkUtil...

    windows apk文件图标

    首先,APK文件图标在Windows中不能直接识别,因为Windows系统默认并不包含处理这种文件类型的解析器。"apkshellext"可能是用来扩展Windows Shell功能的组件,它允许系统识别并显示APK文件的图标。安装这个组件后,...

    Java解析apk文件

    本篇文章将深入探讨如何使用Java解析APK文件,提取其中的关键信息,包括版本号码、版本名称、包名、权限、最低支持的Android平台版本、SDK版本以及应用程序的相关元数据。 首先,我们需要了解APK文件的结构。APK是...

    APK 图标显示工具

    2. **图标提取**:工具内部可能包含了一个图标解析器,能够读取APK文件内的资源文件(res目录),特别是.mipmap或.drawable目录下的图标,找到适合显示的主应用图标。 3. **注册表修改**:在Windows系统中,文件...

    PC电脑端显示安卓APK图标轻松认出apk软件

    由于APK文件默认在Windows操作系统下以无图标的文本文件形式展示,这使得辨识变得困难。不过,通过一些方法和工具,我们可以让PC电脑端显示安卓APK的图标,从而更轻松地识别这些文件。以下是一些关键知识点和步骤: ...

    解析apk获取icon图标兼容linux和window

    有时,我们可能需要独立于Android SDK来解析APK文件,获取其中的图标(icon)信息,以便进行自动化测试、分析或设计工作。本文将详细介绍如何使用纯Java来实现这一目标,并解释如何在Linux和Windows操作系统上实现...

    网上下载apk并解析apk

    3. **分析资源文件**:资源文件夹 (res) 包含了应用的图标、布局、字符串等资源,通过解析这些文件可以了解应用的界面设计和文本信息。 4. **查看.dex 文件**:包含应用的 Dalvik 字节码,可以转换为 Java 代码以...

    PHP解析APK包获取所有信息

    本文将深入探讨如何利用PHP解析APK包,获取其中包含的各种元数据,如应用名称、版本信息、图标名以及包名等关键信息。 首先,我们需要了解APK文件的本质。APK是Android系统中应用的安装包格式,它实际上是一个ZIP...

    c#实现解析apk、ipa包

    虽然源代码已删除,但我们可以从项目名推断,它提供了一个基础的框架,用于读取和解析APK文件的某些部分。如果需要进一步的解析功能,如反编译DEX或处理IPA文件,可能需要结合其他开源项目或自行实现。 总结,使用...

    Java解析apk、ipa图标,包名,应用名称,版本号

    在Java中解析APK文件: 1. **读取APK图标**:APK的图标通常位于res/drawable目录下,文件名为“ic_launcher.png”或“app_icon.png”。可以使用Java的ZipInputStream和ZipEntry类来遍历ZIP文件内容,找到对应的图片...

    Java解析apk包

    当我们遇到Java解析APK时桌面图标问题提示的问题,这通常涉及到APK的资源解析和AndroidManifest.xml的处理。 首先,我们要理解APK的结构。一个APK文件本质上是一个ZIP格式的压缩包,其中包含以下关键文件: 1. ...

    java实现解析apk签名和图标信息

    本主题将深入探讨如何使用Java语言解析APK文件的签名和图标信息,这对于理解APK结构、验证应用安全性和自定义APK处理流程至关重要。 首先,我们需要了解APK的结构。一个APK文件本质上是一个压缩的ZIP文件,包含以下...

    解析apk/ipa图标/名称/包名/版本号等信息

    解析apk/ipa图标/名称/包名/版本号等信息,图标百分百解析出来,如果大家不需要解析图标,请移步到这篇博客:http://blog.csdn.net/moyanxuan_1993_2_24/article/details/51330060

    Java解析apk所需jar包

    Java作为一种广泛使用的编程语言,同样可以用于解析APK文件,以便进行逆向工程、分析或自动化处理。在Java中解析APK文件,通常需要依赖特定的库或工具,如“Java解析apk所需jar包”所提及的。 这个jar包很可能是...

    ApkShellExt(显示APK真实图标).zip

    在这个案例中,ApkShellExt读取APK文件内的资源信息,特别是应用的图标资源,然后将其显示在文件图标上。 **安全性和兼容性**: 在安装任何外部工具时,确保其来源可靠,避免潜在的安全风险。ApkShellExt应该只修改...

    解析apk的jar包

    `apk-parser-1.0.2.jar`是一个Java库,用于解析APK文件。这个库可能提供了API接口,允许开发者通过编程方式来读取APK的各种元数据。例如,可以使用这个库获取到APK的版本号,这是通过解析AndroidManifest.xml中的`...

    解析apk的包名,版本等基础信息

    了解并解析APK的包名、版本等基础信息对于开发者来说至关重要,这有助于调试、版本控制以及市场合规性检查。本文将深入探讨如何解析这些信息,并介绍一个名为"APKhelper"的工具,它能够帮助我们轻松获取这些数据并...

    python aapt分析apk文件,获取应用包名,版本号,版本名

    python aapt 分析APK文件,获取应用包名,版本号,版本名 代码直接复制即可,亲测多次可用,

    电信设备-一种在计算机上直接解析Android安装文件APK文件信息的方法.zip

    要解析APK文件,通常需要用到各种工具或编程语言,例如Java、Python或专门的APK分析工具如Apktool、dex2jar和JD-GUI等。 1. **Apktool**:这是一个开源工具,用于反编译APK文件,可以解码资源.arsc文件(包含了应用...

Global site tag (gtag.js) - Google Analytics