Android 如何获取apk大小与时间

手把手教你绕过网易易盾验证码:滑块、点选、语序全攻略 本文深度解析了以网易易盾为代表的现代验证码技术,重点探讨了滑块、点选、语序及空间推理等交互式验证码的工作原理与对抗策略。文章从行为验证和空间推理的核心逻辑出发,剖析了验证码交互的数据流与关键参数,并提供了模拟人类行为轨迹、维护设备指纹等工程实践方法,旨在帮助开发者在合规前提下设计更健壮的自动化流程。 阅读详情

通过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 getInstalledApps(){ 
ArrayList res = new ArrayList();
List installedAppList = mPackageManager.getInstalledApplications(
PackageManager.GET_UNINSTALLED_PACKAGES); 
if (installedAppList == null) {
return null;
}
List appList =new ArrayList ();
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 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;
}

手把手教你学Simulink——基于Simulink的重复控制抑制周期性负载转矩扰动 传统的PI调节器在面对这类特定频率的周期性扰动时,会因积分器的相位滞后而导致转速出现明显的纹波(如6次、12次谐波),严重影响系统的控制精度和静音性能。:要在频率 fd​处获得较高的开环增益以抑制扰动,必须大幅增加PI的比例系数 Kp​,但这会牺牲系统的相位裕度,导致高频共振甚至系统失稳;:电机转速变化时,基频 fbase​会变,导致 6次谐波频率 6×fbase​也在变。设系统的采样周期为 Ts​,目标抑制的周期性扰动频率为 fd​(rad/s),则对应的周期采样点数 N=fd​Ts​2π​。 阅读详情

相关推荐

STM32接入CH340芯片的升级电路及初始化进入升级模式(死机)问题处理

MCU-REST 在 MCU-BOOT0 处于低电平状态下,进行下拉操作,在MCU-REST 与 MCU-BOOT0 恢复正常电平时,将导致MCU死机,MCU-REST 先于 MCU-BOOT0 下拉可解决该问题;MCU-REST 在 上升沿结束时将判断 MCU-BOOT0 的状态,MCU-BOOT0 处于高电平,MCU死机,MCU-BOOT0 处于低电平 MCU 正常;

LuDvei的博客 2490

Android 获取安装的app

在Android逆向中,很多目标app会获取设备安装的app列表来判断设备的环境是否干净,下面将会从几个点分析如何获取设备安装的app。

Android_machong的博客 1738

数电实训:万年历

万年历

Lmyccq的博客 1万+

解决Android11版本无法获取安装应用APP版本号的问题

导读: 开发过程中,需要知道某个APP的版本号,在安卓模拟器(android7版本)中可以正常获取到版本号,但真机(android11版本)测试时,却无法获取,经过查资料才知道是因为Android11的包可见性导致的。 在Android11中,除了默认的一些应用外,我们不能直接获取到软件包是否已经安装了,换句话说我们安装了一个应用,但是我们调用 getInstalledApplications() 或 getInstalledPackages()的可能没有返回此包名,这就是Android11引入的包可

美奇软件开发工作室 4210

STM32CubeMX + HAL库避坑指南:为什么你的代码总在SystemClock_Config卡住?

本文深入剖析了STM32开发者在使用STM32CubeMX和HAL库时,代码在SystemClock_Config函数中卡死的根本原因。文章不仅指出硬件时序、Flash延迟配置等常见陷阱,更提供了从硬件设计、软件容错到深度调试的系统性解决方案,帮助开发者构建鲁棒的时钟初始化策略,彻底告别启动卡顿问题。

bb456的博客 928

KV STUDIO的安装与实践(一)

KV STUDIO是一种软件开发工具,用于编写、调试和管理基于Key-Value(键-值)存储的应用程序。KV STUDIO提供了一个集成开发环境(IDE),使开发人员可以方便地创建和管理键-值数据库,并编写逻辑和业务规则来操作和查询这些数据。它支持多种编程语言和平台,并提供了丰富的API和工具来简化开发过程。使用KV STUDIO,开发人员可以快速构建高效、可靠的键-值存储系统,并实现各种应用程序,如缓存、会话管理、配置存储等。本次使用plc进行案例讲解,结合小编的亲身经历,仅供参考!

weixin_47514459的博客 6346

Android知识点记录

1.Android中的activity如果开启了子线程,即使当前此activity被finish,子线程如果没有执行完毕,也依旧会在后台继续执行。有时候会产生bug,因此最好的解决方法是在run方法中的while循环添加变量控制,while(run),退出activity时将run=false即可。2.activity默认在屏幕横竖切换时会reset,即从头开始执行,对正在运行的进程来说是非常不合理

zhhtao89的专栏 568

车载以太网测试-1【TC8物理层测试基础】

车载以太网物理层是车载网络的基础,负责将数字数据转换为适合在物理介质上传输的信号,并确保数据传输的可靠性、稳定性和高效性。它在车载网络系统中扮演着至关重要的角色,直接影响着车辆内部通信的性能和效率。1. 主要物理层标准车载以太网标准由IEEE 802.3和标准名称速率线缆类型编码方式应用场景100BASE-T1100 Mbps单对非屏蔽双绞线车载摄像头、传感器1 Gbps单对屏蔽/非屏蔽双绞线自动驾驶域控制器、高清视频10BASE-T1S10 Mbps单对双绞线幅移键控(ASK)

车载网络测试工程师的博客 4390

android初学------获取所有安装的应用信息

