zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

使用函数计算来抽取apk信息

计算 函数 信息 APK 抽取 使用
2023-09-11 14:16:11 时间
在之前的博客中我们看到,可以使用函数计算来实现一个自定义的图像处理服务,这个服务是稳定、可靠、弹性伸缩的,并且它是无服务器架构,按函数的调用时间收费,节省了服务器闲置的开销和运维成本。 使用函数计算可以方便地构建类似的微服务,比如我们可以创建一个处理android apk文件的微服务:

之前的博客中我们看到,可以使用函数计算来实现一个自定义的图像处理服务,这个服务是稳定、可靠、弹性伸缩的,并且它是无服务器架构,按函数的调用时间收费,节省了服务器闲置的开销和运维成本。

使用函数计算可以方便地构建类似的微服务,比如我们可以创建一个处理android apk文件的微服务:

小吴将下载的apk文件上传到OSS

他想分析一下这些apk应用的权限信息:

使用aapt工具抽取出每个apk文件的权限信息 将它们录入到数据库中(rds),方便日后查询

在RDS控制台创建一个实例(注意选择华东2区域和经典网络)

![image](https://yqfile.alicdn.com/6d84edced63309c4c24cead703e0332861e20e22.png?x-oss-process=image/resize,m_mfit,w_600)
选择实例创建一个数据库 创建一个用户并授权其访问数据库的权限

添加白名单,允许所有的IP访问

![image](https://yqfile.alicdn.com/a7c7be069b825d298b769a3cf4b94a3aae012511.png?x-oss-process=image/resize,m_mfit,w_600)


准备aapt工具
函数计算的运行环境是基于debian:8的镜像,因此我们最好在同样的环境下下载aapt工具:

docker run -it -v $(pwd):/opt debian:8 在容器中运行apt-get update apt-get install -y aapt 将aapt及其所依赖的库从容器中拷贝出来: mkdir /opt/aapt cp $(which aapt) /opt/aapt/ cp -R /usr/lib/android /opt/aapt/ ldd $(which aapt) | grep -v android将其所依赖的库也拷贝到/opt/aapt/
创建函数
image
跳过触发器的设置,完成函数创建。

函数的关键代码如下,完整的代码包点此下载

 ossClient.get(objectName, apkPath).then(function(res) {

 exec.execFile(

 /code/aapt/aapt, [dump, permissions, apkPath],

 env: {

 LD_LIBRARY_PATH: /code/aapt:/code/aapt/android,

 }, function(err, stdout, stderr) {

 if (err) {

 callback(err);

 return;

 var apkPerm = stdout;

 console.log(%s permissions: %s, apkName, apkPerm);

 conn.query(

 CREATE TABLE IF NOT EXISTS APK_PERM(NAME VARCHAR(50) NOT NULL, PERM TEXT, PRIMARY KEY (NAME)),

 function(err) {

 if (err) {

 callback(err);

 return;

 conn.query(

 REPLACE INTO APK_PERM VALUES (?, ?), [apkName, apkPerm], function(err, results) {

 if (err) {

 callback(err);

 return;

 console.log(insert ok: %s, results);

 callback(null, ok);

 }).catch(function(err) {

 console.error(error: , err);

 callback(err);

 });
4. 运行函数并查看结果

https://fc.console.aliyun.com

先将需要分析的apk文件上传到OSS

在函数计算控制台执行函数,指定event的内容为apk文件所在位置

![image](https://yqfile.alicdn.com/ea9462a60bd57f2fe5ed49ab793c6778b234fc7b.png?x-oss-process=image/resize,m_mfit,w_800)


使用函数计算的常态化疫情信息推送 常态化疫情管控下,我们还是需要了解疫情发展态势,以便做出旅行甚至是通勤的决策。主动查询太心累了,那么就不妨试试使用函数计算来每日定时推送常态化疫情信息。省心、省力又便捷。
让 Serverless 更普惠,阿里云函数计算 FC 宣布全面降价,最大幅度达 37.5% 11月3日起按量付费和资源包全规格降价,日均资源利用率为30%时降本幅度仍可达12% - 47%,实际资源利用率越低可降本空间越大;用户可随用随取,按量计费,用更低成本采用 Serverless 架构!
让 Serverless 更普惠,阿里云函数计算 FC 宣布全面降价,最大幅度达 37.5% 11月3日起按量付费和资源包全规格降价,日均资源利用率为30%时降本幅度仍可达12% - 47%,实际资源利用率越低可降本空间越大;用户可随用随取,按量计费,用更低成本采用 Serverless 架构!
基于阿里云 Serverless 函数计算搭建按量付费的 WordPress 网站 Serverless 经过几年的发展,已经和传统服务器一样好用了。我最初接触 Serverless 是在 2020 年的云开发校园合伙人创造营上,当时我基于阿里云云开发平台部署了一个在线工具箱。