当前位置: X-MOL 学术J. Comput. Lang. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
E-APK: Energy pattern detection in decompiled android applications
Journal of Computer Languages ( IF 2.2 ) Pub Date : 2023-06-11 , DOI: 10.1016/j.cola.2023.101220
Nelson Gregório , João Bispo , João Paulo Fernandes , Sérgio Queiroz de Medeiros

Energy efficiency is a non-functional requirement that developers must consider, particularly when building software for battery-operated devices like mobile ones: a long-lasting battery is an essential requirement for an enjoyable user experience.

In previous studies, it has been shown that many mobile applications include inefficiencies that cause battery to be drained faster than necessary. Some of these inefficiencies result from software patterns that have been catalogued, and for which more energy-efficient alternatives are also known.

The existing catalogues, however, assume as a fundamental requirement that one has access to the source code of an application in order to be able to analyse it. This requirement makes independent energy analysis challenging, or even impossible, e.g. for a mobile user or, most significantly, an App Store trying to provide information on how efficient an application being submitted for publication is.

We study the viability of looking for known energy patterns in applications by decompiling them and analysing the resulting code. For this, we decompiled and analysed 420 open-source applications by extending an existing tool, which is now capable of transparently decompiling and analysing android applications. With the collected data, we performed a comparative study of the presence of four energy patterns between the source code and the decompiled code.

We performed two types of analysis: (i) comparing the total number of energy pattern detections; (ii) comparing the similarity between energy pattern detections. When comparing the total number of detections in source code against decompiled code, we found that 79.29% of the applications reported the same number of energy pattern detections.

To test the similarity between source code and APKs, we calculated, for each application, a similarity score based on our four implemented detectors. Of all applications, 35.76% achieved a perfect similarity score of 4, and 89.40% got a score of 3 or more out of 4. Furthermore, only two applications got a score of 0.

When viewed in tandem, the results of the two analyses we performed point in a promising direction. They provide initial evidence that static analysis techniques, typically used in source code, can be a viable method to inspect APKs when access to source code is restricted, and further research in this area is worthwhile.



中文翻译:

E-APK:反编译 Android 应用程序中的能量模式检测

能源效率是开发人员必须考虑的一项非功能性要求,特别是在为移动设备等电池供电设备构建软件时:持久耐用的电池是获得愉快的用户体验的基本要求。

之前的研究表明,许多移动应用程序效率低下,导致电池消耗速度过快。其中一些低效率是由已编目的软件模式造成的,并且也已知更节能的替代方案。

然而,现有的目录假定作为一项基本要求,人们必须能够访问应用程序的源代码,以便能够对其进行分析。这一要求使得独立的能源分析具有挑战性,甚至是不可能的,例如对于移动用户,或者最重要的是,对于试图提供有关提交发布的应用程序的效率如何的信息的应用程序商店。

我们通过反编译并分析生成的代码来研究在应用程序中寻找已知能量模式的可行性。为此,我们通过扩展现有工具反编译和分析了 420 个开源应用程序,该工具现在能够透明地反编译和分析 Android 应用程序。利用收集到的数据,我们对源代码和反编译代码之间是否存在四种能量模式进行了比较研究。

我们进行了两种类型的分析:(i)比较能量模式检测的总数;(ii)比较能量模式检测之间的相似性。当将源代码中的检测总数与反编译代码进行比较时,我们发现 79.29% 的应用程序报告了相同数量的能量模式检测。

为了测试源代码和 APK 之间的相似性,我们根据四个实施的检测器为每个应用程序计算了相似度分数。在所有申请中,35.76%的申请获得了4分的完美相似度,89.40%的申请获得了3分或以上的分数(满分4分)。此外,只有两个申请的分数为0。

综合来看,我们进行的两项分析的结果指向了一个有希望的方向。他们提供了初步证据,表明通常在源代码中使用的静态分析技术可以成为在源代码访问受到限制时检查 APK 的可行方法,并且值得在该领域进行进一步的研究。

更新日期:2023-06-11
down
wechat
bug