KR20230001882A - 앱의 기능 단위 사용량을 분석하는 방법 및 장치 - Google Patents

앱의 기능 단위 사용량을 분석하는 방법 및 장치 Download PDF

Info

Publication number
KR20230001882A
KR20230001882A KR1020210084961A KR20210084961A KR20230001882A KR 20230001882 A KR20230001882 A KR 20230001882A KR 1020210084961 A KR1020210084961 A KR 1020210084961A KR 20210084961 A KR20210084961 A KR 20210084961A KR 20230001882 A KR20230001882 A KR 20230001882A
Authority
KR
South Korea
Prior art keywords
app
function
analyzing
usage
event
Prior art date
Application number
KR1020210084961A
Other languages
English (en)
Inventor
이성주
조현성
김동휘
최다은
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020210084961A priority Critical patent/KR20230001882A/ko
Priority to PCT/KR2021/011432 priority patent/WO2023277241A1/ko
Priority to US17/852,852 priority patent/US20230004452A1/en
Publication of KR20230001882A publication Critical patent/KR20230001882A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/321Display for diagnostics, e.g. diagnostic result display, self-test user interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

앱의 기능 단위 사용량을 분석하는 방법 및 장치가 제공된다. 앱의 기능 단위 사용량을 분석하는 방법은, 사용자 단말에서 발생하는 이벤트를 검출하는 단계; 상기 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트를 레이아웃 요소로 추출하는 단계; 상기 추출한 레이아웃 요소에 기반하여 상기 앱의 기능을 검출하는 단계; 및 상기 검출한 기능 단위로 사용량을 분석하는 단계를 포함할 수 있다.

Description

