• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
droidcon 2012: Merodroid – A Search-Engine for Android Software Components, Marcus Kessel, University Mannheim
 

droidcon 2012: Merodroid – A Search-Engine for Android Software Components, Marcus Kessel, University Mannheim

on

  • 1,094 views

Reusing pre-existing components in the development of new applications has proven beneficial in mainstream software engineering for many years, and in the last decade a number of dedicated code search ...

Reusing pre-existing components in the development of new applications has proven beneficial in mainstream software engineering for many years, and in the last decade a number of dedicated code search engines have sprung up to help developers find components that fulfil their needs. However, these all focus on general purpose software components rather than mobile applications or Android source code. A search engine specialising in the discovery of Android components would significantly boost the productivity of the Android development community and allow developers to exploit existing Android components [1] such as Activities, Services, Content Providers or Broadcast Receivers. In this talk we present Merodroid – a search engine for Android software components. Powered by Merobase [2], the leading code search engine from the University of Mannheim, Merodroid supports a wide range of search capabilities over a large index of pre-existing Android components harvested from open source projects on the Internet. In addition to simple text-based searches, retrieving components that have a given name or contain a given string, Merodroid offers also the ability to search for Android specific artifacts or information based on Android manifests [3]. The search capabilities of the Merobase also provides other interesting search possibilities for Android components such as signature or interface based searches that receive components matching a particular profile. In the near future we are planning to make Merodroid the basis of a vibrant Android component market between developers that complements the current Android Application market between developers and consumers. [1] Application Fundamentals, Android Developers, http://developer.android.com/guide/topics/fundamentals.html [2] Merobase Software Component Finder, http://www.merobase.com/ [3] AndroidManifest.xml, Android Developers, http://developer.android.com/guide/topics/manifest/manifest-intro.html

Statistics

Views

Total Views
1,094
Views on SlideShare
933
Embed Views
161

Actions

Likes
0
Downloads
4
Comments
0

2 Embeds 161

