android 获取apk资源,android-apk-parser

APK解析库

68747470733a2f2f636972636c6563692e636f6d2f67682f6a6f616b696d652f616e64726f69642d61706b2d7061727365722e7376673f7374796c653d737667

用于读取/解析 packageName。versionName。versionCode信息的简单类,以及已经编译的androidsdk文件中的更多内容。

通过解压 AndroidManifest.xml 文件并解码编译好的XML二进制文件来收集这里信息,就可以实现。

我一直在用它来实现各种android工件的自动版本管理。 为了希望其他人会发现它是有用的,我在 Apache源许可证 2.0下分享了这个代码库。

用法

已经将库的快照部署到以下 dependency 下的oss.sonatype.org。

net.erdfelt.android

apk-parser

1.1

一旦你拥有了依赖项( 不需要其他传递依赖项),你就可以使用下面的代码来获取所需的信息。package net.erdfelt.android.example;

import java.io.File;

import net.erdfelt.android.apk.AndroidApk;

public class ApkDump {

public static void main(String[] args) {

if(args.length <1) {

System.err.println("Usage: ApkDump [apkfile]");

System.exit(-1);

}

File apkfile = new File(args[0]);

if(!apkfile.exists()) {

System.err.println("Error: File Not Found:" + apkfile);

System.exit(-1);

}

try {

AndroidApk apk = new AndroidApk(apkfile);

System.out.println("APK:" + apkfile);

System.out.println(". packageName =" + apk.getPackageName());

System.out.println(". appVersion =" + apk.getAppVersion());

System.out.println(". appVersionCode =" + apk.getAppVersionCode());

} catch(Throwable t) {

t.printStackTrace(System.err);

}

}

}

也就是说,非常简单的部分是编译二进制xml文件,这应该容易扩展到in文件( 包括资源)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apache license 2.0如何使用防止法律纠纷_go语言使用Swaggo详细教程

相信很多程序猿和我一样不喜欢写API文档。写代码多舒服&#xff0c;写文档不仅要花费大量的时间&#xff0c;有时候还不能做到面面具全。但API文档是必不可少的&#xff0c;相信其重要性就不用我说了&#xff0c;一份含糊的文档甚至能让前后端人员打起来。 而今天这篇博客介绍的…

android执行main函数,AndroidStudio执行main方法报错

问题&#xff1a;有时在开发中想直接写一个java文件来测试一些东西&#xff0c;但是AndroidStudio执行的时候会报错。代码信息&#xff1a;public class HelloWorld {public static void main(String[] args) {System.out.println("HelloWorld");}}报错信息12:04:41:…

hive 导出json格式 文件_Hive 系列 之 基本操作合集

下面是本课程概览&#xff1a;&#xff08;1&#xff09;hive系列之简介&#xff0c;安装&#xff0c;beeline和hiveserver2&#xff08;2&#xff09;hive系列之基本操作&#xff08;3&#xff09;hive系列之udf&#xff08;4&#xff09;hive系列之二级分区和动态分区&#x…

android开发自定义view倍丝曲线,从0到1Android自定义View(四)贝塞尔曲线

原标题&#xff1a;从0到1Android自定义View(四)贝塞尔曲线2017年安卓巴士全球开发者论坛-上海站作者本文由两点水投稿&#xff0c;博客地址&#xff1a;http://www.apkbus.com/myspaceblog-911082.html前言扯来扯去&#xff0c;前面三篇自定义 View 文章&#xff0c;终于扯完了…

ios kvo 要引入_腾讯社招iOS面试记录

毕业好几年了&#xff0c;上周发送了简历给腾讯&#xff0c;参加了腾讯面试。具体部门这边就不说了。这次面试还是收获到了很多。一面电话面试&#xff1a;面试官主要是针对iOS相关的基础问题。先简单自我介绍一下自己对mrc和arc的理解谈谈对自动释放池的理解自动释放池在mrc和…

html 中加号的表示方法,CSS的+(加号)选择器怎么用

在CSS中“”符号选择器用于选择紧跟在指定元素之后但不在特定元素内部的元素。下面本篇文章就来具体介绍一下&#xff0c;希望对大家有所帮助。“”符号选择器在CSS中“”符号选择器被称为相邻兄弟选择器&#xff0c;用于选取在同一父元素下的&#xff0c;紧跟指定元素之后的另…

华为新系统 鸿蒙,旗舰CPU+鸿蒙OS!华为Mate家族重磅新品来袭

我们常说安卓平板的生态跟苹果iPad有很大差距&#xff0c;不论是应用质量还是原生系统支持&#xff0c;苹果都做的更好一些。可能也是因为这个原因&#xff0c;因此安卓平板&#xff0c;尤其是旗舰级别的平板至今除了三星之外&#xff0c;也就只有华为在做。作为安卓阵营两大厂…

mysql中用来取余数的函数是_MySQL常用函数-单行处理函数-字符串处理函数(更新中...)...

