CN104035766A - 基于覆盖率测试的android系统裁剪方法 - Google Patents
基于覆盖率测试的android系统裁剪方法 Download PDFInfo
- 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
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是一种基于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。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080022262A1 (en) * | 2006-06-28 | 2008-01-24 | Raj Prakash | Uncoverage tool |
-
2014
- 2014-05-23 CN CN201410221840.0A patent/CN104035766A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080022262A1 (en) * | 2006-06-28 | 2008-01-24 | Raj Prakash | Uncoverage tool |
Non-Patent Citations (6)
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)
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 |