小码哥的IT人生

首页 > JS > nodejs

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();

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024