纯java从apk文件里获取包名、版本号、icon

简洁:不超过5个java文件

依赖:仅依赖aapt.exe

支持:仅限windows

功能:用纯java获取apk文集里的包名,版本号,图标文件【可获取到流直接保存到文件系统】

原理:比较上一篇文章里通过反编译然后解析AndroidManifest.xml的方式,此种方式更加简单,通过模拟执行aapt截取cmd输出并整理获取信息。

附件为源码,test/demo 为演示,output下为编译后的jar文件。

参考开源项目:

http://code.google.com/p/cfuture09-apkutil/

本项目在该项目上进行了扩展,支持了图标的提取。

代码片段:

Java代码  

public static void main(String[] args) {
        try {
            String apkpath = "D:\\DefaultApkTempSaveFolder\\3G安卓市场\\com.jiubang.market.apk";
            if (args.length > 0) {
                apkpath = args[0];
            }
            ApkInfo apkInfo = new ApkUtil().getApkInfo(apkpath);
            // 打印获取到的信息
            System.out.println(apkInfo);
            // 获取Icon并保存到指定位置
            IconUtil.extractFileFromApk(apkpath, apkInfo.getApplicationIcon(), "D:\\DefaultApkTempSaveFolder\\3G安卓市场\\crawler\\icon.png");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
时间: 2024-08-06 22:28:22

纯java从apk文件里获取包名、版本号、icon的相关文章

android 利用 aapt 解析 apk 的应用名称 包名 版本号 权限等信息

在上传各大市场时发现 apk 上传后能自动解析出应用名称.包名.版本号.使用权限等信息,所以就研究了一下 1 直接解压 apk 解析  AndroidManifest.xml 是不行的,因为 apk 打包时 AndroidManifest.xml 文件被压缩混淆了. 2 主要有两种实现方式 1) 通过 aapt (android asset packaging tool) aapt 是打包.更新资源的一个工具,可以解析出 apk 的资源信息 2) apktool 著名的反编译工具,先反编译出 A

Android 利用 aapt 解析 apk 得到应用名称 包名 版本号 权限等信息

转:http://www.cnblogs.com/lesliefang/p/3864756.html 在上传各大市场时发现 apk 上传后能自动解析出应用名称.包名.版本号.使用权限等信息,所以就研究了一下 1 直接解压 apk 解析  AndroidManifest.xml 是不行的,因为 apk 打包时 AndroidManifest.xml 文件被压缩混淆了. 2 主要有两种实现方式 1) 通过 aapt (android asset packaging tool) aapt 是打包.更新

Java 获取APK安装程序的包名

Java 获取APK安装程序的包名核心的两个类: ResPackage ApkDecoder package com.temobi.util; import java.io.File; import java.util.Set; import brut.androlib.AndrolibException; import brut.androlib.ApkDecoder; import brut.androlib.res.data.ResPackage; public class APKUtil

apk去广告工具(利用apktool去除apk文件里的广告)

基本知识 apk安装包的文件结构 以知名桌面软件“LauncherPro”为例,apk安装包文件目录: 文件目录如下: - META-INF - res - anim - color - drawable - drawable-hdpi - drawable-land - drawable-land-hdpi - drawable-mdpi - drawable-port - drawable-port-hdpi - layout - layout-land - layout-port - xm

Appium Android 获取包名和 Activity 的几种方法 (转)

本文档主要记录"获取包名和 Activity 的方法",用于自动化测试时启动APP.以下方法主要来源于网络和社区同学的贡献,特此感谢! 1. 方法一: pm list package查看包名 adb shell pm list package -f 将获取手机内所有apk对应的包名和路径 adb shell pm list package -3 -f #获取第三方apk的包 2. 方法二:dumpsys window(本人最常用) 先打开需要查找的apk后,再敲入以上命令 adb sh

二.第一个自动化demo,打开APP-如何获取包名和activity。(真机)

环境配置成功后,我们就可以进行第一个自动化测试了.用真机则不需要安装安卓模拟器.以一个简单的打开APP为例. 一.获取包名和activtity      启动一个app,我们需要知道它的平台.版本号.包名.activity等信息,其中两个比较难找的是包名和activtiy,其他的直接在手机或者用Itools都可以看到. 1)在之前配置的安卓SDK文件夹中找到sdkmanager.exe并启动,勾选一个版本的build-tools并下载. 2)下载成功后,找到appt.exe,并将这个路径加到 环

Android 获取包名,版本信息

Android 获取包名,版本信息及VersionName名称 Java代码   <span style="font-size: 14px;">private String getAppInfo() { try { String pkName = this.getPackageName(); String versionName = this.getPackageManager().getPackageInfo( pkName, 0).versionName; int ve

知识回顾_获取包名和app入口

1.下载哔哩.apk到本地和夜神 2.获取包名:D:\Andriod_SDK\build-tools\27.0.1>aapt dump badging D:\iBiliPlayer-bili.apk name='tv.danmaku.bili' 3.获取入口 appActivity-App启动入口 D:\Andriod_SDK\build-tools\27.0.1>aapt dump badging D:\iBiliPlayer-bili.apk launchable-activity: na

使用appt获取包名

1.有android-sdk-window 2.设置系统变量 3.测试成功 使用命令:appt dump badgiing   安装包路径     就可以获取包名和activity 原文地址:https://www.cnblogs.com/eosclover/p/10704211.html