http://de.droidcon.com 159
http://www.verious.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    droidcon 2012: Merodroid – A Search-Engine for Android Software Components, Marcus Kessel, University Mannheim droidcon 2012: Merodroid – A Search-Engine for Android Software Components, Marcus Kessel, University Mannheim Presentation Transcript

    • Overview 1. Find out why software engineering is important Merodroid1 ■ see some software engineering failures 2. Get acquainted with – ■ the Chair of Software Engineering ■ the research A Search Engine for ■ Android Software Components the people ■ the teaching Colin Atkinson, Marcus Kessel, Marcus Schumacher droidcon. 2012, Berlin Software Engineering Prof. Dr. Colin Atkinson 1
    • Outline ■ About Us2 ■ Motivation ■ Search Android Components with Merodroid ■ What is Merodroid? ■ Core Features ■ How does it work? ■ Indexing of Android Software Artifacts ■ Analysis and Recognition ■ Demo ■ Conclusion ■ Appendix Software Engineering Prof. Dr. Colin Atkinson 2
    • About Us ■ Chair of Software Engineering, Prof.3 Colin Atkinson, at the University of Mannheim [1] Prof. Dr. Colin Atkinson ■ Research Areas ■ Software Reuse ■ Model-Driven Development ■ Component/Service Oriented Development M.Sc. Wirtschaftsinformatik Marcus Kessel ■ Search Driven Development – current research project ■ Merobase – Software Component Finder Dipl. Informatik Marcus Schumacher Software Engineering Prof. Dr. Colin Atkinson 3
    • Motivation ■ Fast-growing market of mobile devices, mainly smartphones and internet4 tablets ■ Lots of mobile applications already exist (~375.000 in Android Market, February 2012 [2]) ■ High demand for new mobile applications (e.g. provide all kind of functionality as “apps”) ■ Developer perspective ■ Redundant work .. ■ Tired of reinventing the wheel for every new app ■ Organizational perspective ■ Reduce the effort and save money at application development ■ Component Reuse Software Engineering Prof. Dr. Colin Atkinson 4
    • Our Approach: Search-Driven Development ■ Search-Driven Development5 ■ Semantic component retrieval ■ Special query language and constraints to retrieve potential reuse candidates ■ Merobase ■ General search engine for software components ■ Merodroid ■ Component search engine based on Merobase adjusted to the needs of Android application developers ■ Specifics of Android application development ■ Project layout, resources, AndroidManifest.xml ■ Special component types ■ … Software Engineering Prof. Dr. Colin Atkinson 5
    • Core Features (1) ■ App queries6 ■ Browse all components of an “app” ■ Includes additional information sources (AndroidManifest.xml, Android Market information, …) ■ Component queries ■ Query for specific Android application components ■ activity, fragment, service, content provider, broadcast receiver ■ Interface/method signature search ■ Keyword search ■ Constraints (restrict result set) ■ Combined queries: app + component + constraints Software Engineering Prof. Dr. Colin Atkinson 6
    • Core Features (2) ■ Create queries by7 ■ Using a graphical wizard ■ Hand ■ Component details ■ Source and component type ■ Tree-like view of methods and fields ■ Metrics ■ Documentation (JavaDoc) ■ Intent filter and capabilities defined in AndroidManifest.xml ■ Android Market information (if available) ■ Unrelated Android components ■ Usual Java classes ■ Publish your own components Software Engineering Prof. Dr. Colin Atkinson 7
    • Indexing Android Software Artifacts (1)8 Crawling Process Recognition Index Parsing & Crawling of artifact Linking type Analysis: Recognition & Data Mining Process Recognition Iterate over of Linking Index index components Software Engineering Prof. Dr. Colin Atkinson 8
    • Indexing Android Software Artifacts (2) ■ Supported Android software artifacts9 ■ Application projects (incl. resources) ■ APK, Dalvik Executable ■ Single classes (source & binary) ■ Java classes are analyzed and indexed ■ Fields, methods, inheritance hierarchy, dependencies … ■ AndroidManifest.xml ■ Additional information source ■ Capabilities of components (intent filter) ■ Recognition of components ■ Android (application) components (e.g. activity) are tagged ■ Tagged components are linked with additional information from AndroidManifest.xml ■ E.g. Intent filter declarations Software Engineering Prof. Dr. Colin Atkinson 9
    • Android Component Recognition ■ Analysis of inheritance hierarchy of classes represented by the data model10 (tree traversal) ■ Interfaces/classes of key components are known from the Android API ■ Interfaces/classes can be easily configured for later extensibility (e.g. Android API changes) ■ For instance, any Activity implementation has to inherit from the class android.app.Activity Software Engineering Prof. Dr. Colin Atkinson 10
    • Demo11 Software Engineering Prof. Dr. Colin Atkinson 11
    • Conclusion ■ Merodroid – Android Component Finder12 ■ Software component search engine adjusted to the needs of Android Application developers ■ Powerful query language ■ Links several information sources (components, AndroidManifest.xml, Android Market ..) ■ Public web service available at merodroid.com ■ Search for Android application projects & components crawled from open source repositories ■ Future work ■ Eclipse plugin (http://code-conjurer.org) ■ Test-driven development support (query components by using JUnit tests/TestSheets) Software Engineering Prof. Dr. Colin Atkinson 12
    • Questions13 Thank you for listening! Software Engineering Prof. Dr. Colin Atkinson 13
    • Literature ■ [1] Chair of Software Engineering, University of Mannheim,14 http://swt.informatik.uni-mannheim.de/ ■ [2] AppBrain, Android Statistics, http://www.appbrain.com/stats/number-of- android-apps (02/20/2012) Software Engineering Prof. Dr. Colin Atkinson 14
    • Appendix: Query Samples Description Query Result15 Find app by id packageId:com.example. All related components app¹ Find Android application android:activity or All Activities component android:service or All Services android:fragment or All Fragments android:provider or All ContentProviders android:receiver or All BroadcastReceivers Find all Activities of app .. packageId:com.example. All Activities of app .. app¹ android:activity Find all Activities android:activity List of all Activities supporting supporting mime-type: mimetype:image/jpeg specified mime-type (known from image/jpeg manifest) Find all Activities packageId:com.example. List of all Activities supporting supporting mime-type: app¹ android:activity specified mime type in app .. image/jpeg in app .. mimetype:image/jpeg Find Activity by name android:activity Sudoku List of all Activities containing „Sudoku“ as name ¹ Unique package id known from AndroidManifest.xml (also widely used in several app markets as identifier) Software Engineering Prof. Dr. Colin Atkinson 15