文档章节

android获取apk安装包信息

陆朋
 陆朋
发布于 2015/09/29 09:41
字数 249
阅读 290
收藏 1


public class TestActivity extends Activity {
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  String archiveFilePath="sdcard/jb51.net.apk";//安装包路径
  PackageManager pm = getPackageManager();
   PackageInfo info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);
    if(info != null){
     ApplicationInfo appInfo = info.applicationInfo;
     String appName = pm.getApplicationLabel(appInfo).toString();
     String packageName = appInfo.packageName; //得到安装包名称
     String version=info.versionName; //得到版本信息
     // Toast.makeText(TestActivity.this, , Toast.LENGTH_LONG).show();
     Drawable icon = pm.getApplicationIcon(appInfo);//得到图标信息
     TextView tv = (TextView)findViewById(R.id.tv);
     tv.setText("appName:"+appName+"---packageName:"+packageName);
     //显示图标
     ImageView tu=(ImageView)findViewById(R.id.imageView1);
     tu.setBackgroundDrawable(icon);
    }
   }

  }
 }

}







/** 
* 获取apk包的信息:版本号,名称,图标等 
* @param absPath apk包的绝对路径 
* @param context  
*/  
public void apkInfo(String absPath,Context context) {  

    PackageManager pm = context.getPackageManager();  
    PackageInfo pkgInfo = pm.getPackageArchiveInfo(absPath,PackageManager.GET_ACTIVITIES);  
    if (pkgInfo != null) {  
        ApplicationInfo appInfo = pkgInfo.applicationInfo;  
        /* 必须加这两句,不然下面icon获取是default icon而不是应用包的icon */  
        appInfo.sourceDir = absPath;  
        appInfo.publicSourceDir = absPath;  
        String appName = pm.getApplicationLabel(appInfo).toString();// 得到应用名  
        String packageName = appInfo.packageName; // 得到包名  
        String version = pkgInfo.versionName; // 得到版本信息  
        /* icon1和icon2其实是一样的 */  
        Drawable icon1 = pm.getApplicationIcon(appInfo);// 得到图标信息  
        Drawable icon2 = appInfo.loadIcon(pm);  
        String pkgInfoStr = String.format("PackageName:%s, Vesion: %s, AppName: %s", packageName, version, appName);  
        Log.i(TAG, String.format("PkgInfo: %s", pkgInfoStr));  
    }  
}

© 著作权归作者所有

陆朋
粉丝 7
博文 42
码字总数 34692
作品 0
深圳
后端工程师
私信 提问
使用aapt获取android apk信息(包名、启动Activity、权限)

使用aapt获取android apk信息(包名、启动Activity、权限) 1、 配置android sdk中appt的路径至环境变量,一般在androidsdk的build-tools文件夹内 2、 打开cmd窗口,输入aapt,有对应信息输出则...

xiaomin0322
2018/08/24
289
0
Android包管理机制(五)APK是如何被解析的

本文首发于微信公众号「刘望舒」 原文链接:APK是如何被解析的? 相关文章 包管理机制系列 前言 在本系列的前面文章中,我介绍了PackageInstaller的初始化和安装APK过程、PMS处理APK的安装和...

刘望舒
2018/10/18
0
0
Android包管理机制(一)PackageInstaller的初始化

前言 包管理机制是Android中的重要机制,是应用开发和系统开发需要掌握的知识点之一。 包指的是Apk、jar和so文件等等,它们被加载到Android内存中,由一个包转变成可执行的代码,这就需要一个...

刘望舒
2018/06/19
0
0
使用拷贝的方式(adb push) 绕过Android系统和adb install直接安装APK

某些情况下定制的Android系统为了限制用户安装应用,例如电视盒子,车载中控等,通过修改代码屏蔽了正常安装应用的方式 本文探讨如何在 adb shell 具有读写data分区目录的权限前提下,通过adb p...

applex007
03/21
0
0
命令行从Android手机中导出已安装APK的方法调研

一、背景 很多时候,APK文件只存在于应用市场,在PC上无法直接下载。用手机下载下来后就直接安装了,也不能保存原始的APK文件。 APK安装到手机后,Android系统会保存一份和原始APK一模一样的...

beijing_zbs
2014/11/02
7.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

32位与64位Linux系统下各类型长度对比

64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂);可以访问大型数据库。本文介绍的是64位下C语言开发程序注意事项。 1. 32 位和 64 位C数据类型...

mskk
15分钟前
4
0
Vue 实现点击空白处隐藏某节点(三种方式:指令、普通、遮罩)

在项目中往往会有这样的需求: 弹出框(或Popover)在 show 后,点击空白处可以将其 hide。 针对此需求,整理了三种实现方式,大家按实际情况选择。 当然,我们做项目肯定会用到 UI 框架,常...

张兴华ZHero
22分钟前
5
0
SpringBoot激活profiles你知道几种方式?

多环境是最常见的配置隔离方式之一,可以根据不同的运行环境提供不同的配置信息来应对不同的业务场景,在SpringBoot内支持了多种配置隔离的方式,可以激活单个或者多个配置文件。 激活Profi...

恒宇少年
23分钟前
6
0
PDF修改文字的方法有哪些?怎么修改PDF文件中的文字

PDF修改文字一直以来都是一个难以解决的问题,很多的办公族在办公的时候会有修改PDF文件中的文字的需要,可是PDF文件一般是不能进行编辑和修改的,难道就没有什么办法解决这个问题了嘛?不要...

趣味办公社
26分钟前
3
0
企业组织中采用服务网格的挑战

作者:Christian Posta 译者:罗广明 原文:https://blog.christianposta.com/challenges-of-adopting-service-mesh-in-enterprise-organizations/ 编者按 本文作者介绍了企业组织采用服务网...

jimmysong
36分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部