KR102096195B1 - 플러그인화 패키징 방법, 장치, 터미널 및 저장 매체 - Google Patents

플러그인화 패키징 방법, 장치, 터미널 및 저장 매체 Download PDF

Info

Publication number
KR102096195B1
KR102096195B1 KR1020187015590A KR20187015590A KR102096195B1 KR 102096195 B1 KR102096195 B1 KR 102096195B1 KR 1020187015590 A KR1020187015590 A KR 1020187015590A KR 20187015590 A KR20187015590 A KR 20187015590A KR 102096195 B1 KR102096195 B1 KR 102096195B1
Authority
KR
South Korea
Prior art keywords
plug
packaged
host project
basic
packaging
Prior art date
Application number
KR1020187015590A
Other languages
English (en)
Other versions
KR20180077265A (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 KR20180077265A publication Critical patent/KR20180077265A/ko
Application granted granted Critical
Publication of KR102096195B1 publication Critical patent/KR102096195B1/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/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
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 플러그인화 패키징 방법, 장치, 터미널 및 저장 매체와 관련된 것이다. 상기 방법은 호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하는 단계;컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하는 단계;상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 사용하여 패키징해야 할 플러그인 별로 컴파일링하는 단계;컴파일링이 완료된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스에 저장하는 단계;상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징하는 단계를 포함한다. 상기 방법을 통해 전체 apk의 패키징 속도를 높이는 효과를 달성할 수 있다.

Description

플러그인화 패키징 방법, 장치, 터미널 및 저장 매체
본 발명의 실시예는 소프트웨어 분야에 속하며, 특히, 플러그인화 패키징 방법, 장치, 터미널 및 저장 매체와 관련된다.
1 개의 큰 코드 프로젝트와 관련하여, 만약 매번 컴파일링, 패키징, 테스트 등을 재실행하려면 매우 복잡하고 중복되는 경우가 존재한다. Ant는 프로세스 스크립트 엔진으로, 자동적으로 프로그램을 호출하여 프로젝트와 관련된 컴파일링, 패키징, 테스트 등을 완성하도록 구성된다.
현재, Android 시스템에서 Ant는 Android 어플리케이션의 주요한 패키징 툴로서, 멀티 플러그인 애플리케이션에 대한 지원이 원활하지 못하고, 통상적으로 각 플러그인들을 수동으로 컴파일링해야 하며, 멀티 플러그인의 메인 프로세스를 융합시켜야 하기에, 전체 ant 패키징의 속도는 느리고 효율성도 떨어진다.
본 발명은 실시예를 통해 플러그인화 패키징 방법, 장치, 터미널 및 저장 매체를 제공하여, 기존 Android 시스템에서 ant 방식을 적용하여 패키징할 경우, 패키징 속도가 너무 느린 문제점을 해결하는 데 목적을 둔다.
본 발명의 실시예 첫 번째 부분으로, 플러그인화 패키징 방법을 제공함에 있어서, 상기 방법은:
호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하는 단계;
컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하는 단계;
상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인 별로 컴파일링하는 단계;
컴파일링이 완료된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스에 저장하는 단계;
상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징하는 단계
를 포함한다.
본 발명의 실시예 두번째 부분으로, 플러그인화 패키징 장치를 제공하며, 상기 장치는:
호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 수집하는, 실행 파일 수집부;
컴파일링이 완료된 적어도 하나의 공용 기본 메소드를 포함하는 호스트 프로젝트의 기초 라이브러리를 수집하는, 호스트 프로젝트의 기초 라이브러리 수집부;
상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여 패키징이 필요한 플러그인들에 대한 컴파일링을 진행하는, 플러그인 컴파일링부;
컴파일링이 완료된 패키징되야 할 플러그인을 호스트 프로젝트의 리소스에 저장하기 위한, 컴파일링된 플러그인 저장부;
상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징하기 위한, Apk 패키지 생성부
를 포함한다.
본 발명의 실시예 세번째 부분으로, 터미널을 제공하며, 상기 터미널은 프로세서와 스토리지를 포함한다;
상기 스토리지는 플러그인화 패키징 시스템을 저장하도록 구성되며, 상기 플러그인화 패키징 시스템은 최저로 프로세서에 의해 집행되는 프로그램 명령어 1개를 포함한다;
상기 프로세서는 상기 플러그인화 패키징 시스템의 프로그램 명령어를 실행하도록 구성되며, 이와 같은 과정은,
호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하는 단계;
컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하는 단계;
상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인을 각각 컴파일링하는 단계;
컴파일링이 완료된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스에 저장하는 단계;
상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징하는 단계
를 실행한다.
본 발명의 실시예 네 번째 부분으로, 비일시적인 컴퓨터로 판독 가능한 저장 매체를 제공하며, 상기 비일시적인 컴퓨터로 판독 가능한 저장 매체에 대한 저장은1개 혹은 다수 개의 프로세서를 통해 실행하는 명령어를 통해 조작을 진행하며, 상기 조작은:
호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하는 단계;
컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하는 단계;
상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인을 각각 컴파일링하는 단계;
컴파일링이 완료된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스에 저장하는 단계;
상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징하는 단계
를 포함한다.
본 발명의 실시예에서, 멀티 스레드를 적용하여, 패키징이 필요한 플러그인를 각각 컴파일링 하기에, 각 플러그인의 컴파일링 속도를 높일 수 있고, 전체 Apk의 패키징 속도도 높일 수 있다.
도 1은 본 발명의 제1 실시예에 따른 플러그인화 패키징 방법을 나타낸 흐름도이다.
도 2는 본 발명의 제2 실시예에 따른 플러그인화 패키징 장치의 구성도이다.
도 3은 본 발명의 제3 실시예에 따른 터미널의 구성도를 나타낸다.
본 발명의 목적, 기술방안 및 장점을 보다 명확하게 설명하기 위해 아래에 첨부 도면과 실시예를 결합하여, 본 발명을 보다 상세하게 설명하며, 이와 같이 진술된 상세한 실시예는 단지 본 발명을 설명하기 위해 예를 든 것에 지나지 않으며, 이를 통해 본 발명을 한정하는데 적용하지 않는다.
본 발명의 실시예에서, 호스트 프로젝트의 소스 코드를 컴파일링하여 생성된실행 파일을 획득하며; 컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하고; 상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인을 각각 컴파일링하며; 컴파일링이 완료된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스에 저장하고; 상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징한다.
본 발명에서 명시하는 기술방안을 설명하기 위해, 하기 상세한 실시예를 통해 설명을 진행한다.
실시예 1:
도 1은 본 발명의 제1 실시예에 따른 플러그인화 패키징 방법을 나타낸 흐름도이며, 상세한 내용은 아래와 같다.
단계 S11에서, 호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득한다.
그 중에서, 실행 파일은 다수일 수도 있으며, 만약 dex 타입의 실행 파일일 경우, 1개 혹은 다수의 dex 파일로 1개 dex 패키지를 구성할 수 있다.
보다 상세하게, 컴파일링을 진행해야 할 소스 코드에 대응하는 호스트 프로젝트(예를 들어, 호스트 프로젝트의 유일한 식별자 및/혹은 버전 넘버 등을 통해 확정)를 확정한 후, 호스트 프로젝트의 소스 코드 (해당 소스 코드는 java 코드일 수 있음)에 대하여 컴파일링하며, 컴파일링된 호스트 프로젝트의 소스 코드를 획득한 후, 대응되는 실행 파일을 획득한다.
이 부분에서 지적해야 할 점이라면, 단계 S11과 후속 단계 S12 내지 단계 S14는 고정적인 선후 순서를 두지 않으며, 다시 말하면, 단계 S11은 반드시 단계 S12 내지 단계 S14보다 앞서 수행해야 하는 것은 아니다.
단계 S12에서, 컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득한다.
상기 호스트 프로젝트의 기초 라이브러리는 적어도 하나의 컴파일링된 공용 기본 메소드를 포함하며, 상기 공용 기본 메소드는 플러그인 컴파일링에 필요한 공용 기본 메소드를 포함하며, 컴파일링 호스트 프로젝트 컴파일링에 필요한 공용 기본 메소드도 포함한다.
그 중에서 상기 단계 S12은 하기의 보다 상세한 절차를 포함한다.
A1. 환경 정보, 버전 정보 및 컴파일 툴을 획득하는 단계. 상기 버전 정보는 호스트 프로젝트의 버전 넘버를 포함한다. 그 중에서, 환경 정보는 테스트 환경, 계조 환경, 제조 환경 등을 포함하며, 상이한 환경은 상이한 서버가 대응되며, 서로 다른 서버가 저장하는 데이터는 통상적으로 서로 다르기에, 상이한 서버를 통해 상이한 데이터를 획득할 수 있으며;그 중에서, 버전 정보는 호스트 프로젝트의 버전 넘버 등 정보를 말한다.
A2. 상기 환경 정보와 버전 정보에 기초하여 적어도 하나의 공용 기본 메소드를 획득한다. 후속적으로 플러그인을 컴파일링하면서, 호스트 프로젝트의 기초 라이브러리의 공용 기본 메소드에 의존해야 하기에, 후속적으로 준확하고 빠르게 플러그인을 컴파일링하기 위하여 적어도 하나의 공용 기본 메소드가 필요하다.
A3. 상기 컴파일 툴을 적용하여 상기 공용 기본 메소드를 컴파일링하여 호스트 프로젝트의 기초 라이브러리를 얻는다.
선택사항으로, 소정의 환경을 통해 획득한 공용 기본 메소드 중에는 후속적으로 모든 플러그인을 컴파일링하는 데 필요한 1종 혹은 다종 방법을 포함하지 않을 수 있기에, 후속적으로 모든 플러그인을 준확하게 컴파일링하기 위하여, 상기 A2 절차 뒤에 반드시 아래 과정이 필요하다:
획득한 공용 기본 메소드에 지정한 공용 기본 메소드를 포함하고 있는 여부를 판정하여, 만약 포함하지 않으면, 환경 정보와 버전 정보를 교체할 것을 제시하여, 교체된 환경 정보와 버전 정보를 통해 지정된 공용 기본 메소드를 획득한다. 그 중에서, 지정한 공용 기본 메소드는 후속적으로 모든 플러그인을 컴파일링하기 위한 방법으로, 지정된 공용 기본 메소드의 수량은 후속적으로 컴파일링 해야 할 플러그인(다시 말하면, 패키징이 필요한 플러그인)의 수량과 관련되며, 그 수량은 1개 혹은 복수 개일 수도 있다. 보다 상세하게, 서로 다른 환경 정보와 버전 정보는 상이한 서버에 대응되며, 서버별로 저장하는 데이터는 통상적으로 서로 다르기에, 만약 1개 환경 정보와 버전 정보를 통해 획득한 공용 기본 메소드에 지정된 공용 기본 메소드가 없으면, 다른 환경 정보와 버전 정보로 교체해야 하며, 교체된 환경 정보와 버전 정보가 대응된 서버에서 획득한 공용 기본 메소드가 지정된 공용 기본 메소드를 포함하는 가를 판정해야 한다.
단계 S13에서, 상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인을 각각 컴파일링한다.
본 단계에서, 호스트 프로젝트의 기초 라이브러리 중에 있는 공용 기본 메소드에 따라, 패키징해야 할 플러그인별 컴파일링을 진행한다. 만약 패키징해야 할 플러그인 수량이 다수이면, 최저로 2개의 스레드를 적용하여 패키징해야 할 플러그인별 컴파일링을 진행한다. 이 부분에서 짚고 넘어가야 할 부분이라면, 컴파일링에 적용하는 스레드의 개수는 패키징할 플러그인의 개수보다 적거나 혹은 같으며, 만약 컴파일링에 필요한 스레드의 개수가 패키징해야 할 플러그인의 개수와 같을 경우, 스레드 1개는 패키징할 플러그인 1개를 컴파일링하며; 컴파일링에 필요한 스레드의 개수가 패키징해야 할 플러그인의 개수보다 적을 경우, 사전에 패키징할 플러그인을 위해 우선권을 설정한 후, 패키징할 플러그인의 우선권 높고 낮음에 따라, 우선권이 높은 패키징할 플러그인을 우선적으로 컴파일링 진행한다.
그 중에서 상기 단계 S13은 하기의 보다 상세한 절차를 포함한다:
B1. 패키징할 플러그인에 대하여 최신 버전의 플러그인 여부를 판단한다. 보다 상세하게, 사전에 플러그인 정보 테이블 하나를 설치하며, 해당 플러그인 정보 테이블은 플러그인의 유일한 식별자를 포함하며, 플러그인의 정보(예를 들어, 플러그인의 버전 넘버 혹은 플러그인 설명 정보)업데이트 시에, 동시에 해당 플러그인 정보 테이블도 동기화 업데이트를 진행한다. 패키징해야 할 플러그인을 확정한 후, 패키징해야 할 플러그인의 유일한 식별자와 플러그인 정보 테이블 중의 플러그인의 유일한 식별자를 비교하며, 동일한 플러그인의 유일한 식별자를 매칭한 후, 상기 같은 플러그인의 유일한 식별자가 대응되는 플러그인 정보의 업데이트 여부를 판정하여, 만약 업데이트가 없으면, 해당 같은 플러그인의 유일한 식별자가 대응된 플러그인을 최신 버전의 플러그인으로 판정하며, 그렇지 않을 경우, 상기 같은 플러그인의 유일한 식별자가 대응되는 플러그인은 최신 버전의 플러그인이 아닌 것으로 판정한다.
B2. 만약 패키징해야 할 플러그인이 최신 버전의 플러그인일 경우, 상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인 별로 컴파일링한다.
이 부분에서 지적해야 할 점이라면, 만약 패키징해야 할 플러그인에 최신 버전이 아닌 플러그인이 존재하면, 사용자가 최신 버전의 플러그인을 선택할 것을 제시한 후, 멀티 스레드를 적용하여 사용자가 선택한 최신 버전의 플러그인을 각각 컴파일링한다.
단계 S14에서, 컴파일링이 완료된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스에 저장한다.
그 중에서, 상기 호스트 프로젝트를 메인 프로세스로 이해할 수 있으며, 메인 어플리케이션은 호스트 프로젝트의 리소스 중에 있으며, 그 중에는 이미지, 문자열 등 리소스도 포함할 수 있다.
보다 상세하게, 컴파일링된 패키징해야 할 플러그인을 호스트 프로젝트의 지정된 디렉토리 하위에 저장한다.
선택적으로, 사용자의 편리한 조회를 위해, 압축가능한 컴파일링을 진행 및 패키징해야 할 플러그인을 완성한 후, 호스트 프로젝트의 지정된 디렉토리 하위에 저장한다.
단계 S15에서, 상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징한다.
그 중에서, Apk 패키지는 Android 설치 패키지이다.
이 부분에서 지적해야 할 점이라면, 상기 호스트 프로젝트의 리소스는 컴파일링된 패키징해야 할 플러그인을 포함하는 외에도, 호스트 프로젝트의 이미지, 문자열 등과 같은 호스트 프로젝트의 기타 리소스도 포함한다.
선택적으로, Apk 패키지의 보안성을 강화하기 위하여 상기 단계 S15 다음으로 아래와 같은 과정이 포함된다:
상기 Apk 패키지를 사인하여, 사인된 Apk 패키지를 획득한다.
보다 상세하게, Apk 패키지에 대한 사인을 진행하기 전에, Apk 패키지의 콘텐츠에 대하여 혼동 조작을 진행한 후, 혼동 조작된 Apk 패키지에 사인하여, Apk 패키지의 보안성을 진일보 강화한다.
본 발명 제1 실시예에서, 호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하며; 컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하며; 상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인 별로 컴파일링하며; 컴파일링이 완료된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스로 저장하며; 상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징한다. 멀티 스레드를 적용하여 패키징해야 할 플러그인 별로 컴파일링을 진행하기에, 각 플러그인의 컴파일링 속도를 개선할 수 있고, 전체 apk의 패키징 속도도 진일보 개선한다.
이해해야 할 부분이라면, 본 발명의 실시예에서, 상기 각 과정의 순번 선후 순서는 실행 선후 순서를 의미하지 않으며, 각 과정의 실행 순서는 기능과 내재적인 로직에 의해 확정되고, 본 발명의 실시예 실시과정에서 그 어떤 제한성을 조성하지 말아야 한다.
실시예 2:
도 2는 본 발명의 제2 실시예에 따른 플러그인화 패키징 장치의 구성도를 나타내며, 상기 플러그인화 패키징 장치는 다양한 이동터미널에 적용가능하며, 상기 이동터미널은 무선접속망 RAN과 1개 혹은 다수 핵심망을 통해 통신하는 사용자 장비를 포함할 수 있으며, 상기 사용자 장비는 휴대전화 혹은 “컴파일링한”폰이라고 부른다), 이동장비를 구비한 컴퓨터 등일 수 있으며, 예를 들어, 사용자 장비는 휴대식, 포켓 타입, 핸드 타입, 컴퓨터 내장형 혹은 차량탑재형 이동장치일 수도 있으며, 무선접속망을 통해 음성 및/혹은 데이터를 교환할 수 있다. 다른 예를 들면, 상기 이동장비는 스마트폰, 태블릿, 과외기, 개인용 디지털 보조기 PDA, 판매터미널 POS혹은 차량탑재 PC 등을 포함할 수도 있다. 편리한 설명을 위해, 본 발명의 실시예와 관련된 부분만 제시하였다.
상기 플러그인화 패키징 장치 2는 실행 파일 수집부 21, 호스트 프로젝트의 기초 라이브러리 수집부 22, 플러그인 컴파일링부 23, 컴파일링된 플러그인 저장부 24, Apk 패키지 생성부 25를 포함한다. 그 중에서:
실행 파일 수집부 21는, 호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하도록 구성된다.
그 중에서, 상기 실행 파일은 다수일 수도 있으며, 예를 들어, dex 타입의 실행 파일은 1개 혹은 다수 개 dex 파일로 1개 dex 패키지를 구성할 수 있다.
호스트 프로젝트의 기초 라이브러리 수집부 22는, 컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하도록 구성된다.
상기 호스트 프로젝트의 기초 라이브러리는 컴파일링된 공용 기본 메소드를 적어도 하나 포함하며, 상기, 공용 기본 메소드는 플러그인 컴파일링에 필요한 공용 기본 메소드를 포함하고, 컴파일링 호스트 프로젝트 컴파일링에 필요한 공용 기본 메소드도 포함한다.
상기 호스트 프로젝트의 기초 라이브러리 수집부 22는:
환경 정보 수집모듈, 환경 정보, 버전 정보 획득 및 컴파일링하는 툴을 포함한다. 상기 버전 정보는 호스트 프로젝트의 버전 넘버를 포함한다. 그 중에서, 환경 정보는 테스트 환경, 계조 환경, 제조 환경 등을 포함하며, 상이한 환경은 상이한 서버에 대응되며, 서로 다른 서버가 저장하는 데이터도 통상적으로 서로 다르기에, 상이한 서버를 통해 상이한 데이터를 획득할 수 있다;그 중에서, 버전 정보는 호스트 프로젝트의 버전 넘버 등 정보를 말한다.
공용 기본 메소드 수집모듈은, 상기 환경 정보와 버전 정보에 의해 적어도 하나의 공용 기본 메소드를 획득하도록 구성된다.
호스트 프로젝트의 기초 라이브러리 생성모듈은, 상술한 컴파일 툴을 적용하여 상기 공용 기본 메소드를 컴파일링하여, 호스트 프로젝트의 기초 라이브러리를 획득한다.
선택적으로, 어떤 환경을 통해 획득한 공용 기본 메소드에는 후속적으로 모든 플러그인을 컴파일링하는 데 필요한 1종 혹은 다수 방법을 포함하지 않을 수도 있기에, 후속적으로 모든 플러그인을 정확하게 컴파일링하기 위하여, 상기 플러그인화 패키징 장치는 아래의 구성부를 포함한다:
공용 기본 메소드 매칭부는, 공용 기본 메소드가 지정한 공용 기본 메소드 포함 여부를 판정하는도록 구성되며, 만약 포함하지 않으면, 환경 정보와 버전 정보를 교체할 것을 제시하여, 교체된 환경 정보와 버전 정보를 통해 지정된 공용 기본 메소드를 획득한다.
그 중에서, 지정된 공용 기본 메소드는 후속적으로 모든 플러그인을 컴파일링하기 위한 방법으로, 지정된 공용 기본 메소드의 개수와 후속적으로 컴파일링해야 할 플러그인(즉 패키징해야 할 플러그인)의 개수와 관련되며, 이와 같은 수량은 1개 혹은 다수 개일 수도 있다. 보다 상세하게, 상이한 환경 정보와 버전 정보는 상이한 서버에 대응되며, 상이한 서버가 저장하는 데이터도 통상적으로 상이하기에, 1개의 환경 정보와 버전 정보를 통해 획득한 공용 기본 메소드에 지정된 공용 기본 메소드가 포함되지 않을 경우, 다른 환경 정보와 버전 정보로 교체해야 하며, 교체된 환경 정보와 버전 정보가 대응된 서버를 통해 획득한 공용 기본 메소드가 지정한 공용 기본 메소드를 포함하는가를 재판정한다.
플러그인 컴파일링부 23은, 상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인 별로 컴파일링하도록 구성된다.
이 부분에서 지적해야 할 점이라면, 컴파일링에 필요한 스레드 개수는 패키징해야 할 플러그인의 개수보다 적거나 같으며, 컴파일링에 필요한 스레드의 개수가 패키징해야 할 플러그인의 개수와 같을 경우, 1개의 스레드는 패키징해야 할 플러그인 1개를 컴파일링하며;만약 컴파일링할 스레드의 개수가 패키징해야 할 플러그인의 개수보다 적을 경우, 사전에 패키징해야 할 플러그인을 위해 우선권을 설정한 후, 패키징해야 할 플러그인의 우선권의 높고 낮음에 따라 우선적으로 우선권이 높은 패키징해야 할 플러그인에 대한 컴파일링을 진행한다.
선택적으로, 상기 플러그인 컴파일링부23은 구체적으로 아래와 같은 구성을 포함한다:
플러그인 버전 판단 모듈은, 패키징해야 할 플러그인에 대하여 최신 버전의 플러그인 여부를 판단하도록 구성된다. 보다 상세하게, 사전에 플러그인 정보 테이블 1개를 설정하며, 상기 플러그인 정보 테이블은 플러그인의 유일한 식별자를 포함하며, 플러그인의 정보(예를 들어, 플러그인의 버전 넘버 혹은 플러그인 설명 정보)를 업데이트 하면, 상기 플러그인 정보 테이블을 동기화로 업데이트 한다. 패키징해야 할 플러그인을 확정한 후, 패키징해야 할 플러그인의 유일한 식별자와 플러그인 정보 테이블 중의 플러그인의 유일한 식별자를 비교하며, 같은 플러그인의 유일한 식별자로 매칭한 후, 상기 같은 플러그인의 유일한 식별자가 대응된 플러그인 정보에 업테이트가 존재하는 여부를 판단하여, 만약 업데이트가 없으면 상기 같은 플러그인의 유일한 식별자의 대응된 플러그인을 최신 버전의 플러그인으로 판단하며, 그렇지 않을 경우, 상기 같은 플러그인의 유일한 식별자에 대응된 플러그인을 최신 버전의 플러그인이 아닌것으로 판정한다.
최신 플러그인 컴파일링 모듈은, 패키징해야 할 플러그인이 최신 버전의 플러그인인 경우에, 상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인 별로 컴파일링하도록 구성된다.
이 부분에서 지적해야 할 점이라면, 패키징해야 할 플러그인에 최신 버전이 아닌 플러그인이 존재하면, 사용자에게 최신 버전의 플러그인을 선택할 것을 제시한 후, 멀티 스레드를 적용하여, 사용자가 선택한 최신 버전의 플러그인을 각각 컴파일링한다.
컴파일링된 플러그인 저장부 24은, 컴파일링된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스에 저장하도록 구성된다.
그 중에서, 상기 호스트 프로젝트를 메인 프로세스, 메인 어플리케이션으로 이해할 수 있으며, 호스트 프로젝트의 리소스 중에는, 이미지, 문자열 등 리소스도 포함할 수 있다.
보다 상세하게, 컴파일링된 패키징해야 할 플러그인을 호스트 프로젝트가 지정한 디렉토리 하위에 저장한다.
선택적으로, 사용자의 편리한 조회를 위해, 압축가능한 컴파일링을 진행 및 패키징해야 할 플러그인을 완성한 후, 호스트 프로젝트의 지정된 디렉토리 하위에 저장한다.
Apk 패키지 생성부 25는, 상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징하는데 적용한다.
선택적으로, 상기 플러그인화 패키징 장치는 아래의 구성부분을 포함한다:
Apk 패키지 사인부는, 상기 Apk 패키지에 대하여 사인하고, 사인된 Apk 패키지를 획득하도록 구성된다.
보다 상세하게, Apk 패키지에 대하여 사인하기 전에, Apk 패키지의 콘텐츠에 대하여 혼동 조작을 진행할 수 있으며, 혼동 조작된 Apk 패키지에 대하여 사인하여, Apk 패키지의 보안성을 진일보로 강화할 수 있다.
본 발명 제2 실시예에서, 멀티 스레드를 적용하여 패키징해야 할 플러그인 별로 컴파일링을 진행하기에, 각 플러그인의 컴파일 속도를 높일 수 있고, 진일보로 전체 apk의 패키징 속도도 높일 수 있다.
개시된 장치는 다른 방식을 통해 구현할 수 있음을 이해해야 할 것이다. 예를 들어, 이상에서 설명한 장치 실시예는 단지 예시하기 위한 것에 지나지 않는다. 예를 들어, 상기 유닛에 대한 구분은 단지 노직적인 기능 획분에 지나지 아니하며, 실제로 구현하는 과정에 별도의 획분 방식을 적용할 수도 있다. 예를 들어, 다수 유닛 혹은 그룹웨어를 별도의 시스템으로 결합시키거나 혹은 통합시키거나 혹은 일부 특징은 생략하거나 혹은 실행하지 않을 수도 있다. 별도로, 개시되었거나 혹은 토론된 상호간 결합 혹은 직접적인 결합, 혹은 통신 접속은 일부 인터페이스를 통해 진행할 수 있으며, 장치 혹은 유닛의 간접 결합 혹은 통신 접속은 전기적, 기계적 혹은 기타 연결 방식을 수 있다.
실시예 3
도 3은 본 발명의 제3 실시예에 따른 터미널의 구성도를 나타내며, 상기 터미널은 무선접속망RAN을 통해 1개 혹은 다수 핵심망과 통신하는 사용자 설비를 포함할 수 있으며, 상기 사용자 설비는 휴대전화(혹은 “셀룰러”폰이라고 부른다)거나 혹은 이동 설비를 보유한 컴퓨터 등일 수 있으며, 예를 들어, 사용자 설비는 휴대식, 포켓 타입, 핸드 타입, 컴퓨터 내장 혹은 차량 탑재형 이동 장치일 수도 있으며, 이와 같은 장비를 통해, 무선접속망과 음성 및/혹은 데이터 교환을 진행한다. 다른 예로, 상기 이동설비는 스마트폰, 태블릿, 과외기, 개인용 디지털 보조기 PDA, 판매터미널 POS 혹은 차량탑재 PC 등을 포함할 수 있다. 설명의 편리를 위해 본 발명의 실시예와 관련된 부분만 개시한다. 이 부분에서 지적해야 할 점이라면, 상기 터미널이 휴대폰일 경우, 상기 휴대폰은:무선주파수(Radio Frequency, RF)회로, 스토리지, 입력부, 디스플레이부, 센서, 오디오 회로, 무선모듈, 프로세서, 및 전원 등 부품을 포함한다.
상기 터미널 3은, 1 개 혹은 다수 프로세서 31(도면은 1개만 예시하고 있음), 1개 혹은 다수 입력장비 32(도면은 1개만 예시하고 있음) 및 스토리지 33을 포함한다. 그 중에서:
상기 스토리지 33는 플러그인화 패키징 시스템을 저장하도록 구성되며, 상기 플러그인화 패키징 시스템은 프로세서를 통해 실행되는 프로그램 명령어를 적어도 하나 포함해야 한다;
상기 프로세서 31은, 상기 플러그인화 패키징 시스템의 프로그램 명령어를 실행하도록 구성되며,
호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하는 단계;
컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하는 단계;
상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인 별로 컴파일링하는 단계;
컴파일링이 완료된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스에 저장하는 단계;
상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징하는 단계
를 실행한다.
선택적으로, 컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하는 단계는: 환경 정보, 버전 정보 및 컴파일 툴을 획득하며, 상기 버전 정보는 호스트 프로젝트의 버전 넘버를 포함하며;상기 환경 정보와 버전 정보에 기초하여 적어도 하나의 공용 기본 메소드를 획득하며;상기 컴파일 툴에 따라 상기 공용 기본 메소드를 컴파일링하여, 호스트 프로젝트의 기초 라이브러리를 획득하는 과정을 포함한다.
선택적으로, 상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인 별로 컴파일링하는 단계는:패키징해야 할 플러그인에 대하여 최신 버전의 플러그인 여부를 판단하여;만약 패키징해야 할 플러그인이 최신 버전의 플러그인이면, 상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인 별로 컴파일링하는 단계를 포함한다.
선택적으로, 상기 환경 정보와 버전 정보에 기초하여 적어도 하나의 공용 기본 메소드를 획득한 후, 상기 프로세서는 상기 업무 데이터 처리 시스템의 프로그램 명령어를 실행하는데 적용되어, 아래의 단계들을 수행한다:
획득한 공용 기본 메소드가 지정된 공용 기본 메소드 포함 여부를 판단하여, 만약 포함하지 않으면, 환경 정보와 버전 정보 교체를 제시하여, 교체된 환경 정보와 버전 정보에 기초하여 지정된 공용 기본 메소드를 획득한다.
선택적으로, 상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징한 후, 상기 프로세서는 상기 업무 데이터 처리 시스템의 프로그램 명령어를 실행하여 하기의 단계를 실행한다:
상기 Apk 패키지에 대하여 사인하여, 사인된 Apk 패키지를 획득한다.
본 발명의 제3 실시예에 따른 스레드를 적용하여 패키징해야 할 플러그인 별로 컴파일링을 진행하기에, 각 플러그인의 컴파일링 속도를 높이고, 전체 Apk의 패키징 속도도 진일보로 높인다.
이 부분에서 이해해야 할 부분이라면, 본 발명의 실시예에서, 프로세서 31는 중앙처리장치(Central Processing Unit, CPU)일 수 있으며, 상기 프로세서는 기타 범용 프로세서, 디지털 신호 프로세서 (Digital Signal Processor, DSP), 전용 접적회로 (Application Specific Integrated Circuit, ASIC), 필드 프로그래머블 게이트 어레이 (Field-Programmable Gate Array, FPGA) 혹은 기타 프로그래밍 가능한 로직부품, 분립 도어 혹은 트랜지스터 로직부품, 분립 하드웨어 그룹웨어 등일 수 있다. 범용 프로세서는 마이크로 프로세서일 수 있거나 혹은 상기 프로세서는 임의 상규적인 프로세서 등일 수도 있다.
입력장비 32는 터치 패드, 지문 수집 센서(사용자 지문 정보와 지문 방향 정보를 수집하는데 적용), 마이크, 데이터 접수 인터페이스 등을 포함할 수 있다. 출력장비는 디스플레이(LCD등), 스피커, 데이터 발송 인터페이스 등을 포함할 수 있다.
상기 스토리지 33는 룸과 랜덤 액세스 메모리를 포함할 수 있으며, 프로세서 31에 명령어과 데이터를 제공한다. 스토리지 33의 일부는 비휘발성 랜덤 액세스 메모리를 포함할 수도 있다. 예를 들어, 스토리지 33는 장비 타입 정보도 저장할 수도 있다.
선택적으로, 상기 터미널3은 디스플레이도 포함하며, 상기 디스플레이는 사용자가 입력한 정보 혹은 사용자에게 제공하는 정보 등을 표시하도록 구성된다. 디스플레이는 디스플레이 패널을 포함할 수 있으며, 선택가능한 것이고, 액정 디스플레이(Liquid Crystal Display, LCD), 유기 발광 다이오드(Organic Light-Emitting Diode, OLED)등 형식을 통해 디스플레이 패널을 구성할 수 있다. 보다 상세하게, 상기 디스플레이는 터치 패널을 포함할 수도 있으며, 상기 터치 패널은 디스플레이 패널을 커버할 수 있다. 터치 패널은 상위 혹은 인근에 있는 터치 조작을 감지한 후, 관련 신호를 프로세서 31로 전송하여 터치 이벤트 유형을 확정한 후, 프로세서 31은 터치 이벤트의 타입에 기초하여 디스플레이 패널 상에 대등된 시각적인 출력을 제공한다.
구체적인 구현과정에서, 본 발명의 실시예를 통해 설명하는 프로세서 31, 입력장비 32, 출력장비, 스토리지 33 및 디스플레이는 본 발명의 실시예를 통해 제공하는 플러그인화 패키징 방법 관련 실시예에서 설명하는 구현방식을 실행할 수 있으며, 실시예 2를 통해 상기 터미널과 관련하여 설명한 구현방식을 실행할 수도 있으며, 더 이상 상세한 설명을 진행하지 않기로 한다.
본 발명의 실시예를 통해 비일시적인 컴퓨터로 판독 가능한 저장 매체도 제공하며, 상기 비일시적인 컴퓨터로 판독 가능한 저장 매체로 1개 혹은 다수 프로세서에서 실행하는 명령어를 저장하여 관련 조작을 진행하는 특징을 가지며, 상기 조작은:
호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하는 단계;
컴파일링된 공용 기본 메소드를 적어도 하나 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하는 단계;
상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 적용하여, 패키징해야 할 플러그인 별로 컴파일링하는 단계;
컴파일링이 완료된 패키징해야 할 플러그인을 호스트 프로젝트의 리소스에 저장하는 단계;
상기 실행 파일 및 호스트 프로젝트의 리소스를 Apk 패키지로 패키징하는 단계
를 포함한다.
본 기술 분야의 일반 기술자이라면, 본 문에서 명시한 실시예를 통해 설명한 각 사례의 유닛 및 알고리즘 절차와 연결시켜, 전자 하드웨어, 혹은 컴퓨터 소프트웨어와 전자 하드웨어의 결합을 통해 구현할 수 있다는 사실을 알고 있음이 틀림없다. 이와 같은 기능을 하드웨어 혹은 소프트웨어 방식으로 진행하는 여부는 기술 방안의 특정된 응용 및 디자인의 약속 환경에 의해 결정된다. 전문 기술인원은 각 특정된 응용에 대하여 부동한 방법을 적용하여 설명하고 있는 기능을 구현하나, 단, 이와 같은 구현은 본 발명의 범위를 초과했다고 볼 수는 없다.
만약 상기 기능이 소프트웨어 기능부의 형식으로 구현했고, 독립적인 제품으로 판매 혹은 사용될 경우, 컴퓨터가 판독가능한 1개의 저장매체에 저장가능하다. 이와 같은 이해에 기초하여, 본 발명의 기술방안은 본질적으로 혹은 기존 기술에 대하여 기여한 부분 혹은 해당 기술 방안의 부분에 대하여 소프트웨어 제품의 형식으로 구현할 수 있으며, 이와 같은 컴퓨터 소프트웨어 제품을 1개 저장 매체에 저장하며, 일부 명령어를 적용하여 1대의 컴퓨터 장비(개인용 컴퓨터, 서버 혹은 네트워크 설비 등일 수 있음)를 통해 본 발명의 각 실시예를 통해 설명하는 방법의 모든 혹은 부분적인 단계를 실행한다. 상술한 저장 매체는 U 디스크, 모바일 HDD, 룸(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 자기 디스크 혹은 CD 등 다양한 프로그램 코드를 저장할 수 있는 미디어를 포함한다.
상술한 설명은 단지 본 발명의 상세한 실시 방식에 대한 설명에 지나지 않으나, 본 발명의 보호 범위는 이 부분에 한정되지 않으며, 본 기술 분야에서 통상지식을 갖는 있는 기술자라면, 본 발명이 명시하는 기술 범위 내에서 용이한 변화와 변경을 할 수 있으며, 이는 전부 본 발명의 보호 범위 내에 포함된다. 따라서, 본 발명의 보호 범위는 본 발명의 특허청구범위의 청구항을 기준으로 해야 한다.

Claims (16)

  1. 호스트 프로젝트(host project)의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하는 단계;
    적어도 하나의 컴파일링된 공용 기본 메소드(public base method)를 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하는 단계;
    상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 사용하여 패키징해야 할 플러그인을 각각 컴파일링하는 단계;
    상기 컴파일링된 패키징해야 할 플러그인을 상기 호스트 프로젝트의 리소스에 저장하는 단계; 및
    상기 실행 파일 및 상기 호스트 프로젝트의 리소스를 Apk 패키지로 함께 패키징하는 단계를 포함하며,
    상기 스레드의 개수는 상기 패키징해야 할 플러그인의 개수보다 적거나 같고, 상기 스레드의 개수가 상기 패키징해야 할 플러그인의 개수와 같으면 하나의 스레드가 하나의 패키징해야 할 플러그인을 컴파일링하며, 상기 스레드의 개수가 상기 패키징해야 할 플러그인의 개수보다 적으면 상기 패키징해야 할 플러그인은 상기 패키징해야 할 플러그인의 우선순위에 따라 컴파일링되는
    플러그인화 패키징 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 컴파일링된 공용 기본 메소드를 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하는 단계는:
    환경 정보, 버전 정보 및 컴파일 툴을 획득하는 단계 - 상기 버전 정보는 호스트 프로젝트의 버전 넘버를 포함함 -;
    상기 환경 정보와 버전 정보에 기초하여 적어도 하나의 공용 기본 메소드를 획득하는 단계; 및
    상기 컴파일 툴에 따라 상기 공용 기본 메소드를 컴파일링하여 상기 호스트 프로젝트의 기초 라이브러리를 획득하는 단계를 포함하는
    플러그인화 패키징 방법.
  3. 제2항에 있어서,
    상기 환경 정보와 버전 정보에 기초하여 적어도 하나의 공용 기본 메소드를 획득하는 단계 후에:
    상기 획득한 공용 기본 메소드가 지정된 공용 기본 메소드를 포함하는지 여부를 판단하여, 만약 포함하지 않으면, 상기 환경 정보와 버전 정보를 교체할 것을 제시하여 교체된 환경 정보와 버전 정보를 통해 상기 지정된 공용 기본 메소드를 획득하는 단계를 더 포함하는
    플러그인화 패키징 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 실행 파일 및 상기 호스트 프로젝트의 리소스를 Apk 패키지로 함께 패키징하는 단계 후에:
    상기 Apk 패키지에 사인하여 상기 사인된 Apk 패키지를 획득하는 단계를 더 포함하는
    플러그인화 패키징 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 사용하여 패키징해야 할 플러그인을 컴파일링하는 단계는:
    상기 패키징해야 할 플러그인이 최신 버전의 플러그인인지 여부를 판단하는 단계; 및
    상기 패키징해야 할 플러그인이 최신 버전의 플러그인이면, 상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 사용하여 패키징해야 할 플러그인을 각각 컴파일링하는 단계를 포함하는
    플러그인화 패키징 방법.
  6. 호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하도록 구성된 실행 파일 수집부;
    적어도 하나의 컴파일링된 공용 기본 메소드를 포함하는 호스트 프로젝트의 기초 라이브러리를 획득하도록 구성된 호스트 프로젝트의 기초 라이브러리 수집부;
    상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 사용하여 패키징해야 할 플러그인을 각각 컴파일링하도록 구성된 플러그인 컴파일링부;
    상기 컴파일링된 패키징해야 할 플러그인을 상기 호스트 프로젝트의 리소스에 저장하도록 구성된 컴파일링된 플러그인 저장부; 및
    상기 실행 파일 및 상기 호스트 프로젝트의 리소스를 Apk 패키지로 함께 패키징하도록 구성된 Apk 패키지 생성부를 포함하며,
    상기 스레드의 개수는 상기 패키징해야 할 플러그인의 개수보다 적거나 같고, 상기 플러그인 컴파일링부는, 상기 스레드의 개수가 상기 패키징해야 할 플러그인의 개수와 같으면 하나의 스레드가 하나의 패키징해야 할 플러그인을 컴파일링하고, 상기 스레드의 개수가 상기 패키징해야 할 플러그인의 개수보다 적으면 상기 패키징해야 할 플러그인이 상기 패키징해야 할 플러그인의 우선순위에 따라 컴파일링되도록 구성되는
    플러그인화 패키징 장치.
  7. 제6항에 있어서,
    상기 호스트 프로젝트의 기초 라이브러리 수집부는:
    환경 정보, 버전 정보 및 컴파일 툴을 획득하도록 구성된 환경 정보 수집모듈 - 상기 버전 정보는 호스트 프로젝트의 버전 넘버를 포함함 -;
    상기 환경 정보와 버전 정보에 기초하여 적어도 하나의 공용 기본 메소드를 획득하도록 구성된 공용 기본 메소드 수집모듈; 및
    상기 컴파일 툴에 따라 상기 공용 기본 메소드를 컴파일링하여 상기 호스트 프로젝트의 기초 라이브러리를 획득하도록 구성된 호스트 프로젝트의 기초 라이브러리 생성모듈을 포함하는
    플러그인화 패키징 장치.
  8. 제7항에 있어서,
    상기 획득한 공용 기본 메소드가 지정된 공용 기본 메소드를 포함하는지여부를 판단하여, 만약 포함하지 않으면, 상기 환경 정보와 버전 정보를 교체할 것을 제시하여 교체된 환경 정보와 버전 정보를 통해 상기 지정된 공용 기본 메소드를 획득하도록 구성된 공용 기본 메소드 매칭부를 더 포함하는
    플러그인화 패키징 장치.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    상기 Apk 패키지에 사인하며, 사인된 Apk 패키지를 획득하도록 구성된 Apk 패키지 사인부를 더 포함하는
    플러그인화 패키징 장치.
  10. 터미널로서,
    상기 터미널은 프로세서와 스토리지를 포함하고;
    상기 스토리지는 플러그인화 패키징 시스템을 저장하도록 구성되고 - 상기 플러그인화 패키징 시스템은 상기 프로세서에 의해 실행될 수 있는 적어도 하나의 프로그램 명령어를 적어도 하나 포함함 -;
    상기 프로세서는, 상기 플러그인화 패키징 시스템의 프로그램 명령어를 실행하여:
    호스트 프로젝트의 소스 코드를 컴파일링하여 생성된 실행 파일을 획득하는 단계;
    적어도 하나의 컴파일링된 공용 기본 메소드를 포함하는 상기 호스트 프로젝트의 기초 라이브러리를 획득하는 단계;
    상기 호스트 프로젝트의 기초 라이브러리에 기초하여, 멀티 스레드를 사용하여 패키징해야 할 플러그인을 각각 컴파일링하는 단계;
    컴파일링된 상기 패키징해야 할 플러그인을 상기 호스트 프로젝트의 리소스에 저장하는 단계; 및
    상기 실행 파일 및 상기 호스트 프로젝트의 리소스를 Apk 패키지로 함께 패키징하는 단계를 수행하도록 구성되며,
    상기 스레드의 개수는 상기 패키징해야 할 플러그인의 개수보다 적거나 같고, 상기 스레드의 개수가 상기 패키징해야 할 플러그인의 개수와 같으면 하나의 스레드가 하나의 패키징해야 할 플러그인을 컴파일링하고, 상기 스레드의 개수가 상기 패키징해야 할 플러그인의 개수보다 적으면 상기 패키징해야 할 플러그인이 상기 패키징해야 할 플러그인의 우선순위에 따라 컴파일링되는
    터미널.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
KR1020187015590A 2016-11-14 2017-02-22 플러그인화 패키징 방법, 장치, 터미널 및 저장 매체 KR102096195B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201611005684.XA CN106569869B (zh) 2016-11-14 2016-11-14 插件化打包方法及装置
CN201611005684.X 2016-11-14
PCT/CN2017/074373 WO2018086268A1 (zh) 2016-11-14 2017-02-22 插件化打包方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
KR20180077265A KR20180077265A (ko) 2018-07-06
KR102096195B1 true KR102096195B1 (ko) 2020-04-02

Family

ID=58542323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187015590A KR102096195B1 (ko) 2016-11-14 2017-02-22 플러그인화 패키징 방법, 장치, 터미널 및 저장 매체

Country Status (9)

Country Link
US (1) US10387169B2 (ko)
EP (1) EP3540594A4 (ko)
JP (1) JP6518794B2 (ko)
KR (1) KR102096195B1 (ko)
CN (1) CN106569869B (ko)
AU (1) AU2017258904B2 (ko)
SG (1) SG11201709274UA (ko)
TW (1) TWI679578B (ko)
WO (1) WO2018086268A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463406A (zh) * 2017-08-08 2017-12-12 上海连尚网络科技有限公司 发布移动应用的方法和电子设备
CN107870789B (zh) * 2017-10-18 2021-01-26 福建天泉教育科技有限公司 一种打包插件的方法及终端
CN109918075A (zh) * 2017-12-12 2019-06-21 北京奇虎科技有限公司 利用打包插件的sdk打包方法、打包插件及相应终端
CN109656616A (zh) * 2018-11-26 2019-04-19 平安科技(深圳)有限公司 一种基于事务处理过程优化的打包方法、系统及电子设备
CN111124420B (zh) * 2019-12-19 2023-06-20 北京百度网讯科技有限公司 编译方法、装置、电子设备及可读存储介质
CN111142903B (zh) * 2019-12-23 2023-09-22 杭州安恒信息技术股份有限公司 一种基于文件对比的配置文件交互式更新方法及装置
CN111062638B (zh) * 2019-12-26 2023-09-12 珠海金山数字网络科技有限公司 一种项目资源的处理方法及装置
CN111273955B (zh) * 2020-01-16 2024-01-19 惠州Tcl移动通信有限公司 热修复插件优化方法、装置、存储介质及电子设备
CN111290760B (zh) * 2020-03-03 2023-03-31 北京字节跳动网络技术有限公司 应用程序编译方法、装置、电子设备及存储介质
CN111580834B (zh) * 2020-04-10 2021-10-29 北京城市网邻信息技术有限公司 一种应用安装包的生成方法和装置
CN111610984B (zh) * 2020-05-09 2023-10-27 上海万间信息技术有限公司 基于插件的安卓应用打包分发方法、系统及应用终端
CN112416353A (zh) * 2020-08-10 2021-02-26 上海幻电信息科技有限公司 渠道包打包方法、装置及计算机设备
CN112148303B (zh) * 2020-09-28 2024-05-28 Oppo(重庆)智能科技有限公司 文件生成方法、装置、终端及存储介质
CN112463155A (zh) * 2020-11-24 2021-03-09 歌尔科技有限公司 应用程序包的打包方法、打包终端和计算机可读存储介质
CN112437092A (zh) * 2020-12-03 2021-03-02 许昌学院 分布式系统共享session无侵入方法
CN112631650A (zh) * 2020-12-28 2021-04-09 掌阅科技股份有限公司 插件版本信息校验方法、计算设备及存储介质
CN112685029A (zh) * 2020-12-30 2021-04-20 京东数字科技控股股份有限公司 一种可视化模板的生成方法、装置、设备及存储介质
CN112732314A (zh) * 2020-12-30 2021-04-30 北京一亩田新农网络科技有限公司 基于android插件化差分打包方法、装置、电子设备及计算机可读介质
CN112685048A (zh) * 2021-01-05 2021-04-20 南方电网深圳数字电网研究院有限公司 应用程序打包方法、电子设备及存储介质
CN112783515B (zh) * 2021-02-08 2023-08-25 腾讯科技(深圳)有限公司 插件的控制方法和装置、存储介质
CN113608723A (zh) * 2021-08-05 2021-11-05 上海中通吉网络技术有限公司 自动化构建及发布的小程序工程化方法
CN116149760B (zh) * 2023-04-21 2023-07-14 广州三晶电气股份有限公司 基于Vue框架的前端项目打包方法及装置
CN116974586A (zh) * 2023-09-22 2023-10-31 深圳传趣网络技术有限公司 多渠道应用打包方法、装置、设备及存储介质
CN117435244B (zh) * 2023-12-21 2024-03-19 南京掌控网络科技有限公司 一种前端跨工程公共库系统及其构建方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271406A (ja) * 2002-03-12 2003-09-26 Yamaha Corp データ処理装置およびデータ処理方法ならびにそのプログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071438A1 (en) * 2003-09-30 2005-03-31 Shih-Wei Liao Methods and apparatuses for compiler-creating helper threads for multi-threading
US20070083527A1 (en) * 2005-10-07 2007-04-12 David Wadler Systems and methods for uploading and downloading files in a distributed network
JP5267337B2 (ja) * 2009-06-01 2013-08-21 株式会社リコー プログラム、記憶媒体、情報処理装置、プリンタ装置およびシステム
CN101667135B (zh) * 2009-09-30 2013-07-31 浙江大学 一种交互式并行化编译系统及其编译方法
CN101909082B (zh) * 2010-07-29 2013-03-13 中国运载火箭技术研究院 一种基于模型驱动的网格门户配置系统及配置方法
CN102053836B (zh) * 2010-12-31 2013-04-10 广东欧珀电子工业有限公司 一种Android应用开发的版本管理工具的实现方法
EP2675110B1 (en) * 2011-05-04 2015-09-02 Huawei Device Co., Ltd. Method, system and terminal for system update between mobile communication terminals
TW201342232A (zh) * 2012-04-02 2013-10-16 Miiroad Inc 應用程式包自動產生模組與方法
RU2523113C1 (ru) * 2012-12-25 2014-07-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ целевой установки сконфигурированного программного обеспечения
CN104049986B (zh) * 2013-03-14 2018-12-18 腾讯科技(深圳)有限公司 插件加载方法及装置
KR101489199B1 (ko) 2013-03-29 2015-02-03 주식회사 엘지씨엔에스 컴퓨터에서 실행 가능한 어플리케이션 패키지를 생성하는 방법, 이를 수행하는 컴퓨터 실행 장치 및 이를 저장한 기록 매체
CN104375849B (zh) * 2013-08-15 2019-01-11 腾讯科技(深圳)有限公司 加载内核的方法及装置
CN104461466B (zh) * 2013-09-25 2018-09-21 广州中国科学院软件应用技术研究所 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法
US9361163B2 (en) * 2013-11-28 2016-06-07 Good Technology Corporation Managing containerized applications on a mobile device while bypassing operating system implemented inter process communication
CN104700003B (zh) * 2013-12-04 2019-02-01 腾讯科技(深圳)有限公司 一种文件加壳及脱壳方法、装置及系统
JP6326838B2 (ja) * 2014-02-05 2018-05-23 日本電気株式会社 プログラム処理装置、プログラム処理方法、及びプログラム処理プログラム
CN104932928A (zh) 2014-03-17 2015-09-23 无锡天脉聚源传媒科技有限公司 一种基于java的插件化开发方法及系统
CN104932873B (zh) * 2014-03-19 2018-05-25 联发科技(新加坡)私人有限公司 档案处理方法以及电子装置
CN105204922B (zh) * 2014-06-30 2018-12-07 金电联行(北京)信息技术有限公司 一种数据采集平台客户端采集方法
CN104834515A (zh) * 2015-03-30 2015-08-12 百度在线网络技术(北京)有限公司 目标文件的生成方法
CN105988852A (zh) * 2015-12-25 2016-10-05 武汉安天信息技术有限责任公司 一种Android程序插件化实现方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271406A (ja) * 2002-03-12 2003-09-26 Yamaha Corp データ処理装置およびデータ処理方法ならびにそのプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Nick Babich, "Speed Up Gradle Build in Android Studio"(2016.01.)*
오픈소스 Factory, "안드로이드 Gradle 스크립트로 Signed APK 만들기"(2016.07.)*

Also Published As

Publication number Publication date
CN106569869A (zh) 2017-04-19
TW201818242A (zh) 2018-05-16
EP3540594A4 (en) 2020-10-21
CN106569869B (zh) 2019-04-19
EP3540594A1 (en) 2019-09-18
KR20180077265A (ko) 2018-07-06
SG11201709274UA (en) 2018-06-28
US10387169B2 (en) 2019-08-20
JP6518794B2 (ja) 2019-05-22
AU2017258904B2 (en) 2019-02-14
TWI679578B (zh) 2019-12-11
WO2018086268A1 (zh) 2018-05-17
US20180293085A1 (en) 2018-10-11
JP2019502176A (ja) 2019-01-24
AU2017258904A1 (en) 2018-05-31

Similar Documents

Publication Publication Date Title
KR102096195B1 (ko) 플러그인화 패키징 방법, 장치, 터미널 및 저장 매체
US9990209B2 (en) Digital assistance device for facilitating multi-stage setup
CN108958844B (zh) 一种应用程序的控制方法及终端
US10176327B2 (en) Method and device for preventing application in an operating system from being uninstalled
TW201729089A (zh) 用於可信執行環境的可信應用產生及安裝方法
CN112558946A (zh) 一种生成代码的方法、装置、设备和计算机可读存储介质
CN110659031A (zh) 应用程序的编译方法、装置、电子设备及存储介质
CN106775781B (zh) 减小应用安装包的方法、装置及电子设备
CN109933381A (zh) 一种内核的加载方法及装置
CN105468504A (zh) 程序测试方法及装置
US9411618B2 (en) Metadata-based class loading using a content repository
CN106598662B (zh) 基于android的应用加载方法及装置
CN103885798A (zh) 一种数据处理方法及电子设备
AU2016378425B2 (en) Application program running method and apparatus
CN111488286B (zh) 一种Android模块独立开发的方法及装置
CN104021007A (zh) 一种参数更新的方法及电子设备
CN108009084B (zh) 一种混合移动应用的测试方法、装置及系统
CN115951916A (zh) 一种组件的处理方法、装置、电子设备及存储介质
CN106778270B (zh) 一种恶意应用程序的检测方法及系统
CN113448585B (zh) 一种线程池的编译方法、装置、电子设备和存储介质
WO2019157891A1 (zh) 应用安装方法、应用安装包的生成方法
CN106598974B (zh) 一种安卓系统应用程序的数据文件生成及调用方法和装置
KR101506656B1 (ko) 애플리케이션 품질 관리를 위한 시스템 및 그 방법
CN106528057B (zh) 实现运行环境适配的方法和装置
CN111124914B (zh) 自动化测试预编译方法、终端及计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant