雨花台网站建设,百度竞价价格,做个企业网站要多少钱,公司注册好了怎么做网站项目再github上的目录#xff1a;https://github.com/chen2009277025/nodejs_apkToolnodejs无可厚非是新兴的后端语言#xff0c;因为他的开发语言是javascript#xff0c;javascript语言的自身优势#xff0c;让nodejs迅速的火遍大江南北。很多的nodejs的开发插件如雨后春… 项目再github上的目录https://github.com/chen2009277025/nodejs_apkTool nodejs无可厚非是新兴的后端语言因为他的开发语言是javascriptjavascript语言的自身优势让nodejs迅速的火遍大江南北。 很多的nodejs的开发插件如雨后春笋般的涌现出来比如文件操作的fs解决数据库链接的各种中间件mysql、mongoose等等。 但是目前我还没有发现关于nodejs解析apk的这个需求并不是很大众但是对于有些项目而言这个需求确实很重要的。其实实际上来讲需要安装好java环境至少得是java1.6以上。 android就会有一个库文件是用来读取apk中的签名和信息的库了而我们再这里所要做的就是用nodejs去调用这些库文件把这些操作分装成一个个的子操作使用的人只需要关心如何和我们的中间件交互得到自己想要的数据而不需要去关心中间做了些什么。 一般的apk是用过一定的压缩格式压缩过的我们可以通过将apk的后缀名修改成rar或者zip甚至是tar.gz然后解压提取里面的图片等的静态资源文件。可是此时的applicationContext.xml文件是不能看的或者它里面的class文件也是不能看到的。此时这个apktool就有用了nodejs_apktool 是用nodejs写的一个对apk处理的一个工具1.能对apk进行读取签名读取apk内部的appkeyappid2.能对apk进行解包打包3.能写入指定的appidappkey 使用://apkToolPath这个是你的项目的绝对路径比如/users/chenjianhui/node_apktool,node_apktool是我的项目名//sign:是项目中希望打进apk里面的签名签名是一个和公司有关的文件这个文件的生成可以去各大搜索引擎上就能搜到怎么生成//sign_path:签名的路径系统绝对路径//sign_password签名的密码以防止别人给你解密的密码//sign_align签名的别名这些参数在你创建签名的时候就会设置好//apkTool的settingapkTool.settings { apkToolPath: , sign: { sign_path: , sign_password: , sign_align: }};具体的使用请看我的测试用例里面的代码 /*** Created by chen on 15-7-30.*/
var apktool require(../index);
var fs require(fs);apktool.settings.apkToolPath /Users/chenjianhui/WebstormProjects/node_apktool;//unpack apk
//解压apk包
apktool.apkTool_unpack(/Users/chenjianhui/Documents/apkTest/Pet.apk,/Users/chenjianhui/Documents/apkTest,function(err,result){if(err){console.log(error:err);}console.log(result)
});/*
//pack apk
//打包apk
apktool.apkTool_pack(/home/chen/youyuan_test,/home/chen/youyuan_unsign.apk,function(err,result){if(err){console.log(error:err);}console.log(result)
});
*///这里的参数是需要向apk中写入的渠道号版本号appkeyappid等信息
//var params {
// channel_name:COM_CHANNEL_BS,
// channel_val:default,
// permissions:[],
// appkey_name:COM_APPKEY_BS,
// appkey:,
// appid_name:COM_APPID_BS,
// appid:
//}
//
//apktool.handle_manifest(/home/chen/youyuan_test,params,function(err,result){
// if(err){console.log(err);}
// console.log(result);
//})/*//读取得到apk中的版本信息
//这个方法很有用因为通过去applicationContext.xml里面找版本号是一个很不科学的办法
//而且不一定能找到
apktool.getVersionOfApk(/home/chen/youyuan_test,function(err,result){})
*/
/*重新签名apk将apk签名成自己公司的apk这个apk就是自己的了
apktool.resigned_apk(/home/chen/youyuan_unsign.apk,/home/chen/youyuan_sign.apk,/home/chen/android.keystore,haoxin,android,function(err,result){if(err){console.log(err);logger.writeErr(err);return;}console.log(result);
});*//*//读取签名
apktool.readSign(/home/chen/youyuan_sign.apk,function(err,result){if(err){logger.writeErr(err);return;}console.log(result);console.log(result.data.MD5);console.log(result.data.SHA1);console.log(result.data.所有者);
})*//*这是解压的配置
var pack_param {unpack_folder:/home/chen/haoxin_test, //解压目录desi_dir:/home/chen/haoxin_2 //压缩目标
};//这是需要穿进去的一些渠道号和版本好等信息
var manifest_param {channel_name:COM_CHANNEL_BS,channel_val:default,permissions:[],appkey_name:COM_APPKEY_BS,appkey:1231,appid_name:COM_APPID_BS,appid:12121
};var sign_param {sign_file:/home/chen/android.keystore,password:haoxin,sign_align:android
}apktool.handle_apk(/home/chen/youyuan.apk,pack_param,manifest_param,sign_param,function(err,result){if(err){console.log(err);return;}console.log(result);console.log( result.data[所有者]);
})
*/
//
//var path /home/chen;
//
//console.log(fs.existsSync(path));
//
//获取MD5这是获取apk MD5的方法
//apktool.getMd5(/Users/chenjianhui/Documents/apkTest/Pet.apk,function(err,result){
// if(err)
// {
// console.log(err);
// return;
// }
// console.log(result);
//}) 这里面还有可以修改的空间比如我们的apk需要的 权限由于时间的问题我并没有给该工具新增添加或者删除权限的功能 如果有可能还可以将这个功能写成一个web用户直接上传apk手动输入自己需要的渠道号产品id等信息手动选择需要的权限就可以下载签名过后属于自己的apk 转载于:https://blog.51cto.com/snaile/1727234