We found that then energy consumption of apps containing anti-patterns and not (refactored apps) is statistically different. First, we (1) analyze the impact of anti-patterns in mobile apps with respect to energy efficiency then (2) we study the impact of different types of anti-patterns on energy efficiency. In this paper, we fill this gap in the literature by analyzing the impact of eight type of anti-patterns on a testbed of 59 android apps extracted from F-Droid. The research community has proposed approaches to detect and remove anti-patterns (i.e., poor solutions to design and implementation problems) in software systems but, to the best of our knowledge, none of these approaches have included anti-patterns that are specific to mobile apps and-or considered the energy efficiency of apps. Therefore, it is important to take into account energy efficiency when evolving the design of a mobile app. Recent studies suggest that design quality can conflict with energy efficiency. The energy consumption of mobile apps is nowadays a hot topic and researchers are actively investigating the role of coding practices on energy efficiency. The boom in mobile apps has changed the traditional landscape of software development by introducing new challenges due to the limited resources of mobile devices, e.g., memory, CPU, network bandwidth and battery. Our experimental results show that Apktool, using Smali IL, performs the most accurate transformation of the executable source since the applications, which are assembled from Smali, exhibit their behaviours closest to the original ones. Using the designed scheme, we compare Apktool, dex2jar, and Soot via random-event-based and statistical tests to determine the tool which allows the re-assembled applications to be executed, and evaluate how closely they preserve their original behaviours. We designed a statistical event-based comparative scheme, and conducted a comprehensive empirical study on a set of 1,300 Android applications. Therefore, in this paper, we conduct an experiment to identify the tool which most accurately performs the transformation. To the best of our knowledge, it is still unknown which tool most accurately performs a transformation of the executable source so that the re-assembled Android applications can be executed, and their original behaviours remain intact. However, the main concern here is that inaccurate transformation of the executable source may severely degrade the program analysis performance, and obscure the results. To use these ILs, we downloaded three of the most popular Android reversing tools including Apktool, dex2jar, and Soot, which perform transformation of the executable source into Smali, Jasmin, and Jimple ILs, respectively. For Android, Smali, Jasmin, and Jimple ILs have been introduced to represent applications executable Dalvik bytecode in a human-readable form. Therefore, a reverse engineering technique has been adapted to enable a user to perform a program analysis on a textual form of the executable source which is represented by an intermediate language (IL). In Android, performing a program analysis directly on an executable source is usually inconvenient. The results also showed that using ontology increases the detection percentage approximately 11.3%, guarantees consistency and decreases accuracy of anti-patterns in the new ontology. The results showed that there was a correlation between the anti-patterns detected by an ontology editor and OntoUML editor. It detected a set of semantic and structural design anti-patterns which have appeared 1262 times in mobile apps. Results: The proposed method is a general detection method. The result of our approach produced an Android app with fewer anti-patterns, leading the way for perfect long-time apps and ensuring that these applications are purely valid. We validate the effectiveness of our approach on a set of popular mobile apps such as YouTube, Whats App, Play Store and Twitter. Methods: We propose a reverse-engineering approach to analyze Android applications and detect the anti-patterns from mobile apps. Additionally, it guides developers to refactor their applications and consequently enhance their quality. Thus, the automatic detection of anti-patterns is a vital process that facilitates both maintenance and evolution tasks. However, catering to these imperatives may bring about poor outline decisions on design choices, known as anti-patterns, which may possibly corrupt programming quality and execution. Applications must be produced rapidly and advance persistently in order to fit new client requirements and execution settings. Background: Portable applications (Android applications) are becoming increasingly complicated by mind-boggling programming frameworks.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |