android怎么获取自身apk大小?

获取安装后的app所占空间大小 获取安装后app所占空间大小,缓存和数据的大小 立即下载

很久没更新博客了,前不久看到看到公司的项目中获取app自身大小还是从服务器端反回回来的,还不能用。这么xxx不说了。下面就看看怎么获取自身app的大小的。

注:此处只是获取自己的apk的大小。

首先我们需要的是权限:

<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>

接下来当然是获取PackageManager了啊:

PackageManager mPackageManager=getPackageManager();
		try {
			PackageInfo pInfo=mPackageManager.getPackageInfo(getPackageName(),0);
			mPackageName=pInfo.packageName;
		} catch (NameNotFoundException e) {
			e.printStackTrace();
		}

在接下来 

//返回一个安装到设备上的所有应用程序包列表

List<ApplicationInfo> installList=mPackageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
		for (int i = 0; i < installList.size(); i++) {
			ApplicationInfo info=installList.get(i);
			if(info.packageName.equals(mPackageName)){//如果这个packagename和当前apk的packagename一样,你就可以获取它的大小了。
				String dir=info.publicSourceDir;
				int size=Integer.valueOf((int)new File(dir).length());
				BigDecimal apkSize=parseApkSize(size);
				tvSize.setText("apk大小:"+apkSize+"M");//最后显示的应用程序大小了
			}
		}

java中保留两位小数:

private BigDecimal parseApkSize(int size) {
		BigDecimal bd = new BigDecimal((double)size/(1024*1024));
                BigDecimal setScale = bd.setScale(2, BigDecimal.ROUND_DOWN);
		return setScale;
	}


纯JAVA环境获取APK信息:包名,版本,版本号,大小,权限... 纯JAVA环境获取APK信息:包名,版本,版本号,大小,权限... 代码讲解地址:http://blog.youkuaiyun.com/chillax_li/article/details/41850863 立即下载

相关推荐

Android获取应用程序大小的方法

今天碰到个问题,想获取某个已安装的包的大小,没找到合适的方法。搜索了一下,发现PackageManager里面有个getPackageSizeInfo方法,可惜是hide的,而且它执行之后,会将结果回调给IPackageStatsObserver的onGetStatsCompleted方法。后来想直接计算/data/app和/system/app里面的apk大小,可是有时候会碰到权限问题,需要root才可以获取大小。        再后来,我想起系统的设置里面有一个应用程序管理,它里面列出了所有程序的占用空间大小、数据大小和缓存大小。恩,这个就是突破口。以前写过一篇获取其他包的Context

Android获取安装应用Apk包大小 缓存大小 getPackageSizeInfo StorageManager

获取安装应用Apk包大小、缓存大小以及应用占用存储总大小 可以通过 PackageManager类的getPackageSizeInfo方法获取,但是这个方法被Google标记成隐藏方法,不能直接调用; 解决方法:可以通过反射调用,但在Android8.0及以上通过反射调用会报错,不过Android8.0及以上可以通过StorageManager 获取 Android8.0以下获取Apk大小方法: 通过反射调用getPackageSizeInfo获取 创建AIDL文件 创建文件 IPackageSta

B0xing的博客 4160

Android获取app应用程序大小的方法

Android对这种方法进行了封装,我们没有权限去调用这个方法,所以我们只能通过AIDL,然后利用Java的反射机制去调用系统级的方法。 下面上代码:(注释比较详细) /** * 作用:-----获取包的大小----- * @param context 上下文 * @param pkgName app的包名 * @param appInfo 实体类,用于存放App的某些信息 */ public static void getPkgSize(final Context context, String pkgName, final PhoneAppInfo appInfo)

android_基础_权限大全

转载自: https://www.cnblogs.com/shiwei-bai/p/4916794.html 1 android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.FLASHLIGHT 访问闪光灯,android开发网提示HTC .

写bug的蚊子的博客 3191

android apk包大小优化详解

1.使用开发工具 android studio   Build > Analyz APK 2.文件说明 assets:存放一些配置文件res:资源文件,图片、字符串、xml等classes.dex:字节码文件resources.arsc:编译后的二进制资源文件META-INF:存放的是签名信息,用来保证apk包的完整性和系统的安全。 接下来就从res,classes.dex , lib , assets下入手。 3.开始apk 大小优化    1).res中资源优化           A:图片压缩大小处理,如果对图片质量没有很大要求 完全可以压缩到几K或者几十K大小,在线压缩处理     

uniapp+萤石视频监控实战:解决ezuikit.js真机调试不显示的5个关键步骤

本文针对Uniapp集成萤石视频监控时ezuikit.js在真机调试中黑屏不显示的问题,提供了5个关键解决步骤。核心方案是采用Webview加载独立H5播放页,以规避跨平台环境差异,并详细阐述了资源放置、多端适配、通信处理及系统化排查方法,确保视频流稳定播放。

weixin_29001655的博客 286

Android 如何获取apk大小与时间

