CN111399864A - 一种安卓系统应用程序基础包生成方法以及生成装置 - Google Patents

一种安卓系统应用程序基础包生成方法以及生成装置 Download PDF

Info

Publication number
CN111399864A
CN111399864A CN202010183094.6A CN202010183094A CN111399864A CN 111399864 A CN111399864 A CN 111399864A CN 202010183094 A CN202010183094 A CN 202010183094A CN 111399864 A CN111399864 A CN 111399864A
Authority
CN
China
Prior art keywords
target
dimension
directory
entry
configuration file
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
CN202010183094.6A
Other languages
English (en)
Other versions
CN111399864B (zh
Inventor
曾鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information Technology Co Ltd
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 Beijing 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN202010183094.6A priority Critical patent/CN111399864B/zh
Publication of CN111399864A publication Critical patent/CN111399864A/zh
Application granted granted Critical
Publication of CN111399864B publication Critical patent/CN111399864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请提供一种安卓系统应用程序基础包生成方法以及生成装置,判断目标代码工程所包含的多个目录中是否存在目标入口目录;在存在目标入口目录的情况下,清空目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor;利用目标代码工程调用第一维度flavor,生成与空值对应的目标APP基础包,以使得根据目标APP基础包分析应用程序的Android库项目的二进制归档文件依赖体积。这样,可以清空目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor。进而可以利用目标代码工程调用第一维度flavor,生成与空值对应的目标APP基础包,不会产出多个不同的安装包。方便根据目标APP基础包分析应用程序的Android库项目的二进制归档文件依赖体积。

Description

一种安卓系统应用程序基础包生成方法以及生成装置
技术领域
本申请涉及通信技术领域,尤其涉及一种安卓系统应用程序基础包生成方法以及生成装置。
背景技术
在做应用(Application,APP)的Android库项目的二进制归档文件(AndroidArchive,AAR)依赖体积分析计算时,要求通过代码工程打包的结果是稳定的。打包的结果稳定是指代码工程的一个入口目录只允许输出对应的一个APP安装包。
然而,Android中可以通过脚本配置入口目录中的flavor属性(例如,配置不同的flavor的参数值)打包出不同功能的安装包。在实际开发过程中,为了满足对不同功能的安装包的需求,代码工程的一个入口目录中配置的flavor的参数值通常会不止一个,此时该入口目录就会产出多个不同的安装包,导致无法进行AAR依赖体积分析。
发明内容
本申请提供了一种安卓系统应用程序基础包生成方法以及生成装置,以解决现有技术中,代码工程的一个入口目录中配置的flavor的参数值通常会不止一个,此时该入口目录就会产出多个不同的安装包,导致无法进行AAR依赖体积分析的问题。
第一方面,本发明提供了一种安卓系统应用程序基础包生成方法,包括:
判断目标代码工程所包含的多个目录中是否存在目标入口目录;
在存在所述目标入口目录的情况下,清空所述目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor,其中,所述目标入口目录内包含多个不同维度的flavor,所述第一维度flavor为所述多个不同维度的flavor中的一个flavor,且所述第一维度flavor的优先级高于其他维度flavor的优先级,所述其他维度flavor为所述多个不同维度的flavor中除所述第一维度flavor之外的flavor;
利用所述目标代码工程调用所述第一维度flavor,生成与所述空值对应的目标APP基础包,以使得根据所述目标APP基础包分析所述应用程序的Android库项目的二进制归档文件依赖体积。
进一步的,所述判断目标代码工程所包含的多个目录中是否存在目标入口目录,包括:
判断所述目标代码工程所包含的多个目录中是否存在含有目标配置文件,且所述目标配置文件中含有入口标识的目录;
在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中,含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录为所述目标入口目录。
进一步的,所述方法还包括:
在所述目标代码工程所包含的多个目录中不存在含有所述目标配置文件的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
进一步的,所述方法还包括:
在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中未含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
第二方面,本发明提供了一种安卓系统应用程序基础包生成装置,包括:
判断模块,用于判断目标代码工程所包含的多个目录中是否存在目标入口目录;
清空模块,用于在存在所述目标入口目录的情况下,清空所述目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor,其中,所述目标入口目录内包含多个不同维度的flavor,所述第一维度flavor为所述多个不同维度的flavor中的一个flavor,且所述第一维度flavor的优先级高于其他维度flavor的优先级,所述其他维度flavor为所述多个不同维度的flavor中除所述第一维度flavor之外的flavor;
生成模块,用于利用所述目标代码工程调用所述第一维度flavor,生成与所述空值对应的目标APP基础包,以使得根据所述目标APP基础包分析所述应用程序的Android库项目的二进制归档文件依赖体积。
进一步的,所述判断模块包括:
判断子模块,用于判断所述目标代码工程所包含的多个目录中是否存在含有目标配置文件,且所述目标配置文件中含有入口标识的目录;
第一确定子模块,用于在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中,含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录为所述目标入口目录。
进一步的,所述应用APP基础包生成装置还包括:
第二确定子模块,用于在所述目标代码工程所包含的多个目录中不存在含有所述目标配置文件的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
进一步的,所述应用APP基础包生成装置还包括:
第三确定子模块,用于在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中未含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
第三方面,本发明还提供了一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现上述安卓系统应用程序基础包生成方法。
第四方面,本发明还提供了一种可读存储介质,包括:所述可读存储介质中存储有计算机程序,当安卓系统应用程序基础包生成装置的至少一个处理器执行所述计算机程序时,安卓系统应用程序基础包生成装置执行上述安卓系统应用程序基础包生成方法。
由以上技术方案可知,本发明实施例提供的一种安卓系统应用程序基础包生成方法以及生成装置,判断目标代码工程所包含的多个目录中是否存在目标入口目录;在存在所述目标入口目录的情况下,清空所述目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor,其中,所述目标入口目录内包含多个不同维度的flavor,所述第一维度flavor为所述多个不同维度的flavor中的一个flavor,且所述第一维度flavor的优先级高于其他维度flavor的优先级,所述其他维度flavor为所述多个不同维度的flavor中除所述第一维度flavor之外的flavor;利用所述目标代码工程调用所述第一维度flavor,生成与所述空值对应的目标APP基础包,以使得根据所述目标APP基础包分析所述应用程序的Android库项目的二进制归档文件依赖体积。这样,在目标代码工程所包含的多个目录中存在目标入口目录的情况下,可以清空目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor。进而可以利用目标代码工程调用第一维度flavor,生成与空值对应的目标APP基础包,不会产出多个不同的安装包。方便根据目标APP基础包分析应用程序的Android库项目的二进制归档文件依赖体积。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种安卓系统应用程序基础包生成方法的流程图;
图2为本发明提供的另一种安卓系统应用程序基础包生成方法的流程图;
图3为本发明提供的一种安卓系统应用程序基础包生成装置的结构图;
图4为本发明提供的另一种安卓系统应用程序基础包生成装置的结构图;
图5为本发明提供的另一种安卓系统应用程序基础包生成装置的结构图;
图6为本发明提供的另一种安卓系统应用程序基础包生成装置的结构图;
图7为本发明提供的电子设备的硬件结构示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
参见图1,图1是本发明提供的一种安卓系统应用程序基础包生成方法的流程图。如图1所示,包括以下步骤:
步骤101、判断目标代码工程所包含的多个目录中是否存在目标入口目录。
在步骤101中,可以判断目标代码工程所包含的多个目录中是否存在目标入口目录。例如,可以遍历目标代码工程所包含的多个目录,判断目标代码工程所包含的多个目录中是否存在含有目标配置文件,且目标配置文件中含有入口标识的目录。该目标配置文件可以为build.gradle配置文件,该入口标识可以为“com.android.application”。
在目标代码工程所包含的多个目录中存在含有目标配置文件,即含有build.gradle配置文件,且该目标配置文件中含有入口标识,即含有“com.android.application”的目录的情况下,可以确定目标代码工程所包含的多个目录中,含有目标配置文件,且该目标配置文件中含有入口标识的目录为上述目标入口目录。
步骤102、在存在所述目标入口目录的情况下,清空所述目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor,其中,所述目标入口目录内包含多个不同维度的flavor,所述第一维度flavor为所述多个不同维度的flavor中的一个flavor,且所述第一维度flavor的优先级高于其他维度flavor的优先级,所述其他维度flavor为所述多个不同维度的flavor中除所述第一维度flavor之外的flavor。
在步骤102中,在存在目标入口目录的情况下,可以清空目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor。其中,目标入口目录内包含多个不同维度的flavor,第一维度flavor为多个不同维度的flavor中的一个flavor,且第一维度flavor的优先级高于其他维度flavor的优先级,其他维度flavor为多个不同维度的flavor中除第一维度flavor之外的flavor。
例如,目标入口目录中的build.gradle配置文件中可以包含3个不同维度的flavor,分别为第一维度flavor、第二维度flavor以及第三维度flavor。且第一维度flavor的优先级高于其他维度flavor的优先级,而其他维度flavor的优先级可以是相同的。例如,第一维度flavor的优先级高于第二维度flavor的优先级以及高于第三维度flavor的优先级,第二维度flavor的优先级等于第三维度flavor的优先级,即第二维度flavor和第三维度flavor是平级的。
每个维度flavor下可以包含至少一个参数值。例如,第一维度flavor下可以包含两个参数值A和B;第二维度flavor下可以包含四个参数值C、D、E和F;第三维度flavor下可以包含三个参数值G、H和I。这三个维度flavor下的参数值可以生成2×4×3=24个不同功能的安装包。
可以清空目标入口目录中的目标配置文件中的第一维度flavor下的内容,也即可以清空目标入口目录中的目标配置文件中的第一维度flavor下的两个参数值A和B,获得参数值为空值的第一维度flavor。
步骤103、利用所述目标代码工程调用所述第一维度flavor,生成与所述空值对应的目标APP基础包,以使得根据所述目标APP基础包分析所述应用程序的Android库项目的二进制归档文件依赖体积。
在步骤103中,可以利用目标代码工程调用第一维度flavor,生成与空值对应的目标APP基础包,以使得根据目标APP基础包分析应用程序的Android库项目的二进制归档文件依赖体积。且该目标APP基础包的名称可以为APP.APK。
需要说明的是,还可以通过随机保留第一维度flavor下所包含的多个参数值中的一个参数值;并且针对其他维度flavor中的每个维度flavor,可以随机保留该维度flavor下所包含的多个参数值中的一个参数值,或者,直接清空该维度flavor下的参数值的方式,来达到只生成一个APP基础包的目的。
例如,如前所述,第一维度flavor下可以包含两个参数值A和B;第二维度flavor下可以包含四个参数值C、D、E和F;第三维度flavor下可以包含三个参数值G、H和I。
可以随机保留第一维度flavor下所包含的两个参数值中的一个参数值A;可以随机保留第二维度flavor下所包含的四个参数值中的一个参数值D;可以随机保留第三维度flavor下所包含的三个参数值中的一个参数值I。此时根据这三个维度flavor下的参数值可以生成1×1×1=1个APP基础包。且该APP基础包的名称可以为APP.ADI.APK。
需要说明的是,对于除了第一维度flavor之外的其他维度flavor,如果其他维度flavor下的内容被清空,即如果其他维度flavor下的参数值被设置为空值,则在生成安装包时,该参数值被设置为空值的其他维度flavor可以直接忽略掉,即可以直接不考虑该参数值被设置为空值的其他维度flavor。
例如,可以随机保留第一维度flavor下所包含的两个参数值中的一个参数值A;可以随机保留第二维度flavor下所包含的四个参数值中的一个参数值C;可以清空第三维度flavor下所包含的三个参数值,即此时第三维度flavor下的参数值被设置为空值。在生成安装包时,该参数值被设置为空值的第三维度flavor可以直接忽略掉。即此时根据第一维度flavor下的一个参数值A以及第二维度flavor下的一个参数值C,可以生成1×1=1个APP基础包。且该APP基础包的名称可以为APP.AC.APK。
或者,可以随机保留第一维度flavor下所包含的两个参数值中的一个参数值B;可以清空第二维度flavor下所包含的四个参数值,即此时第二维度flavor下的参数值被设置为空值;可以随机保留第三维度flavor下所包含的三个参数值中的一个参数值H。在生成安装包时,参数值被设置为空值的第二维度flavor可以直接忽略掉。即此时根据第一维度flavor下的一个参数值B以及第三维度flavor下的一个参数值H,可以生成1×1=1个APP基础包。且该APP基础包的名称可以为APP.BH.APK。
或者,可以随机保留第一维度flavor下所包含的两个参数值中的一个参数值B;可以清空第二维度flavor下所包含的四个参数值,即此时第二维度flavor下的参数值被设置为空值;可以清空第三维度flavor下所包含的三个参数值,即此时第三维度flavor下的参数值被设置为空值。在生成安装包时,参数值被设置为空值的第二维度flavor以及参数值被设置为空值的第三维度flavor可以直接忽略掉。即此时根据第一维度flavor下的一个参数值B,可以生成1个APP基础包。且该APP基础包的名称可以为APP.B.APK。
需要说明的是,现有技术中,为了满足对不同功能的安装包的需求,代码工程的一个入口目录中配置的flavor的参数值通常会不止一个,此时该入口目录就会产出多个不同的安装包,导致无法进行AAR依赖体积分析。
而在本申请中,在目标代码工程所包含的多个目录中存在目标入口目录的情况下,可以清空目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor。进而可以利用目标代码工程调用第一维度flavor,生成与空值对应的目标APP基础包,不会产出多个不同的安装包。方便根据目标APP基础包分析应用程序的Android库项目的二进制归档文件依赖体积。
由以上技术方案可知,本发明实施例提供的一种安卓系统应用程序基础包生成方法,判断目标代码工程所包含的多个目录中是否存在目标入口目录;在存在所述目标入口目录的情况下,清空所述目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor,其中,所述目标入口目录内包含多个不同维度的flavor,所述第一维度flavor为所述多个不同维度的flavor中的一个flavor,且所述第一维度flavor的优先级高于其他维度flavor的优先级,所述其他维度flavor为所述多个不同维度的flavor中除所述第一维度flavor之外的flavor;利用所述目标代码工程调用所述第一维度flavor,生成与所述空值对应的目标APP基础包,以使得根据所述目标APP基础包分析所述应用程序的Android库项目的二进制归档文件依赖体积。这样,在目标代码工程所包含的多个目录中存在目标入口目录的情况下,可以清空目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor。进而可以利用目标代码工程调用第一维度flavor,生成与空值对应的目标APP基础包,不会产出多个不同的安装包。方便根据目标APP基础包分析应用程序的Android库项目的二进制归档文件依赖体积。
参见图2,图2是本发明提供的另一种安卓系统应用程序基础包生成方法的流程图。如图2所示,包括以下步骤:
步骤201、判断所述目标代码工程所包含的多个目录中是否存在含有目标配置文件,且所述目标配置文件中含有入口标识的目录。
在步骤201中,可以遍历目标代码工程所包含的多个目录,判断目标代码工程所包含的多个目录中是否存在含有目标配置文件,且目标配置文件中含有入口标识的目录。该目标配置文件可以为build.gradle配置文件,该入口标识可以为“com.android.application”。
步骤202、在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中,含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录为所述目标入口目录。
在步骤202中,在目标代码工程所包含的多个目录中存在含有目标配置文件,即含有build.gradle配置文件,且该目标配置文件中含有入口标识,即含有“com.android.application”的目录的情况下,可以确定目标代码工程所包含的多个目录中,含有目标配置文件,且该目标配置文件中含有入口标识的目录为上述目标入口目录。这样,可以实现自动寻路代码工程的入口目录,实现过程简单,方便快捷。
可选的,所述方法还包括:
在所述目标代码工程所包含的多个目录中不存在含有所述目标配置文件的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
在目标代码工程所包含的多个目录中不存在含有目标配置文件的目录的情况下,也即在目标代码工程所包含的多个目录中不存在含有build.gradle配置文件的目录的情况下,可以确定目标代码工程所包含的多个目录中不存在目标入口目录。
可选的,所述方法还包括:
在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中未含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
在目标代码工程所包含的多个目录中存在含有目标配置文件,且目标配置文件中未含有入口标识的目录的情况下,即在目标代码工程所包含的多个目录中存在含有build.gradle配置文件,且该build.gradle配置文件中未含有入口标识“com.android.application”的目录的情况下,可以确定目标代码工程所包含的多个目录中不存在目标入口目录。
步骤203、在存在所述目标入口目录的情况下,清空所述目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor,其中,所述目标入口目录内包含多个不同维度的flavor,所述第一维度flavor为所述多个不同维度的flavor中的一个flavor,且所述第一维度flavor的优先级高于其他维度flavor的优先级,所述其他维度flavor为所述多个不同维度的flavor中除所述第一维度flavor之外的flavor。
在步骤203中,在存在目标入口目录的情况下,可以清空目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor。其中,目标入口目录内包含多个不同维度的flavor,第一维度flavor为多个不同维度的flavor中的一个flavor,且第一维度flavor的优先级高于其他维度flavor的优先级,其他维度flavor为多个不同维度的flavor中除第一维度flavor之外的flavor。
例如,目标入口目录中的build.gradle配置文件中可以包含3个不同维度的flavor,分别为第一维度flavor、第二维度flavor以及第三维度flavor。且第一维度flavor的优先级高于其他维度flavor的优先级,而其他维度flavor的优先级可以是相同的。例如,第一维度flavor的优先级高于第二维度flavor的优先级以及高于第三维度flavor的优先级,第二维度flavor的优先级等于第三维度flavor的优先级,即第二维度flavor和第三维度flavor是平级的。
每个维度flavor下可以包含至少一个参数值。例如,第一维度flavor下可以包含两个参数值A和B;第二维度flavor下可以包含四个参数值C、D、E和F;第三维度flavor下可以包含三个参数值G、H和I。这三个维度flavor下的参数值可以生成2×4×3=24个不同功能的安装包。
可以清空目标入口目录中的目标配置文件中的第一维度flavor下的内容,也即可以清空目标入口目录中的目标配置文件中的第一维度flavor下的两个参数值A和B,获得参数值为空值的第一维度flavor。
步骤204、利用所述目标代码工程调用所述第一维度flavor,生成与所述空值对应的目标APP基础包,以使得根据所述目标APP基础包分析所述应用程序的Android库项目的二进制归档文件依赖体积。
在步骤204中,可以利用目标代码工程调用第一维度flavor,生成与空值对应的目标APP基础包,以使得根据目标APP基础包分析应用程序的Android库项目的二进制归档文件依赖体积。且该目标APP基础包的名称可以为APP.APK。
需要说明的是,还可以通过随机保留第一维度flavor下所包含的多个参数值中的一个参数值;并且针对其他维度flavor中的每个维度flavor,可以随机保留该维度flavor下所包含的多个参数值中的一个参数值,或者,直接清空该维度flavor下的参数值的方式,来达到只生成一个APP基础包的目的。
例如,如前所述,第一维度flavor下可以包含两个参数值A和B;第二维度flavor下可以包含四个参数值C、D、E和F;第三维度flavor下可以包含三个参数值G、H和I。
可以随机保留第一维度flavor下所包含的两个参数值中的一个参数值A;可以随机保留第二维度flavor下所包含的四个参数值中的一个参数值D;可以随机保留第三维度flavor下所包含的三个参数值中的一个参数值I。此时根据这三个维度flavor下的参数值可以生成1×1×1=1个APP基础包。且该APP基础包的名称可以为APP.ADI.APK。
需要说明的是,对于除了第一维度flavor之外的其他维度flavor,如果其他维度flavor下的内容被清空,即如果其他维度flavor下的参数值被设置为空值,则在生成安装包时,该参数值被设置为空值的其他维度flavor可以直接忽略掉,即可以直接不考虑该参数值被设置为空值的其他维度flavor。
例如,可以随机保留第一维度flavor下所包含的两个参数值中的一个参数值A;可以随机保留第二维度flavor下所包含的四个参数值中的一个参数值C;可以清空第三维度flavor下所包含的三个参数值,即此时第三维度flavor下的参数值被设置为空值。在生成安装包时,该参数值被设置为空值的第三维度flavor可以直接忽略掉。即此时根据第一维度flavor下的一个参数值A以及第二维度flavor下的一个参数值C,可以生成1×1=1个APP基础包。且该APP基础包的名称可以为APP.AC.APK。
或者,可以随机保留第一维度flavor下所包含的两个参数值中的一个参数值B;可以清空第二维度flavor下所包含的四个参数值,即此时第二维度flavor下的参数值被设置为空值;可以随机保留第三维度flavor下所包含的三个参数值中的一个参数值H。在生成安装包时,参数值被设置为空值的第二维度flavor可以直接忽略掉。即此时根据第一维度flavor下的一个参数值B以及第三维度flavor下的一个参数值H,可以生成1×1=1个APP基础包。且该APP基础包的名称可以为APP.BH.APK。
或者,可以随机保留第一维度flavor下所包含的两个参数值中的一个参数值B;可以清空第二维度flavor下所包含的四个参数值,即此时第二维度flavor下的参数值被设置为空值;可以清空第三维度flavor下所包含的三个参数值,即此时第三维度flavor下的参数值被设置为空值。在生成安装包时,参数值被设置为空值的第二维度flavor以及参数值被设置为空值的第三维度flavor可以直接忽略掉。即此时根据第一维度flavor下的一个参数值B,可以生成1个APP基础包。且该APP基础包的名称可以为APP.B.APK。
由以上技术方案可知,本发明实施例提供的一种安卓系统应用程序基础包生成方法,可以判断目标代码工程所包含的多个目录中是否存在含有目标配置文件,且目标配置文件中含有入口标识的目录。在目标代码工程所包含的多个目录中,存在含有目标配置文件,且该目标配置文件中含有入口标识的目录的情况下,可以确定目标代码工程所包含的多个目录中,含有目标配置文件,且该目标配置文件中含有入口标识的目录为目标入口目录。可以实现自动寻路代码工程的入口目录,实现过程简单,方便快捷。在目标代码工程所包含的多个目录中存在目标入口目录的情况下,可以清空目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor。进而可以利用目标代码工程调用第一维度flavor,生成与空值对应的目标APP基础包,不会产出多个不同的安装包。方便根据目标APP基础包分析应用程序的Android库项目的二进制归档文件依赖体积。
参见图3,图3是本发明提供的一种安卓系统应用程序基础包生成装置的结构图。如图3所示,安卓系统应用程序基础包生成装置300包括判断模块301、清空模块302和生成模块303,其中:
判断模块301,用于判断目标代码工程所包含的多个目录中是否存在目标入口目录;
清空模块302,用于在存在所述目标入口目录的情况下,清空所述目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor,其中,所述目标入口目录内包含多个不同维度的flavor,所述第一维度flavor为所述多个不同维度的flavor中的一个flavor,且所述第一维度flavor的优先级高于其他维度flavor的优先级,所述其他维度flavor为所述多个不同维度的flavor中除所述第一维度flavor之外的flavor;
生成模块303,用于利用所述目标代码工程调用所述第一维度flavor,生成与所述空值对应的目标APP基础包,以使得根据所述目标APP基础包分析所述应用程序的Android库项目的二进制归档文件依赖体积。
可选的,如图4所示,所述判断模块301包括:
判断子模块3011,用于判断所述目标代码工程所包含的多个目录中是否存在含有目标配置文件,且所述目标配置文件中含有入口标识的目录;
第一确定子模块3012,用于在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中,含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录为所述目标入口目录。
可选的,如图5所示,所述应用APP基础包生成装置还包括:
第二确定子模块3013,用于在所述目标代码工程所包含的多个目录中不存在含有所述目标配置文件的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
可选的,如图6所示,所述应用APP基础包生成装置还包括:
第三确定子模块3014,用于在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中未含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
安卓系统应用程序基础包生成装置300能够实现图1-图2的方法实施例中安卓系统应用程序基础包生成装置实现的各个过程,为避免重复,这里不再赘述。且安卓系统应用程序基础包生成装置300可以实现在目标代码工程所包含的多个目录中存在目标入口目录的情况下,可以清空目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor。进而可以利用目标代码工程调用第一维度flavor,生成与空值对应的目标APP基础包,不会产出多个不同的安装包。方便根据目标APP基础包分析应用程序的Android库项目的二进制归档文件依赖体积。
图7为本发明实施例提供的电子设备的硬件结构示意图。如图7所示,该电子设备,包括:
存储器701,用于存储程序指令;
处理器702,用于调用并执行所述存储器中的程序指令,以实现上述实施例中所述安卓系统应用程序基础包生成方法。具体可以参见前述实施例中的相关描述。
本实施例中,处理器702和存储器701可通过总线或其他方式连接。处理器可以是通用处理器,例如中央处理器、数字信号处理器、专用集成电路,或者被配置成实施本发明实施例的一个或多个集成电路。存储器可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘。
本发明实施例还提供了一种可读存储介质,包括:可读存储介质中存储有计算机程序,当安卓系统应用程序基础包生成装置的至少一个处理器执行计算机程序时,安卓系统应用程序基础包生成装置执行上述实施例中的安卓系统应用程序基础包生成方法。
所述的可读存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于安卓系统应用程序基础包生成装置、电子设备及可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。

Claims (10)

1.一种安卓系统应用程序基础包生成方法,其特征在于,包括:
判断目标代码工程所包含的多个目录中是否存在目标入口目录;
在存在所述目标入口目录的情况下,清空所述目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor,其中,所述目标入口目录内包含多个不同维度的flavor,所述第一维度flavor为所述多个不同维度的flavor中的一个flavor,且所述第一维度flavor的优先级高于其他维度flavor的优先级,所述其他维度flavor为所述多个不同维度的flavor中除所述第一维度flavor之外的flavor;
利用所述目标代码工程调用所述第一维度flavor,生成与所述空值对应的目标APP基础包,以使得根据所述目标APP基础包分析所述应用程序的Android库项目的二进制归档文件依赖体积。
2.如权利要求1所述的方法,其特征在于,所述判断目标代码工程所包含的多个目录中是否存在目标入口目录,包括:
判断所述目标代码工程所包含的多个目录中是否存在含有目标配置文件,且所述目标配置文件中含有入口标识的目录;
在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中,含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录为所述目标入口目录。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在所述目标代码工程所包含的多个目录中不存在含有所述目标配置文件的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中未含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
5.一种安卓系统应用程序基础包生成装置,其特征在于,包括:
判断模块,用于判断目标代码工程所包含的多个目录中是否存在目标入口目录;
清空模块,用于在存在所述目标入口目录的情况下,清空所述目标入口目录中第一维度flavor下的内容,获得参数值为空值的第一维度flavor,其中,所述目标入口目录内包含多个不同维度的flavor,所述第一维度flavor为所述多个不同维度的flavor中的一个flavor,且所述第一维度flavor的优先级高于其他维度flavor的优先级,所述其他维度flavor为所述多个不同维度的flavor中除所述第一维度flavor之外的flavor;
生成模块,用于利用所述目标代码工程调用所述第一维度flavor,生成与所述空值对应的目标APP基础包,以使得根据所述目标APP基础包分析所述应用程序的Android库项目的二进制归档文件依赖体积。
6.如权利要求5所述的安卓系统应用程序基础包生成装置,其特征在于,所述判断模块包括:
判断子模块,用于判断所述目标代码工程所包含的多个目录中是否存在含有目标配置文件,且所述目标配置文件中含有入口标识的目录;
第一确定子模块,用于在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中,含有所述目标配置文件,且所述目标配置文件中含有所述入口标识的目录为所述目标入口目录。
7.如权利要求6所述的安卓系统应用程序基础包生成装置,其特征在于,所述安卓系统应用程序基础包生成装置还包括:
第二确定子模块,用于在所述目标代码工程所包含的多个目录中不存在含有所述目标配置文件的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
8.如权利要求6所述的安卓系统应用程序基础包生成装置,其特征在于,所述安卓系统应用程序基础包生成装置还包括:
第三确定子模块,用于在所述目标代码工程所包含的多个目录中存在含有所述目标配置文件,且所述目标配置文件中未含有所述入口标识的目录的情况下,确定所述目标代码工程所包含的多个目录中不存在所述目标入口目录。
9.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现权利要求1~4任一项所述的安卓系统应用程序基础包生成方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,当安卓系统应用程序基础包生成装置的至少一个处理器执行所述计算机程序时,安卓系统应用程序基础包生成装置执行权利要求1~4任一项所述的安卓系统应用程序基础包生成方法。
CN202010183094.6A 2020-03-16 2020-03-16 一种安卓系统应用程序基础包生成方法以及生成装置 Active CN111399864B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010183094.6A CN111399864B (zh) 2020-03-16 2020-03-16 一种安卓系统应用程序基础包生成方法以及生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010183094.6A CN111399864B (zh) 2020-03-16 2020-03-16 一种安卓系统应用程序基础包生成方法以及生成装置

Publications (2)

Publication Number Publication Date
CN111399864A true CN111399864A (zh) 2020-07-10
CN111399864B CN111399864B (zh) 2023-07-07

Family

ID=71434960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010183094.6A Active CN111399864B (zh) 2020-03-16 2020-03-16 一种安卓系统应用程序基础包生成方法以及生成装置

Country Status (1)

Country Link
CN (1) CN111399864B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416425A (zh) * 2020-11-20 2021-02-26 微医云(杭州)控股有限公司 App构建方法、装置、计算机设备及存储介质

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502715A (zh) * 2016-09-19 2017-03-15 乐视控股(北京)有限公司 一种应用程序多渠道配置方法及装置
CN106933609A (zh) * 2015-12-29 2017-07-07 北京五八信息技术有限公司 Android应用程序安装包的生成方法及装置
WO2017185606A1 (zh) * 2016-04-29 2017-11-02 乐视控股(北京)有限公司 基于overlay机制的APK开发方法及系统
CN107943494A (zh) * 2017-08-04 2018-04-20 上海壹账通金融科技有限公司 多渠道应用分发方法及移动终端
CN108279912A (zh) * 2018-01-23 2018-07-13 北京粉笔蓝天科技有限公司 安卓多自定义属性安装包自动生成方法、系统及存储介质
CN108491216A (zh) * 2018-03-05 2018-09-04 北京指掌易科技有限公司 一种Android系统无感知应用安装升级的方法
CN108733376A (zh) * 2018-04-27 2018-11-02 链家网(北京)科技有限公司 组件化下利用一套源码编译多个Android APP的方法及装置
US20190012158A1 (en) * 2009-08-24 2019-01-10 Embarcadero Technologies, Inc. Creating a software product from a software application
CN109542461A (zh) * 2018-10-16 2019-03-29 深圳壹账通智能科技有限公司 应用安装包的发布方法、终端设备及介质
CN109542459A (zh) * 2018-09-29 2019-03-29 中国平安人寿保险股份有限公司 应用程序打包方法及装置、计算机装置及计算机存储介质
CN109885324A (zh) * 2019-02-25 2019-06-14 北京达佳互联信息技术有限公司 一种应用程序安装包的处理方法、装置、终端及存储介质
CN110058850A (zh) * 2019-04-10 2019-07-26 腾讯音乐娱乐科技(深圳)有限公司 一种应用的开发方法、装置以及存储介质
CN110321134A (zh) * 2018-03-30 2019-10-11 深圳Tcl新技术有限公司 一种生成应用安装包的方法、存储介质以应用服务器
CN110457045A (zh) * 2019-08-16 2019-11-15 百度在线网络技术(北京)有限公司 组件化合并编译方法、装置、设备和存储介质
CN110569063A (zh) * 2019-08-30 2019-12-13 五八有限公司 一种子应用程序app生成方法和生成装置

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190012158A1 (en) * 2009-08-24 2019-01-10 Embarcadero Technologies, Inc. Creating a software product from a software application
CN106933609A (zh) * 2015-12-29 2017-07-07 北京五八信息技术有限公司 Android应用程序安装包的生成方法及装置
WO2017185606A1 (zh) * 2016-04-29 2017-11-02 乐视控股(北京)有限公司 基于overlay机制的APK开发方法及系统
CN106502715A (zh) * 2016-09-19 2017-03-15 乐视控股(北京)有限公司 一种应用程序多渠道配置方法及装置
CN107943494A (zh) * 2017-08-04 2018-04-20 上海壹账通金融科技有限公司 多渠道应用分发方法及移动终端
CN108279912A (zh) * 2018-01-23 2018-07-13 北京粉笔蓝天科技有限公司 安卓多自定义属性安装包自动生成方法、系统及存储介质
CN108491216A (zh) * 2018-03-05 2018-09-04 北京指掌易科技有限公司 一种Android系统无感知应用安装升级的方法
CN110321134A (zh) * 2018-03-30 2019-10-11 深圳Tcl新技术有限公司 一种生成应用安装包的方法、存储介质以应用服务器
CN108733376A (zh) * 2018-04-27 2018-11-02 链家网(北京)科技有限公司 组件化下利用一套源码编译多个Android APP的方法及装置
CN109542459A (zh) * 2018-09-29 2019-03-29 中国平安人寿保险股份有限公司 应用程序打包方法及装置、计算机装置及计算机存储介质
CN109542461A (zh) * 2018-10-16 2019-03-29 深圳壹账通智能科技有限公司 应用安装包的发布方法、终端设备及介质
CN109885324A (zh) * 2019-02-25 2019-06-14 北京达佳互联信息技术有限公司 一种应用程序安装包的处理方法、装置、终端及存储介质
CN110058850A (zh) * 2019-04-10 2019-07-26 腾讯音乐娱乐科技(深圳)有限公司 一种应用的开发方法、装置以及存储介质
CN110457045A (zh) * 2019-08-16 2019-11-15 百度在线网络技术(北京)有限公司 组件化合并编译方法、装置、设备和存储介质
CN110569063A (zh) * 2019-08-30 2019-12-13 五八有限公司 一种子应用程序app生成方法和生成装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
UWE BREITENBUCHER等: "Combining declarative and imperative cloud application provisioning based on TOSCA", 《2014 IEEE INTERNATIONAL CONFERENCE ON CLOUD ENGINEERING》 *
UWE BREITENBUCHER等: "Combining declarative and imperative cloud application provisioning based on TOSCA", 《2014 IEEE INTERNATIONAL CONFERENCE ON CLOUD ENGINEERING》, 22 September 2014 (2014-09-22), pages 87 - 96 *
华镕: "如何实现自动化系统应用程序的自动生成", 《自动化信息》 *
华镕: "如何实现自动化系统应用程序的自动生成", 《自动化信息》, 31 December 2007 (2007-12-31), pages 88 - 92 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416425A (zh) * 2020-11-20 2021-02-26 微医云(杭州)控股有限公司 App构建方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111399864B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
US20190324772A1 (en) Method and device for processing smart contracts
CN111343181B (zh) 报文的处理方法,系统以及数据池和计算机可读存储介质
CN109933350B (zh) 在应用中嵌入代码的方法、装置及电子设备
CN112631684B (zh) 可执行程序的运行方法、装置、电子设备及计算机存储介质
CN112631649A (zh) 智能合约管理方法、装置、终端设备及介质
CN111382084A (zh) 测试方法、装置和电子设备
CN113050984A (zh) 资源调取方法、装置、电子设备及存储介质
CN113885935A (zh) 资源打包方法、装置、电子设备及计算机可读存储介质
CN111338716A (zh) 基于规则引擎的数据处理方法、装置及终端设备
CN111949513A (zh) 一种配置文件加载方法、装置、电子设备和可读存储装置
CN111399864A (zh) 一种安卓系统应用程序基础包生成方法以及生成装置
CN114895935A (zh) 刷写车辆ecu的方法、装置、电子设备及存储介质
US9146753B2 (en) Loading program modules
CN111597020A (zh) 一种应用程序编程接口api调试方法以及调试终端
CN112738181B (zh) 集群外部ip接入的方法、装置及服务器
CN111309402A (zh) 数据监测及针对应用程序的处理方法、装置及设备
CN112114870A (zh) 一种打包代码的方法、装置、终端设备和存储介质
CN113377376A (zh) 数据包生成方法、数据包生成装置、电子设备及存储介质
CN111275553A (zh) 一种区块链的数据存储方法及区块链系统
CN115269066B (zh) 接口调用方法、设备及存储介质
CN111427856B (zh) 一种Java数据的处理方法和装置
CN111338651B (zh) 下载资源提供方法及装置、资源下载方法及装置
CN114265767A (zh) 测试用例复用方法、装置、电子设备及存储介质
CN116795677A (zh) 一种测试方法、终端设备及存储介质
CN117667321A (zh) 任务执行方法、装置、设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant