CN104035766A - 基于覆盖率测试的android系统裁剪方法 - Google Patents

基于覆盖率测试的android系统裁剪方法 Download PDF

Info

Publication number
CN104035766A
CN104035766A CN201410221840.0A CN201410221840A CN104035766A CN 104035766 A CN104035766 A CN 104035766A CN 201410221840 A CN201410221840 A CN 201410221840A CN 104035766 A CN104035766 A CN 104035766A
Authority
CN
China
Prior art keywords
android
android system
coverage rate
cutting
software
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.)
Pending
Application number
CN201410221840.0A
Other languages
English (en)
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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201410221840.0A priority Critical patent/CN104035766A/zh
Publication of CN104035766A publication Critical patent/CN104035766A/zh
Pending legal-status Critical Current

Links

Abstract

本发明涉及android系统优化技术,其公开了一种基于覆盖率测试的android系统裁剪方法,解决android系统裁剪对软件研发人员要求高、裁剪难度大的问题。该方法包括以下步骤:a.依据项目需求对android中的linux内核层进行裁剪;b.在linux内核裁剪的基础上,进行android系统软件研发;c.对开发完成的系统软件进行插桩;d.以用户使用的角度,对产品进行全功能测试;e.进行测试覆盖分析;f.进行android裁剪,包括:分析解读未执行到的文件,了解相应功能,后将其删除;根据解读情况,修改android系统启动项,优化启动过程,提升启动速度;g.即对裁剪后的产品软件,以用户的角度进行全功能测试验证。本发明适用于对android系统进行优化。

Description