获取所有安装应用信息   public static List getAllAppLicationInfo(Context context,PackageManager pm){ List apps = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES | Packa

xiaxiayige的专栏 1374

解锁Gemini+Google Sheets/Excel:数据分析自动化新姿势

本文介绍了如何将谷歌AI工具Gemini集成到Google Sheets和Excel中进行智能数据分析。主要内容包括:1) Gemini的功能特点,具备语言理解和生成能力;2) 在Google Sheets中的集成步骤,包括订阅Workspace、开启Gemini功能及使用方法;3) 通过第三方插件在Excel中使用Gemini的方法;4) 销售和财务数据分析的实际案例;5) 使用时的注意事项,包括数据安全、问题处理和常见错误解决。通过Gemini集成,用户可以实现高效的数据处理和智能分析,提升工作效率。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 569

【现代人形机器人:从物理建模到大模型驱动的控制与学习】第1章 机器人建模回顾

本章建立读者进行后续控制 / 优化 / 学习工作的数学与计算基础。内容分为三大块:刚体运动学:位姿表示、坐标变换、旋转参数与李代数/李群(指数映射、twist)多关节机构的正/逆运动学:DH 与 POE 两种建模、雅可比矩阵推导、数值/解析逆解方法与奇异性问题约束动力学:拉格朗日公式、牛顿—欧拉递归算法、接触/冲击模型、受约束系统的方程(拉格朗日乘子与互补性条件)每一节同时给出与练习题。假设读者已具备线性代数(矩阵、特征分解、SVD)、多变量微积分与基础力学(牛顿第二定律)知识。

u012133341的博客 185

返回当前设备上安装的应用包集合

//     PackageManager packageManager = MainActivity.this.getPackageManager(); //     /*getInstalledApplications 返回当前设备上安装的应用包集合 //     * ApplicationInfo对应着androidManifest.xml中的application标签。通过它可以获取该

u011878387的专栏 734

TSN新技术,让您的设备网络“更实时、更确定、更安全”

近日,工业和信息化部发布了2022年第23号公告,批准发布行业标准YD/T 4134-2022《工业互联网时间敏感网络需求及场景》。该标准是国内首个时间敏感网络(TSN)技术标准,标志着我国TSN技术标准体系建设迈出了坚实的一步,对构建工业互联网网络标准体系具有重要意义。TSN源于Time-Sensitive Networking的缩写,中文译名为时间敏感网络,因其具备的确定性和微秒级交互特性,受到了对实时性要求较高的工业控制领域的关注。TSN与工业数智化。

创龙,嵌入式一体化解决方案商 771

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

计算机控制技术及应用

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

visio安装包

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

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

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

dylancao的专栏 1148

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

仿QQ获取手机中的APK并分享

前几天看到同事里有一个界面绚丽的应用,觉得有点意思,就让他把APK发给我,我想反编译看看里面的代码。 结果,这哥们在手机里找了好一阵子,最后给我说:手机没有root,找不到APK文件在哪里。 我再让他试试其他机子,结果都差不多:要不然找起来很麻烦,要不然根本都找不到。 这时,测试的妹子说:手机QQ有这个功能。我打开手机QQ一看,果然有,平时都没有注意到啊。 这个功能

限量发行的专栏 2098

android qq apk,仿QQ获取手机中的APK并分享的实现

前几天看到同事里有一个界面绚丽的应用,觉得有点意思,就让他把APK发给我,我想反编译看看里面的代码。结果,这哥们在手机里找了好一阵子,最后给我说:手机没有root,找不到APK文件在哪里。我再让他试试其他机子,结果都差不多:要不然找起来很麻烦,要不然根本都找不到。这时,测试的妹子说:手机QQ有这个功能。我打开手机QQ一看,果然有,平时都没有注意到啊。这个功能点稍作总结:1. 每个item包括:应用...

weixin_36034659的博客 872

Android 获取当前 手机/平板 安装程序并将apk文件进行社会化分享

目的:获取当前设备所有安装应用,并将该应用的安装包通过社会化分享 分享到其他地方! 解决问题:在应用安装完成之后,系统会自动或者半自动的将安装包进行清除,当想用这个apk文件的时候反而就找不到了,就得重新网络下载,通过此功能可以解决此一部分的问题,功能就是这么功能,具体功能使用怎么延伸就看各自的需求了。 结果演示: ...

丿灬 红尘醉的博客 1947

仿QQ获取设备中APK并分享

前几天看到同事里有一个界面绚丽的应用,觉得有点意思,就让他把APK发给我,我想反编译看看里面的代码。结果,这哥们在手机里找了好一阵子,最后给我说:手机没有root,找不到APK文件在哪里。我再让他试试其他机子,结果都差不多:要不然找起来很麻烦,要不然根本都找不到。这时,测试的妹子说:手机QQ有这个功能。我打开手机QQ一看,果然有,平时都没有注意到啊。这个功能点稍作总结: - 每个item包括:应用...

Android小码农的博客 479

Android 性能数据采集

不需要再安装任何性能监测工具,直接如下访问,帮助完成性能数据的获取和查看。 Android apk 需要关注的点:apk大小、apk启动时间、流量、电量、CPU运行时长、内存、actvity切换时间等。 android性能数据采集: 流量数据:      /proc/self/net/dev   中的:eth0 和 rmnet0 对应数据

2933
上一篇: sqlite 数据库官方文档(翻译版)
下一篇: android 使用eclipse 调试 so
chenghai2011
博客等级 码龄15年 22粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值