• 제목/요약/키워드: Dalvik Bytecode

검색결과 5건 처리시간 0.021초

Static Dalvik Bytecode Optimization for Android Applications

  • Kim, Jeehong;Kim, Inhyeok;Min, Changwoo;Jun, Hyung Kook;Lee, Soo Hyung;Kim, Won-Tae;Eom, Young Ik
    • ETRI Journal
    • /
    • 제37권5호
    • /
    • pp.1001-1011
    • /
    • 2015
  • Since just-in-time (JIT) has considerable overhead to detect hot spots and compile them at runtime, using sophisticated optimization techniques for embedded devices means that any resulting performance improvements will be limited. In this paper, we introduce a novel static Dalvik bytecode optimization framework, as a complementary compilation of the Dalvik virtual machine, to improve the performance of Android applications. Our system generates optimized Dalvik bytecodes by using Low Level Virtual Machine (LLVM). A major obstacle in using LLVM for optimizing Dalvik bytecodes is determining how to handle the high-level language features of the Dalvik bytecode in LLVM IR and how to optimize LLVM IR conforming to the language information of the Dalvik bytecode. To this end, we annotate the high-level language features of Dalvik bytecode to LLVM IR and successfully optimize Dalvik bytecodes through instruction selection processes. Our experimental results show that our system with JIT improves the performance of Android applications by up to 6.08 times, and surpasses JIT by up to 4.34 times.

모바일 어플리케이션을 위한 에너지-인식 달빅 바이트코드 리스트 스케줄링 기술 (Energy-aware Dalvik Bytecode List Scheduling Technique for Mobile Applications)

  • 고광만
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제3권5호
    • /
    • pp.151-154
    • /
    • 2014
  • 모바일 기기에서 어플리케이션의 에너지 소비는 운영체제, 실행시간 환경, 컴파일러, 어플리케이션 등이 복잡한 상호 작용을 통해 이루어진다. 최근까지 에너지-지향적인 고수준 및 저수준의 컴파일러 기술을 적용하여 모바일 기기에서 어플리케이션의 에너지 소비를 줄이기 위한 노력이 진행되고 있다. 본 논문에서는 안드로이드 달빅에서 실행되는 dex 파일로부터 달빅 바이트코드를 추출한 후 에너지 소비 최적화를 위한 리스트 인스트럭션 스케줄링을 적용하여 어플리케이션의 에너지 소비를 줄이고자 한다. 이러한 연구는 급속도로 확산되고 있는 안드로이드 기반 어플리케이션이 전력 공급이 제한적인 모바일 환경에서 최적화된 전력 에너지 소비할 수 있는 환경을 구축하는 데 활용할 수 있다.