基于覆盖率测试的android系统裁剪方法
技术领域
本发明涉及android系统优化技术,具体涉及一种基于覆盖率测试的android系统裁剪方法。
背景技术
随着计算机及软件技术的发展,消费电子产品逐步从功能性转化为智能型。Android操作系统以其开放、易用的特征,越来越多的被智能消费电子产品所采用。Android系统的产生,主要源于智能手机的需求,因此系统带有很鲜明的手机特征,如电话、短信、蓝牙等功能均为系统内置功能,系统也相对复杂,然而,在以家电产品智能化进程中,存在与手机完全不同的需求,如家电产品主要功能以控制、交互、数据采集为主,不需要电话、短信等功能,要求系统启动速度快等,因此,要满足智能家电产品需求,需要对android系统进行定制裁剪。
Android是一种基于Linux的自由及开放源代码的操作系统,其架构总体可分为四层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。Android系统的裁剪,是一项非常专业的工作,针对某一简单功能的android系统裁剪,往往都要涉及到android系统的四个层级,因此需要软件研发人员对android系统架构及其实现细节均有深入的了解,而由于android系统的发展迅猛、版本更新换代频繁,导致android系统裁剪成为了一项难度非常高的一项任务。
发明内容
本发明所要解决的技术问题是:提出一种基于覆盖率测试的android系统裁剪方法,解决android系统裁剪对软件研发人员要求高、裁剪难度大的问题。
本发明解决上述技术问题所采用的方案是:
基于覆盖率测试的android系统裁剪方法,包括以下步骤:
a.依据项目需求对android中的linux内核层进行裁剪;
b.在linux内核裁剪的基础上,进行android系统软件研发,实现产品需求的全部功能;
c.对开发完成的系统软件进行插桩,保证桩语句覆盖到系统中的每个函数或文件,后对插桩后的软件进行编译、软硬件集成;
d.以用户使用的角度,对产品进行全功能测试;
e.进行测试覆盖分析,根据桩语句执行情况,进行语句、函数、文件的运行情况统计,找出软件运行过程中未执行到文件;
f.进行android裁剪,包括:分析解读未执行到的文件,了解相应功能,后将其删除;根据解读情况,修改android系统启动项,优化启动过程,提升启动速度;
g.即对裁剪后的产品软件,以用户的角度进行全功能测试验证,确保裁剪后的系统能够正常使用。
进一步,步骤a中,所述依据项目需求对android中的linux内核层进行裁剪,包括:
利用在menuconfig中配置,可以对Linux内核配置选项进行删改,删除不需要的功能模块。
进一步,步骤c中,通过覆盖率工具或人工方式,对开发完成的系统软件进行插桩。
具体的是,所述覆盖率工具包括:C/C++覆盖率测试工具GCOV、JAVA覆盖率测试工具EMMA。
本发明的有益效果是:利用覆盖率测试,能够辅助开发人员掌握哪些代码没有运行到,进而针对性的进行可视化裁剪,提升裁剪效率,保证系统的稳定性。
附图说明
图1为本发明中基于覆盖率测试的android系统裁剪方法流程图。
具体实施方式
在Android系统架构中,应用层主要为浏览器、电话本等核心应用程序;应用程序框架层主要提供android应用开发的系类组件;系统运行库层主要包含系统库和android运行时,系统运行库主要为android系统组件开发所必须的C/C++库、媒体库等,android运行时为android核心库和虚拟机;linux内核层主要提供核心驱动及进程管理等。Android系统软件开发中,针对某特定功能,往往仅需要了解应用框架层的支持组件,就可以完成功能研发;然而在此特定功能软件的运行中,均存在从应用层到应用程序框架层、系统运行库层、linux内核层的逐级调用关系,采用传统的方法裁剪,首先需要了解各个层级之间的架构以及相互间的联系,这也是android系统裁剪中的难点所在。
若软件运行过程中,我们能够显性的看到哪些软件代码执行到了,哪些软件没有执行到,进而删除掉没有运行到的代码,实现对系统裁剪,这样不但能够实现系统的可视化裁剪,提升裁剪效率,还能够保证系统的稳定性。基于此,本发明提供了一种基于覆盖率测试的android系统裁剪方法。覆盖率测试,是软件测试领域较为常用的一项测试技术,通常采用专用的软件测试工具,以在目标软件代码中插桩的方式,检测软件代码的运行情况,实现软件代码覆盖率统计,度量测试完整性。在本方案中,利用覆盖率测试,能够辅助开发人员掌握哪些代码没有运行到,进而针对性的进行裁剪。
如图1所示,本发明中基于覆盖率测试的android系统裁剪方法,包括以下实现步骤:
1、linux内核裁剪:依据项目需求对android中的linux内核层进行裁剪,利用在menuconfig中配置,可以对进行Linux内核配置选项及删改删除不需要的功能模块,以保证软件研发过程中不会产生无意识的调用,降低裁剪效果;
2、产品软件研发:在linux内核裁剪的基础上,进行android系统软件研发,实现产品需求的全部功能,此部分软件研发主要涉及应用层、系统框架层的修改;
3、测试插桩:利用覆盖率工具或人工方式,对开发完成的系统软件进行插桩,保证桩语句覆盖到系统中的每个函数或文件,后对插桩后的软件进行编译、软硬件集成;
4、全功能测试:以用户使用的角度,对产品进行全功能测试;
5、测试覆盖分析:根据桩语句执行情况,进行语句、函数、文件的运行情况统计,找出软件运行过程中未执行到文件。由于此时未进行android启动项优化,因此在系统启动加载过程中,会运行到多个未来不需要的启动项,因此此时不进行覆盖情况统计,统计的起始时间范围在系统启动后,全功能测试阶段;
6、android裁剪:进行android裁剪,包括两部分内容:一是分析解读未执行到的文件,了解相应功能,后将其删除;二是根据解读情况,修改android系统启动项,优化启动过程,提升启动速度;
7、全功能测试验证:即对裁剪后的产品软件,以用户的角度进行全功能测试验证,确保裁剪后的系统能够正常使用。
下面结合android系统裁剪实施的工程案例,对测试方法进行详细描述:
“蓝牙”模块是android系统中的标准模块,本案例所述的产品方案中不涉及“蓝牙”功能,案例将结合“蓝牙”功能模块裁剪案例,对本方法进行描述,具体步骤如下:
步骤1:linux内核裁剪,在menuconfig中配置,将Bluetooth subsystem support选N,重新生成config文件,并使用该文件进行编译,即去除了蓝牙部分功能;
步骤2:产品功能研发,此处不详述;
步骤3:利用C/C++覆盖率测试工具GCOV、JAVA覆盖率测试工具EMMA,分别进行对android系统中各层软件代码进行打桩;
步骤4:对软件实施全功能测试,此处不详述;
步骤5:查看测试工具的测试覆盖情况报告,,找出全功能测试中未被执行到的文件,其中应用层蓝牙设备配置文件、Bluetooth.apk等未被执行到,系统运行库层部分库文件未被执行到;
步骤6:分析被执行到的文件,后将其删除;修改启动项,将蓝牙启动部分关闭;
步骤7:利用全功能测试对系统进行验证。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (4)

