1,通过PackageManager获得已安装程序:
java代码:
List installedList = mPackageManager.getInstalledPackages(0);
for (PackageInfo info : installedList) {
mInstalledList.add(info.packageName + ":" + info.applicationInfo.publicSourceDir + ":" + info.application.SourceDir);
count++;
}
packageName取得应用图标应用名称等等;通过PackageInfo的applicationInfo的publicSourceDir获得路径,再通过该路径创建一个文件new File(String dir),得到该文件长度除以1024则取得该应用的大小。
1)取得程序大小,通过application的publicSourceDir获得。
2)取得程序时间,通过application的SourceDir获得。
java代码:
new Date(new File(fileDir).lastModified()).toGMTString();
通过PackageManager类的getInstalledApplications方法返回一个ApplicationInfo数组,ApplicationInfo类中sourceDir可以获取APK的文件路径,从而使用File类读取文件的上次修改时间而实现。但这可能导致:
1. 无法获取原始的创建时间,可能很早就被创建了,之后被替换了。
2. 如果这个APK在一个私有的位置,比如app-private目录,使用Market付费购买的应用在这个位置,如果没有Root的Android手机是没有权限读取的,也导致获取时间失败。
在Android 2.3 API Level为9中,ApplicationInfo类新增的firstInstallTime和lastUpdateTime这两个字段,可以直接获取到APK的创建或上次修改的时间,即使是付费软件也能正常的获取。
java代码:
/**
* 获取已经安装的软件列表
* @param getSysPackages
* @return
*/
public static ArrayList<MyApplicationInfo> getInstalledApps(){
ArrayList<MyApplicationInfo> res = new ArrayList<MyApplicationInfo>();
List<ApplicationInfo> installedAppList = mPackageManager.getInstalledApplications(
PackageManager.GET_UNINSTALLED_PACKAGES);
if (installedAppList == null) {
return null;
}
List<ApplicationInfo> appList =new ArrayList<ApplicationInfo> ();
for (ApplicationInfo appInfo : installedAppList) {
boolean flag = false;
if ((appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
flag = true;
} else if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
flag = true;
}
if (flag) {
appList.add(appInfo);
}
}
for(int i=0;i<appList.size();i++) {
ApplicationInfo p = appList.get(i);
String dir = p.publicSourceDir;
int size = Integer.valueOf((int) new File(dir).length());
String date = new Date(new File(dir).lastModified()).toGMTString();
MyApplicationInfo newInfo = new MyApplicationInfo();
newInfo.appName = p.loadLabel(mPackageManager).toString();
newInfo.packageName = p.packageName;
newInfo.size = round(size);
try {
newInfo.versionName =mPackageManager.getPackageInfo(newInfo.packageName, 0).versionName;
newInfo.versionCode =String.valueOf(mPackageManager.getPackageInfo(newInfo.packageName, 0).versionCode);
} catch (Exception e) {
Log.e("PackageUtil", e.getMessage());
}
newInfo.icon = p.loadIcon(mPackageManager);
res.add(newInfo);
}
return res;
}
分享到:
相关推荐
2. **自定义参数**:用户可以根据需要调整测试参数,如数据包大小、传输方向(上传/下载)、连接数、持续时间等。 3. **实时报告**:在测试过程中,iPerf3会实时显示带宽、延迟抖动和数据包丢失率,以便快速评估网络...
iperf3提供了一系列参数,允许用户自定义测试设置,如测试时间、传输协议(TCP或UDP)、端口号、缓冲区大小等。例如,要测试TCP带宽,用户可以输入命令`iperf3 -c server_ip -t duration -b bandwidth`,其中`server...
随着项目的不断迭代,功能越来越多,构建出来的apk文件的大小也会越来越大,这样会导致在移动网络情况下下载时,使用的网络流量会增大,并且apk太大,导致下载的时间也增加,虽然当前每个人的手机的流
这可以通过使用像ProGuard这样的工具实现,它能减小APK大小并提高安全性。 2. **资源加密**:将应用中的图片、音频、XML文件等资源进行加密,使得它们在未解密前无法被直接读取。加密后的资源通常会存储在单独的...
通过蓝牙,用户可以在不同的Android设备间方便地传输各种类型的数据,包括应用程序(APK)文件。以下将详细介绍如何实现这一功能,并基于`BluetoothDemo`项目进行修改以支持APK的传输。 1. **开启蓝牙**: 在...
这个过程可能需要一些时间,具体取决于项目的大小和复杂度。 ### 四、APK的分发与安装 一旦打包完成,你会在指定的目录下找到生成的APK文件。这个文件可以直接通过电子邮件、云存储或物理介质等方式分发给用户,...
一、Android APK性能测试的重要性 在Android平台上,性能测试有助于识别和解决可能导致应用卡顿、耗电过快或内存泄漏等问题。通过测试,开发者可以优化代码,提升用户体验,降低功耗,从而提高应用的市场竞争力。 ...
- `-n`:设置传输的数据量大小,与`-t`不能同时使用。 - `-b`:设置目标比特率,UDP默认为1Mbit/s,TCP没有限制。 - `-l`:设置读取或写入的缓冲区长度,TCP默认为128KB,UDP默认为1460。 - `-O`:忽略测试开始前几...
对于Android平台,iperf3通常以apk形式存在,便于在移动设备上安装和使用。这使得用户可以方便地测试手机或平板电脑的网络状况,无论是WiFi还是蜂窝数据连接。在Android设备上,iperf3同样提供了丰富的测试选项,...
### 安装APK在Android模拟器上的详细教程 #### 安装Java JDK 首先,我们需要确保计算机上...以上就是如何在电脑上安装APK文件至Android模拟器的详细步骤,通过这些步骤可以实现在PC端对Android应用程序的测试与调试。
4. **签名一致性**:所有子模块APK必须与主APK使用相同的签名,以确保安全性和系统的认可。"AnySubPackage"应提供这样的签名功能,保证所有拆分后的APK都具有正确的签名。 5. **更新策略**:当有新的子模块APK发布...
用户可以通过调整数据包大小、传输模式和持续时间来适应不同的网络环境,从而得到网络的实际传输速率。 2. **双向测试**:它不仅支持客户端到服务器的单向测试,还支持服务器到客户端的双向测试,全面评估网络的...
以前一直用WM智能机,现在用Android手机,以前的收租软件又不能用了,于是唯有试以前一直用WM智能机,现在用Android手机,以前的收租软件又不能用了,于是唯有试着重写一个...采用SQLITE数据库,安装apk大小125K.
3. **更新维护**:随着项目的迭代,需要定期检查插件的配置,以确保继续有效地减小APK大小。 "thinApkFile-master"这个压缩包文件很可能包含了插件的源代码,这对于想要深入理解其工作原理或者定制功能的开发者来说...
获取文件大小的操作可能会消耗一些时间,因此建议在后台线程执行,以避免阻塞UI。 7. **优化用户体验**: 在显示应用程序大小时,可以考虑添加进度条或者异步更新,让用户知道加载状态。 通过以上方法,开发者...
5. **热更新和增量更新**:为了减少用户更换主题时的等待时间,可以采用热更新或增量更新技术,只上传和下载改动过的资源文件,而不是整个APK。 6. **兼容性问题**:在处理主题更换时,需要注意不同Android版本和...
8. 创建AVD:在AVD Manager中,用户可以创建新的虚拟设备,设定设备名称、选择目标Android版本、SD卡大小、屏幕分辨率等参数,以模拟不同类型的安卓设备。 9. APK安装器:APK安装器是一个工具,用于在模拟器或真实...
### APK模拟器与Android模拟器安装使用教程 #### 一、环境搭建与配置 ##### 1. 安装Java环境 APK模拟器即Android模拟器的运行依赖于Java环境,因此,在开始安装之前,首先确保您的计算机上已经安装了Java。如果...
2. 资源优化:合理使用图片资源,如使用Nine-Patch图,优化颜色值,减少APK大小。 3. 启动优化:减少启动时间,通过延迟加载和使用Splash Screen提升用户体验。 4. 内存管理:避免内存泄漏,正确使用弱引用,监控...
【Android SDK安装与APK运行教程】 Android SDK(Software Development Kit)是开发Android应用程序的必备工具包,包含了各种工具、库文件以及API文档,用于帮助开发者构建、调试和发布Android应用。以下是一步步教...