node.js实例:使用 adbkit-apkreader 模块获取apk文件包名
nodejs 2023-08-29 16:18:10小码哥的IT人生shichen
一、功能需求
node.js获取给定文件apk文件包名
二、解决方法
获取apk文件的包名【基于 adbkit-apkreader
模块】
1. 安装 adbkit-apkreader 模块
npm install adbkit-apkreader --save
2. 引入 adbkit-apkreader 模块
(commonjs模式:)
const ApkReader = require('adbkit-apkreader');
(module 模式:)
import ApkReader from 'adbkit-apkreader';
3. 封装函数
async function getApkPackageName(filePath){
// let package = await ApkReader.open(filePath).then(reader => reader.readManifest()).then(mainfest => mainfest);
let package = await ApkReader.open(filePath).then(reader => reader.readManifest()).then(mainfest => mainfest.package);
return package;
}
4. 用法示例
(async ()=>{
try {
let packagename = await getApkPackageName(filePath);
console.log(packagename);
} catch (error) {
console.log(error)
}
})()
5. 完整实例
【这里使用了 commonjs 模式】:
const ApkReader = require('adbkit-apkreader');
const path = require('path');
// apk 文件路径
const filePath = path.join(__dirname,'sqgjyy_896720.apk');
// 封装函数
async function getApkPackageName(filePath){
// let package = await ApkReader.open(filePath).then(reader => reader.readManifest()).then(mainfest => mainfest);
let package = await ApkReader.open(filePath).then(reader => reader.readManifest()).then(mainfest => mainfest.package);
return package;
}
// 用法示例
(async ()=>{
try {
let packagename = await getApkPackageName(filePath);
console.log(packagename);
} catch (error) {
console.log(error)
}
})()
运行结果:
com.zhilehuo.advenglish
补充:
这里 path 模块使用了__dirname
常亮,在 commonjs 模式下可以直接使用,但是在 module 模式下,需要使用如下语句获取到 __dirname
常亮:
const __dirname = path.resolve();