앱의 기능 단위 사용량을 분석하는 방법 및 장치{METHOD AND DEVICE FOR ANALYZING FEATURE-LEVEL USAGE OF APP}
본 발명은 앱의 기능 단위 사용량(feature-level usage)을 분석하는 방법 및 장치에 관한 것이다.
스마트폰은 다양한 앱을 추가로 설치할 수 있어서 사용자가 원하는 여러가지 기능을 유연하게 제공할 수 있다. 스마트폰 사용자는 소프트웨어 마켓, 예를 들어, 앱스토어에 접속하여 자신이 원하는 앱을 다운로드할 수 있다. 스마트폰의 보급률은 더 높아지고, 하루 중 다양한 기능을 제공하는 스마트폰을 사용하는 시간이 크게 증가함에 따라, 스마트폰 과다 사용 또는 스마트폰 중독 문제가 대두되었다.
스마트폰을 과다하게 사용하면, 스마트폰 사용에 대한 금단과 내성, 그리고 일상 생활 장애, 가상 세계 지향성 등의 증상이 나타날 뿐 아니라, 수면 장애, 시력 기능 저하, 거북 목 증후군 등 신체적 건강에도 영향을 미치게 된다. 이러한 문제를 인식하게 되어, 건강한 스마트폰 사용을 위한 방안들에 대한 연구들이 활발하게 진행 중이다.
본 발명이 해결하고자 하는 과제는, 스마트폰의 사용량, 사용 형태 또는 사용 패턴을 앱 단위보다 세분화된 앱의 기능(feature) 단위로 분석할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 방법은, 사용자 단말에서 발생하는 이벤트를 검출하는 단계; 상기 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트를 레이아웃 요소(Layout Element)로 추출하는 단계; 상기 추출한 레이아웃 요소에 기반하여 상기 앱의 기능을 검출하는 단계; 및 상기 검출한 기능 단위로 사용량(usage)을 분석하는 단계를 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 방법은, 상기 사용자 단말에서 사용 중인 앱에 대한 기능 검출기(Feature Detector)를 선택하는 단계를 더 포함하고, 상기 앱의 기능을 검출하는 단계는, 상기 선택한 기능 검출기를 이용하여 상기 앱의 기능을 검출하는 단계를 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 앱은 제1 앱 및 제2 앱을 포함하고, 상기 기능 검출기를 선택하는 단계는, 상기 제1 앱의 세션이 종료되고 상기 제2 앱의 세션이 시작된 경우, 상기 제1 앱에 대한 기능 검출기의 사용을 종료하고 상기 제2 앱에 대한 기능 검출기의 사용을 시작하는 단계를 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 사용자 인터페이스 컴포넌트를 레이아웃 요소로 추출하는 단계는, 상기 사용자 인터페이스 컴포넌트에 대한 정보를 트리(tree) 구조의 상기 레이아웃 요소로 저장하는 단계를 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 앱의 기능을 검출하는 단계는, 상기 트리 구조의 상기 레이아웃 요소를 순회(traverse)하면서 선택되는 요소(element)를 검출하는 단계; 상기 요소를 분석하여 뷰 정보를 결정하는 단계; 상기 뷰 정보와 연관된 텍스트를 분석하여 콘텐츠 정보를 결정하는 단계; 및 상기 뷰 정보 및 상기 콘텐츠 정보의 조합에 기반하여 상기 기능을 검출하는 단계를 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 뷰 정보를 결정하는 단계는, 상기 선택되는 요소의 위치, 크기 또는 인덱스 정보에 따라 상기 뷰 정보를 결정하는 단계를 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 뷰 정보를 결정하는 단계는, 상기 선택되는 요소에 대한 루트 뷰(Root view)의 클래스명(class name)에 따라 상기 뷰 정보를 결정하는 단계를 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 뷰 정보를 결정하는 단계는, 상기 선택되는 요소에 대한 콘텐츠 설명(content description) 및 텍스트의 존재 여부에 따라 상기 뷰 정보를 결정하는 단계를 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 뷰 정보를 결정하는 단계는, 상기 선택되는 요소에 대한 viewIdResourceName 정보에 따라 상기 뷰 정보를 결정하는 단계를 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 이벤트를 검출하는 단계는, 스크롤 이벤트, 클릭 이벤트, 포커스 이벤트, 윈도우 전환 이벤트 및 윈도우 상태 전환 이벤트 중 적어도 하나를 검출하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치는, 사용자 단말에서 발생하는 이벤트를 검출하는 이벤트 검출 모듈; 상기 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트를 레이아웃 요소로 추출하는 레이아웃 요소 추출 모듈; 상기 추출한 레이아웃 요소에 기반하여 상기 앱의 기능을 검출하는 레이아웃 요소 기반 기능 검출 모듈; 및 상기 검출한 기능 단위로 사용량을 분석하는 기능 단위 사용량 분석 모듈을 포함할 수 있다.
본 발명의 일부 실시 예에서, 상기 장치는, 상기 사용자 단말에서 사용 중인 앱에 대한 기능 검출기를 선택하는 기능 검출기 선택 모듈을 더 포함하고, 상기 레이아웃 요소 기반 기능 검출 모듈은, 상기 선택한 기능 검출기를 이용하여 상기 앱의 기능을 검출할 수 있다.
본 발명의 일부 실시 예에서, 상기 앱은 제1 앱 및 제2 앱을 포함하고, 상기 기능 검출기 선택 모듈은, 상기 제1 앱의 세션이 종료되고 상기 제2 앱의 세션이 시작된 경우, 상기 제1 앱에 대한 기능 검출기의 사용을 종료하고 상기 제2 앱에 대한 기능 검출기의 사용을 시작할 수 있다.
본 발명의 일부 실시 예에서, 상기 레이아웃 요소 추출 모듈은, 상기 사용자 인터페이스 컴포넌트에 대한 정보를 트리 구조의 상기 레이아웃 요소로 저장할 수 있다.
본 발명의 일부 실시 예에서, 상기 레이아웃 요소 기반 기능 검출 모듈은, 상기 트리 구조의 상기 레이아웃 요소를 순회하면서 선택되는 요소를 검출하고, 상기 요소를 분석하여 뷰 정보를 결정하고, 상기 뷰 정보와 연관된 텍스트를 분석하여 콘텐츠 정보를 결정하고, 상기 뷰 정보 및 상기 콘텐츠 정보의 조합에 기반하여 상기 기능을 검출할 수 있다.
본 발명의 일부 실시 예에서, 상기 레이아웃 요소 기반 기능 검출 모듈은, 상기 선택되는 요소의 위치, 크기 또는 인덱스 정보에 따라 상기 뷰 정보를 결정할 수 있다.
본 발명의 일부 실시 예에서, 상기 레이아웃 요소 기반 기능 검출 모듈은, 상기 선택되는 요소에 대한 루트 뷰의 클래스명에 따라 상기 뷰 정보를 결정할 수 있다.
본 발명의 일부 실시 예에서, 상기 레이아웃 요소 기반 기능 검출 모듈은, 상기 선택되는 요소에 대한 콘텐츠 설명 및 텍스트의 존재 여부에 따라 상기 뷰 정보를 결정할 수 있다.
본 발명의 일부 실시 예에서, 상기 레이아웃 요소 기반 기능 검출 모듈은, 상기 선택되는 요소에 대한 viewIdResourceName 정보에 따라 상기 뷰 정보를 결정할 수 있다.
본 발명의 일부 실시 예에서, 상기 이벤트 검출 모듈은, 스크롤 이벤트, 클릭 이벤트, 포커스 이벤트, 윈도우 전환 이벤트 및 윈도우 상태 전환 이벤트 중 적어도 하나를 검출할 수 있다.
본 발명의 일 실시 예에 따르면, 스마트폰의 사용량, 사용 형태 또는 사용 패턴을 앱의 기능 단위로 분석하여, 기존의 앱 단위 분석에서 사용자가 많은 시간동안 사용하는 앱이 무엇인지, 자주 사용하는 앱이 무엇인지 수준의 분석이 가능했다면, 하나의 앱 내에서도 사용자가 어떤 기능에 대해 많은 시간을 소비하고, 어떤 기능을 자주 사용하는지 등의 세부적인 분석이 가능하다. 동시에 상기 분석을 위한 데이터를 수집함에 있어서 개인 정보 보호 문제가 발생하지 않도록 할 수 있다.
또한 본 발명의 일 실시 예에 따르면, 이러한 세부적인 분석이 전문가의 인위적인 분석 과정을 거치지 않고, 백그라운드 서비스(background service)로 실행되어 스마트폰의 사용량, 사용 형태 또는 사용 패턴을 자동으로 수집함으로써, 신뢰성 있는 분석 데이터를 빠른 시간 내에 확보할 수 있다.
또한 본 발명의 일 실시 예에 따르면, 앱의 기능 단위로 분석할 수 있는 방법 및 장치는 분석하고자 하는 앱의 기능 단위를 커스터마이징할 수 있는 인터페이스가 개발자 또는 분석가 등에게 제공되므로, 새로이 사용되는 앱을 기능 단위로 분석하고자 하는 경우, 복잡한 코딩 작업을 거치지 않고 분석 정책을 손쉽게 설정할 수 있도록 하여, 활용성을 높이고 사용 편의성을 확보할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치에 대한 예시적인 일 구현 예를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 방법을 설명하기 위한 순서도이다.
도 4 내지 도 7은 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치 및 방법의 예시적인 일부 구현 예들을 설명하기 위한 도면들이다.
도 8은 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치 및 방법의 예시적인 일 응용 예를 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 방법 및 장치를 구현하기 위한 컴퓨팅 장치를 설명하기 위한 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치를 설명하기 위한 블록도이고, 도 2는 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치에 대한 예시적인 일 구현 예를 설명하기 위한 도면이다.
종래에는 사용자의 스마트폰 사용 현황을 파악하기 위해 앱 단위로 사용 시간, 사용 빈도 등을 추적하였으나, 앱 단위의 추적 방법에 따르면 사용자가 앱 내에서 어떤 세부 기능을 얼마나 오래 사용하는지에 대한 분석이 어려웠다. 건강한 스마트폰 사용 환경을 제공하기 위해, 앱 단위보다 세분화된 단위로 사용자의 사용량 또는 사용 패턴을 파악할 필요가 발생하였는데, 앱 자체에서는 기능 별로 사용자의 사용량 또는 사용 패턴을 추적할 수 있는 기능을 제공하지 않는다.
본 발명의 일 실시 예에 따른 앱(20)의 기능 단위 사용량을 분석하는 장치(10)는, 이와 같은 문제를 해결하기 위해, 앱(20)의 레이아웃 정보를 사용하여 다양한 앱의 기능들을 검출하고, 검출된 기능 단위로 사용자의 기능별 사용량 또는 기능별 사용 패턴을 추적함으로써, 스마트폰 사용에 관한 세밀화된 분석(fine-grained analysis)을 제공할 수 있다. 또한, 앱(20)의 기능 단위 사용량을 분석하는 장치(10)는, 상기 분석을 위해 데이터를 수집함에 있어서 개인 정보 보호 문제(privacy issue)가 발생하지 않도록 하기 위한 기능을 제공할 수 있다.
도 1을 참조하면, 앱(20)의 기능 단위 사용량을 분석하는 장치(10)는 컴퓨팅 장치(1)에 포함될 수 있다. 여기서, 앱(20)의 기능 단위 사용량을 분석하는 장치(10)는 하드웨어 장치로 구현될 수도 있고, 하드웨어 장치와 소프트웨어의 조합으로 구현될 수도 있고, 또는 소프트웨어로 구현될 수도 있다. 앱(20)의 기능 단위 사용량을 분석하는 장치(10)는, 컴퓨팅 장치(1)에서 실행되는 앱(20)과 함께 구동되거나 실행됨으로써 앱의 사용량을 분석할 수 있다.
본 실시 예에서, 앱(20)의 기능 단위 사용량을 분석하는 장치(10)는, 이벤트 검출 모듈(110), 레이아웃 요소 추출 모듈(120), 기능 검출기 선택 모듈(130), 레이아웃 요소 기반 기능 검출 모듈(140) 및 기능 단위 사용량 분석 모듈(150)을 포함할 수 있다. 도 2를 함께 참조하면, 도 1의 이벤트 검출 모듈(110), 레이아웃 요소 추출 모듈(120), 기능 검출기 선택 모듈(130) 및 레이아웃 요소 기반 기능 검출 모듈(140)은, 도 2의 안드로이드 접근성 API(Android Accessibility API(Application Programming Interface)), "LayoutLogger", "FeatureDetectManager" 및 "AppFeatureDetector"에 각각 대응될 수 있다.
이벤트 검출 모듈(110)은 사용자 단말에서 발생하는 이벤트를 검출할 수 있다. 여기서, 사용자 단말은 스마트폰일 수 있다. 물론, 본 발명의 범위가 이에 제한되는 것은 아니고, 사용자 단말은, 앱 또는 애플리케이션을 설치 및 실행하여 기능들을 구현할 수 있는 임의의 컴퓨팅 장치, 예를 들어, 태블릿 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터, 스마트 워치 등을 포함할 수 있다.
사용자 단말에서 발생하는 이벤트는 사용자가 스마트폰과 상호작용을 하면서 발생되거나, 스마트폰 상에서 앱이 구동되면서 발생되는 다양한 종류의 이벤트, 예를 들어, 스크롤(scroll) 이벤트, 클릭(click) 이벤트, 포커스(focus) 이벤트, 윈도우 전환 이벤트 및 윈도우 상태 전환 이벤트 등을 의미할 수 있다.
이벤트 검출 모듈(110)은 사용자 단말에서 발생되는 이벤트를 검출하기 위해 안드로이드 접근성 API를 통해 제공되는 접근성 서비스를 통해 구현될 수 있다. 사용자 단말에서 발생하는 이벤트는, 예를 들어, 접근성 서비스의 "AccessibilityService" 클래스의 "OnAccessibilityEvent" 메서드를 통해 해석될 수 있다.
레이아웃 요소 추출 모듈(120)은, 이벤트 검출 모듈(110)이 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트를 레이아웃 요소로 추출할 수 있다.
검출한 이벤트에 대한 사용자 인터페이스 컴포넌트의 예로는, 메뉴 바(menu bar)에서 선택된 요소(selected element), 화면의 레이아웃(layout of screen), 액티비티/컴포넌트의 클래스명(class name of activity/components), 윈도우 ID(window ID), 이전 기능(previous features), 텍스트(text)(바람직하게는 해시 텍스트(hashed text)), 콘텐츠 설명(contentDescription)(바람직하게는 해시 콘텐츠 설명(hashed contentDescription)), 사각형 바운드(Rect bounds), 선택된 요소(isSelected), 편집 가능 요소(isEditable), 안드로이드 View 리소스 ID 및 이름(viewIdResourceName) 등을 들 수 있다. 물론, 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트는 위에서 나열된 것들로 제한되는 것은 아니며, 사용자 단말에 표시되어 사용자와 상호작용하며 이벤트를 발생시키는 임의의 요소를 포함할 수 있다.
레이아웃 요소 추출 모듈(120)은, 이와 같이 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트에 관한 정보를 트리 구조를 갖는 레이아웃 요소로서 저장할 수 있다. 이와 같은 작업은 도 2의 "LayoutLogger"에서 구현되는 "CreateLayoutElement" 메서드를 통해 수행될 수 있다.
레이아웃 요소를 구성함에 있어서 트리 구조를 채택하는 이유 중 하나는 레이아웃 요소 기반 기능 검출 모듈(140)이 레이아웃 요소를 검색하면서 분석하는 작업을 수행할 때 효율을 높이기 위함이나, 본 발명의 범위가 반드시 이에 제한되는 것은 아니며, 레이아웃 요소는, 예를 들어 링크드 리스트(linked list)와 같은 다른 임의의 데이터 구조로 저장될 수도 있다.
특히, 레이아웃 요소 추출 모듈(120)은, 개인정보 보호 문제를 고려하여, 화면 상에 표시되는 텍스트 및 콘텐츠 설명에 관한 데이터를 해시 처리하거나, 분석을 위해 반드시 필요한 키워드만을 추출하는 방식으로 수집하는 데이터를 최소화하기 위한 처리를 할 수 있다.
한편, 레이아웃 요소 추출 모듈(120)은, 사용자 단말의 유형(type)이나 화면 크기(screen size)가 다르더라도 분석 신뢰성을 확보하기 위해, 기능 검출에 있어서 사용자 인터페이스 컴포넌트의 크기에 관한 정보들을 사용하지 않거나, 그 사용 비중을 최소화할 수 있다. 예를 들어, 사용자에 따라 다를 수 있는 단말 유형 또는 화면 크기에 관한 정보 대신에, 개발 과정에서 결정된 클래스 명에 관한 정보가 주로 사용되도록 하여, 사용자간 사용 환경의 편차에도 불구하고 동작 신뢰성을 확보할 수 있도록 한다.
또한, 레이아웃 요소 추출 모듈(120)은, 예기치 못한 레이아웃 감지로 인해 하나의 기능 세션(session) 추적이 중단되는 것을 방지하기 위해, 검출된 기능과 윈도우 ID를 매치하는 해시 맵을 사용할 수 있다. 이에 따라, 앱 인터페이스 업데이트 등의 이유로 예기치 못한 레이아웃이 등장할 시에도 윈도우 ID가 동일하다면, 검출된 기능도 동일한 것으로 판단하여 동작 안정성을 확보할 수 있도록 한다.
본 발명의 몇몇 실시 예에서, 레이아웃 요소 추출 모듈(120)에는 도 2의 "SaveToLbs"가 구현될 수 있는데, 이는 향후 분석에 사용될 수 있는 로그(log) 파일을 생성할 수 있다.
기능 검출기 선택 모듈(130)은, 사용자 단말에서 사용 중인 앱에 대한 기능 검출기를 선택할 수 있다.
기능 검출기 선택 모듈(130)은, 도 2의 "FeatureDetectManager"에서 구현되는 "MapProperDetector" 메서드를 통해 수행될 수 있으며, 앱마다 사용자에게 제공하는 기능이 다르기 때문에, 이벤트 검출 모듈(110) 및 레이아웃 요소 추출 모듈(120)로부터 제공받은 레이아웃 요소를 어떻게 분석할 것인지에 대한 방침(policy)을 정의할 수 있다.
예를 들어, 사용자 단말에서 사용 중인 앱이 인스타그램인 경우, "MapProperDetector" 메서드는 인스타그램에서 제공되는 기능에 최적화된 방침을 포함하는 "InstagramFeatureDetector"를 제공할 수 있다. 이와 마찬가지로, "MapProperDetector" 메서드는, 사용자 단말에서 사용 중인 앱이 카카오톡인 경우 카카오톡에서 제공되는 기능에 최적화된 방침을 포함하는 "KakaoFeatureDetector"를 제공할 수 있고, 사용자 단말에서 사용 중인 앱이 페이스북인 경우 페이스북에서 제공되는 기능에 최적화된 방침을 포함하는 "FacebookFeatureDetector"를 제공할 수 있으며, 사용자 단말에서 사용 중인 앱이 유튜브인 경우 유튜브에서 제공되는 기능에 최적화된 방침을 포함하는 "YouTubeFeatureDetector"를 제공할 수 있다. 이와 같이, 기능 검출기 선택 모듈(130)에서 제공되는 앱 별 방침은 레이아웃 요소 기반 기능 검출 모듈(140) 및 기능 단위 사용량 분석 모듈(150)에서 분석을 위한 기준으로서 활용될 수 있다.
또한, 사용자 단말에서 사용 중인 앱이 제1 앱에서 제2 앱으로 전환되는 경우, 즉, 제1 앱의 세션이 종료되고 제2 앱의 세션이 시작된 경우, 기능 검출기 선택 모듈(130)은, 제1 앱에 대한 기능 검출기의 사용을 종료하고 제2 앱에 대한 기능 검출기의 사용을 시작할 수 있다. 예를 들어, 사용자 단말에서 인스타그램 앱의 세션이 종료되고 페이스북의 세션이 시작되면, 기능 검출기 선택 모듈(130)은, 인스타그램 앱에 대한 기능 검출기 "InstagramFeatureDetector"의 사용을 종료하고 페이스북 앱에 대한 기능 검출기 "FacebookFeatureDetector"의 사용을 시작할 수 있다.
본 발명의 몇몇 실시 예에서, 기능 검출기 선택 모듈(130)에는 도 2의 "ManageSession"이 구현될 수 있는데, 이는 앱의 전환(application switch)을 검출할 수 있다.
레이아웃 요소 기반 기능 검출 모듈(140)은, 레이아웃 요소 추출 모듈(120)이 추출한 레이아웃 요소에 기반하여 앱의 기능을 검출할 수 있다. 특히, 레이아웃 요소 기반 기능 검출 모듈(140)은, 현재 사용되는(currently in use) 앱의 기능이 무엇인지를 검출할 수 있다. 이와 같은 작업은 도 2의 "AppFeatureDetector"에서 구현되는 "DetectFeature" 메서드를 통해 수행될 수 있다.
예를 들어, 사용자 단말에서 사용 중인 앱이 인스타그램인 경우, 인스타그램에서 제공되는 기능에 최적화된 방침을 포함하는 기능 검출기 "InstagramFeatureDetector"를 이용하여, 레이아웃 요소 추출 모듈(120)에 의해 추출된 레이아웃 요소들 중, 선택된 요소(selected element), 최근에 사용된 기능(lastly used feature)과, 레이아웃 및 콘텐츠(layout & content)를 분석하여, 사용자가 사용 중인 인스타그램 앱의 세부 기능을 검출할 수 있다.
특히, 레이아웃 요소 기반 기능 검출 모듈(140)은, 트리 구조의 레이아웃 요소를 순회하면서 선택되는 요소를 검출하고, 검출한 요소를 분석하여 뷰 정보를 결정하고, 뷰 정보와 연관된 텍스트를 분석하여 콘텐츠 정보를 결정하고, 뷰 정보 및 콘텐츠 정보의 조합에 기반하여 현재 사용 중인 기능을 검출할 수 있다.
본 발명의 일 실시 예에서, 레이아웃 요소 기반 기능 검출 모듈(140)은, 선택되는 요소의 위치, 크기 또는 인덱스 정보에 따라 뷰 정보를 결정할 수 있다.
본 발명의 일 실시 예에서, 레이아웃 요소 기반 기능 검출 모듈(140)은, 선택되는 요소에 대한 루트 뷰의 클래스명에 따라 뷰 정보를 결정할 수 있다.
본 발명의 일 실시 예에서, 레이아웃 요소 기반 기능 검출 모듈(140)은, 선택되는 요소에 대한 콘텐츠 설명 및 텍스트의 존재 여부에 따라 뷰 정보를 결정할 수 있다.
본 발명의 일 실시 예에서, 레이아웃 요소 기반 기능 검출 모듈(140)은, 선택되는 요소에 대한 viewIdResourceName 정보에 따라 뷰 정보를 결정할 수 있다.
기능 단위 사용량 분석 모듈(150)은, 레이아웃 요소 기반 기능 검출 모듈(150)이 검출한 기능 단위로 사용량을 분석할 수 있으며, 분석한 결과를 사용자에게 표시하고 사용자에게 설문을 유도할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 방법은, 사용자 단말에서 발생하는 이벤트를 검출하는 단계(S310), 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트를 레이아웃 요소로 추출하는 단계(S320), 사용자 단말에서 사용 중인 앱에 대한 기능 검출기를 선택하는 단계(S330), 선택한 기능 검출기를 이용하여, 추출한 레이아웃 요소에 기반하여 앱의 기능을 검출하는 단계(S340) 및 검출한 기능 단위로 사용량을 분석하는 단계(S350)를 포함할 수 있다.
앱의 기능 단위 사용량을 분석하는 방법에 대한 보다 상세한 설명은 도 1 및 도 2와 관련하여 전술한 이벤트 검출 모듈(110), 레이아웃 요소 추출 모듈(120), 기능 검출기 선택 모듈(130), 레이아웃 요소 기반 기능 검출 모듈(140) 및 기능 단위 사용량 분석 모듈(150)에 대한 설명을 참조할 수 있으며, 여기에서는 중복되는 설명을 생략하도록 한다.
도 4 내지 도 7은 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치 및 방법의 예시적인 일부 구현 예들을 설명하기 위한 도면들이다.
도 4를 참조하면, 레이아웃 요소 추출 모듈(120)은, 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트로, 텍스트(text)로서 "graphicdesign", "인기 게시물" 및 "최근 게시물"을 포함하는 화면 레이아웃(layout of screen), 그리고 선택된 요소(select element)를 레이아웃 요소로 추출하고, 기능 검출기 선택 모듈(130)은 인스타그램 앱에 대한 방침을 포함하는 "InstagramFeatureDetector"를 선택하고, 이에 기반하여 레이아웃 요소 기반 기능 검출 모듈(140)은 현재 사용중인 기능, 예를 들어 사용자가 현재 팔로잉 피드(following feed) 기능을 사용 중이라는 것을 검출할 수 있다.
또한, 레이아웃 요소 추출 모듈(120)은, 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트로, 텍스트(text)로서 "사다리게임"과 viewIdResourceName으로 "com.kakao.talk:id/search_card_sharp" 및 액티비티의 클래스명으로 "com.kakao.talk.activity.search.card.SharpCardActivity"를 레이아웃 요소로 추출하고, 기능 검출기 선택 모듈(130)은 카카오톡 앱에 대한 방침을 포함하는 "KakaoFeatureDetector"를 선택하고, 이에 기반하여 레이아웃 요소 기반 기능 검출 모듈(140)은 현재 사용중인 기능, 예를 들어 사용자가 현재 게임(사다리게임) 기능을 사용 중이라는 것을 검출할 수 있다.
한편, 도 5를 참조하면, 레이아웃 요소 추출 모듈(120)은, 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트로, 무한 스크롤링(Infinite Scrolling)을 레이아웃 요소로 추출하고, 기능 검출기 선택 모듈(130)은 페이스북 앱에 대한 방침을 포함하는 "FacebookFeatureDetector"를 선택하고, 이에 기반하여 레이아웃 요소 기반 기능 검출 모듈(140)은 현재 사용중인 기능, 예를 들어 사용자가 뉴스피드를 스크롤하는 기능을 사용 중이라는 것을 검출할 수 있다.
한편, 도 6을 참조하면, 예기치 못한 레이아웃으로 인해 기능 세션(session)이 중단되는 것을 방지하기 위해, 검출된 기능과 윈도우 ID를 매치하는 해시 맵을 사용하여, 윈도우 ID가 동일하다면, 검출된 기능도 동일한 것으로 판단하는 예가 도시되어 있다.
한편, 도 7을 참조하면, 레이아웃 요소 기반 기능 검출 모듈(140)이 팔로잉 피드(following feed) 기능, 제안 포스트(suggested post) 기능, 타인 포스트(other's post) 기능을 검출한 경우, 해당 기능들에 대한 사용량 및 사용 패턴을 그래프로 표시하면서 사용자에게 설문을 유도하는 예가 도시되어 있다.
도 8은 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치 및 방법의 예시적인 일 응용 예를 설명하기 위한 도면이다.
도 8을 참조하면, 기능 단위로 사용량을 분석한 데이터는 기능 사용 가능성(feature use probability) 등의 예측 등을 비롯한 다양한 응용으로 사용될 수 있다.
즉, 본 발명의 실시 예들에 따른 앱의 기능 단위 사용량을 분석하는 방법 및 장치는 스마트폰의 사용을 기능 별로 분석하며, 앱 사용량 또는 사용 패턴은 "기능" 사용량 또는 사용 패턴의 시퀀스로 분해될 수 있다. 예를 들어, 인스타그램 세션은 팔로잉 사용자의 포스트에 대한 피드를 브라우징하는 기능(browsing the feed of following user's posts), 시스템이 추천하는 포스트에 대한 피드를 브라우징하는 기능(browsing the feed of system-recommended posts), 다이렉트 메시징(direct messaging), 스토리 보기(viewing stories) 등의 세부 기능으로 분할될 수 있다. 그리고 앱의 레이아웃 정보를 이용하여 여러가지 앱 기능들의 사용을 추적하고, 추적한 결과(사용량 또는 사용패턴)을 사용자에게 제공하거나, 추후 분석 또는 응용을 위해 사용할 수 있다.
본 발명의 실시 예들에 따른 앱의 기능 단위 사용량을 분석하는 방법 및 장치는 다음과 같은 특징을 지닌다.
- 기능에 대한 기준(Criteria for Features): (1) 사용자 액션(user action)과 (2) 콘텐츠의 성격(nature of content)이라는 2 가지 기준의 조합으로 대상 애플리케이션의 기능을 추출한다. 예를 들어, 먼저, 보기(viewing), 검색(searching), 업로드(uploading), 채팅(chatting)과 같은 사용자 액션을 기반으로 기능들을 그룹화한다. 콘텐츠의 성격에는 콘텐츠의 형식(form)과 콘텐츠의 출처(source)가 포함되며, 콘텐츠의 형식의 예로는 비디오, 피드, 알림 및 게시물을 들 수 있고, 콘텐츠의 출처의 예로는 사용자 자신의 게시물, 사용자가 팔로우하는 게시물 및 사용자가 팔로우하지 않는 다른 사용자의 게시물을 들 수 있다. 이 2 가지 기준을 고려하여 다음과 같이 예시적인 기능을 정의할 수 있다.
1) 카카오톡 앱의 경우
Figure pat00001
2) 유튜브 앱의 경우
Figure pat00002
3) 인스타그램 앱의 경우
Figure pat00003
4) 페이스북 앱의 경우
Figure pat00004
- 설계 및 구현(Design and Implementation): Android Accessibility API를 사용하여 현재 사용 중인 기능을 검출한다. 모든 스크롤, 클릭 및 포커스 이벤트에 대해 트리 구조의 UI 구성 요소 정보를 검색한다. 기능 사용 검출을 위해 이들 정보 중 일부를 선택하고, 메뉴 바에서 선택된 요소는 사용 중인 기능을 나타내는 좋은 지표가 된다. 또한, 각 컴포넌트의 레이아웃 정보도 사용한다. 더 복잡한 기능을 감지하기 위해 개발자가 제공한 액티비티 및 컴포넌트의 클래스명을 사용하며, 윈도우 ID 및 이전에 검출된 기능은 세션에서 다양한 기능의 사용을 분석하는 데 사용된다. 마지막으로 최소한의 사용을 위해 콘텐츠 설명과 같은 해시된 텍스트 데이터를 사용할 수 있다.
- 개인 정보 보호(Privacy): 기능 사용을 검출하기 위해 모든 화면 정보를 모니터링할 수 있으므로, 개인 정보 보호 문제를 고려해야 한다. 수집하는 데이터에는 텍스트 정보를 제외하고 화면의 콘텐츠에 대한 정보나 주제를 드러내는 정보가 포함되지 않도록 한다. 콘텐츠의 텍스트와 콘텐츠 설명(UI 요소의 목적에 대해 개발자가 추가됨)의 2 가지 유형의 텍스트 정보를 사용할 수 있는데, 개인 정보 위험을 최소화하기 위해 모든 텍스트 정보를 해시 형식으로 사용한다. 또한, 이러한 정보는 특정 단어나 구문이 화면에 있는지 이해하기 위해서만 사용된다. 예를 들어, 해시된 텍스트를 사용하여 "post"라는 단어가 헤더에 존재하는 지만을 확인하여, 현재 기능이 게시물 보기와 관련이 있는지 확인할 수 있다.
- 호환성(Compatibility): 다양한 화면 크기에 관계없이 일관되게 작동하도록 애플리케이션을 구성한다. 예를 들어, 기능 사용을 검출하기 위해, UI 컴포넌트의 크기 정보는 기기에 따라 다를 수 있으므로 활용하지 않을 수 있다. 대신 모든 장치에서 동일하게 설정되는 컴포넌트의 클래스명을 주로 사용할 수 있다. 그리고 화면에서 미리 결정된 지표(pre-determined indicators)를 포착하여 기능 사용을 검출한다. 그런데, 화면 콘텐츠의 모든 조합에 대한 지표를 미리 정의할 수는 없으므로, 지정되지 않은 케이스는 정의되지 않은 기능(undefined features)으로 레이블링된다. 이러한 경우, 일부 미리 정의된 기능 A을 사용하는 동안 정의되지 않은 기능 U가 검출 되어, 미리 정의된 기능 A가 종료된 것으로 잘못 알릴 수 있다. 이러한 예상치 못한 중단을 방지하기 위해, 검출된 기능 A가 있는 윈도우 ID와 일치하는 해시 맵을 사용하여, 사용자가 동일한 윈도우 ID로 화면을 보는 경우, 동일한 기능 A가 여전히 사용중인 것으로 간주할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 방법 및 장치를 구현하기 위한 컴퓨팅 장치를 설명하기 위한 블록도이다.
도 9를 참조하면, 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 방법 및 장치는 컴퓨팅 장치(50)를 이용하여 구현될 수 있다.
컴퓨팅 장치(50)는 버스(520)를 통해 통신하는 프로세서(510), 메모리(530), 사용자 인터페이스 입력 장치(540), 사용자 인터페이스 출력 장치(550) 및 저장 장치(560) 중 적어도 하나를 포함할 수 있다. 컴퓨팅 장치(50)는 또한 네트워크(40), 예컨대 무선 네트워크에 전기적으로 접속되는 네트워크 인터페이스(570)를 포함할 수 있다. 네트워크 인터페이스(570)는 네트워크(40)를 통해 다른 개체와 신호를 송신 또는 수신할 수 있다.
프로세서(510)는 AP(Application Processor), 중앙 처리 장치(Central Processing Unit, CPU)이거나, 또는 메모리(530) 또는 저장 장치(560)에 저장된 명령을 실행하는 임의의 반도체 장치일 수 있다. 프로세서(510)는 도 1 내지 도 8과 관련하여 앞서 설명한 기능 및 방법들을 구현하도록 구성될 수 있다.
메모리(530) 및 저장 장치(560)는 다양한 형태의 휘발성 또는 비 휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리는 ROM(read-only memory)(531) 및 RAM(random access memory)(532)를 포함할 수 있다. 본 발명의 실시 예에서 메모리(530)는 프로세서(510)의 내부 또는 외부에 위치할 수 있고, 메모리(530)는 이미 알려진 다양한 수단을 통해 프로세서(510)와 연결될 수 있다.
또한, 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치의 기능 중 적어도 일부는 컴퓨팅 장치(50)에서 실행되는 프로그램 또는 소프트웨어로 구현될 수 있고, 프로그램 또는 소프트웨어는 컴퓨터로 판독 가능한 매체에 저장될 수 있다.
또한, 본 발명의 일 실시 예에 따른 앱의 기능 단위 사용량을 분석하는 장치의 기능 중 적어도 일부는 컴퓨팅 장치(50)과 전기적으로 접속될 수 있는 하드웨어로 구현될 수도 있다.
이제까지 설명한 본 발명의 일 실시 예에 따르면, 스마트폰의 사용량, 사용 형태 또는 사용 패턴을 앱의 기능 단위로 분석하여, 기존의 앱 단위 분석에서 사용자가 많은 시간동안 사용하는 앱이 무엇인지, 자주 사용하는 앱이 무엇인지 수준의 분석이 가능했다면, 하나의 앱 내에서도 사용자가 어떤 기능에 대해 많은 시간을 소비하고, 어떤 기능을 자주 사용하는지 등의 세부적인 분석이 가능하다. 동시에 상기 분석을 위한 데이터를 수집함에 있어서 개인 정보 보호 문제가 발생하지 않도록 할 수 있다.
또한 본 발명의 일 실시 예에 따르면, 이러한 세부적인 분석이 전문가의 인위적인 분석 과정을 거치지 않고, 백그라운드 서비스(background service)로 실행되어 스마트폰의 사용량, 사용 형태 또는 사용 패턴을 자동으로 수집함으로써, 신뢰성 있는 분석 데이터를 빠른 시간 내에 확보할 수 있다.
또한 본 발명의 일 실시 예에 따르면, 앱의 기능 단위로 분석할 수 있는 방법 및 장치는 분석하고자 하는 앱의 기능 단위를 커스터마이징할 수 있는 인터페이스가 개발자 또는 분석가 등에게 제공되므로, 새로이 사용되는 앱을 기능 단위로 분석하고자 하는 경우, 복잡한 코딩 작업을 거치지 않고 분석 정책을 손쉽게 설정할 수 있도록 하여, 활용성을 높이고 사용 편의성을 확보할 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고, 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속한다.
1: 컴퓨팅 장치
10: 앱의 기능 단위 사용량을 분석하는 장치
110: 이벤트 검출 모듈
120: 레이아웃 요소 추출 모듈
130: 기능 검출기 선택 모듈
140: 레이아웃 요소 기반 기능 검출 모듈
150: 기능 단위 사용량 분석 모듈
20: 앱
40: 네트워크
50: 컴퓨팅 장치

