Android该怎样获取系统上安装的APP信息

Android该怎样获取系统上安装的APP信息,第1张

publicclass AppInfo {

public String appName="";

public String packageName="";

public String versionName="";

publicint versionCode=0;

public Drawable appIcon=null;

publicvoid print()

{

Logv("app","Name:"+appName+" Package:"+packageName);

Logv("app","Name:"+appName+" versionName:"+versionName);

Logv("app","Name:"+appName+" versionCode:"+versionCode);

}

}

ArrayList<AppInfo> appList = new ArrayList<AppInfo>(); //用来存储获取的应用信息数据

 List<PackageInfo> packages = getPackageManager()getInstalledPackages(0);

for(int i=0;i<packagessize();i++) {

PackageInfo packageInfo = packagesget(i);

AppInfo tmpInfo =new AppInfo();

tmpInfoappName = packageInfoapplicationInfoloadLabel(getPackageManager())toString();

tmpInfopackageName = packageInfopackageName;

tmpInfoversionName = packageInfoversionName;

tmpInfoversionCode = packageInfoversionCode;

tmpInfoappIcon = packageInfoapplicationInfoloadIcon(getPackageManager());

appListadd(tmpInfo);

}

// 这下手机上安装的应用数据都存在appList里了。

话不多说,直接上代码,此处,主要是在版本升级的时候,使用较多。private String getAppInfo() { try { String pkName = thisgetPackageName(); String versionName = thisgetPackageManager()getPackageInfo( pkName, 0)versionName; int versionCode = thisgetPackageManager() getPackageInfo(pkName, 0)versionCode; return pkName + " " + versionName + " " + versionCode; } catch (Exception e) { } return null; }

这个很简单,给你主要代码

PackageManager pm = getPackageManager(); // 得到PackageManager对象

// List<ApplicationInfo> packs = pmgetInstalledApplications(0); //

// 得到系统安装的所有程序包的PackageInfo对象

List<PackageInfo> packs = pmgetInstalledPackages(0); // 得到用户安装的所有程序包的PackageInfo对象

for (PackageInfo pi : packs) {

map = new HashMap<String, Object>();

// 显示用户安装的应用程序,而不显示系统程序

if ((piapplicationInfoflags & ApplicationInfoFLAG_SYSTEM) == 0

&& (piapplicationInfoflags & ApplicationInfoFLAG_UPDATED_SYSTEM_APP) == 0) {

// 这将会显示所有安装的应用程序,不包括系统应用程序

/

获得文件大小 publicSourceDir获得路径,再通过该路径创建一个文件new File(String dir),

得到该文件长度除以1024则取得该应用的大小。

取得程序大小,通过application的publicSourceDir获得。

取得程序时间,通过application的SourceDir获得。

/

String dir = piapplicationInfopublicSourceDir;

int size = IntegervalueOf((int) new File(dir)length());

long date = new Date(new File(dir)lastModified())getTime();

mapput("appName", piapplicationInfoloadLabel(pm));// 应用程序名称

mapput("icon", piapplicationInfoloadIcon(pm));// 图标

mapput("versionName", "版本 :" + piversionName);// 应用程序版本\

mapput("appSize2", size);// 应用程序大小

mapput("packages", piapplicationInfopackageName); // 应用程序包名

mapput("appSize", "大小 :" + ToSzie(size));// 应用程序大小

mapput("appDate", date);// 应用程序时间

itemsadd(map);

}

}

启动 :

String path ="package:"+vgetTag();

Uri packageURI = Uriparse(path);

Intent uninstallIntent = new Intent(this packageURI);

contextstartActivity(uninstallIntent);

桌面的名字是第一个activity的android:label。

进程的名字是application的android:label。

getApplicationLabel获取的是application的android:label。

希望能帮到你。

如下图中第三行package为comcolaui,第七行主Activity为comcolauiColaBox(ColaBox为Activity简写方式)。

<xml version="10" encoding="utf-8">

<manifest xmlns:android= schemasandroidcom/apk/res/android"

package="comcolaui"

android:versionCode="1"

android:versionName="100">

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name="ColaBox"

android:label="@string/app_name">

<intent-filter>

<action android:name="androidintentactionMAIN" />

<category android:name="androidintentcategoryLAUNCHER" />

</intent-filter>

</activity>

<activity android:name="Frm_Addbills"></activity>

<activity android:name="Frm_Editacctitem"></activity>

<activity android:name="Grid_bills"></activity>

<service android:name="LocalService" android:exported="true" android:enabled="true"/>

</application>

<uses-permission android:name="androidpermissionREAD_CONTACTS" />

</manifest>

二、只有Apk的情况

(1)aapt

使用命令行aapt dump xmltree ColaBoxapk AndroidManifestxml

(2)使用apktool

使用反编译工具apktool,反编译后打开AndroidManifestxml文件,查找方式同“有源码情况”

(3)aapt

三、没有apk,应用已经安装到手机或虚拟机中

1logcat

清除logcat内容,使用命令adb logcat -c

启动logcat,使用命令adb logcat ActivityManager:I :s

启动要查看的程序,

以上就是关于Android该怎样获取系统上安装的APP信息全部的内容,包括:Android该怎样获取系统上安装的APP信息、Android怎么获取一个包下的全部类名、Android获取到手机应用图标并显示在GridView中。现在想通过点击相应图标进入对应应用程序,应该怎么样实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9328544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存