KR20180098584A - App 프로그램 실행 방법 및 장치 - Google Patents

App 프로그램 실행 방법 및 장치 Download PDF

Info

Publication number
KR20180098584A
KR20180098584A KR1020187020535A KR20187020535A KR20180098584A KR 20180098584 A KR20180098584 A KR 20180098584A KR 1020187020535 A KR1020187020535 A KR 1020187020535A KR 20187020535 A KR20187020535 A KR 20187020535A KR 20180098584 A KR20180098584 A KR 20180098584A
Authority
KR
South Korea
Prior art keywords
class
file
description file
app
installation package
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020187020535A
Other languages
English (en)
Other versions
KR102141749B1 (ko
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 알리바바 그룹 홀딩 리미티드
Publication of KR20180098584A publication Critical patent/KR20180098584A/ko
Application granted granted Critical
Publication of KR102141749B1 publication Critical patent/KR102141749B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 개시내용은 APP 실행 방법 및 장치를 제안하고, APP 실행 방법은, APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일을 생성하여, 설치 패키지에 상기 클래스 디스크립션 파일을 배치하는 단계로서, 상기 클래스 디스크립션 파일은 클래스를 기술하는데 사용되는 텍스트 파일이고, 상기 클래스 디스크립션 파일의 사이즈는 대응하는 클래스의 사이즈보다 작은 것인 상기 클래스 디스크립션 파일을 생성하여 배치하는 단계와, 사용자가 상기 APP를 실행하기 전에 상기 설치 패키지를 다운로드하는 단계와, 상기 APP가 실행될 때에, 상기 설치 패키지로부터 클래스 디스크립션 파일을 취득하여, 상기 클래스 디스크립션 파일에 기초해서 클래스를 생성하는 단계를 포함한다. 본 방법은 APP 설치 패키지의 사이즈를 줄여서 리소스 오버헤드를 감소시킬 수 있다.

Description

APP 프로그램 실행 방법 및 장치
본 개시내용은 인터넷 기술 분야에 관한 것으로서, 구체적으로는 APP 실행 방법 및 장치에 관한 것이다.
스마트 기술 시대에서는, 사용자들이 점점 더 많은 애플리케이션(APP)을 사용하는데, APP는 사용 전에 다운로드되어 설치되어야 한다. 일반적으로, APP의 설치 패키지는 예컨대 약 100 M로 대개 대형이다. 사용자가 APP 스토어로부터 설치 패키지를 다운로드할 때에, 단말 디바이스의 대형 디스크 공간이 요구된다. 또한, 대규모 다운로드 트래픽 및 긴 다운로드 시간이 필요하여, 리소스 오버헤드를 상승시킨다.
본 개시내용은 관련 기술에 있어서의 기술적 문제 중 하나를 적어도 소정 범위까지 해결하는 것을 목적으로 한다.
따라서, 본 개시내용의 목표는 애플리케이션(APP) 실행 방법을 제공하는 것이고, 이 방법은 APP 설치 패키지의 사이즈를 줄여서, 리소스 오버헤드를 감소시킬 수 있다.
본 개시내용의 다른 목표는 APP 실행 장치를 제공하는 것이다.
전술한 목표를 달성하기 위하여, 본 개시내용의 제1 양태의 구현예에서 제안하는 APP 실행 방법은, APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일(class description file)을 생성하여, 설치 패키지에 상기 클래스 디스크립션 파일을 배치하는 단계로서, 상기 클래스 디스크립션 파일은 클래스를 기술하는데 사용되는 텍스트 파일이고, 상기 클래스 디스크립션 파일의 사이즈는 대응하는 클래스의 사이즈보다 작은 것인 상기 클래스 디스크립션 파일을 생성하여 배치하는 단계와, 사용자가 상기 APP를 실행하기 전에 상기 설치 패키지를 다운로드하는 단계와, 상기 APP가 실행될 때에, 상기 설치 패키지로부터 클래스 디스크립션 파일을 취득하여, 상기 클래스 디스크립션 파일에 기초해서 클래스를 생성하는 단계를 포함한다.
본 개시내용의 제1 양태의 구현예에서 제안하는 APP 실행 방법에 있어서, 상기 설치 패키지는 클래스 디스크립션 파일을 포함하고, 상기 클래스 디스크립션 파일의 사이즈는 상기 클래스의 사이즈보다 작다. 따라서, 설치 패키지에 클래스를 직접 포함시키는 기존의 방법과 비교할 때에, 설치 패키지에 클래스 디스크립션 파일을 포함시키면 APP 설치 패키지의 사이즈를 줄여서, 리소스 오버헤드를 감소시킬 수 있다.
전술한 목표를 달성하기 위하여, 본 개시내용의 제2 양태의 구현예에서 제안하는 APP 실행 장치는, APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일을 생성하여, 설치 패키지에 상기 클래스 디스크립션 파일 - 상기 클래스 디스크립션 파일은 클래스를 기술하는데 사용되는 텍스트 파일이고, 상기 클래스 디스크립션 파일의 사이즈는 대응하는 클래스의 사이즈보다 작음 - 을 배치하도록 구성된 생성 모듈과, 사용자가 상기 APP를 실행하기 전에 상기 설치 패키지를 다운로드하도록 구성된 다운로드 모듈과, 상기 APP가 실행될 때에, 상기 설치 패키지로부터 클래스 디스크립션 파일을 취득하여, 상기 클래스 디스크립션 파일에 기초해서 클래스를 생성하도록 구성된 실행 모듈을 포함한다.
본 개시내용의 제2 양태의 구현예에서 제안하는 APP 실행 장치에 있어서, 상기 설치 패키지는 클래스 디스크립션 파일을 포함하고, 상기 클래스 디스크립션 파일의 사이즈는 상기 클래스의 사이즈보다 작다. 따라서, 설치 패키지에 클래스를 직접 포함시키는 기존의 방법과 비교할 때에, 설치 패키지에 클래스 디스크립션 파일을 포함시키면 APP 설치 패키지의 사이즈를 줄여서, 리소스 오버헤드를 감소시킬 수 있다.
본 개시내용의 몇몇 추가 양태 및 이점은 이어지는 설명에 제공되거나 다음의 설명에서 명백해지며, 본 개시내용의 실시를 통해 이해될 수도 있다.
본 개시내용의 전술한 양태와 이점 그리고/또는 추가의 양태와 이점은 첨부 도면을 참조한 이하의 구현예의 설명에서 명백해지며 이해될 수 있다.
도 1은 본 개시내용의 구현예에 따른 APP 실행 방법을 예시하는 개략 흐름도이다.
도 2는 기존의 기술에 따른 APP 실행 방법을 예시하는 개략도이다.
도 3은 본 개시내용의 또 다른 구현예에 따른 APP 실행 방법을 예시하는 개략 흐름도이다.
도 4는 본 개시내용의 구현예에 따라, 클래스 디스크립션 파일에 기초하여 클래스를 생성하는 단계의 개략 흐름도이다.
도 5는 본 개시내용의 구현예에 따른 APP 실행 장치의 개략 구조도이다.
도 6은 본 개시내용의 또 다른 구현예에 따른 APP 실행 장치의 개략 구조도이다.
이하, 본 개시내용의 구현예들에 대해 자세하게 설명하며, 구현예들은 첨부 도면에 도시된다. 동일하거나 유사한 참조 번호는 동일하거나 유사한 모듈 또는 동일하거나 유사한 기능을 갖는 모듈을 표현한다. 첨부 도면을 참조하여 후술하는 구현예들은 본 개시내용을 설명하기 위해 의도된 예시일 뿐이며, 본 개시내용의 제한으로서 해석되어서는 안 된다. 반면, 본 개시내용의 구현예들은 첨부하는 청구범위의 사상 및 범위 내에 있는 모든 변경, 변형 및 등가물을 포함한다.
도 1은 본 개시내용의 구현예에 따른 애플리케이션(APP) 실행 방법을 예시하는 개략 흐름도이다. 이 방법은 다음의 단계를 포함한다.
S11. APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일을 생성하여, 설치 패키지에 클래스 디스크립션 파일을 배치하는 단계. 클래스 디스크립션 파일은 클래스를 기술하는데 사용되는 텍스트 파일이고, 클래스 디스크립션 파일의 사이즈는 대응하는 클래스의 사이즈보다 작다.
예를 들어, 오리지널 파일을 헤더 파일(.h 파일)과 소스 파일(.m 파일)을 포함한다.
클래스 디스크립션 파일은 텍스트 파일로서 클래스의 관련 정보를 기술하는데 사용된다. 클래스는 컴퓨터 프로그래밍의 기본 정보이다. 클래스 디스크립션 파일의 사이즈는 대응하는 클래스의 사이즈보다 작다.
예를 들어, 클래스명(className)이 캐셔(MERCHANTAPPOperator)이고, 캐셔는 클래스 디스크립션(classDescription)을 갖는다. 클래스 디스크립션은 속성 디스크립션을 포함하는데, 예컨대 캐셔의 캐셔 ID(operatorId), 캐셔 명칭(operatorName), 샵 명칭(shopName) 등을 포함할 수 있다.
예로서 iOS를 사용한다면, 사전 컴파일된 스크립트가 오리지널 파일을 클래스 디스크립션 파일(.plist 파일)로 변환하는 데에 이용될 수 있다. 클래스 디스크립션 파일에 필요한 컨텐츠를 오리지널 파일에서 찾을 수 있지만, 오리지널 파일과 클래스 디스크립션 파일은 상이한 포맷을 갖는다. 이에, 오리지널 파일과 클래스 디스크립션 파일 간의 변환을 구현하기 위해 스크립트가 사전 컴파일될 수 있다.
또한, 클래스 디스크립션 파일은 생성된 후에, 리소스 번들(resource bundle)과 같은 미리 결정된 디렉토리에 저장될 수 있다.
클래스 디스크립션 파일은 생성된 후에, 사용자가 다운로드하여 설치할 수 있도록 설치 패키지에 배치될 수 있다.
일부 구현예에 있어서, 도 2를 참조하면, APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일을 생성하여, 설치 패키지에 클래스 디스크립션 파일을 배치하는 단계는 다음의 단계들을 포함한다.
S111. 헤더 파일과 소스 파일에 기초하여 클래스 디스크립션 파일을 생성하는 단계.
생성 프로시저에 대해서는, 전술한 설명을 참조하면 된다. 여기서는 다시 상세하게 설명하지 않는다.
S112. 소스 파일을 삭제하는 단계.
S113. 소스 파일이 삭제된 후에, 설치 패키지에 헤더 파일과 클래스 디스크립션 파일을 배치하여 사용자가 다운로드하게 하는 단계.
클래스 디스크립션 파일과 헤더 파일 둘 다 작고, 취득된 설치 패키지도 작기 때문에, 사용자는 APP 스토어에서 설치 패키지를 직접 다운로드할 수 있다.
선택사항으로서, 설치 패키지의 사이즈를 더욱 줄이기 위해, 취득되는 설치 패키지는 또한 압축될 수 있다. 예를 들어, 헤더 파일과 클래스 디스크립션 파일이 설치 패키지에 포함된 후에, 본 방법은 다음의 단계들을 더 포함할 수 있다.
S114. 설치 패키지를 압축하여 사용자가 압축된 설치 패키지를 다운로드하게 하는 단계.
예를 들어, 압축된 설치 패키지가 APP 스토어에 제공되고, 사용자는 압축된 설치 패키지를 다운로드할 수 있다.
S12. 사용자가 APP를 실행하기 전에 설치 패키지를 다운로드하는 단계.
예를 들어, 사용자는 APP 스토어로부터 APP의 설치 패키지를 다운로드할 수 있고, 설치 패키지는 클래스 디스크립션 파일을 포함한다.
본 개시내용을 기존의 기술과 한층 더 구별하기 위해, 도 3은 기존의 기술에 따른 APP 실행 방법의 개략 흐름도를 보여준다. 도 3을 참조하면, 기존의 기술에서는, 설치 패키지가 두 단계로, 즉 소스 파일을 컴파일하여 중간 파일(.o 파일)을 생성하는 단계(S31)와, 이어서 중간 파일의 링크를 패키징하여 설치 패키지를 생성하는 단계(S32)로 생성된다. 예를 들어, iOS 시스템에서는, 설치 패키지가 ipa 패키지로서 칭해질 수 있다. 컴파일링 및 링크 패키징 후에, ipa 패키지는 APP에 대응하는 클래스를 포함한다. 그후에, 사용자가 다운로드할 수 있도록 ipa 패키지는 APP 스토어에 배치될 수 있다. 다운로드 후에, ipa 패키지는 단말기 디바이스의 디스크에 저장된다(S33). APP가 실행될 때에, ipa 패키지는 실행을 위해 디스크로부터 단말기 디바이스의 메모리로 판독된다(S34). 이에, APP의 정상 실행(normal running)이 구현된다. ipa 패키지는 일반적으로 대형이기 때문에, 다운로드 및 저장에 대량의 리소스가 필요하다.
기존의 기술과 달리, 본 구현예에서는 오리지널 파일의 컴파일링 및 링크 패키징이 필요하지 않고, 대신에 클래스 디스크립션 파일이 사용된다. 클래스 디스크립션 파일은 텍스트 파일이다. 기존의 ipa 패키지와 비교하여, 클래스 디스크립션 파일의 사이즈가 작기 때문에, 다운로드 및 저장에 필요한 리소스를 줄일 수 있다.
S13. APP가 실행될 때에, 설치 패키지로부터 클래스 디스크립션 파일을 취득하여, 클래스 디스크립션 파일에 기초해서 클래스를 생성하는 단계.
다운로드된 설치 패키지가 압축된 설치 패키지인 경우, 설치 패키지가 사용될 때에, 클래스 디스크립션 파일 등의 정보를 취득하기 위해 먼저 설치 패키지가 압축해제될 수 있다. 다운로드된 설치 패키지가 압축되지 않은 경우, 클래스 디스크립션 파일 등의 정보는 설치 패키지로부터 직접 취득될 수 있다.
APP의 정상 실행을 보장하려면, APP에 포함된 클래스가 생성되어야 한다. 기존 기술의 경우, 소스 파일을 컴파일링하고 패키징함으로써 클래스가 생성될 수 있고, 그래서 디스크에 저장된 ipa 패키지가 클래스를 포함한다. APP가 실행될 때에, 클래스가 디스크로부터 직접 취득되어 APP를 정상으로 실행할 수 있다.
본 구현예에서는, 설치 패키지의 사이즈를 줄이기 위해, 설치 패키지가 클래스 대신에 클래스 디스크립션 파일을 포함한다. 이에, APP의 정상 실행을 보장하려면, 클래스 디스크립션 파일에 기초하여 클래스가 먼저 생성되어야 한다.
예를 들어, 설치 패키지를 다운로드한 후에, 사용자는 설치 패키지를 단말기 디바이스의 디스크에 저장할 수 있다. APP가 실행될 때에, 설치 패키지 내의 클래스 디스크립션 파일이 디스크로부터 메모리로 판독될 수 있는데, 이 클래스 디스크립션 파일에 기초하여 클래스가 생성된다.
일부 구현예에 있어서, 도 4를 참조하면, 클래스 디스크립션 파일에 기초하여 클래스를 생성하는 프로시저는 다음의 단계들을 포함할 수 있다.
S41. 클래스 디스크립션 파일에 기초하여, 클래스명, 패런트(parent) 클래스명, 및 속성을 취득하는 단계.
예를 들어, 클래스 디스크립션 파일은 생성 대기중인 클래스의 클래스명 및 속성 디스크립션을 포함한다. 예를 들어, 클래스명(className)이 캐셔(MERCHANTAPPOperator)이고, 속성 디스크립션은 캐셔의 캐셔 ID(operatorId), 캐셔 명칭(operatorName), 샵 명칭(shopName) 등을 포함할 수 있다. 따라서, 클래스명과 속성 디스크립션은 클래스 디스크립션 파일로부터 취득될 수 있다.
속성 디스크립션이 취득된 후에, 속성 디스크립션에 기초하여 속성이 생성될 수 있다. 예를 들어, 속성 디스크립션에 기초하여 속성 변수(ivar), 접근자(프로퍼티), 및 포인터(IMP)가 직접 생성될 수 있다.
클래스 디스크립션 파일이 클래스명의 대응하는 패런트 클래스명을 포함하면, 클래스 디스크립션 파일로부터 패런트 클래스명이 직접 취득될 수 있다. 클래스 디스크립션 파일이 클래스명의 대응하는 패런트 클래스명을 포함하지 않으면, 패런트 클래스명을 취득하기 위해 패런트 클래스명 생성 규칙 및 클래스명에 기초하여 패런트 클래스명이 생성되어 반환될 수 있다.
S42. 클래스명, 패런트 클래스명, 및 속성에 기초하여 그리고 iOS 런타임 기술이 제공하는 메소드를 이용하여 클래스를 생성하는 단계.
iOS 런타임 기술은 클래스를 생성하기 위한 복수의 메소드를 제공한다. 예를 들어, 한 메소드가 objc_allocateClassPair(Class superclass, const char *name, size_textraBytes)이다.
노트: 제1 파라미터 superclass는 패런트 클래스의 클래스 오브젝트이고, 제2 파라미터명은 클래스명이며, 제3 파라미터는 추가 할당 바이트로서 일반적으로 0이다.
패런트 클래스명과 클래스명이 메소드의 파라미터에 사용된다. 또한, 패런트 클래스명, 클래스명, 및 속성에 기초하여 그리고 전술한 메소드를 이용하여 클래스를 생성하는 데에, 속성도 메소드가 수행될 때에, 사용된다.
본 구현예에서는, 설치 패키지가 클래스 디스크립션 파일을 포함하고, 클래스 디스크립션 파일의 사이즈는 클래스의 사이즈보다 작다. 따라서, 설치 패키지에 클래스를 직접 포함시키는 기존의 방법과 비교할 때에, 설치 패키지에 클래스 디스크립션 파일을 포함시키면 APP 설치 패키지의 사이즈를 줄이고, 리소스 오버헤드를 감소시킬 수 있다.
도 5는 본 개시내용의 구현예에 따른 APP 실행 장치의 개략 구조도이다. 장치(50)는 생성 모듈(51), 다운로드 모듈(52), 및 실행 모듈(53)을 포함한다.
생성 모듈(51)은, APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일을 생성하여, 설치 패키지에 클래스 디스크립션 파일을 배치하도록 구성되며, 클래스 디스크립션 파일은 클래스를 기술하는데 사용되는 텍스트 파일이고, 상기 클래스 디스크립션 파일의 사이즈는 대응하는 클래스의 사이즈보다 작다.
예를 들어, 오리지널 파일을 헤더 파일(.h 파일)과 소스 파일(.m 파일)을 포함한다.
클래스 디스크립션 파일은 텍스트 파일로서 클래스의 관련 정보를 기술하는데 사용된다. 클래스는 컴퓨터 프로그래밍의 기본 정보이다. 클래스 디스크립션 파일의 사이즈는 대응하는 클래스의 사이즈보다 작다.
예를 들어, 클래스명(className)이 캐셔(MERCHANTAPPOperator)이고, 캐셔는 클래스 디스크립션(classDescription)을 갖는다. 예를 들어, 클래스 디스크립션은 속성 디스크립션을 포함하는데, 예컨대 캐셔의 캐셔 ID(operatorId), 캐셔 명칭(operatorName), 샵 명칭(shopName) 등을 포함할 수 있다.
선택사항으로서, 생성 모듈은 APP의 오리지널 파일에 기초하여 클래스 디스크립션 파일을 생성하도록 구성되는데, 클래스 디스크립션 파일의 생성은, 미리 결정된 스크립트에 기초하여 포맷 변환을 수행하는 것과, APP의 오리지널 파일을 클래스 디스크립션 파일로 변환하는 것을 포함한다.
예를 들어, iOS 시스템에서는, 사전 컴파일된 스크립트가 오리지널 파일을 클래스 디스크립션 파일(.plist 파일)로 변환하는 데에 이용될 수 있다. 클래스 디스크립션 파일에 필요한 컨텐츠를 오리지널 파일에서 찾을 수 있지만, 오리지널 파일과 클래스 디스크립션 파일은 상이한 포맷을 갖는다. 이에, 오리지널 파일과 클래스 디스크립션 파일 간의 변환을 구현하기 위해 스크립트가 사전 컴파일될 수 있다.
또한, 클래스 디스크립션 파일은 생성된 후에, 미리 결정된 디렉토리, 예컨대 리소스 번들에 저장될 수 있다.
클래스 디스크립션 파일은 생성된 후에, 사용자가 다운로드하여 설치할 수 있도록 설치 패키지에 배치될 수 있다.
일부 구현예에 있어서, 도 6을 참조하면, 생성 모듈(51)은 제1 유닛(511), 제2 유닛(512), 및 제3 유닛(513)을 포함한다.
제1 유닛(511)은 헤더 파일과 소스 파일에 기초하여 클래스 디스크립션 파일을 생성하도록 구성된다.
생성 프로시저에 대해서는, 전술한 설명을 참조하면 된다. 여기서는 다시 상세하게 설명하지 않는다.
제2 유닛(512)은 소스 파일을 삭제하도록 구성된다.
제3 유닛(513)은 소스 파일이 삭제된 후에, 설치 패키지에 헤더 파일과 클래스 디스크립션 파일을 배치하여 사용자가 다운로드하게 하도록 구성된다.
클래스 디스크립션 파일과 헤더 파일 둘 다 작고, 취득된 설치 패키지도 작기 때문에, 사용자는 APP 스토어에서 설치 패키지를 직접 다운로드할 수 있다.
선택사항으로서, 생성 모듈(51)은 설치 패키지를 압축하여 사용자가 압축된 설치 패키지를 다운로드하게 하도록 구성된 제4 유닛(514)을 더 포함한다.
설치 패키지의 사이즈를 더욱 줄이기 위해, 취득되는 설치 패키지는 또한 압축될 수 있다.
예를 들어, 압축된 설치 패키지가 APP 스토어에 제공되고, 사용자는 압축된 설치 패키지를 다운로드할 수 있다.
다운로드 모듈(52)은 사용자가 APP를 실행하기 전에 설치 패키지를 다운로드하도록 구성된다.
예를 들어, 사용자는 APP 스토어로부터 APP의 설치 패키지를 다운로드할 수 있고, 설치 패키지는 클래스 디스크립션 파일을 포함한다.
기존의 기술과 달리, 본 구현예에서는 오리지널 파일의 컴파일링 및 패키징이 필요하지 않지만, 대신에 클래스 디스크립션 파일이 사용된다. 클래스 디스크립션 파일은 텍스트 파일이다. 기존의 ipa 패키지와 비교하여, 클래스 디스크립션 파일의 사이즈가 작기 때문에, 다운로드 및 저장에 필요한 리소스를 줄일 수 있다.
실행 모듈(53)은 APP가 실행될 때에, 설치 패키지로부터 클래스 디스크립션 파일을 취득하여, 클래스 디스크립션 파일에 기초해서 클래스를 생성하도록 구성된다.
다운로드된 설치 패키지가 압축된 설치 패키지인 경우, 설치 패키지가 사용될 때에, 클래스 디스크립션 파일 등의 정보를 취득하기 위해 먼저 설치 패키지가 압축해제될 수 있다. 다운로드된 설치 패키지가 압축되지 않은 경우, 클래스 디스크립션 파일 등의 정보는 설치 패키지로부터 직접 취득될 수 있다.
APP의 정상 실행을 보장하려면, APP에 포함된 클래스가 생성되어야 한다. 기존 기술의 경우, 소스 파일을 컴파일링하고 패키징함으로써 클래스가 생성될 수 있고, 그래서 디스크에 저장된 ipa 패키지가 클래스를 포함한다. APP가 실행될 때에, 클래스가 디스크로부터 직접 취득되어 APP의 정상 실행을 구현할 수 있다.
본 구현예에서는, 설치 패키지의 사이즈를 줄이기 위해, 설치 패키지가 클래스 대신에 클래스 디스크립션 파일을 포함한다. 이에, APP의 정상 실행을 보장하려면, 클래스 디스크립션 파일에 기초하여 먼저 클래스가 생성되어야 한다.
예를 들어, 설치 패키지를 다운로드한 후에, 사용자는 설치 패키지를 단말기 디바이스의 디스크에 저장할 수 있다. APP가 실행될 때에, 설치 패키지 내의 클래스 디스크립션 파일이 디스크로부터 메모리로 판독될 수 있는데, 이 클래스 디스크립션 파일에 기초하여 클래스가 생성된다.
일부 구현예에 있어서, 실행 모듈(53)은 클래스 디스크립션 파일에 기초하여 클래스를 생성하도록 구성되며, 클래스의 생성은, 클래스 디스크립션 파일에 기초하여 파일명, 패런트 클래스명, 및 속성을 취득하는 것과, 클래스명, 패런트 클래스명 및 속성에 기초하여 그리고 iOS 런타임 기술이 제공하는 메소드를 이용하여 클래스를 생성하는 것을 포함한다.
예를 들어, 클래스 디스크립션 파일은 생성 대기중인 클래스의 클래스명 및 속성 디스크립션을 포함한다. 예를 들어, 클래스명(className)이 캐셔(MERCHANTAPPOperator)이고, 속성 디스크립션은 캐셔의 캐셔 ID(operatorId), 캐셔 명칭(operatorName), 샵 명칭(shopName) 등을 포함할 수 있다. 따라서, 클래스명과 속성 디스크립션은 클래스 디스크립션 파일로부터 취득될 수 있다.
속성 디스크립션이 취득된 후에, 속성 디스크립션에 기초하여 속성이 생성될 수 있다. 예를 들어, 속성 디스크립션에 기초하여 속성 변수(ivar), 접근자(프로퍼티), 및 포인터(IMP)가 직접 생성될 수 있다.
클래스 디스크립션 파일이 클래스명의 대응하는 패런트 클래스명을 포함하면, 클래스 디스크립션 파일로부터 패런트 클래스명이 직접 취득될 수 있다. 클래스 디스크립션 파일이 클래스명의 대응하는 패런트 클래스명을 포함하지 않으면, 패런트 클래스명을 취득하기 위해 패런트 클래스명 생성 규칙 및 클래스명에 기초하여 패런트 클래스명이 생성되어 반환될 수 있다.
iOS 런타임 기술은 클래스를 생성하기 위한 복수의 방법을 제공한다. 예를 들어, 한 메소드가 objc_allocateClassPair(Class superclass, const char *name, size_textraBytes)이다.
노트: 제1 파라미터 superclass는 패런트 클래스의 클래스 오브젝트이고, 제2 파라미터명은 클래스명이며, 제3 파라미터는 추가 할당 바이트로서 일반적으로 0이다.
패런트 클래스명과 클래스명이 메소드의 파라미터에 사용된다. 또한, 패런트 클래스명, 클래스명, 및 속성에 기초하여 그리고 전술한 메소드를 이용하여 클래스를 생성하는 데에, 속성도 메소드가 수행될 때에, 사용된다.
본 구현예에서는, 설치 패키지가 클래스 디스크립션 파일을 포함하고, 클래스 디스크립션 파일의 사이즈는 클래스의 사이즈보다 작다. 따라서, 설치 패키지에 클래스를 직접 포함시키는 기존의 방법과 비교할 때에, 설치 패키지에 클래스 디스크립션 파일을 포함시키면 APP 설치 패키지의 사이즈를 줄이고, 리소스 오버헤드를 감소시킬 수 있다.
본 개시내용의 설명에서, "제1" 및 "제2" 같은 용어는 설명의 용도로 의도된 것일 뿐이며, 상대적 중요성을 나타내는 표시 또는 의미로 이해되어서는 안 된다는 점을 유의해야 한다. 또한, 본 개시내용의 설명에서는, 달리 언급되지 않는다면 "복수"는 "적어도 2개"를 의미한다.
여기에서 흐름도로 또는 다른 방식으로 기술하는 임의의 프로세스 또는 방법에 대한 설명은 다음과 같이 이해될 수 있는데, 특정 논리적 기능 또는 동작 단계를 구현하는데 사용되는 실행 가능한 명령어의 코드의 하나 이상의 모듈, 세그먼트 또는 부분이 포함된다는 것과, 본 개시내용의 바람직한 구현예의 범위가 다른 구현예를 포함하는 것과, 관련된 기능에 따라 기본적으로 동시적인 방식 또는 역순을 포함해, 도시하거나 논의한 순서 이외의 순서로 기능이 수행될 수 있다는 것이다. 이것은 본 개시내용의 구현 분야의 당업자라면 이해되어야 한다.
본 개시내용 중의 부분들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 사용하여 구현될 수 있음을 이해해야 한다. 전술한 구현예에서는, 메모리에 저장되어 적절한 명령어 실행 시스템에 의해 실행되는 소프트웨어 또는 펌웨어를 사용하여 복수의 단계 또는 방법이 구현될 수 있다. 예를 들어, 하드웨어가 또 다른 구현예와 유사한 구현예에 사용되는 경우, 당업계에 공지된 다음과 같은 기술, 즉 데이터 신호에 대한 논리적 기능을 구현하는데 사용되는 로직 게이트 회로를 구비한 이산 로직 회로, 적절한 조합 로직 회로를 구비한 APP 특유의 집적 회로, 프로그래머블 게이트 어레이(PGA), 필드 프로그래머블 게이트 어레이(FPGA) 등등 중 임의의 하나 또는 조합도 구현에 사용될 수 있다.
당업자라면, 관련 하드웨어에 지시하는 컴퓨터 구현 프로그램에 의해 방법 구현의 단계들의 일부 또는 전부가 구현될 수 있음을 이해할 수 있다. 이 프로그램은 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다. 프로그램이 실행될 때에, 방법 구현의 단계들 중 하나 또는 조합이 수행된다.
또한, 본 개시내용의 구현예에서의 기능 유닛들이 하나의 프로세싱 모듈에 통합될 수 있거나, 각각의 유닛이 물리적으로 단독으로 존재할 수도 있고, 2 이상의 유닛이 하나의 모듈로 통합될 수도 있다. 통합 모듈은 하드웨어의 형태로 구현될 수 있거나 소프트웨어 기능 모듈의 형태로 구현될 수 있다. 통합 모듈이 소프트웨어 기능 모듈의 형태로 구현되고 독립적인 제품으로서 판매 또는 사용될 경우, 통합 모듈은 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다.
전술한 저장 매체는 판독 전용 메모리, 자기 디스크 또는 광 디스크일 수 있다.
본 명세서의 설명에서, "구현예", "일부 구현예", "예", "특정 예" 및 "일부 예"와 같은 참조 용어에 대한 설명은, 구현예 또는 예를 참조하여 설명한 특정 특징, 구조, 재료, 또는 특성이 본 개시내용의 적어도 하나의 구현예 또는 예에 포함되는 것을 의미한다. 본 개시내용에 있어서, 용어에 대한 전술한 예시적인 표현은 반드시 동일한 구현예 또는 예에 관한 것은 아니다. 또한, 설명한 특정 특징, 구조, 재료 또는 특성은 임의의 하나 이상의 구현예 또는 예에서 적절한 방식으로 조합될 수 있다.
본 개시내용의 구현예들을 도시하여 전술하였지만, 전술한 구현예들은 예시일 뿐이며, 본 개시내용에 대한 제한으로서 해석될 수 없음이 이해될 수 있다. 본 개시내용의 범위 내에서, 당업자라면 전술한 구현예들에 대해 변경, 수정, 대체 및 변형을 행할 수 있다.

Claims (11)

  1. 애플리케이션(APP) 실행 방법에 있어서,
    APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일(class description file)을 생성하여, 설치 패키지(installation package)에 상기 클래스 디스크립션 파일을 배치하는 단계―상기 클래스 디스크립션 파일은 클래스를 기술하는데 사용되는 텍스트 파일이고, 상기 클래스 디스크립션 파일의 사이즈는 대응하는 클래스의 사이즈보다 작음―와,
    사용자가 APP를 실행하기 전에 상기 설치 패키지를 다운로드하는 단계와,
    APP가 실행될 때에, 상기 설치 패키지로부터 상기 클래스 디스크립션 파일을 취득하여, 상기 클래스 디스크립션 파일에 기초해서 클래스를 생성하는 단계
    를 포함하는 APP 실행 방법.
  2. 제1항에 있어서, 상기 APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일을 생성하는 것은,
    미리 결정된 스크립트에 기초하여 포맷 변환을 수행하는 것과, 상기 APP의 오리지널 파일을 상기 클래스 디스크립션 파일로 변환하는 것을 포함하는 것인 APP 실행 방법.
  3. 제1항에 있어서, 상기 클래스 디스크립션 파일에 기초해서 클래스를 생성하는 단계는,
    상기 클래스 디스크립션 파일에 기초하여, 클래스명, 패런트(parent) 클래스명, 및 속성을 취득하는 단계와,
    상기 클래스명, 상기 패런트 클래스명, 및 상기 속성에 기초하여 그리고 iOS 런타임 기술이 제공하는 메소드를 이용하여 클래스를 생성하는 단계를 포함하는 것인 APP 실행 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 오리지널 파일은 헤더 파일과 소스 파일을 포함하는 것인 APP 실행 방법.
  5. 제4항에 있어서, 상기 APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일을 생성하여, 설치 패키지에 상기 클래스 디스크립션 파일을 배치하는 단계는,
    상기 헤더 파일과 상기 소스 파일에 기초하여 상기 클래스 디스크립션 파일을 생성하는 단계와,
    상기 소스 파일을 삭제하는 단계와,
    상기 소스 파일이 삭제된 후에, 사용자가 다운로드하기 위해 상기 설치 패키지에 상기 헤더 파일과 상기 클래스 디스크립션 파일을 배치하는 단계를 포함하는 것인 APP 실행 방법.
  6. 제5항에 있어서, 상기 설치 패키지에 상기 헤더 파일과 상기 클래스 디스크립션 파일을 배치한 후에,
    상기 설치 패키지를 압축하여 사용자가 압축된 설치 패키지를 다운로드하게 하는 단계를 더 포함하는 APP 실행 방법.
  7. 애플리케이션(APP) 실행 장치에 있어서,
    APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일을 생성하여, 설치 패키지에 상기 클래스 디스크립션 파일을 배치하도록 구성된 생성 모듈로서, 상기 클래스 디스크립션 파일은 클래스를 기술하는데 사용되는 텍스트 파일이고, 상기 클래스 디스크립션 파일의 사이즈는 대응하는 클래스의 사이즈보다 작은 것인 상기 생성 모듈과,
    사용자가 APP를 실행하기 전에 상기 설치 패키지를 다운로드하도록 구성된 다운로드 모듈과,
    APP가 실행될 때에, 상기 설치 패키지로부터 상기 클래스 디스크립션 파일을 취득하여, 상기 클래스 디스크립션 파일에 기초해서 클래스를 생성하도록 구성된 실행 모듈
    을 포함하는 APP 실행 장치.
  8. 제7항에 있어서, 상기 생성 모듈은, 상기 APP의 오리지널 파일에 기초해서 클래스 디스크립션 파일을 생성하도록 구성되고, 상기 클래스 디스크립션 파일의 생성은,
    미리 결정된 스크립트에 기초하여 포맷 변환을 수행하는 것과, 상기 APP의 오리지널 파일을 상기 클래스 디스크립션 파일로 변환하는 것을 포함하는 것인 APP 실행 장치.
  9. 제7항에 있어서, 상기 실행 모듈은, 상기 클래스 디스크립션 파일에 기초하여 클래스를 생성하도록 구성되고, 상기 클래스의 생성은,
    상기 클래스 디스크립션 파일에 기초하여, 클래스명, 패런트 클래스명, 및 속성을 취득하는 것과,
    상기 클래스명, 상기 패런트 클래스명, 및 상기 속성에 기초하여 그리고 iOS 런타임 기술이 제공하는 메소드를 이용하여 클래스를 생성하는 것을 포함하는 것인 APP 실행 장치.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서, 상기 오리지널 파일은 헤더 파일과 소스 파일을 포함하고, 상기 생성 모듈은,
    상기 헤더 파일과 상기 소스 파일에 기초하여 상기 클래스 디스크립션 파일을 생성하도록 구성된 제1 유닛과,
    상기 소스 파일을 삭제하도록 구성된 제2 유닛과,
    상기 소스 파일이 삭제된 후에, 상기 설치 패키지에 상기 헤더 파일과 상기 클래스 디스크립션 파일을 배치하여 사용자가 다운로드하게 하도록 구성된 제3 유닛을 포함하는 것인 APP 실행 장치.
  11. 제10항에 있어서, 상기 생성 모듈은,
    상기 설치 패키지를 압축하여 사용자가 압축된 설치 패키지를 다운로드하게 하도록 구성된 제4 유닛을 더 포함하는 것인 APP 실행 장치.
KR1020187020535A 2015-12-22 2016-12-14 App 프로그램 실행 방법 및 장치 Active KR102141749B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510971750.8 2015-12-22
CN201510971750.8A CN106909353B (zh) 2015-12-22 2015-12-22 应用程序的运行方法和装置
PCT/CN2016/109917 WO2017107824A1 (zh) 2015-12-22 2016-12-14 应用程序的运行方法和装置

Publications (2)

Publication Number Publication Date
KR20180098584A true KR20180098584A (ko) 2018-09-04
KR102141749B1 KR102141749B1 (ko) 2020-09-15

Family

ID=59089110

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187020535A Active KR102141749B1 (ko) 2015-12-22 2016-12-14 App 프로그램 실행 방법 및 장치

Country Status (10)

Country Link
US (1) US10671366B2 (ko)
EP (1) EP3396536A4 (ko)
JP (1) JP6703114B2 (ko)
KR (1) KR102141749B1 (ko)
CN (1) CN106909353B (ko)
AU (1) AU2016378425B2 (ko)
MY (1) MY187394A (ko)
PH (1) PH12018501343A1 (ko)
SG (1) SG11201805248TA (ko)
WO (1) WO2017107824A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10225360B1 (en) * 2018-01-24 2019-03-05 Veeva Systems Inc. System and method for distributing AR content
CN109799995A (zh) * 2018-12-14 2019-05-24 平安普惠企业管理有限公司 部署ipa包的方法、装置、计算机设备和存储介质
CN110262831A (zh) * 2019-05-28 2019-09-20 深圳供电局有限公司 一种减小apk体积的方法及系统
CN112416300B (zh) * 2019-08-20 2025-02-11 阿里巴巴集团控股有限公司 应用程序安装包生成方法、装置与电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268243A1 (en) * 2004-05-28 2005-12-01 Martin Moser Dynamic ecmascript class loading
CN102662703A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种应用程序插件加载方法及装置
KR101427561B1 (ko) * 2013-05-16 2014-08-07 주식회사 인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환을 이용한 적응 실행 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5560009A (en) * 1990-09-21 1996-09-24 Hewlett-Packard Company Generating symbolic debug information by merging translation and compiler debug information
US5854932A (en) * 1995-08-17 1998-12-29 Microsoft Corporation Compiler and method for avoiding unnecessary recompilation
US6199196B1 (en) * 1998-03-20 2001-03-06 Sun Microsystems, Inc. Methods and apparatus for linking a program for remote execution
US6085198A (en) * 1998-06-05 2000-07-04 Sun Microsystems, Inc. Integrated three-tier application framework with automated class and table generation
US7506175B2 (en) * 2000-11-06 2009-03-17 International Business Machines Corporation File language verification
US20060075070A1 (en) * 2002-04-02 2006-04-06 Patrick Merissert-Coffinieres Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture
US7353502B2 (en) * 2002-07-03 2008-04-01 The Mathworks, Inc. System and method for creation of software components
CN1313925C (zh) * 2002-12-31 2007-05-02 上海科泰世纪科技有限公司 构件自描述封装方法及运行的方法
US7184917B2 (en) * 2003-02-14 2007-02-27 Advantest America R&D Center, Inc. Method and system for controlling interchangeable components in a modular test system
US9164750B2 (en) * 2003-02-28 2015-10-20 Hewlett-Packard Development Company, L.P. Managing target computer using encapsulated file
US7707566B2 (en) * 2003-06-26 2010-04-27 Microsoft Corporation Software development infrastructure
US7305666B2 (en) * 2003-07-23 2007-12-04 Microsoft Corporation Description language for an extensible compiler and tools infrastructure
US8631386B2 (en) * 2004-08-25 2014-01-14 Mohit Doshi System and method for automating the development of web services
GB2419436A (en) * 2004-10-25 2006-04-26 Digitalml Ltd Extensible object-modelling mechanism
US8464214B2 (en) * 2005-09-15 2013-06-11 Ca, Inc. Apparatus, method and system for building software by composition
US8364638B2 (en) * 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
US8032872B2 (en) * 2006-01-09 2011-10-04 Oracle America, Inc. Supporting applets on a high end platform
US7813870B2 (en) 2006-03-03 2010-10-12 Inrix, Inc. Dynamic time series prediction of future traffic conditions
US20090172636A1 (en) * 2006-03-31 2009-07-02 Tim Griffith Interactive development tool and debugger for web services
CN101202739A (zh) * 2006-12-11 2008-06-18 中兴通讯股份有限公司 一种asn.1报文面向对象的处理装置
US7949848B2 (en) * 2007-03-08 2011-05-24 Arm Limited Data processing apparatus, method and computer program product for reducing memory usage of an object oriented program
CN101697133A (zh) * 2009-10-26 2010-04-21 中兴通讯股份有限公司 软件升级方法、软件升级系统以及客户端
CN102135892B (zh) * 2010-01-22 2015-03-04 广州华多网络科技有限公司 应用程序运行方法、装置及系统
CN101783075B (zh) 2010-02-05 2012-05-23 北京科技大学 一种城市环形道路交通流预测系统
CN103365672B (zh) * 2012-03-29 2016-04-06 宇龙计算机通信科技(深圳)有限公司 一种处理应用程序的描述信息的方法和系统
CN104252364B (zh) * 2013-06-25 2017-09-12 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
TWI559249B (zh) 2016-02-24 2016-11-21 車慧中 通過電腦實現的專利大數據預測選股方法及電腦系統
TWM553462U (zh) 2017-09-25 2017-12-21 First Commercial Bank 行銷客群預測系統
TWM560648U (zh) 2017-12-26 2018-05-21 Systex Corp 透過金融商品漲跌歷史軌跡為深度學習之轉折點預測系統

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268243A1 (en) * 2004-05-28 2005-12-01 Martin Moser Dynamic ecmascript class loading
CN102662703A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种应用程序插件加载方法及装置
KR101427561B1 (ko) * 2013-05-16 2014-08-07 주식회사 인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환을 이용한 적응 실행 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Wikipedia : RPM Package Manager. 2015.12.12. *

Also Published As

Publication number Publication date
AU2016378425B2 (en) 2020-01-23
WO2017107824A1 (zh) 2017-06-29
EP3396536A1 (en) 2018-10-31
CN106909353B (zh) 2019-12-13
JP2019501459A (ja) 2019-01-17
EP3396536A4 (en) 2019-01-02
KR102141749B1 (ko) 2020-09-15
US20180300118A1 (en) 2018-10-18
AU2016378425A1 (en) 2018-07-12
US10671366B2 (en) 2020-06-02
MY187394A (en) 2021-09-22
PH12018501343A1 (en) 2019-02-27
JP6703114B2 (ja) 2020-06-03
SG11201805248TA (en) 2018-07-30
CN106909353A (zh) 2017-06-30

Similar Documents

Publication Publication Date Title
US9811360B2 (en) Dynamic determination of application server runtime classloading
CN109976761B (zh) 软件开发工具包的生成方法、装置及终端设备
US8601129B2 (en) Hypervisor selection for hosting a virtual machine image
CN111240684B (zh) 一种js代码的裁剪方法、装置、介质和电子设备
CN108536451B (zh) 应用程序的埋点注入方法和装置
CN108279940B (zh) 一种web容器中的模块加载方法和装置
CN103838573A (zh) 应用程序生成方法及装置
CN106775781B (zh) 减小应用安装包的方法、装置及电子设备
KR20180098584A (ko) App 프로그램 실행 방법 및 장치
CN110069259A (zh) 基于idl文件的解析方法、装置、电子设备和存储介质
CN105094878B (zh) 一种集成系统库文件的方法和装置
CN103793248A (zh) 一种应用程序升级的方法及装置
WO2013018204A1 (ja) 画像処理ソフトウェア開発方法、画像処理ソフトウェア開発装置、および、画像処理ソフトウェア開発プログラム
CN110688096B (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
CN106775916B (zh) 减小应用安装包的方法、装置及电子设备
CN106354624B (zh) 一种自动化测试方法和装置
KR101117165B1 (ko) 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛
WO2019157891A1 (zh) 应用安装方法、应用安装包的生成方法
CN112953721B (zh) 一种ipa文件的解析方法、装置、设备及存储介质
CN104978221B (zh) 实现程序的下载删除的方法及系统
CN116932039A (zh) 一种软件物料清单生成方法、装置、设备和存储介质
CN113342633B (zh) 一种性能测试方法和装置
US20140351799A1 (en) Binary interface instrumentation
CN115268898A (zh) 模块信息的收集方法、装置、设备、介质及程序产品
CN118152314A (zh) 一种基于数据采集适配器的数据交互方法、设备及介质

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20180717

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20191220

Comment text: Request for Examination of Application

PA0302 Request for accelerated examination

Patent event date: 20191220

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20200511

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20200730

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20200730

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20240701

Start annual number: 5

End annual number: 5