Claims (20)

  1. 사용자 단말에서 발생하는 이벤트를 검출하는 단계;
    상기 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트를 레이아웃 요소(Layout Element)로 추출하는 단계;
    상기 추출한 레이아웃 요소에 기반하여 앱의 기능(feature)을 검출하는 단계; 및
    상기 검출한 기능 단위로 사용량(usage)을 분석하는 단계를 포함하는
    앱의 기능 단위 사용량(feature-level usage)을 분석하는 방법.
  2. 제1항에 있어서,
    상기 사용자 단말에서 사용 중인 앱에 대한 기능 검출기(Feature Detector)를 선택하는 단계를 더 포함하고,
    상기 앱의 기능을 검출하는 단계는,
    상기 선택한 기능 검출기를 이용하여 상기 앱의 기능을 검출하는 단계를 포함하는, 앱의 기능 단위 사용량을 분석하는 방법.
  3. 제2항에 있어서,
    상기 앱은 제1 앱 및 제2 앱을 포함하고,
    상기 기능 검출기를 선택하는 단계는,
    상기 제1 앱의 세션이 종료되고 상기 제2 앱의 세션이 시작된 경우, 상기 제1 앱에 대한 기능 검출기의 사용을 종료하고 상기 제2 앱에 대한 기능 검출기의 사용을 시작하는 단계를 포함하는, 앱의 기능 단위 사용량을 분석하는 방법.
  4. 제1항에 있어서,
    상기 사용자 인터페이스 컴포넌트를 레이아웃 요소로 추출하는 단계는,
    상기 사용자 인터페이스 컴포넌트에 대한 정보를 트리(tree) 구조의 상기 레이아웃 요소로 저장하는 단계를 포함하는, 앱의 기능 단위 사용량을 분석하는 방법.
  5. 제4항에 있어서,
    상기 앱의 기능을 검출하는 단계는,
    상기 트리 구조의 상기 레이아웃 요소를 순회(traverse)하면서 선택되는 요소(element)를 검출하는 단계;
    상기 요소를 분석하여 뷰 정보를 결정하는 단계;
    상기 뷰 정보와 연관된 텍스트를 분석하여 콘텐츠 정보를 결정하는 단계; 및
    상기 뷰 정보 및 상기 콘텐츠 정보의 조합에 기반하여 상기 기능을 검출하는 단계를 포함하는, 앱의 기능 단위 사용량을 분석하는 방법.
  6. 제5항에 있어서,
    상기 뷰 정보를 결정하는 단계는,
    상기 선택되는 요소의 위치, 크기 또는 인덱스 정보에 따라 상기 뷰 정보를 결정하는 단계를 포함하는, 앱의 기능 단위 사용량을 분석하는 방법.
  7. 제5항에 있어서,
    상기 뷰 정보를 결정하는 단계는,
    상기 선택되는 요소에 대한 루트 뷰(Root view)의 클래스명(class name)에 따라 상기 뷰 정보를 결정하는 단계를 포함하는, 앱의 기능 단위 사용량을 분석하는 방법.
  8. 제5항에 있어서,
    상기 뷰 정보를 결정하는 단계는,
    상기 선택되는 요소에 대한 콘텐츠 설명(content description) 및 텍스트의 존재 여부에 따라 상기 뷰 정보를 결정하는 단계를 포함하는, 앱의 기능 단위 사용량을 분석하는 방법.
  9. 제5항에 있어서,
    상기 뷰 정보를 결정하는 단계는,
    상기 선택되는 요소에 대한 viewIdResourceName 정보에 따라 상기 뷰 정보를 결정하는 단계를 포함하는, 앱의 기능 단위 사용량을 분석하는 방법.
  10. 제1항에 있어서,
    상기 이벤트를 검출하는 단계는,
    스크롤 이벤트, 클릭 이벤트, 포커스 이벤트, 윈도우 전환 이벤트 및 윈도우 상태 전환 이벤트 중 적어도 하나를 검출하는 단계를 포함하는, 앱의 기능 단위 사용량을 분석하는 방법.
  11. 사용자 단말에서 발생하는 이벤트를 검출하는 이벤트 검출 모듈;
    상기 검출한 이벤트에 대한 사용자 인터페이스 컴포넌트를 레이아웃 요소로 추출하는 레이아웃 요소 추출 모듈;
    상기 추출한 레이아웃 요소에 기반하여 앱의 기능을 검출하는 레이아웃 요소 기반 기능 검출 모듈; 및
    상기 검출한 기능 단위로 사용량을 분석하는 기능 단위 사용량 분석 모듈을 포함하는
    앱의 기능 단위 사용량을 분석하는 장치.
  12. 제11항에 있어서,
    상기 사용자 단말에서 사용 중인 앱에 대한 기능 검출기를 선택하는 기능 검출기 선택 모듈을 더 포함하고,
    상기 레이아웃 요소 기반 기능 검출 모듈은,
    상기 선택한 기능 검출기를 이용하여 상기 앱의 기능을 검출하는, 앱의 기능 단위 사용량을 분석하는 장치.
  13. 제12항에 있어서,
    상기 앱은 제1 앱 및 제2 앱을 포함하고,
    상기 기능 검출기 선택 모듈은,
    상기 제1 앱의 세션이 종료되고 상기 제2 앱의 세션이 시작된 경우, 상기 제1 앱에 대한 기능 검출기의 사용을 종료하고 상기 제2 앱에 대한 기능 검출기의 사용을 시작하는, 앱의 기능 단위 사용량을 분석하는 장치.
  14. 제11항에 있어서,
    상기 레이아웃 요소 추출 모듈은,
    상기 사용자 인터페이스 컴포넌트에 대한 정보를 트리 구조의 상기 레이아웃 요소로 저장하는, 앱의 기능 단위 사용량을 분석하는 장치.
  15. 제14항에 있어서,
    상기 레이아웃 요소 기반 기능 검출 모듈은,
    상기 트리 구조의 상기 레이아웃 요소를 순회하면서 선택되는 요소를 검출하고,
    상기 요소를 분석하여 뷰 정보를 결정하고,
    상기 뷰 정보와 연관된 텍스트를 분석하여 콘텐츠 정보를 결정하고,
    상기 뷰 정보 및 상기 콘텐츠 정보의 조합에 기반하여 상기 기능을 검출하는, 앱의 기능 단위 사용량을 분석하는 장치.
  16. 제15항에 있어서,
    상기 레이아웃 요소 기반 기능 검출 모듈은,
    상기 선택되는 요소의 위치, 크기 또는 인덱스 정보에 따라 상기 뷰 정보를 결정하는, 앱의 기능 단위 사용량을 분석하는 장치.
  17. 제15항에 있어서,
    상기 레이아웃 요소 기반 기능 검출 모듈은,
    상기 선택되는 요소에 대한 루트 뷰의 클래스명에 따라 상기 뷰 정보를 결정하는, 앱의 기능 단위 사용량을 분석하는 장치.
  18. 제15항에 있어서,
    상기 레이아웃 요소 기반 기능 검출 모듈은,
    상기 선택되는 요소에 대한 콘텐츠 설명 및 텍스트의 존재 여부에 따라 상기 뷰 정보를 결정하는, 앱의 기능 단위 사용량을 분석하는 장치.
  19. 제15항에 있어서,
    상기 레이아웃 요소 기반 기능 검출 모듈은,
    상기 선택되는 요소에 대한 viewIdResourceName 정보에 따라 상기 뷰 정보를 결정하는, 앱의 기능 단위 사용량을 분석하는 장치.
  20. 제11항에 있어서,
    상기 이벤트 검출 모듈은,
    스크롤 이벤트, 클릭 이벤트, 포커스 이벤트, 윈도우 전환 이벤트 및 윈도우 상태 전환 이벤트 중 적어도 하나를 검출하는, 앱의 기능 단위 사용량을 분석하는 장치.