Automatic Usage Profiling을 통한 초기 앱 실행 속도 개선 방법 (Improving application startup time by automatic profiling)

  • 채향석;백종문
    • 소프트웨어공학소사이어티 논문지
    • /
    • 제28권1호
    • /
    • pp.1-6
    • /
    • 2019
  • Google은 2009년 Bytecode로 구성된 Dex(Dalvik Executable)를 Dalvik Runtime의 Interpreter가 실행하는 형태의 Android를 공개하였다. 이후로 Interpreter 실행 속도 개선을 위해 JIT(Just-in-time) 컴파일 기술을 적용하였고 Lollipop(Android 5.0)부터는 Dalvik Runtime을 대체하여 ART Runtime을 제공하여 AOT(A head-of-time) 컴파일 지원을 통해 앱 설치 이후부터 Bytecode가 아닌 Native code로 동작하도록 함으로써 성능을 높일 수 있게 되었다. 하지만 앱 설치/업데이트 시점에 모든 대상을 컴파일하는 AOT 컴파일은 시간이 오래 걸리고 메모리/CPU 자원을 많이 사용함에 따라 느려지고 발열을 유발하여 사용자 불편함을 초래하였다. 시간이 지날수록 더 복잡하고 큰 코드를 지닌 앱들이 많이 등 장함에 따라 AOT 컴파일로 인해 발생하는 문제들이 더 많이 발생하게 되었고, Nougat(Android 7.0)부터는 이를 개선하여 AOT 컴파일을 앱 설치/업데이트 시점에 모두 수행하지 않고 최적화 시점을 나중으로 미루고 실제 사용자의 사용 기록인 Profile을 사용하는 Profile-guided 컴파일 방법을 통해 문제를 회피하고 있다. 이 연구에서는 앱 실행 속도를 설치 직후부터 개선할 수 있도록 하기 위해 Profile에 따른 앱 실행 속도의 특성을 파악하여 앱 실행 속도를 개선할 수 있는 Profile을 앱 개발 시점에 자동 생성하는 방법과 자동생성한 프로파일을 APK에 포함하고 앱 설치/업데이트 시점에 활용하여 최적화를 할 수 있는 방법을 제안한다. 제안하는 방법을 통해 앱 설치 시점에 Profile에 기반하여 선택적으로 컴파일할 수 있으므로 설치 시점에 발생하는 사용자 불편을 최소화할 수 있으며 앱 설치 이후 Native code 실행을 통해 앱 실행 속도를 최초 실행부터 개선할 수 있다.

에너지-지향 달빅 바이트코드 스케줄링 기술 (Energy-oriented Dalvik Bytecode Scheduling Technique)

  • 고광만;박희완;윤종희;최광훈
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.101-102
    • /
    • 2012
  • 안드로이드 플랫폼에 적합한 어플리케이션 보급이 급증하면서 안드로이드 가상머신인 달빅(dalvik)의 성능 향상을 위한 연구가 다양하게 시도되고 있다. 전력 공급이 제한적인 모바일 기기에서 효율적인 어플리케이션 실행을 위한 플랫폼의 성능 향상과 더불어 전력 에너지의 최적화된 소비가 중요한 이슈가 되고 있다. 이 논문은 달빅에서 실행되는 dex 파일의 바이트코드를 에너지 소비 중심으로 스케줄링하여 Java 어플리케이션의 전력 에너지 소비를 최적화하고자 하는 시도이다. 에너지 지향적인 스케줄링 기법은 전통적인 리스트-인스트럭션 스케줄링 기법을 기반으로 하였으며 스케줄링 전 후의 실험 결과를 제시하여 이 연구의 효과를 입증한다.

유해 사이트를 접속하는 안드로이드 앱을 문자열 분석으로 검사하는 시스템 (A String Analysis based System for Classifying Android Apps Accessing Harmful Sites)

  • 최광훈;고광만;박희완;윤종희
    • 정보처리학회논문지A
    • /
    • 제19A권4호
    • /
    • pp.187-194
    • /
    • 2012
  • 안드로이드 기반 스마트폰 앱의 바이너리 코드를 오프라인 상에서 분석하여 유해 사이트 목록에 포함된 서버에 접속하는지 여부를 판단하는 시스템을 제안하고, 실제 앱에 대해 적용한 실험 결과를 제시한다. 주어진 앱의 바이너리 코드를 Java 바이트 코드로 역 컴파일하고, 문자열 분석을 적용하여 프로그램에서 사용하는 모든 문자열 집합을 계산한 다음, 유해 매체물을 제공하는 사이트 URL을 포함하는지 확인하는 방법이다. 이 시스템은 앱을 실행하지 않고 배포 단계에서 검사할 수 있고 앱 마켓 관리에서 유해 사이트를 접속하는 앱을 분류하는 작업을 자동화 할 수 있는 장점이 있다. DNS 서버를 이용하거나 스마트폰에 모니터링 모듈을 설치하여 차단하는 기존 방법들과 서로 다른 단계에서 유해 앱을 차단함으로써 상호 보완할 수 있는 방법이 될 수 있다.