Component of Android Application

In this paper, we propose an approach to search user interfaces(UI) in order to help developers when designingand maintaining their applications. We develop an platform to download and run the android apps and collect its runtime information by synchronization computers. For each app, our approach collects its description information in Android market and its runtime information to save in the database. Based on the data collected, we develop a novel reverted index for user interface search. Our search engine provides the screen shots of runtime UI so that developers can learn from the design information and develop high-quality Android mobile efficiently. The search engine is implemented base on the information of 8,456 Android apps. In the experiment, we evaluate the quality of search result. The experiment shows that 76.7% of top-10 search result contains the relevant UI components that are valuable for users.CodeShoppy

COLLECTING ANDROID APPLICATION DATA Every app has its description information in the app market where the description information best tell people what the functionalities of the apps. Our target is to search for the user interfaces, so the description of the apps are not enough. We need both the description information of the app and information of each user interface in runtime.Description information includes the title, category, number of download and app description. In order to get the description information of each app, we crawl the android market store using a Python program. Except the description information, we also download the APK files. 11,795 apps are downloaded and stored in a MongoDB[2] server. The following steps is to get the information of each user interface in runtime. For each app, we run it in an Android Virtual Device(AVD) and acquire its UI information through Google Android Debug Bridge(ADB) tooWe design a monitor to obtain the runtime information of the apps. Collecting the runtime information is time consuming and resource consuming. Due to the configuration limit of one computer, we need to run the apps in multiple computers in a distribute way. For each new AVD added in the distribution system, the monitor creates a new process to manage the AVD so it can run apps and obtains the runtime information. platformThe processes of acquiring UI information of each app can be described as follows:1) Get the detail information of an app and download it’sAPK file.2) Analyze the APK file. The APK file contains a configuration file named Androidmanifest.xml. It contains the configuration of the app such as the permission configuration, version of SDK, component list. We use AXMLPrinter2[3] to decompile the Androidmanifest.xml and get the component list, start class and package name of the app. 3) Install the APK file in an AVD. Android Debug Bridge(ADB) is a tool in the Android SDK which can be used to manage the AVD or real Android device directly. We use it to commands. 4) Obtain the state of app UI; We need to get the state of the app UI including the current window showed and the elements of the interface. Each AVD has a Viewserver[20] which provides the information we need. We send command to it and get the information. And then, we use ADB again to get the screenshot of current interface. 5) Analyze tanalyzing the information of the current interface, we can get the detail information of each UI element and rebuild the view tree. After that, the monitor generates a collection of COLLECTING ANDROID APPLICATION DATAEvery app has its description information in the app market where the description information best tell people what the functionalities of the apps. Our target is to search for the user interfaces, so the description of the apps are not enough. We need both the description information of the app and information of each user interface in runtime.Description information includes the title, category, number of download and app description. In order to get the description information of each app, we crawl the android market store using a Python program. Except the description information, we also download the APK files. 11,795 apps are downloaded and stored in a MongoDB[2] server. The following steps is to get the information of each user interface in runtime. For each app, we run it in an Android Virtual Device(AVD) and acquire its UI information through Google Android Debug Bridge(ADB) tooWe design a monitor to obtain the runtime information of the apps. Collecting the runtime information is time consuming and resource consuming. Due to the configuration limit of one computer, we need to run the apps in multiple computers in a distribute way. For each new AVD added in the distribution system, the monitor creates a new process to manage the AVD so it can run apps and obtains the runtime information. platformThe processes of acquiring UI information of each app can be described as follows:1) Get the detail information of an app and download it’sAPK file.2) Analyze the APK file.

The APK file contains a configuration file named Androidmanifest.xml. It contains the configuration of the app such as the permission configuration, version of SDK, component list. We use AXMLPrinter2[3] to decompile the Androidmanifest.xml and get the component list, start class and package name of the app. 3) Install the APK file in an AVD. Android Debug Bridge(ADB) is a tool in the Android SDK which can be used to manage the AVD or real Android device directly. We use it to commands. 4) Obtain the state of app UI; We need to get the state of the app UI including the current window showed and the elements of the interface. Each AVD has a Viewserver[20] which provides the information we need. We send command to it and get the information. And then, we use ADB again to get the screenshot of current interface. 5) Analyze tanalyzing the information of the current interface, we can get the detail information of each UI element and rebuild the view tree. After that, the monitor generates a collection of clickable UI elements and the physical key such as the return button.6) Send event command. The monitor selects an event from the event collection and executes it. We use monkey[4] to execute events. In step 5, we have get the location information of a view in the screen so the monitor can click the UI element through ADB. If it can’t meet the terminal condition, go to step 4. 7) Upload the runtime information of the app to database.UI page is defined as a page that contains UI elements in a running app. The text in UI page is called UI text. Figure 2 shows an example of UI page and it’s UI text.During the process, we can obtain many runtime information of each user interface during running the applications such as the tree structure of the UI elements, the detail description of each UI element(position in the screen, background and so on). However, not all the UI elements are needed and not all the description information of the UI element are needed. The best data to descript the user interface is the text in it. So we mainly concern the views which contain text. A problem emerges when we are designing the monitor: when the monitor terminals the execution of an app. Different apps have different numbers of interfaces. Some apps may only have one or two. Our solution is to decompile the Androidmanifest.xml and get the count of the activities. The activity is the user interface component of Android app. The count of activity can indicate the complication on interface of an app. So the more activities an app contains,the more time we set to run it

 Component of Android Application
https://codeshoppy.com/android-app-ideas-for-students-college-project.html
Open chat