KR1020210084961A 2021-06-29 2021-06-29 앱의 기능 단위 사용량을 분석하는 방법 및 장치 KR20230001882A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210084961A KR20230001882A (ko) 2021-06-29 2021-06-29 앱의 기능 단위 사용량을 분석하는 방법 및 장치
PCT/KR2021/011432 WO2023277241A1 (ko) 2021-06-29 2021-08-26 앱의 기능 단위 사용량을 분석하는 방법 및 장치
US17/852,852 US20230004452A1 (en) 2021-06-29 2022-06-29 Method and device for analyzing feature-level usage of app

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210084961A KR20230001882A (ko) 2021-06-29 2021-06-29 앱의 기능 단위 사용량을 분석하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230001882A true KR20230001882A (ko) 2023-01-05

Family

ID=84690337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210084961A KR20230001882A (ko) 2021-06-29 2021-06-29 앱의 기능 단위 사용량을 분석하는 방법 및 장치

Country Status (3)

Country Link
US (1) US20230004452A1 (ko)
KR (1) KR20230001882A (ko)
WO (1) WO2023277241A1 (ko)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713157B2 (en) * 2008-11-14 2014-04-29 Interpret, Llc System for collecting computer application usage data of targeted application programs executed on a plurality of client devices
US20130104041A1 (en) * 2011-10-21 2013-04-25 International Business Machines Corporation Capturing application workflow
US8880022B2 (en) * 2011-11-10 2014-11-04 Microsoft Corporation Providing per-application resource usage information
KR101340780B1 (ko) * 2012-02-29 2013-12-11 주식회사 팬택 데이터 공유 시스템 및 방법
US20190026212A1 (en) * 2013-10-04 2019-01-24 Verto Analytics Oy Metering user behaviour and engagement with user interface in terminal devices
KR101396547B1 (ko) * 2013-11-28 2014-05-20 주식회사 제이윈파트너스 모바일 어플리케이션 통계 분석시스템
TWI576763B (zh) * 2015-05-29 2017-04-01 yu-xuan Lin A method of assessing the extent to which a user is using a portable mobile device
KR101958577B1 (ko) * 2017-12-29 2019-03-14 김기수 웹페이지 캡처 이미지 기반의 웹페이지 분석 방법 및 이를 이용한 웹페이지 분석 시스템
US11099719B1 (en) * 2020-02-25 2021-08-24 International Business Machines Corporation Monitoring user interactions with a device to automatically select and configure content displayed to a user