1,通过PackageManager获得已安装程序:java代码: List installedList = mPackageManager.getInstalledPackages(0); for (PackageInfo info : installedList) { mInstalledList.add(info.packageName + ":" + info.appl...

wodamazi 191

重带电粒子的能量歧离(energy straggling)

能量歧离,Bethe-Bloch

G751888629的博客 2298

Android中获取应用程序(包)的大小-----PackageManager的使用(二)

转载请注明出处:http://blog.youkuaiyun.com/qinjuning 通过第一部分&lt;&lt;Android中获取应用程序(包)的信息-----PackageManager的使用(一)&gt;&gt;的介绍,对PackageManager以及 AndroidManife.xml定义的节点信息类XXXInfo类都有了一定的认识。 本部分的内容是如何获取安装...

emowuyi 476

Win11+VSCode+TeXLive:学术党必备的LaTeX环境配置避坑指南(2024最新版)

本文详细介绍了如何在Windows 11系统下,通过VSCode编辑器与TeXLive发行版配置高效的LaTeX学术写作环境。针对国内用户常见的镜像下载慢、插件配置复杂等问题,提供了优化方案和避坑指南,帮助科研人员和学生快速搭建流畅的学术写作工作流。

plum99的博客 616

别再硬编码了!WinCC子画面动态加载的5种C脚本写法对比

本文深入解析WinCC子画面动态加载的5种C脚本实现方案,包括基础加载、路径动态解析、多语言切换、窗口自适应布局和混合架构交互。通过代码示例和场景分析,帮助开发者避免硬编码问题,提升工业自动化系统的交互效率和可维护性。特别推荐路径动态解析方案,有效解决项目路径管理的痛点。

weixin_29008691的博客 475

Android中获取应用程序(包)的大小-----PackageManager的使用(二) .

通过第一部分Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidManife.xml定义的节点信息类XXXInfo类都有了一定的认识。           本部分的内容是如何获取安装包得大小,包括缓存大小(cachesize)、数据大小(datasize)、应用程序大小(codesize

hufeng882412的专栏 1234

eCognition易康操作教程(二):多尺度分割基于多光谱数据构建规则集,结合DSM高程数据提取建筑物、树木和绿地

一、数据 数据来源:教程中的实验数据,共包含RGB三个波段,还有数字地表模型(以下简称DSM)文件。 图一 RGB影像 数据特征:数据范围较小,要素种类少,仅包含较多的建筑和大片的绿地。由于建筑的房顶使用的材料和材料颜色不同,所以建筑的光谱特征没有规律,是不连续的特征。而绿地的光谱特征则十分容易分辨。 但是建筑通常具有规则的形状,而且建筑相比于周围其他要素...

蒹葭苍苍 8302

android获取apk文件大小,Android 如何获取apk大小与时间 !!!!!!!!!

通过PackageManager获得已安装程序:java代码:List installedList = mPackageManager.getInstalledPackages(0);for (PackageInfo info : installedList) {mInstalledList.add(info.packageName + ":" + info.applicationInfo.pub...

weixin_39620629的博客 1262

YOLOv11改进策略【小目标改进】| 添加专用于小目标的检测层 附YOLOv1~YOLOv11的检测头变化详解

在目标检测领域,小目标检测一直是一个具有挑战性的问题。算法以其高效快速的特点受到广泛关注,然而在面对小目标时,仍存在一些局限性。本文将介绍如何在中添加小目标检测层,以提高对小目标的检测能力。原始模型结构如下:详细内容参考:YOLOv11原始模型结构介绍 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检

Limiiiing的博客 8794

利用autojs制作抢购支付宝消费劵的手机脚本

前期准备工作 1.打开支付宝,点击中间的抢消费券的广告 2.点击左上角,将抢购页面添加到首页 3.查看支付宝首页是否出现消费劵 . autojs代码 "auto"; functiontaskstart(){ sleep(1000); launchApp('支付宝'); toast("正在打开支付宝应用"); sleep(1000); varxf=textContains("消费").findOne().bounds(); ...

洛阳泰山的博客 1万+

Android--获取apk大小

//获取apk大小 public static String getPkgSize(final Context context, String pkgName) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { // getPackag...

超宇的博客 3169

R语言Rstudio突然无法启动且报错:ERROR system error 42 [str: 一, len: 3, from: UTF-8, to: ISO8859-1]...如何解决

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2846

android 8.0获取apk大小

private void getAppTotalsizeO() { try { StorageStatsManager storageStatsManager = (StorageStatsManager) mContext.getSystemService(Context.STORAGE_STATS_SERVICE); Storag...

等风来的博客 1939

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android获取apk文件大小,android怎么获取自身apk大小

下面的代码即可获取屏幕的尺寸: 在一个Activity的onCreate方法中,编写以下代码: DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 宽度(PX) int h...

weixin_30914893的博客 316

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android 如何获取apk大小与时间 !!!!!!!!!

通过PackageManager获得已安装程序: java代码: List installedList = mPackageManager.getInstalledPackages(0); for (PackageInfo info : installedList) {  mInstalledList.add(info.packageName + ":" + info.applic

dylancao的专栏 1148

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: 自己的第一个NDK的Demo
下一篇: Android中Xfermode简单用法
Halifax ‎
博客等级 码龄14年 4272粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Halifax ‎

交个朋友

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值