1.基于覆盖率测试的android系统裁剪方法,其特征在于,包括以下步骤:
a.依据项目需求对android中的linux内核层进行裁剪;
b.在linux内核裁剪的基础上,进行android系统软件研发,实现产品需求的全部功能;
c.对开发完成的系统软件进行插桩,保证桩语句覆盖到系统中的每个函数或文件,后对插桩后的软件进行编译、软硬件集成;
d.以用户使用的角度,对产品进行全功能测试;
e.进行测试覆盖分析,根据桩语句执行情况,进行语句、函数、文件的运行情况统计,找出软件运行过程中未执行到文件;
f.进行android裁剪,包括:分析解读未执行到的文件,了解相应功能,后将其删除;根据解读情况,修改android系统启动项,优化启动过程,提升启动速度;
g.即对裁剪后的产品软件,以用户的角度进行全功能测试验证,确保裁剪后的系统能够正常使用。
2.如权利要求1所述的基于覆盖率测试的android系统裁剪方法,其特征在于,步骤a中,所述依据项目需求对android中的linux内核层进行裁剪,包括:
利用在menuconfig中配置,可以对Linux内核配置选项进行删改,删除不需要的功能模块。
3.如权利要求1或2所述的基于覆盖率测试的android系统裁剪方法,其特征在于,步骤c中,通过覆盖率工具或人工方式,对开发完成的系统软件进行插桩。
4.如权利要求3所述的基于覆盖率测试的android系统裁剪方法,其特征在于,所述覆盖率工具包括:C/C++覆盖率测试工具GCOV、JAVA覆盖率测试工具EMMA。
CN201410221840.0A 2014-05-23 2014-05-23 基于覆盖率测试的android系统裁剪方法 Pending CN104035766A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410221840.0A CN104035766A (zh) 2014-05-23 2014-05-23 基于覆盖率测试的android系统裁剪方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410221840.0A CN104035766A (zh) 2014-05-23 2014-05-23 基于覆盖率测试的android系统裁剪方法

Publications (1)

Publication Number Publication Date
CN104035766A true CN104035766A (zh) 2014-09-10

Family

ID=51466541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410221840.0A Pending CN104035766A (zh) 2014-05-23 2014-05-23 基于覆盖率测试的android系统裁剪方法

Country Status (1)

