CN103544005B - 一种Android自定义控件的扩展开发方法及装置 - Google Patents
一种Android自定义控件的扩展开发方法及装置 Download PDFInfo
- Publication number
- CN103544005B CN103544005B CN201310408562.5A CN201310408562A CN103544005B CN 103544005 B CN103544005 B CN 103544005B CN 201310408562 A CN201310408562 A CN 201310408562A CN 103544005 B CN103544005 B CN 103544005B
- Authority
- CN
- China
- Prior art keywords
- self
- defined control
- bag
- source code
- android
- 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.)
- Expired - Fee Related
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种Android自定义控件的扩展开发方法及装置,所述方法通过将编写的自定义控件源代码生成自定义控件源码包,将加入的图片资源生成系统视图资源包,根据所述自定义控件源码包和系统视图资源包生成相应的自定义控件插件包;启动模拟器时,通过系统初始化配置文件进行系统配置定义,加载所述模拟器镜像文件中的自定义控件源码包;启动Android平台的Java虚拟机时,预加载所述模拟器镜像文件中的系统视图资源包;运行应用安装包,调用自定义控件源代码并读取图片资源,完成自定义控件的开发;使得应用包解析时就能够调用自定义控件中的所有资源,从而提高了对Android自定义控件扩展开发的效率和灵活性。
Description
技术领域
本发明涉及Android自定义控件开发领域,尤其涉及的是一种Android自定义控件的扩展开发方法及装置。
背景技术
基于安卓(android)深度定制的系统,无论是MIUI或Smartisan OS等系统都在UI下足了功夫,作为最直观最直接影响用户体验的因素,UI界面设计往往需要不断变化并快速投入到开发团队中使用。而目前的方式都是通过直接修改源码框架层进行自定义控件开发,这种对源码依赖过高且无法进行复用的开发方式显然不利于大型的团队协作开发,这种开发方式的效率低,且很不灵活,给开发人员带来了大大的不便。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种Android自定义控件的扩展开发方法及装置,旨在解决现有技术中Android自定义控件扩展开发时,需要大量修改Android框架中的源码,重新编译生成整个新的框架层内容,可移植性差,可复制性差,使得Android自定义控件的扩展开发方法的效率低且不够灵活的问题。
本发明解决技术问题所采用的技术方案如下:
一种Android自定义控件的扩展开发方法,其中,包括以下步骤:
A、将编写的自定义控件源代码生成自定义控件源码包,将加入的图片资源生成系统视图资源包,根据所述自定义控件源码包和系统视图资源包生成相应的自定义控件插件包;
B、将所述自定义控件插件包解压到Android软件开发工具中,得到自定义控件源码包,并将系统初始化配置文件和自定义控件插件包生成相应的模拟器镜像文件;
C、配置所述自定义控件源码包作为自定义库载入应用工程;
D、应用工程通过所述自定义控件源码包调用自定义控件的属性和方法,编译打包生成具有自定义控件特性的应用安装包;
E、通过Android软件开发工具创建模拟器,并加载所述模拟器镜像文件;
F、启动所述模拟器,通过系统初始化配置文件进行系统配置定义,加载所述模拟器镜像文件中的自定义控件源码包以供应用安装包运行时调用;
G、启动Android平台的Java虚拟机,预加载所述模拟器镜像文件中的系统视图资源包以供应用安装包运行时调用;
H、运行应用安装包,调用自定义控件源代码并读取图片资源,调试应用控件效果,完成自定义控件的开发。
所述的Android自定义控件的扩展开发方法,其中,所述步骤A具体包括:
A1、编写自定义控件源代码,放置在自定义控件目录下,编写对应的Android编译配置文件,并生成相应的自定义控件源码包;
A2、加入所需图片资源,编写各个资源的配置定义文件,放置在自定义控件目录下,根据所述自定义控件源代码与图片资源的映射关系生成相应的映射关系文件并放置在自定义控件目录下,并生成相应的系统视图资源包;
A3、将所述自定义控件源码包和所述系统视图资源包压缩生成相应的自定义控件插件包。
所述的Android自定义控件的扩展开发方法,其中,所述步骤B还包括:
B0、修改系统初始化配置文件中的虚拟机默认加载的系统基本库路径配置环境变量配置。
所述的Android自定义控件的扩展开发方法,其中,所述步骤G具体包括:
G0、启动Android平台的Java虚拟机,通过孵化器进程初始化预加载系统视图资源包。
所述的Android自定义控件的扩展开发方法,其中,所述步骤G还包括:
G1、在应用安装包运行时,Android平台的Java虚拟机加载系统视图资源包内图片资源及对应的映射关系文件,以供应用安装包解析调用。
一种Android自定义控件的扩展开发装置,其中,包括:
自定义控件插件包生成模块,用于将编写的自定义控件源代码生成自定义控件源码包,将加入的图片资源生成系统视图资源包,根据所述自定义控件源码包和系统视图资源包生成相应的自定义控件插件包;
解压及镜像模块,用于将所述自定义控件插件包解压到Android软件开发工具中,得到自定义控件源码包,并将系统初始化配置文件和自定义控件插件包生成相应的模拟器镜像文件;
配置模块,用于配置所述自定义控件源码包作为自定义库载入应用工程;
应用安装包生成模块,用于应用工程通过所述自定义控件源码包调用自定义控件的属性和方法,编译打包生成具有自定义控件特性的应用安装包;
模拟器创建模块,用于通过Android软件开发工具创建模拟器,并加载所述模拟器镜像文件;
模拟器加载模块,用于启动所述模拟器,通过系统初始化配置文件进行系统配置定义,加载所述模拟器镜像文件中的自定义控件源码包以供应用安装包运行时调用;
Java虚拟机加载模块,用于启动Android平台的Java虚拟机,预加载所述模拟器镜像文件中的系统视图资源包以供应用安装包运行时调用;
调试模块,用于运行应用安装包,调用自定义控件源代码并读取图片资源,调试应用控件效果,完成自定义控件的开发。
所述的Android自定义控件的扩展开发装置,其中,所述自定义控件插件包生成模块具体包括:
自定义控件源码包生成单元,用于编写自定义控件源代码,放置在自定义控件目录下,编写对应的Android编译配置文件,并生成相应的自定义控件源码包;
系统视图资源包生成单元,用于加入所需图片资源,编写各个资源的配置定义文件,放置在自定义控件目录下,根据所述自定义控件源代码与图片资源的映射关系生成相应的映射关系文件并放置在自定义控件目录下,并生成相应的系统视图资源包;
自定义控件插件包生成单元,用于将所述自定义控件源码包和所述系统视图资源包压缩生成相应的自定义控件插件包。
所述的Android自定义控件的扩展开发装置,其中,所述解压及镜像模块还包括:
系统初始化配置文件修改单元,用于修改系统初始化配置文件中的虚拟机默认加载的系统基本库路径配置环境变量配置。
所述的Android自定义控件的扩展开发装置,其中,所述Java虚拟机加载模块用于启动Android平台的Java虚拟机,通过孵化器进程初始化预加载系统视图资源包。
所述的Android自定义控件的扩展开发装置,其中,所述Java虚拟机加载模块还包括:
映射关系文件加载单元,用于在应用安装包运行时,Android平台的Java虚拟机加载系统视图资源包内图片资源及对应的映射关系文件,以供应用安装包解析调用。
本发明所提供的一种Android自定义控件的扩展开发方法及装置,有效地解决了现有的Android自定义控件在开发的时候,对源码依赖过高,无法进行复用的问题,所述方法通过定义了Android自定义控件插件包,将编写的自定义控件源代码生成自定义控件源码包,将加入的图片资源生成系统视图资源包,根据所述自定义控件源码包和系统视图资源包生成相应的自定义控件插件包;所述自定义控件插件包包含自定义控件源码包和系统视图资源包,自定义控件源码包在Android系统初始化时作为基础库加载,而将系统视图资源包独立出来,在Android平台的Java虚拟机启动时默认预加载,使得应用安装包解析时能调用自定义控件插件包中的所有资源,本发明利用Android框架和插件式的集成方式,把控件扩展的功能封装打包插入到集成开发环境和模拟器中,将控件中可变、可复用和独立功能的部分从Android原先的框架中分离出来,形成一个相对独立的模块,从而提高了对Android系统控件扩展开发的效率和灵活性,为用户带来了大大的方便。
附图说明
图1为本发明提供的Android自定义控件的扩展开发方法较佳实施例的流程图。
图2为本发明提供的Android自定义控件的扩展开发方法较佳实施例中生成自定义控件插件包的示意图。
图3为本发明提供的Android自定义控件的扩展开发装置较佳实施例的结构框图。
具体实施方式
本发明提供一种Android自定义控件的扩展开发方法及装置,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术都是通过直接修改源码框架层进行自定义控件开发,这种开发方法对源码依赖过高,无法进行复用,显然不适用于大型的团队协作开发。本发明提供了一种基于插件式的Android控件扩展开发方法,利用Android框架和插件式的集成方式,生成相应的Android自定义控件插件包,把控件扩展的功能封装成打包格式插入到集成开发环境和模拟器中,将控件作为可变,可复用和独立功能的部分从Android原先的框架中分离出来,形成一个相对独立的模块。Android自定义控件插件包包含两部分逻辑部件和视图部件,逻辑部件在Android系统初始化时作为基础库加载,而视图部件从系统视图资源中独立出来,编译后合并在系统视图资源包中,在Android平台的Java虚拟机启动会默认预加载,应用包解析时就能够调用自定义控件中的所有资源,从而提高了对Android系统控件扩展开发的效率和灵活性。
请参阅图1,图1为本发明提供的Android自定义控件的扩展开发方法较佳实施例的流程图,如图所示,所述Android自定义控件的扩展开发方法包括以下步骤:
步骤S100、将编写的自定义控件源代码生成自定义控件源码包,将加入的图片资源生成系统视图资源包,根据所述自定义控件源码包和系统视图资源包生成相应的自定义控件插件包;
步骤S200、将所述自定义控件插件包解压到Android软件开发工具中,得到自定义控件源码包,并将系统初始化配置文件和自定义控件插件包生成相应的模拟器镜像文件;
步骤S300、配置所述自定义控件源码包作为自定义库载入应用工程;
步骤S400、应用工程通过所述自定义控件源码包调用自定义控件的属性和方法,编译打包生成具有自定义控件特性的应用安装包;
步骤S500、通过Android软件开发工具创建模拟器,并加载所述模拟器镜像文件;
步骤S600、启动所述模拟器,通过系统初始化配置文件进行系统配置定义,加载所述模拟器镜像文件中的自定义控件源码包以供应用安装包运行时调用;
步骤S700、启动Android平台的Java虚拟机,预加载所述模拟器镜像文件中的系统视图资源包以供应用安装包运行时调用;
步骤S800、运行应用安装包,调用自定义控件源代码并读取图片资源,调试应用控件效果,完成自定义控件的开发。
下面对上述步骤进行详细的描述和说明。
请参阅图2,图2为本发明提供的Android自定义控件的扩展开发方法较佳实施例中生成自定义控件插件包的示意图。具体来说,所述步骤S100包括:
S110、编写自定义控件源代码,放置在自定义控件目录下,编写对应的Android编译配置文件,并生成相应的自定义控件源码包。所述步骤S110用于生成Android自定义控件插件包的逻辑部分。具体来说,编写自定义控件源代码Widget_1.java、Widget_2.java、…、Widget_N.java放置在自定义控件目录下,编写对应的Android编译配置文件(Andorid.mk),最后生成自定义控件源码包(widget.jar),从而将逻辑部件打包成为单独的jar包。
S120、加入所需图片资源,编写各个资源的配置定义文件,放置在自定义控件目录下,根据所述自定义控件源代码与图片资源的映射关系生成相应的映射关系文件并放置在自定义控件目录下,并生成相应的系统视图资源包。所述步骤S120用于生成Android自定义控件插件包的视图部分。具体来说,加入所需图片资源,编写各个资源的配置定义文件,放置在自定义控件目录下的frameworks/base/core/res/res中,如图片资源存放路径(/drawable)、布局配置文件存放路径(/layout)等,而资源映射关系文件通过<add-resourcetype="*" name="*" />放置在资源参数描述文件存放路径frameworks/base/core/res/res/value目录下,这部分会根据软件开发工具包编译配置文件(SDK.mk)中产品替换系统资源的路径配置的定义修改,合并编译到系统视图资源包(framework-res.apk)中,该资源会复制添加到该Android应用安装包(apk)的对应目录下,其中,/value会对应生成资源定义映射文件(resource.arsc)来表示系统资源和自定义资源的映射ID。
S130、将所述自定义控件源码包和所述系统视图资源包压缩生成相应的自定义控件插件包。具体来说,将逻辑部分的自定义控件源码包和视图部分的系统视图资源包合并压缩生成相应的自定义控件插件包。Android控件扩展插件包分为逻辑部件即java代码所实现的控件应用程序编程接口(API),视图部件即图片和图片属性配置定义文件等两部分。
在步骤S200中,开发者在获取Android控件扩展插件包后,解压该包到Andorid软件开发工具包(Andorid SDK)中,得到自定义控件应用程序编程接口(API)的jar包和模拟器镜像文件。所述模拟器镜像文件由系统初始化配置文件和自定义控件插件包生成。在软件开发工具包(SDK)编译时,逻辑部件和视图部件都会最终集成到模拟器镜像中。优选地,由于widget.jar并不在Android框架内,因此需要修改系统初始化配置文件中的虚拟机默认加载的系统基本库路径配置环境变量配置,增加到Android系统启动加载基本库流程中,使得逻辑部件能够被系统加载从而进一步提供给应用调用。
在步骤S300中,集成开发环境配置插件中自定义控件源码包作为应用工程的第三方库载入,即将解压后的路径配置到软件开发工具包(SDK)编译引用库中。
在步骤S400中,应用工程通过所述自定义控件源码包调用自定义控件的属性和方法,编译打包生成具有自定义控件特性的应用安装包。具体来说,当应用工程源码编写时通过对自定义控件API完成对自定义控件属性和方法的调用,编译打包生成具有自定义公共控件特性的应用apk。由于SDK在控件扩展应用apk生成时,对widget.jar中的各个java进行编译,所以SDK在解压插件包后,将widget.jar导入集成开发环境作为第三方开发包引入。
在步骤S500中,Android软件开发工具SDK创建模拟器,加载插件包解压路径中的镜像文件。
在步骤S600中,启动所述模拟器,通过系统初始化配置文件进行系统配置定义,加载所述模拟器镜像文件中的自定义控件源码包以供应用安装包运行时调用。具体来说,模拟器启动时,通过系统初始化配置文件进行系统配置定义,加载镜像文件中的自定义控件jar包,作为系统基础库运行。
在步骤S700中,启动Android平台的Java虚拟机,预加载所述模拟器镜像文件中的系统视图资源包以供应用安装包运行时调用。具体来说,Android平台的Java虚拟机启动后会预加载镜像文件中的系统视图资源包,这时,自定义控件的所有图片和相关属性也会被加载。
在步骤S800中,开发者运行应用安装包,调用自定义控件源代码并读取图片资源,调试应用控件效果,完成自定义控件的开发。具体来说,开发者运行Android应用安装包(apk)时,通过上述步骤S600和S700便能够完成对自定义控件源码调用和图片资源读取,最终完成自定义控件开发。
优选地,所述步骤S700具体包括:启动Android平台的Java虚拟机,通过孵化器进程初始化预加载系统视图资源包。具体来说,系统视图资源包framework-res.apk根据Android资源获取机制,在Android平台的Java虚拟机启动时,进行虚拟机实例的孵化器(Zygote)进程初始化预加载到Android运行时(AndroidRuntime)的,这样,应用便可以直接引用包括自定义控件在内的所有资源进行自定义公共控件扩展开发。
优选地,所述步骤S700还包括:在应用安装包运行时,Android平台的Java虚拟机加载系统视图资源包内图片资源及对应的映射关系文件,以供应用安装包解析调用。具体来说,在控件扩展应用apk运行时,复制镜像包到模拟器中,Android初始化时便加载widget.jar,Android平台的Java虚拟机加载framework-res.apk内资源及其映射对应关系的文件,提供给应用apk完成解析调用,实现插件包内各个部件的交互操作,完成对Android自定义控件的扩展开发。
本发明提供的Android自定义控件的扩展开发方法,首先提供了一个Android控件扩展插件包,所述Android控件扩展插件包分为逻辑部件即java代码所实现的控件API、以及视图部件即图片和图片属性配置定义文件等两部分;逻辑部件打包成为单独的jar包,通过系统初始化配置文件中的虚拟机默认加载的系统基本库路径配置增加该jar,作为系统初始化基本库之一加载;视图部件通过修改产品替换系统资源的路径配置指向资源所在路径,最终打包到系统视图资源包framework-res.apk中,当Android平台的Java虚拟机启动时就会默认加载该apk;上述步骤没有对Android framework层(Android框架层)代码进行修改,完全独立与框架层代码,因此具有很好的可复用性和跨平台特性。
为了提供开发者开发调试,将插件包会进一步编译打包为第三方库,模拟器镜像逻辑部件和视图部件;开发Android自定义控件的应用工程时,集成开发环境会加载逻辑部件的jar包供工程调用,而视图部件是逻辑部件代码调用时才会需要的,因此不需要提供给集成开发环境;调试Android自定义控件的应用工程时,创建模拟器会使用插件包中的镜像,镜像包括系统初始化配置文件,逻辑部件的jar包和包含了视图部件的系统视图资源包framework-res.apk,应用apk解析时,能够同时加载到自定义控件的逻辑部件和视图部件,完成APK源码对控件API的调用和APK资源包对控件图片和配置文件的解析;最后将应用的UI显示在模拟器界面上,从而完成基于插件式的Android控件扩展开发。本发明采用两种途径来分别完成逻辑部件和视图部件对Android框架层的脱离,实现了控件扩展的独立性,并最后以插件的方式集成到Android 软件开发工具包(Android SDK)中,提供了一个完整的自定义控件扩展方法。
基于上述Android自定义控件的扩展开发方法,本发明还提供了一种Android自定义控件的扩展开发装置,如图3所示,包括:
自定义控件插件包生成模块10,用于将编写的自定义控件源代码生成自定义控件源码包,将加入的图片资源生成系统视图资源包,根据所述自定义控件源码包和系统视图资源包生成相应的自定义控件插件包;具体如步骤S100所述。
解压及镜像模块20,用于将所述自定义控件插件包解压到Android软件开发工具中,得到自定义控件源码包,并将系统初始化配置文件和自定义控件插件包生成相应的模拟器镜像文件;具体如步骤S200所述。
配置模块30,用于配置所述自定义控件源码包作为自定义库载入应用工程;具体如步骤S300所述。
应用安装包生成模块40,用于应用工程通过所述自定义控件源码包调用自定义控件的属性和方法,编译打包生成具有自定义控件特性的应用安装包;具体如步骤S400所述。
模拟器创建模块50,用于通过Android软件开发工具创建模拟器,并加载所述模拟器镜像文件;具体如步骤S500所述。
模拟器加载模块60,用于启动所述模拟器,通过系统初始化配置文件进行系统配置定义,加载所述模拟器镜像文件中的自定义控件源码包以供应用安装包运行时调用;具体如步骤S600所述。
Java虚拟机加载模块70,用于启动Android平台的Java虚拟机,预加载所述模拟器镜像文件中的系统视图资源包以供应用安装包运行时调用;具体如步骤S700所述。
调试模块80,用于运行应用安装包,调用自定义控件源代码并读取图片资源,调试应用控件效果,完成自定义控件的开发;具体如步骤S800所述。
进一步地,所述自定义控件插件包生成模块10具体包括:
自定义控件源码包生成单元,用于编写自定义控件源代码,放置在自定义控件目录下,编写对应的Android编译配置文件,并生成相应的自定义控件源码包;
系统视图资源包生成单元,用于加入所需图片资源,编写各个资源的配置定义文件,放置在自定义控件目录下,根据所述自定义控件源代码与图片资源的映射关系生成相应的映射关系文件并放置在自定义控件目录下,并生成相应的系统视图资源包;
自定义控件插件包生成单元,用于将所述自定义控件源码包和所述系统视图资源包压缩生成相应的自定义控件插件包。
进一步地,所述解压及镜像模块20还包括:
系统初始化配置文件修改单元,用于修改系统初始化配置文件中的虚拟机默认加载的系统基本库路径配置环境变量配置。
进一步地,所述Java虚拟机加载模块70用于启动Android平台的Java虚拟机,通过孵化器进程初始化预加载系统视图资源包。
进一步地,所述Java虚拟机加载模块70还包括:
映射关系文件加载单元,用于在应用安装包运行时,Android平台的Java虚拟机加载系统视图资源包内图片资源及对应的映射关系文件,以供应用安装包解析调用。
综上所述,本发明提供的一种Android自定义控件的扩展开发方法及装置,所述方法通过将编写的自定义控件源代码生成自定义控件源码包作为逻辑部件,将加入的图片资源生成系统视图资源包作为视图部件,Android自定义控件插件包包含两部分逻辑部件和视图部件,逻辑部件在Android系统初始化时作为基础库加载,而视图部件从系统视图资源中独立出来,编译后合并在系统视图资源包中,在Android平台的Java虚拟机启动会默认预加载,使得应用包解析时就能够调用自定义控件中的所有资源,通过Android框架和插件式的集成方式,把控件扩展的功能封装成打包格式插入到集成开发环境和模拟器中,将控件中可变、可复用和独立功能的部分从Android原先的框架中分离出来,形成一个相对独立的模块,从而提高了对Android系统控件扩展开发的效率和灵活性。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种Android自定义控件的扩展开发方法,其特征在于,包括以下步骤:
A、将编写的自定义控件源代码生成自定义控件源码包,将加入的图片资源生成系统视图资源包,根据所述自定义控件源码包和系统视图资源包生成相应的自定义控件插件包;
B、将所述自定义控件插件包解压到Android软件开发工具中,得到自定义控件源码包,并将系统初始化配置文件和自定义控件插件包生成相应的模拟器镜像文件;
C、配置所述自定义控件源码包作为自定义库载入应用工程;
D、应用工程通过所述自定义控件源码包调用自定义控件的属性和方法,编译打包生成具有自定义控件特性的应用安装包;
E、通过Android软件开发工具创建模拟器,并加载所述模拟器镜像文件;
F、启动所述模拟器,通过系统初始化配置文件进行系统配置定义,加载所述模拟器镜像文件中的自定义控件源码包以供应用安装包运行时调用;
G、启动Android平台的Java虚拟机,预加载所述模拟器镜像文件中的系统视图资源包以供应用安装包运行时调用;
H、运行应用安装包,调用自定义控件源代码并读取图片资源,调试应用控件效果,完成自定义控件的开发。
2.根据权利要求1所述的Android自定义控件的扩展开发方法,其特征在于,所述步骤A具体包括:
A1、编写自定义控件源代码,放置在自定义控件目录下,编写对应的Android编译配置文件,并生成相应的自定义控件源码包;
A2、加入所需图片资源,编写各个资源的配置定义文件,放置在自定义控件目录下,根据所述自定义控件源代码与图片资源的映射关系生成相应的映射关系文件并放置在自定义控件目录下,并生成相应的系统视图资源包;
A3、将所述自定义控件源码包和所述系统视图资源包压缩生成相应的自定义控件插件包。
3.根据权利要求1所述的Android自定义控件的扩展开发方法,其特征在于,所述步骤B还包括:
B0、修改系统初始化配置文件中的虚拟机默认加载的系统基本库路径配置环境变量配置。
4.根据权利要求1所述的Android自定义控件的扩展开发方法,其特征在于,所述步骤G具体包括:
G0、启动Android平台的Java虚拟机,通过孵化器进程初始化预加载系统视图资源包。
5.根据权利要求2所述的Android自定义控件的扩展开发方法,其特征在于,所述步骤G还包括:
G1、在应用安装包运行时,Android平台的Java虚拟机加载系统视图资源包内图片资源及对应的映射关系文件,以供应用安装包解析调用。
6.一种Android自定义控件的扩展开发装置,其特征在于,包括:
自定义控件插件包生成模块,用于将编写的自定义控件源代码生成自定义控件源码包,将加入的图片资源生成系统视图资源包,根据所述自定义控件源码包和系统视图资源包生成相应的自定义控件插件包;
解压及镜像模块,用于将所述自定义控件插件包解压到Android软件开发工具中,得到自定义控件源码包,并将系统初始化配置文件和自定义控件插件包生成相应的模拟器镜像文件;
配置模块,用于配置所述自定义控件源码包作为自定义库载入应用工程;
应用安装包生成模块,用于应用工程通过所述自定义控件源码包调用自定义控件的属性和方法,编译打包生成具有自定义控件特性的应用安装包;
模拟器创建模块,用于通过Android软件开发工具创建模拟器,并加载所述模拟器镜像文件;
模拟器加载模块,用于启动所述模拟器,通过系统初始化配置文件进行系统配置定义,加载所述模拟器镜像文件中的自定义控件源码包以供应用安装包运行时调用;
Java虚拟机加载模块,用于启动Android平台的Java虚拟机,预加载所述模拟器镜像文件中的系统视图资源包以供应用安装包运行时调用;
调试模块,用于运行应用安装包,调用自定义控件源代码并读取图片资源,调试应用控件效果,完成自定义控件的开发。
7.根据权利要求6所述的Android自定义控件的扩展开发装置,其特征在于,所述自定义控件插件包生成模块具体包括:
自定义控件源码包生成单元,用于编写自定义控件源代码,放置在自定义控件目录下,编写对应的Android编译配置文件,并生成相应的自定义控件源码包;
系统视图资源包生成单元,用于加入所需图片资源,编写各个资源的配置定义文件,放置在自定义控件目录下,根据所述自定义控件源代码与图片资源的映射关系生成相应的映射关系文件并放置在自定义控件目录下,并生成相应的系统视图资源包;
自定义控件插件包生成单元,用于将所述自定义控件源码包和所述系统视图资源包压缩生成相应的自定义控件插件包。
8.根据权利要求6所述的Android自定义控件的扩展开发装置,其特征在于,所述解压及镜像模块还包括:
系统初始化配置文件修改单元,用于修改系统初始化配置文件中的虚拟机默认加载的系统基本库路径配置环境变量配置。
9.根据权利要求6所述的Android自定义控件的扩展开发装置,其特征在于,所述Java虚拟机加载模块用于启动Android平台的Java虚拟机,通过孵化器进程初始化预加载系统视图资源包。
10.根据权利要求7所述的Android自定义控件的扩展开发装置,其特征在于,所述Java虚拟机加载模块还包括:
映射关系文件加载单元,用于在应用安装包运行时,Android平台的Java虚拟机加载系统视图资源包内图片资源及对应的映射关系文件,以供应用安装包解析调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310408562.5A CN103544005B (zh) | 2013-09-10 | 2013-09-10 | 一种Android自定义控件的扩展开发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310408562.5A CN103544005B (zh) | 2013-09-10 | 2013-09-10 | 一种Android自定义控件的扩展开发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103544005A CN103544005A (zh) | 2014-01-29 |
CN103544005B true CN103544005B (zh) | 2017-08-08 |
Family
ID=49967486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310408562.5A Expired - Fee Related CN103544005B (zh) | 2013-09-10 | 2013-09-10 | 一种Android自定义控件的扩展开发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103544005B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677764B (zh) * | 2012-08-31 | 2017-08-15 | 腾讯科技(深圳)有限公司 | 一种浏览器访问icu库函数的方法、系统及浏览器 |
CN103970563B (zh) * | 2014-04-15 | 2017-04-05 | 四川长虹电器股份有限公司 | 动态加载安卓类的方法 |
CN104216751B (zh) * | 2014-09-30 | 2018-01-12 | 广州猎豹网络科技有限公司 | 一种应用程序的功能组件界面资源的加载方法及系统 |
CN104376263B (zh) * | 2014-12-09 | 2018-02-16 | 北京奇虎科技有限公司 | 应用程序行为拦截的方法和装置 |
CN104536752A (zh) * | 2014-12-26 | 2015-04-22 | 北京京东尚科信息技术有限公司 | 自动生成apk的方法及装置 |
CN105243141B (zh) * | 2015-10-12 | 2019-08-16 | 上海斐讯数据通信技术有限公司 | 一种app资源管理方法及移动终端 |
CN105335206A (zh) * | 2015-10-16 | 2016-02-17 | Tcl集团股份有限公司 | 一种自定义系统控件的扩展方法及系统 |
CN105893009A (zh) * | 2015-11-16 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 基于Android平台的自定义控件的显示方法和装置 |
CN105653284A (zh) * | 2015-12-29 | 2016-06-08 | Tcl集团股份有限公司 | 一种生成安卓平台的场景文件的方法和装置 |
CN107357554A (zh) * | 2016-05-10 | 2017-11-17 | 北京慧点科技有限公司 | 基于混合模式移动应用开发的方法和装置 |
CN106020806A (zh) * | 2016-05-12 | 2016-10-12 | 武汉斗鱼网络科技有限公司 | 一种安卓系统中标签文本视图的实现方法及系统 |
CN106020725B (zh) * | 2016-05-20 | 2019-07-12 | 努比亚技术有限公司 | 应用文件处理装置及方法 |
CN106055366A (zh) * | 2016-06-03 | 2016-10-26 | 用友网络科技股份有限公司 | 基于Eclipse自定义控件扩展方法 |
CN106485657B (zh) * | 2016-09-19 | 2020-06-09 | 天脉聚源(北京)传媒科技有限公司 | 一种图片处理方法及装置 |
CN107870787B (zh) * | 2016-09-26 | 2021-04-27 | 平安科技(深圳)有限公司 | 应用程序插件化加载方法及系统 |
CN106445539A (zh) * | 2016-09-30 | 2017-02-22 | 南京大学 | 一种基于IFML的Android开发建模方法 |
CN106843994B (zh) * | 2017-01-18 | 2020-10-16 | 北京北信源软件股份有限公司 | 一种基于动态编译的客户端软件运行方法 |
CN108519874B (zh) * | 2017-02-27 | 2022-03-29 | 腾讯科技(深圳)有限公司 | Python项目包的生成方法及装置 |
CN107066257A (zh) * | 2017-03-06 | 2017-08-18 | 北京潘达互娱科技有限公司 | 一种由Unity到安卓的封装方法及装置 |
CN109240684A (zh) * | 2017-06-29 | 2019-01-18 | 武汉斗鱼网络科技有限公司 | 一种页面业务逻辑实现方法及系统 |
CN107807821A (zh) * | 2017-10-26 | 2018-03-16 | 福建中金在线信息科技有限公司 | 动画弹窗的实现方法和终端 |
CN108008945A (zh) * | 2017-12-13 | 2018-05-08 | 天津津航计算技术研究所 | 一种linux系统下pci设备驱动开发方法 |
CN109996119A (zh) * | 2017-12-29 | 2019-07-09 | 深圳Tcl新技术有限公司 | 支持多种用户界面风格的方法、智能电视及存储介质 |
CN108491232B (zh) * | 2018-03-15 | 2022-04-12 | 思必驰科技股份有限公司 | 在语音对话平台加载控件的方法及系统 |
CN110716786B (zh) * | 2019-10-16 | 2021-10-22 | 腾讯科技(深圳)有限公司 | 一种页面展示方法、系统及存储介质 |
CN112748905B (zh) * | 2019-10-29 | 2023-12-08 | 腾讯科技(深圳)有限公司 | 基础库的初始化调用方法、装置、电子设备及存储介质 |
CN111142972B (zh) * | 2019-12-27 | 2021-10-01 | 京东数字科技控股有限公司 | 用于扩展应用程序的功能的方法、装置、系统及介质 |
CN111443939A (zh) * | 2020-04-16 | 2020-07-24 | 视若飞信息科技(上海)有限公司 | 一种软件开发工具包的配置方法、装置和存储介质 |
CN112130826B (zh) * | 2020-10-12 | 2024-06-07 | 中国农业银行股份有限公司 | 组件的生成方法、装置、云平台及计算机存储介质 |
CN113076147B (zh) * | 2021-03-09 | 2024-02-02 | 北京一亩田新农网络科技有限公司 | 动态apk的资源加载方法、装置、系统以及介质 |
CN113342396B (zh) * | 2021-06-07 | 2023-05-05 | 金陵科技学院 | Android系统图像识别中目标可前置选择的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924800A (zh) * | 2005-09-02 | 2007-03-07 | 北京灵图软件技术有限公司 | 用于二次开发平台的基于控件的插件管理系统及方法 |
CN102222006A (zh) * | 2011-07-22 | 2011-10-19 | 武汉天喻信息产业股份有限公司 | 移动Widget用户界面的实现方法及装置 |
CN102981861A (zh) * | 2012-12-12 | 2013-03-20 | 上海航天测控通信研究所 | 一种基于Qt的自定义控件的使用方法 |
-
2013
- 2013-09-10 CN CN201310408562.5A patent/CN103544005B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924800A (zh) * | 2005-09-02 | 2007-03-07 | 北京灵图软件技术有限公司 | 用于二次开发平台的基于控件的插件管理系统及方法 |
CN102222006A (zh) * | 2011-07-22 | 2011-10-19 | 武汉天喻信息产业股份有限公司 | 移动Widget用户界面的实现方法及装置 |
CN102981861A (zh) * | 2012-12-12 | 2013-03-20 | 上海航天测控通信研究所 | 一种基于Qt的自定义控件的使用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103544005A (zh) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544005B (zh) | 一种Android自定义控件的扩展开发方法及装置 | |
CN110825362B (zh) | 低代码应用软件开发系统及方法 | |
CN111290778B (zh) | Ai模型的包装方法、平台及电子设备 | |
CN109117119B (zh) | 一种多态组件融合方法 | |
CN102455912A (zh) | 运行时扩展 | |
Mikkonen et al. | Web applications–spaghetti code for the 21st century | |
CN110709816A (zh) | 将学习模型集成到软件开发系统中 | |
US20120102483A1 (en) | Handling calls to native code in a managed code environment | |
CN103942086B (zh) | 基于aadl的创建、分析和仿真混成系统模型的方法 | |
CN111324390A (zh) | 实现app内容可配置和实时更新的装置及方法 | |
Singh et al. | Reusability of the Software | |
CN113064593A (zh) | 移动app动态化的方法、装置、计算机设备及存储介质 | |
Jones et al. | The AXIOM model framework: Transforming requirements to native code for cross-platform mobile applications | |
CN107346239A (zh) | 一种基于app的应用与开发 | |
Dixit | Android | |
CN103425469A (zh) | 基于mda技术的手机游戏代码生成方法 | |
CN107391220A (zh) | 车机蓝牙开发环境的搭建方法、搭建系统及计算机装置 | |
CN104915199A (zh) | 一种将Flash项目转换为Html5项目的方法与装置 | |
CN114130017A (zh) | 基于游戏引擎的界面部署方法、装置、设备及存储介质 | |
CN102033751B (zh) | Osd屏显的软件适配方法、系统及多媒体终端 | |
CN104778323A (zh) | 集成多源性能分析数据的复杂装备作业流程仿真方法 | |
KR101416096B1 (ko) | 하이브리드 웹 어플리케이션 개발을 위한 호환성 높은 플러그인 시스템 | |
CN116610397A (zh) | 一种动态新增图元的方法及系统 | |
CN114721647B (zh) | 一种基于无代码应用开发的面向对象编程方法 | |
Simonsen | PetriCode: a tool for template-based code generation from CPN models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170808 |
|
CF01 | Termination of patent right due to non-payment of annual fee |