Also Published As

Publication number Publication date
US20230004452A1 (en) 2023-01-05
WO2023277241A1 (ko) 2023-01-05

Similar Documents

Publication Publication Date Title
KR102613774B1 (ko) 애플리케이션 관련 사용자 데이터를 추출하고 공유하기 위한 시스템 및 방법
KR102497195B1 (ko) 컨텐츠를 처리하는 방법 및 이를 위한 전자 장치 및 저장 매체
CN110417988B (zh) 一种界面显示方法、装置及设备
EP3335410B1 (en) Electronic apparatus and notification displaying method for electronic apparatus
US20190079665A1 (en) Data processing method, apparatus, and smart terminal
KR102379171B1 (ko) 전자 장치 및 그의 영상 표시 방법
EP3435307A1 (en) User terminal and method of displaying lock screen thereof
KR102625254B1 (ko) 입력기를 통해 이미지와 관련된 정보를 어플리케이션에 제공하는 전자 장치 및 방법
CN107133263B (zh) Poi推荐方法、装置、设备及计算机可读存储介质
KR20140082000A (ko) 관련 어플리케이션 제공 단말 및 방법
CN108427598B (zh) 消息处理方法、装置、终端及存储介质
KR20140143028A (ko) 프로그램 실행 방법 및 그 전자 장치
CN105335383B (zh) 输入信息的处理方法及装置
CN103995601A (zh) 输入法的实现方法和装置
CN106648707B (zh) 智能终端应用信息的收藏方法、系统及智能终端
US11843815B2 (en) Interfacing a television with a second device
US9065872B1 (en) Sharing service management
US11694019B2 (en) Mobile device and method
KR102369319B1 (ko) 전자 장치 및 전자 장치의 핸드오프 기능 제공 방법
KR20230001882A (ko) 앱의 기능 단위 사용량을 분석하는 방법 및 장치
KR20190080981A (ko) 정보 표시 방법, 단말 및 서버
CN107169015B (zh) Poi推荐方法、装置、设备及计算机可读存储介质
KR102398453B1 (ko) 영상 출력 방법 및 이를 지원하는 전자 장치
KR20180013304A (ko) 어플리케이션에 대한 알림을 관리하는 방법 및 그 전자 장치
CN110659089A (zh) 一种寄宿应用推荐方法、设备和存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal