{'fraction_non_alphanumeric': 0.017400761283306143, 'fraction_numerical': 0.0070690592713431215, 'mean_word_length': 5.548042704626335, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
DroidARA: Android Application Automatic Categorization Based on API Relationship Analysis

An application (app) market with well-managed categorization will help users with app search and recommendation. Current categorization methods in app markets mainly rely on manual operation. Existing approaches for automatic Android app categorization suffer from low efficiency and low accuracy due to insufficient analysis of features, or inappropriate choice of features. This will mislead users to download unrelated apps and is not conducive to market stability maintenance. In this paper, we propose DroidARA, an efficient automatic categorization method for Android apps based on API relationships analysis. Considering that the app category can be characterized by API relationships which represent the combinations and links among APIs, we design a complete system to generate API call graphs, extract the API relationships information, transform them into feature vectors and train the classifier. Firstly, the API calls are obtained through static analysis to generate API call graphs that contain the relationships among APIs. A novel matrix structure as well as related algorithm are designed to extract the API relationships information from API call graphs. After that, the matrix is transformed into vector according to two feature selection methods we designed for strengthening the use of effective information in the API relationships. A convolutional neural network (CNN) model is then trained with labeled samples of such feature vectors. To validate the feasibility of DroidARA, we conduct several categorization experiments on 19949 real apps of Google Play. The results demonstrate that DroidARA can achieve an average 88.9% accuracy in categorizing the apps into 24 categories, which outperforms existing methods by 18.5%.