DOI QR코드

DOI QR Code

자바와 XML 상호 분석을 통한 안드로이드 특화 문제점의 정적 분석 방법

Static Analysis Method of Android-specific Problems through Java and Xml Mutual Analysis

  • 정지용 (삼성전자 무선사업부, KAIST SW 대학원) ;
  • 백종문 (KAIST SW 대학원 전산학과)
  • 투고 : 2016.03.14
  • 심사 : 2016.05.24
  • 발행 : 2016.08.15

초록

최근 안드로이드 플랫폼용 스마트 폰이 증가함에 따라 관련 어플리케이션 수도 크게 증가하고 있다. 안드로이드용 어플리케이션은 화면 구성 등을 위해 자바와 XML을 동시에 사용하는데, 이 둘 사이에서 다양한 문제가 많이 발생하고 있지만, 이를 고려한 정적 분석 연구와 도구는 부족하다. 본 논문에서는 자바와 XML 사이에서 발생 할 수 있는 문제점들과 품질 지표들을 살펴보고 이를 정적 분석 기법으로 분석 할 수 있는 방안을 제안하고자 한다. 제안한 방법으로 구글 플레이 스토어의 150개 어플리케이션을 대상으로 실험한 결과 172건의 문제점들과 35건의 성능 저하 이슈들을 발견하였다. 본 연구를 통해 안드로이드용 어플리케이션에 대한 정적 분석 연구와 소프트웨어 품질 향상에 기여하고자 한다.

In recent years, as smartphones with Android platforms expand, the number of Android applications increases. Android applications implement Java and XML to compose the user interface, among other things. Between Java and XML, various problems may occur. Nonetheless, static analysis research and tools are not sufficient. In this paper we will list the problems which may occur between Java and XML. Subsequently, we will propose a detection method for them. Using the proposed technique, we found 172 Android-specific problems and 35 performance drop issues in 150 Android applications in the Google Play Store. We would like to contribute to research into static analysis and software quality improvement.

키워드

참고문헌

  1. Google, "Layouts," Android Developers, [Online] Available: http://developer.android.com/guide/topics/ui/declaring-layout.html (downloaded 2016, Mar. 07)
  2. Google, "App Manifest," Android Developers, [Online] Available: http://developer.android.com/guide/topics/manifest/manifest-intro.html (downloaded 2016, Mar. 07)
  3. Stack overflow, "Android: Error inflating class," Stack overflow, [Online] Available: http://stackoverflow.com/questions/3739661/android-error-inflating-class (downloaded 2016, Mar. 07)
  4. Stack overflow, "onConfigurationChanged not getting called," Stack overflow, [Online] Available: http://stackoverflow.com/questions/5620033/onconfigurationchanged-not-getting-called (downloaded 2016, Mar. 07)
  5. Google, "Handling Runtime Changes," Android Developers, [Online] Available: http://developer.android.com/guide/topics/resources/runtime-changes.html (downloaded 2016, Mar. 07)
  6. S. Park (2013. Nov. 05), "Android App. Memory Optimization," NAVER D2, [Online] Available: http://d2.naver.com/helloworld/539525 (downloaded 2016, Mar. 07)
  7. Atin (2011. Jul. 11), "When implements Android List View, multiple invocation of getView of Adapter," Tistory, [Online] Available: http://atin.tistory.com/379 (downloaded 2016, Mar. 07)
  8. I. Clifton. (2011. Apr. 05), "Android Layout Optimization: TextViews," A Dash of Mobile Development, [Online] Available: http://blog. iangclifton.com/2011/04/06/android-layout-optimization-textviews (downloaded 2016, Mar. 07)
  9. Google, "Optimizing Layout Hierarchies," Android Developers, [Online] Available: https://developer.android.com/training/improving-layouts/optimizinglayout.html (downloaded 2016, Mar. 07)
  10. Google, "Getting Started," Android Developers, [Online] Available: https://developer.android.com/training (downloaded 2016, Mar. 07)
  11. E. Payet, and F. Spoto, "Static analysis of Android programs," Information and Software Technology, Vol. 54, No. 11, pp. 1192-1201, Nov. 2012. https://doi.org/10.1016/j.infsof.2012.05.003