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中。现在想通过点击相应图标进入对应应用程序,应该怎么样实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)