The invention provides a decoupling method for Android application, which can automatically decouple the existing Android applications into basic packages and functional packages. The basic package contains the functions commonly used by the users in the application, the function package is other functions, and the user can download and use it according to the needs. The core idea is to use static analysis and analysis of the dependency relationship between Android pages, repackage the commonly used pages and the dependent code and resources, and package other frequently accessed pages as well as the dependent code and resource package successfully, and download them to the device at the time of user access. At runtime, through an application layer container, manage the installation and operation of the decoupled application, intercept and simulate the Android runtime environment to run the pages in the basic package, and dynamically load the pages in the function package with the Android runtime loading mechanism.
【技术实现步骤摘要】
一种安卓应用的解耦方法
本专利技术涉及软件
,尤其涉及一种安卓应用的解耦方法。
技术介绍
随着智能手机、平板等移动设备的普及,越来越多的用户通过移动设备上安装的移动应用满足日常的生活和工作需求,例如用户通过新闻应用浏览时政新闻、通过购物应用进行在线购物等。由于现有的应用分发和安装机制的限制,用户必须从应用商店下载完整的应用安装包(例如安卓应用的APK文件),然后安装下载的应用安装包,最后打开应用使用应用的功能。但是,随着应用版本的迭代,开发者在应用上集成了越来越多的功能,应用安装包的体积也越来越大,而用户往往只需要使用其中一小部分的一些常用功能。越来越复杂的应用导致用户在尝试新的应用的时候需要等待更长的下载和安装时间,同时应用体积的增大也会导致应用启动慢、加载需要更多的内存以及耗费更多电量。上述问题会影响用户使用应用的体验,导致应用的用户流失,给用户和开发者都造成了损失。鉴于上述现状,业内人员尝试从不同的角度解决相关的问题,但效果均不理想。一方面,可以通过让用户访问网页版的服务使用相关的功能,但是这种方式会受限于网页加载慢、交互差的不足,用户不能获得和移动应用一致的体验;另一方面,开发者通过提供精简版的应用给终端用户较少下载和安装应用的开销,但是这种解决方案需要开发者维护多个版本的应用,会增加开发者额外的开发和维护成本,而且用户如果需要精简版本的应用上没有提供的功能的时候还是需要去下载完整的应用。
技术实现思路
针对现有技术中存在的问题,本专利技术的目的在于提供一种安卓应用的解耦方法,能够自动地将现有的安卓应用解耦为基础包和功能包,其基础包包含了应用中用 ...
【技术保护点】
1.一种安卓应用的解耦方法,包括步骤以下:获取应用安装文件中的类代码以及应用的资源文件,解析类代码和资源的依赖关系;确定应用核心页面;根据依赖关系将核心页面以及依赖的类代码和资源,与应用安装文件中的辅助文件打包为基础包;将核心页面外的各页面及其依赖的代码和资源分别打包为功能包。
【技术特征摘要】
1.一种安卓应用的解耦方法,包括步骤以下:获取应用安装文件中的类代码以及应用的资源文件,解析类代码和资源的依赖关系;确定应用核心页面;根据依赖关系将核心页面以及依赖的类代码和资源,与应用安装文件中的辅助文件打包为基础包;将核心页面外的各页面及其依赖的代码和资源分别打包为功能包。2.如权利要求1所述的安卓应用的解耦方法,其特征在于,获取应用安装文件中的类代码以及应用的资源文件,解析类代码和资源的依赖关系包括通过反编译的方式获取应用安装文件中的dex字节码以及应用的资源文件,通过静态分析,获得dex字节码中类和资源的依赖关系。3.如权利要求2所述的安卓应用的解耦方法,其特征在于,通过静态分析,获得dex字节码中类和资源的依赖关系包括通过静态分析获取所有类之间的调用图,通过对资源文件的分析获取资源文件之间的依赖关系;通过在类代码中进行关键词检索获取类对资源文件的依赖关系。4.如权利要求2所述的安卓应用的解耦方法,其特征在于,还包括:通过迭代反馈补充将静态...
【专利技术属性】
技术研发人员:刘譞哲,黄罡,柳熠,马郓,梅宏,
申请(专利权)人:北京大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。