本篇文章用到的数据库表/* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.7.23-log : Database - myemployees ********************************************************************* *//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE*/;/*!40014 SET OLD_UNIQUE_CHECKSUN…

html盒子模型页面居中,【静态页面架构】CSS之盒子模型

CSS架构盒子模型&#xff1b;以内容区(显示文本和图像)内边距(内容区至边距的距离)边距(内容区的边界)外边距(元素的边框之间的距离)1.边距&#xff1b;border属性&#xff1b;简写属性用来设置边距的上(top)右(right)下(bottom)左(left)。宽度&#xff0c;颜色和样式div{width…

最强动画制作人书包_声优访谈丨恋与制作人动画中配声优访谈——夏磊

亲爱的制作人们&#xff1a;距离恋与制作人动画上线还有6天&#xff01;今天的中配声优访谈嘉宾是在动画中为许墨献声的夏磊老师~固定布局 工具条上设置固定宽高背景可以设置被包含可以完美对齐背景图和文字以及制作自…

codesys com库_CoDeSys官方系统库在线下载,替换国内下载服务器教程

欢迎加入工控分享技术服务社区推荐阅读Codesys学习资料大全Codesys控制器关于CANopen总线的详细应用说明当你软件报以下错误&#xff0c;你可以直接下载&#xff0c;如果下载不成功&#xff0c;可以换个网络试一试&#xff0c;或者进行下面的操作。由于国内网络问题&#xff0c…

centos7恢复mysql数据库_MySQL数据库升级迁移填坑记

原库&#xff1a;*.*.101.73/74 系统环境: Suse 12.4MySQL: 5.7.29新库&#xff1a;*.*.110.46/47系统环境&#xff1a;CentOS7.7 64位MySQL版本: 5.7.30[一、数据库升级迁移场景]因业务侧在*.*.101.73/74 mysql数据库服务器上部署了java应用程序、HadoopHbase数据库等大数据…

so把asp页面生成静态的html,23、asp系列课程--server.URLEncode方法和server.HTMLEncode方法...

作者&#xff1a;杨凡来自&#xff1a;杨凡博客地址&#xff1a;blog.sina.com.cn/aboutshisanserver.URLEncode方法和server.HTMLEncode方法可以对字符串进行编码。我们一个一个的说。server.URLEncode可以对字符串进行URL编码转换&#xff0c;语法格式为&#xff1a;server.u…

下列关于html5表单的多样输入方式,IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1...

原标题&#xff1a;IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1HTML5拥有多个新的表单输入类型&#xff0c;这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型&#xff0c;不过我们可以在所有的主浏览器中使用它们&#xff0c;即使不被支持&a…

v7000更换电池步骤_ups电源运行中是否可以更换电池?应如何操作呢

ups电源在日常使用中除了日常维护工作之外&#xff0c;对于使用达到一定年限的时候&#xff0c;内部使用的ups蓄电池就需要更换了&#xff0c;很多人以为ups不间段电源在工作的时候是可以跟换电池。其实&#xff0c;这个具体就需要看ups电源设计的原理&#xff0c;不同厂家设计…

华为怎么用手机看时间到读秒_华为手机灭屏也可以看时间?其实设置方法很简单,不会有些可惜了...

华为作为手机界名副其实的大佬&#xff0c;而且华为手机的口碑也是非常不错的。那么为什么会有这么多人喜欢华为手机呢&#xff1f;主要是华为手机的质量高&#xff0c;并且用很多实用的小功能&#xff0c;比如说神奇的灭屏显示功能等等&#xff0c;今天就给大家分享几个华为手…

hive转16进制unhex_Java 进制的转换

什么是进制&#xff1f;进制也就是进位计数制&#xff0c;是人为定义的带进位的计数方法(有不带进位的计数方法&#xff0c;比如原始的结绳计数法&#xff0c;唱票时常用的“正”字计数法&#xff0c;以及类似的tally mark计数)。 对于任何一种进制---X进制&#xff0c;就表示每…

引入ui组件_Vuejs, Semantic CSS前端框架fish-ui

简介基于vue2.0, github star 690, 一款小众的UI框架fish-ui&#xff0c;直接上截图&#xff1a;主要特性配备Vue.js&#xff0c;Moment&#xff0c;Vue-Router&#xff0c;ES6和Babel 6使用Webpack 2.0和Vue LoaderSemantic CSS 组件使用 Less支持现代浏览器快速开发安装npm i…

减去字符串_从文本字符串中提取指定值的6个超级技巧解读

在实际的工作中&#xff0c;从指定的字符串中提取指定文本也是常用的技巧之一&#xff0c;除了手动操作之外&#xff0c;下文的8种应用技巧也是必须要掌握的。一、Left函数法。功能&#xff1a;从指定文本字符串的第一个字符开始&#xff0c;提取指定长度的字符串。语法结构&am…

如果用计算机录制歌曲需要,网络歌手怎么用电脑录音软件录歌

现在网上有很多网络歌手主要分为两类&#xff0c;一类是原创&#xff0c;一类是翻唱。可是不管是原创还是翻唱都需要自己唱歌录歌&#xff0c;要有属于自己的歌曲(自己唱的)。要录歌就要有设备&#xff0c;毕竟网路歌手刚开始大多数都是草根没有钱找音乐工作室&#xff0c;只能…