Country Link
CN (1) CN104035766A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731600A (zh) * 2015-03-31 2015-06-24 上海盈方微电子有限公司 一种将安卓系统服务插件化的实现方法
CN105512021A (zh) * 2014-09-25 2016-04-20 阿里巴巴集团控股有限公司 用于软件测试的Diff分析方法及装置
CN108932119A (zh) * 2018-07-01 2018-12-04 甘肃万维信息技术有限责任公司 一种基于android系统的项目分层结构
WO2022222378A1 (zh) * 2021-04-23 2022-10-27 统信软件技术有限公司 一种内核裁剪方法及计算设备
CN115757077A (zh) * 2022-12-22 2023-03-07 深圳国家金融科技测评中心有限公司 一种系统裁剪程度及服务组件最小化评估方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080022262A1 (en) * 2006-06-28 2008-01-24 Raj Prakash Uncoverage tool

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080022262A1 (en) * 2006-06-28 2008-01-24 Raj Prakash Uncoverage tool

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
RAYLU: ""Android内核的编译与裁剪"", 《HTTP://BLOG.CSDN.NET/LEILU2008/ARTICLE/DETAILS/9467991》 *
YBB_Y1B1B1: ""插桩技术"", 《HTTP://BLOG.CSDN.NET/YBB_Y1B1B1/ARTICLE/DETAILS/6226654》 *
无: ""嵌入式Linux开发系列之一: 走进嵌入式Linux的世界"", 《HTTP://WWW.SUDU.CN/INFO/INDEX.PHP?OP=ARTICLE&ID=232375》 *
毕发社: ""嵌入式Linux系统定制和裁剪技术的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
胡贯荣等: ""基于arm的嵌入式Linux内核调试技术"", 《计算机工程与设计》 *
蔡虹等: ""基于覆盖率测试的嵌入式软件自动裁剪"", 《计算机工程》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512021A (zh) * 2014-09-25 2016-04-20 阿里巴巴集团控股有限公司 用于软件测试的Diff分析方法及装置
CN104731600A (zh) * 2015-03-31 2015-06-24 上海盈方微电子有限公司 一种将安卓系统服务插件化的实现方法
CN108932119A (zh) * 2018-07-01 2018-12-04 甘肃万维信息技术有限责任公司 一种基于android系统的项目分层结构
WO2022222378A1 (zh) * 2021-04-23 2022-10-27 统信软件技术有限公司 一种内核裁剪方法及计算设备
CN115757077A (zh) * 2022-12-22 2023-03-07 深圳国家金融科技测评中心有限公司 一种系统裁剪程度及服务组件最小化评估方法
CN115757077B (zh) * 2022-12-22 2023-09-05 深圳国家金融科技测评中心有限公司 一种系统裁剪程度及服务组件最小化评估方法

Similar Documents

Publication Publication Date Title
US10474438B2 (en) Intelligent cloud engineering platform
CN104035766A (zh) 基于覆盖率测试的android系统裁剪方法
US9218197B2 (en) Virtual machine image migration
CN107733985B (zh) 一种云计算系统功能组件部署方法及装置
US20160378456A1 (en) Method for offline updating virtual machine images
CN108132826B (zh) 跨云服务器的镜像管理方法、装置及服务器
CN102289378A (zh) 自动生成应用程序的方法
CN107766130B (zh) 虚拟机向容器迁移的方法和装置
US9699252B2 (en) Deployment of virtual machine disks from a shared network file system
CN103067501B (zh) PaaS平台的大数据处理方法
CN104216751B (zh) 一种应用程序的功能组件界面资源的加载方法及系统
CN104462943A (zh) 业务系统中非侵入式性能监控装置和方法
CN103513966A (zh) 基于组件的php开发框架
CN105591778A (zh) 一种分布式系统更新配置文件的方法及系统
CN104090752A (zh) 一种加快定制android系统桌面快捷图标的方法
CN102789420B (zh) 基于程序执行轨迹的动态切片系统
CN102681861B (zh) 安装软件的方法和装置
CN105446873A (zh) 基于android平台的APK软件自动测试方法及系统
CN103645935A (zh) 一种国产环境下jvm参数调整装置和方法
US9411569B1 (en) System and method for providing a climate data analytic services application programming interface distribution package
CN107222355B (zh) 一种服务器升级方法及装置
EP3639138B1 (en) Action undo service based on cloud platform
CN103064722A (zh) 一种程序统一编译方法及系统
CN102609301A (zh) 给多个客户端快速部署软件的方法
CN115237399A (zh) 用于采集数据的方法、存储介质、处理器及工程车辆

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140910