大学生网站规划建设,呼市互联网公司排名,如何优化网站 提高排名,wordpress 创建表最近想用 electron 写一个 adb 的可视化客户端#xff0c;在展示安装的应用时遇到了如何获取 APK 的名称和 icon 的问题。下面就是一些解决问题的思路。
前提#xff1a;在这里默认大家已经下载好 apk, 下面 localApkPath 就是你下载好的 apk 的路径。 小提示#xff0c;示…最近想用 electron 写一个 adb 的可视化客户端在展示安装的应用时遇到了如何获取 APK 的名称和 icon 的问题。下面就是一些解决问题的思路。
前提在这里默认大家已经下载好 apk, 下面 localApkPath 就是你下载好的 apk 的路径。 小提示示例代码不能直接执行需要自行修改哦 获取 apk 的名称
我们要下载一个 aapt 如果找不到下载地址用这个, 然后我们就可以通过这个工具来获取到一些相关的信息了。其实不仅仅可以获取到 apk 的名称具体的内容可以自己打印一下查看。下面是通过正则获取到中文 apk name。 aapt 是什么。
import { exec } from child_process;
import { promisify } from util;
import aapt from ../../resources/aapt.exe?assetasarUnpack; // 这里需要指定路径我这里是 electron-vite 的用法如果是其他方式请自行修改const execAsync promisify(exec);
const { stdout: aaptInfo } await execAsync(${aapt} dump badging ${localApkPath}
);
const appNameMatch aaptInfo.match(/application-label-zh_CN:([^]*)/);
const appName appNameMatch ? appNameMatch[1] : 未知;获取 apk 的 icon
我们要安装一个依赖他是 adm-zip , 他是用来解压 apk 文件的。
npm i adm-zip然后安装好之后我们就可以使用他来解压 apk 文件了。第一步还是要用 aapt 获取到 icon 的路径。然后我们就可以使用 adm-zip 来获取到 icon 的 base64 了。其实挺简单的就是网上没有现成的例子所以记录一下。换到别的语言其实思路都是一样的。
import AdmZip from adm-zip;
import { promisify } from util;
import aapt from ../../resources/aapt.exe?assetasarUnpack; // 这里需要指定路径我这里是 electron-vite 的用法如果是其他方式请自行修改const zip new AdmZip(localApkPath);
const execAsync promisify(exec);
const { stdout: aaptInfo } await execAsync(${aapt} dump badging ${localApkPath}
);
const iconMatch aaptInfo.match(/application-icon-[0-9]:([^])/);
if (iconMatch) {const iconPath iconMatch[1];const iconBuffer zip.getEntry(iconPath).getData();const iconBase64 iconBuffer.toString(base64);return iconBase64;
}aapt 是什么
aapt Android Asset Packaging Tool是 Android 开发工具链中的一个重要工具主要用于打包和处理 Android 应用程序中的资源文件。它是 Android SDK 中的一部分在应用构建过程中起到关键作用。
主要功能包括
打包资源文件将项目中的资源如 XML 文件、图片等打包为 .apk 文件中的资源包。生成 R.java 文件aapt 负责分析应用中的资源文件并生成 R.java 文件供 Java 代码访问资源。编译资源文件aapt 会将 .xml 等资源文件编译成二进制格式减少文件大小并提高解析效率。查看 APK 文件内容可以使用 aapt 查看 APK 文件中的内容和资源。签名 APK 文件配合其他工具aapt 可以协助进行 APK 的签名操作确保应用安全。
通常 aapt 是 Android 构建过程中自动调用的开发者不需要手动使用它但在一些高级使用场景下比如反编译、查看 APK 内容等 aapt 仍然是一个非常有用的工具。