CN106557319A - 负一屏加载对象的方法和装置 - Google Patents

负一屏加载对象的方法和装置 Download PDF

Info

Publication number
CN106557319A
CN106557319A CN201611014901.1A CN201611014901A CN106557319A CN 106557319 A CN106557319 A CN 106557319A CN 201611014901 A CN201611014901 A CN 201611014901A CN 106557319 A CN106557319 A CN 106557319A
Authority
CN
China
Prior art keywords
screen
negative
loaded
destination object
unit
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
CN201611014901.1A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201611014901.1A priority Critical patent/CN106557319A/zh
Publication of CN106557319A publication Critical patent/CN106557319A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

本发明公开了一种负一屏加载对象的方法和装置。其中,该方法包括:于移动终端提供一面负一屏,负一屏用于加载移动终端内安装的至少一个对象;检测移动终端内是否存在待加载的目标对象;当移动终端内存在待加载的目标对象时,在负一屏中创建加载位置;将目标对象加载到负一屏中的加载位置上;在加载位置上显示目标对象。本发明解决了现有技术中无法对加载到负一屏中的对象进行动态配置的技术问题。

Description

负一屏加载对象的方法和装置
技术领域
本发明涉及加载领域,具体而言,涉及一种负一屏加载对象的方法和装置。
背景技术
移动终端的显示屏上显示多个应用,只有当用户进入某个特定的应用之后,才能看到该应用的信息。例如,用户的手机的显示屏上有5个应用,分别为应用A1、应用A2、应用A3、应用A4、应用A5。其中,应用A1为一个即时通讯软件,应用A2为一个购物软件,应用A3为一个新闻应用,应用A4为一个娱乐应用,应用A5为一个旅游软件。当用户想知道应用A1上朋友是否回复了他的信息、或者想知道朋友圈是否有新的动态时,用户必须进入应用A1才能知道。用户通过应用A2购买了一个商品,如果用户想知道该商品的最新派送状态,用户必须进入应用A2,才能够知道该商品的派送状态。
由于用户安装的应用的数量往往很多,用户又经常会有进入应用查看的需要,这就使得用户的操作十分麻烦。用户必须从移动终端的屏幕上进入应用A1,才能查看应用A1。如果用户希望查看下一个应用A3,则回到终端的屏幕上,再查找到终端的屏幕上的应用A3,进入应用A3,才能查看应用A3。由于应用A1、应用A3可能不在同一个终端界面上,用户需要滑动终端的界面,在众多的应用查找需要进入的应用,而且,用户必须进入应用,才能查看该应用的动态,操作繁琐,十分不方便。
负一屏的出现,解决了以上问题。负一屏上可以展示用户正在使用的多个应用,例如,当用户的应用A1有新的消息时,新消息会显示在负一屏上;当用户通过应用A2购买了一个商品,当该商品的派送状态发生变化时(例如到达了新的中转站),新的派送状态也会显示在负一屏上;当用户在应用A3中关注了某一类新闻时,例如,用户在应用A3中关注了体育类新闻,则应用A3新推送的体育类新闻也会显示在负一屏上;当用户在应用A4中关注了某一个明星时,则应用A4新推送的该明星的消息也会显示在负一屏上;当用户通过应用A5购买了一张机票,机票的航班信息也会显示在负一屏上,以提醒用户。
用户在负一屏中,无需进入应用,即能够查看多个应用的最新状态,非常方便快捷。
现有技术中负一屏都是将代码写入到桌面中,当应用程序模块功能发生变动或者有新的需要加载的应用程序模块时,需要重新修改代码,无法对加载到负一屏中的对象进行动态配置,增加了开发成本。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种负一屏加载对象的方法和装置,以至少解决现有技术中无法对加载到负一屏中的对象进行动态配置的技术问题。
根据本发明实施例的一个方面,提供了一种在负一屏加载对象的方法,包括:于移动终端提供一面负一屏,所述负一屏用于加载所述移动终端内安装的至少一个对象;检测所述移动终端内是否存在待加载的目标对象;当所述移动终端内存在待加载的目标对象时,在所述负一屏中创建加载位置;将所述目标对象加载到所述负一屏中的所述加载位置上;在所述加载位置上显示所述目标对象。
根据本发明实施例的另一方面,还提供了一种在负一屏加载对象的装置,包括:提供单元,用于于移动终端提供一面负一屏,所述负一屏用于加载所述移动终端内安装的至少一个对象;检测单元,用于检测所述移动终端内是否存在待加载的目标对象;创建单元,用于当所述移动终端内存在待加载的目标对象时,在所述负一屏中创建加载位置;加载单元,用于将所述目标对象加载到所述负一屏中的所述加载位置上;显示单元,用于在所述加载位置上显示所述目标对象。
在本发明实施例中,如果存在需要加载到移动终端的负一屏中的对象(即目标对象),则在负一屏中创建加载位置,然后将目标对象加载到负一屏中的加载位置上,在目标对象加载到负一屏的加载位置上之后,该加载位置显示目标对象,当有新的待加载对象时,不需要重新修改代码,只需要新建加载位置并进行加载,达到了对加载到负一屏中的对象进行动态配置的技术效果,进而解决了现有技术中无法对加载到负一屏中的对象进行动态配置的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例中在负一屏加载对象的方法的流程图;
图2是根据本发明实施例中第三方app加载方式的示意图;
图3是根据本发明实施例中插件加载方式的示意图;
图4是根据本发明实施例中对生命周期进行调用的示意图;
图5是根据本发明实施例中在第三方应用与负一屏之间或在插件与负一屏之间进行事件传递的示意图;
图6是根据本发明实施例中创建Fragment的视图view的示意图;
图7是根据本发明实施例中负一屏显示智能推荐的界面的示意图;
图8是根据本发明实施例中负一屏显示语音的界面的示意图;
图9是根据本发明实施例中在负一屏加载对象的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
技术术语:
URL:Uniform Resource Locator,统一资源定位符,又叫做网页地址,是互联网上标准的资源的地址。
需要注意的是,实施例中的“微桌面”是一种能够实现本发明实施例在负一屏加载对象的方法的产品的名称,“微桌面负一屏”即为“负一屏”。
根据本发明实施例,提供了一种在负一屏加载对象的方法,如图1所示,该方法包括以下步骤:
步骤S102,于移动终端提供一面负一屏,负一屏用于加载移动终端内安装的至少一个对象。
步骤S104,检测移动终端内是否存在待加载的目标对象。
步骤S106,当移动终端内存在待加载的目标对象时,在负一屏中创建加载位置。
步骤S108,将目标对象加载到负一屏中的加载位置上。
步骤S110,在加载位置上显示目标对象。
移动终端可以是手机、平板等终端。
目标对象为待加载到移动终端上的负一屏中的对象。目标对象可以是应用程序。移动终端上的负一屏上能够加载各种应用程序,例如视频软件、即时通讯软件、浏览器、购物软件、娱乐软件等。
在本发明实施例中,如果存在需要加载到移动终端的负一屏中的对象(即目标对象),则在负一屏中创建加载位置,然后将目标对象加载到负一屏中的该加载位置上。在目标对象加载到负一屏的加载位置上之后,该加载位置显示目标对象,当有新的待加载对象时,不需要重新修改代码,只需要新建加载位置并进行加载,解决了现有技术中无法对加载到负一屏中的对象进行动态配置的技术问题,达到了对加载到负一屏中的对象进行动态配置的技术效果。
可选地,检测移动终端内是否存在待加载的目标对象包括:接收服务器下发的配置文件;解析配置文件,得到待加载的目标对象的配置信息;判断能否获取到配置信息指示的资源;如果判断出能够获取到配置信息指示的资源,确定移动终端内存在待加载的目标对象;如果判断出无法获取到配置信息指示的资源,确定移动终端内不存在待加载的目标对象。
服务器向移动终端下发配置文件,配置文件包含了待加载的目标对象的配置信息。移动终端接收并解析配置文件,得到待加载的目标对象的配置信息。配置信息可以是包名、路径信息等。
如果移动终端无法获取到配置信息指示的资源,则说明目标对象的资源是不存在的,也可能是目标对象的资源已经被删除,在此种情况下,对目标对象进行加载是不安全的,此种情况下,确定移动终端内不存在待加载的目标对象。
如果移动终端能够获取到配置信息指示的资源,则说明目标对象的资源是存在的,对目标对象进行加载是安全的,此种情况下,确定移动终端内存在待加载的目标对象。在负一屏中创建加载位置,将目标对象加载到负一屏中的加载位置上,在加载位置上显示目标对象。
例如,服务器向移动终端下发配置文件F1,配置文件F1包含了待加载的目标对象的配置信息。移动终端接收并解析配置文件F1,得到待加载的目标对象的配置信息。假设配置信息是某一个应用程序的URL,为简便起见,用APP1表示该应用程序。如果移动终端无法获取到APP1的资源,则说明APP1的资源是不存在的,也可能是APP1的资源已经被删除,在此种情况下,对APP1进行加载是不安全的,此种情况下,确定移动终端内不存在待加载的目标对象。如果移动终端能够获取到APP1的资源,则说明APP1的资源是存在的,对APP1进行加载是安全的,此种情况下,确定移动终端内存在待加载的目标对象,在负一屏中创建加载位置,将APP1加载到负一屏中的加载位置上,在加载位置上显示APP1。
只有在判断出能够获取到配置信息指示的资源的情况下,才确定移动终端内存在待加载的目标对象,在负一屏中创建加载位置,将目标对象加载到负一屏中的加载位置上,提高了加载的安全性。
可选地,将目标对象加载到负一屏中的加载位置上包括:创建类加载器classloader;通过类加载器classloader将目标对象加载到负一屏中的加载位置上。通过Java的接口,输入class类的路径,能够创建类加载器classloader。
与普通程序不同的是,Java程序(class文件)并不是本地的可执行程序。当运行Java程序时,首先运行Java虚拟机(JVM),然后再把Java class加载到JVM里面运行,负载加载Java class的这部分叫classloader。
在以下情况中,JVM会使用classloader加载一个类:当使用Java去执行一个类,JVM使用ApplicationClassLoader加载这个类;如果类A引用了类B,不管是直接引用还是用Class.forName()引用,JVM就会找到加载类A的classloader,并用这个classloader来加载类B。JVM按照运行时的有效执行语句,来决定是否需要装载新类,从而装载尽可能少的类。
Java自带的classloader只能够从本地文件系统加载标准的Java class文件,在本发明实施例中,创建了类加载器classloader,由于目标对象是一个视图的类,能够被类加载器classloader加载,在创建目标对象后,通过类加载器classloader将目标对象加载到负一屏中的加载位置上。相比于Java自带的classloader,本发明实施例创建的classloader具有以下优势:(1)在执行非置信代码之前,自动验证数字签名;(2)动态地创建符合用户特定需要的定制化构建类;(3)从特定的场所取得Java class,例如,从数据库中取得Java class。
classloader是树状结构。当需要创建classloader时,需要继承java.lang.ClassLoader或者它的子类。在实例化每个ClassLoader对象时,需要指定一个父对象;如果没有指定父对象,系统会自动指定ClassLoader.getSystemClassLoader()为父对象。
当创建classloader,可以采用重载findClass()这个方法。
在本发明实施例中,创建类加载器classloader的方法可以为以下两种方法中的任意一种:
创建类加载器classloader的第一种方法:
创建类加载器classloader的第一种方法适用于已经安装了第三方应用的情况。如图2所示,利用安卓系统android本身提供的接口createPackageContext,通过已安装的第三方应用的包名,动态地创建出第三方应用的类加载器classloader,其中,目标对象为第三方应用中待加载的对象。在本发明实施例中,微桌面能够回调应用程序模块,应用程序模块也能回调微桌面,形成闭环。当应用程序模块允许在微桌面显示时,微桌面负一屏显示应用程序模块,用户能够在负一屏看到该应用程序的动态;当模块不允许在微桌面显示时,微桌面负一屏不显示应用程序模块,用户无法在负一屏看到该应用程序的动态。
创建类加载器classloader的第二种方法:
创建类加载器classloader的第二种方法适用于未安装第三方应用的情况。如图3所示,利用安卓系统android本身提供的接口dexClassLoader,通过插件的存放路径,动态地创建出插件的类加载器classloader,其中,目标对象为插件中待加载的对象。在本发明实施例中,微桌面能够回调应用程序模块,应用程序模块也能回调微桌面,形成闭环。当应用程序模块允许在微桌面显示时,微桌面负一屏显示应用程序模块,用户能够在负一屏看到该应用程序的动态;当模块不允许在微桌面显示时,微桌面负一屏不显示应用程序模块,用户无法在负一屏看到该应用程序的动态。
可选地,在将目标对象加载到负一屏中的加载位置上之后,还包括:通过基类BaseFragment中实现的callback接口,在第三方应用与负一屏之间进行通信,以对目标对象进行控制。其中,目标对象为第三方应用中待加载的对象或插件中待加载的对象。
在其他实施例中,在将目标对象加载到负一屏中的加载位置上之后,还包括:通过基类BaseFragment中实现的callback接口,在插件与负一屏之间进行通信,以对目标对象进行控制。
如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,则指针所指向的函数被称为回调函数callback。
回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
回调函数callback实现的机制如下:(1)定义一个回调函数;(2)提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者;(3)当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。
对于已经安装了第三方应用的情况,在将目标对象加载到负一屏中的加载位置上之后,通过基类BaseFragment中实现的callback接口,在第三方应用与负一屏之间进行通信,以对目标对象进行控制。
对于未安装第三方应用的情况,在将目标对象加载到负一屏中的加载位置上之后,通过基类BaseFragment中实现的callback接口,在插件与负一屏之间进行通信,以对目标对象进行控制。
在本发明实施例中,通过基类BaseFragment中实现的callback接口,在第三方应用与负一屏之间或在插件与负一屏之间进行通信,以对目标对象进行控制,由于回调函数callback能够把调用者与被调用者分开,所以调用者不关心谁是被调用者,调用者只需要知道存在一个具有特定原型和限制条件的被调用函数,回调函数允许用户把需要调用的函数的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活地使用不同的方法。
此外,由于回调函数callback能够把调用者与被调用者分开,因此,负一屏与目标对象是相对独立的,对目标对象进行更新、更改不会影响负一屏对目标对象的调用,不需要像现有技术中那样修改桌面的代码,因此,大大降低了开发成本。
可选地,通过基类BaseFragment中实现的callback接口,在第三方应用与负一屏之间或在插件与负一屏之间进行通信,以对目标对象进行控制包括以下至少之一:对目标对象的生命周期进行调用;在第三方应用与负一屏之间或在插件与负一屏之间进行事件传递。
图4示出了根据本发明实施例对生命周期进行调用的示意图。图4中,各个术语的含义如下:
Activity组件:
onCreate()-第一次调用一个activity就会调用。
onResume()-当activity可以获取用户焦点的时候会调用。
onDestory()-当activity被销毁时会调用。
Fragment组件:
onAttach()-当fragment与activity发生关联时调用。
onCreateView-创建该fragment的视图。
onResume-与fragment关联的activity的onResume调用。
onDestoryView-当该fragment的视图被移除时调用。
onDestroy-与fragment关联的activity的onDestroy调用。
onDetach-当fragment与activity关联被取消时调用。
从图4可以看出,在本发明实施例中,在第三方应用与负一屏之间或在插件与负一屏之间进行通信,能够对目标对象进行控制,能够对目标对象的生命周期进行调用,能够构建、显示、销毁目标对象。
事件传递可以是指用户操作的传递。例如,手机的负一屏上显示了4个应用的图标,分别为“秒杀”、“包邮”、“电影票”、“美食”,当用户触摸屏幕点击图标“电影票”时,负一屏能够将用户的触摸屏幕的操作传递给应用“电影票”,该应用程序会打开,用户就能够选购电影票。
图5是根据本发明实施例中在第三方应用与负一屏之间或在插件与负一屏之间进行事件传递的示意图。如图5所示,“Host”是微桌面,“Client”是应用程序模块,“Activity”是安卓前端展示组件;“onBackPressed”是虚拟返回键回调的触发;“onTouchEvent”是触摸屏幕;“onScrolling”是滑动屏幕;“spreadManager”是负一屏框架管理工具;“BaseFragment”是父类组件;“Fragment”是组件。
用户对负一屏进行的操作包括:虚拟返回键回调的触发、触摸屏幕、滑动屏幕等。当用户对移动终端的负一屏进行操作时,负一屏能够将用户的操作传递给目标对象。例如,当用户滑动负一屏的某一个应用的图标之后,负一屏会将用户的滑动屏幕的信息传递给该应用,这样用户就能够进入该应用,对该应用进行操作。
在本发明实施例中,在第三方应用与负一屏之间或在插件与负一屏之间进行事件传递,能够使得用户对负一屏的操作传递给应用,以使得应用执行相应的操作,使得用户无需从主屏幕进入应用,而是能够直接从负一屏进入应用,简化了用户进入应用的过程。
在本发明实施例中,微桌面负一屏界面的添加,采用了增强碎片化的方式实现动态的添加负一屏,实现方式是先将一个自定义的view添加到微桌面的Activity中,并通过动态的去创建第三方app或者是插件的view添加到微桌面的自定义view上实现微桌面的负一屏。
微桌面碎片化方案的核心原理如下:
图6示出本发明实施例中利用重写Fragment子类,从而创建该Fragment的视图view。view为待加载的界面。在图6中,“Host”是微桌面,“Client”是应用程序模块,“SpreadMainView”是负一屏,“BaseFragment”是父类组件,“MainView”是桌面首屏。当存在待加载对象时,在负一屏中创建加载位置,将目标对象加载到负一屏中的加载位置上。
微桌面碎片化方案的类Fragment的Client端的生命周期调用:
图4示出了根据本发明实施例对生命周期进行调用的示意图。图4中,各个术语的含义如下:
Activity组件:
onCreate()-第一次调用一个activity就会调用。
onResume()-当activity可以获取用户焦点的时候会调用。
onDestory()-当activity被销毁时会调用。
Fragment组件:
onAttach()-当fragment与activity发生关联时调用。
onCreateView-创建该fragment的视图。
onResume-与fragment关联的activity的onResume调用。
onDestoryView-当该fragment的视图被移除时调用。
onDestroy-与fragment关联的activity的onDestroy调用。
onDetach-当fragment与activity关联被取消时调用。
从图4可以看出,在本发明实施例中,在第三方应用与负一屏之间或在插件与负一屏之间进行通信,能够对目标对象进行控制,能够对目标对象的生命周期进行调用,能够构建、显示、销毁目标对象。
微桌面碎片化方案的事件传递:
图5示出了根据本发明实施例在第三方应用与负一屏之间或在插件与负一屏之间进行事件传递的示意图。如图5所示,“Host”是微桌面,“Client”是应用程序模块,“Activity”是安卓前端展示组件;“onBackPressed”是虚拟返回键回调的触发;“onTouchEvent”是触摸屏幕;“onScrolling”是滑动屏幕;“spreadManager”是负一屏框架管理工具;“BaseFragment”是父类组件;“Fragment”是组件。
用户对负一屏进行的操作包括:虚拟返回键回调的触发、触摸屏幕、滑动屏幕等。当用户对移动终端的负一屏进行操作时,负一屏能够将用户的操作传递给目标对象。例如,当用户滑动负一屏的某一个应用的图标之后,负一屏会将用户的滑动屏幕的信息传递给该应用,这样用户就能够进入该应用,对该应用进行操作。
在本发明实施例中,在第三方应用与负一屏之间或在插件与负一屏之间进行事件传递,能够使得用户对负一屏的操作传递给应用,以使得应用执行相应的操作,使得用户无需从主屏幕进入应用,而是能够直接从负一屏进入应用,简化了用户进入应用的过程。
微桌面碎片化方案的第三方app加载方式实现:
如图2所示,利用android本身提供的接口createPackageContext,通过第三方应用app的包名,动态地创建出已安装的第三方应用classloader,通过第三方应用的classloader加载出第三方应用实现的加载到微桌面负一屏的View对象,通过基类BaseFragment中实现的callback接口(回调接口)进行微桌面和其它第三方app的通信,进行生命周期的调用和各种事件的传递。
微桌面碎片化方案的插件加载方式实现:
如图3所示,利用android本身提供的接口dexClassLoader,通过插件的存放路径,动态地创建出插件的classloader,通过插件的classloader加载出插件实现的加载到微桌面负一屏的View对象,通过基类BaseFragment中实现的callback接口(回调接口)进行微桌面和插件的通信,进行生命周期的调用和各种事件的传递。
图2和图3中,作为一种可选的实施例,可以将通过callback接口(回调接口)实现第三方应用或者插件的通信的方式替换为直接利用java反射等方式直接调用通信。
在本发明实施例中,基于微桌面的碎片化的接入框架,能够将微桌面的负一屏开放给其它合作方接入,提高了微桌面的接入能力,合作方只要按照微桌面的接入方式进行对接,就能将相应的负一屏实现接入到微桌面中,减小了合作上的难度,而且能够动态地支持是否显示微桌面负一屏,当用户安装了相应的第三方app或者插件,才会显示出负一屏,让微桌面可以灵活适配负一屏的界面,或者对不同用户展示不同的负一屏界面。对微桌面的模块进行了解耦,提高了开发负一屏的效率。
当用户安装了微桌面智能推荐的安装包或者插件,微桌面的负一屏就会显示智能推荐的界面,界面如图7所示。图7中,负一屏的上部有搜索框,用户可以输入关键词进行搜索;中部示出了4个建议的应用,如果用户点击“展开”,负一屏会展示更多建议的应用;下部示出了4个关于吃喝玩乐的应用,如果用户点击“更多”,负一屏会展示更多关于吃喝玩乐的应用。用户可以通过滑动、点击负一屏中应用的图标对相应的应用进行操作,例如,用户点击“美食”,即可从负一屏进入该应用。
当用户安装了语音助手的安装包或者插件,微桌面的负一屏就会显示语音的界面提供语音给用户使用操作,界面如图8所示。用户可以通过语音对负一屏进行操作,以达到打开相应的应用的目的。例如,用户发出声音“我想听歌”,终端接收该语言信号,经过语音助手解析之后,提供给微桌面,则显示界面从负一屏切换成音乐应用。当用户处于驾车或者其他一些不方便手动操作终端的情况下时,使用语音输入方式极大地方便了用户对负一屏的操作。
微桌面负一屏的接入采用了新的碎片化加载接入方式,可以支持将独立安装的应用的界面、第三方插件实现的界面快速地接入到桌面负一屏上,桌面实现了快速接入的框架技术,实现了动态地显示桌面负一屏的方式,如果终端安装了接入负一屏的app或者插件,就能显示出微桌面的负一屏界面,否则不显示桌面负一屏界面。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例,还提供了一种用于实施上述在负一屏加载对象的方法的在负一屏加载对象的装置。
图9是根据本发明实施例中在负一屏加载对象的装置的示意图。如图9所示,该装置包括:提供单元10、检测单元20、创建单元30、加载单元40、显示单元50。
提供单元10,用于于移动终端提供一面负一屏,负一屏用于加载移动终端内安装的至少一个对象。
检测单元20,用于检测移动终端内是否存在待加载的目标对象。
创建单元30,用于当移动终端内存在待加载的目标对象时,在负一屏中创建加载位置。
加载单元40,用于将目标对象加载到负一屏中的加载位置上。
显示单元50,用于在加载位置上显示目标对象。
可选地,加载单元40包括:创建子单元、加载子单元。创建子单元,用于创建类加载器classloader。加载子单元,用于通过类加载器classloader将目标对象加载到负一屏中的加载位置上。
可选地,创建子单元包括:第一创建模块。第一创建模块,用于利用安卓系统android本身提供的接口createPackageContext,通过已安装的第三方应用的包名,创建出第三方应用的类加载器classloader。
可选地,创建子单元包括:第二创建模块。第二创建模块,用于利用安卓系统android本身提供的接口dexClassLoader,通过插件的存放路径,创建出插件的类加载器classloader,其中,目标对象为插件中待加载的对象。
可选地,该装置还包括:通信单元。通信单元,用于在加载单元40将目标对象加载到负一屏中的加载位置上之后,通过基类BaseFragment中实现的callback接口,在第三方应用与负一屏之间或在插件与负一屏之间进行通信,以对目标对象进行控制,其中,目标对象为第三方应用中待加载的对象或插件中待加载的对象。
可选地,通信单元包括以下至少之一:调用子单元、传递子单元。调用子单元,用于对目标对象的生命周期进行调用。传递子单元,用于在第三方应用与负一屏之间或在插件与负一屏之间进行事件传递。
可选地,检测单元20包括:接收子单元、解析子单元、判断子单元、第一确定子单元、第二确定子单元。接收子单元,用于接收服务器下发的配置文件。解析子单元,用于解析配置文件,得到待加载的目标对象的配置信息。判断子单元,用于判断能否获取到配置信息指示的资源。第一确定子单元,用于如果判断子单元判断出能够获取到配置信息指示的资源,确定移动终端内存在待加载的目标对象。第二确定子单元,用于如果判断子单元判断出无法获取到配置信息指示的资源,确定移动终端内不存在待加载的目标对象。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于存储本发明实施例中在负一屏加载对象的方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于移动通信网络、广域网、城域网或局域网的网络中的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,于移动终端提供一面负一屏,所述负一屏用于加载所述移动终端内安装的至少一个对象;
S2,检测所述移动终端内是否存在待加载的目标对象;
S3,当所述移动终端内存在待加载的目标对象时,在所述负一屏中创建加载位置;
S4,将所述目标对象加载到所述负一屏中的所述加载位置上;及
S5,在所述加载位置上显示所述目标对象。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:创建类加载器classloader;通过所述类加载器classloader将所述目标对象加载到所述负一屏中的所述加载位置上。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:利用安卓系统android本身提供的接口createPackageContext,通过已安装的第三方应用的包名,创建出所述第三方应用的类加载器classloader。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:利用安卓系统android本身提供的接口dexClassLoader,通过插件的存放路径,创建出所述插件的类加载器classloader,其中,所述目标对象为所述插件中待加载的对象。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:通过基类BaseFragment中实现的callback接口,在第三方应用与所述负一屏之间或在插件与所述负一屏之间进行通信,以对所述目标对象进行控制,其中,所述目标对象为所述第三方应用中待加载的对象或所述插件中待加载的对象。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行以下至少之一:对所述目标对象的生命周期进行调用;在所述第三方应用与所述负一屏之间或在所述插件与所述负一屏之间进行事件传递。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:接收服务器下发的配置文件;解析所述配置文件,得到待加载的目标对象的配置信息;判断能否获取到所述配置信息指示的资源;如果判断出能够获取到所述配置信息指示的资源,确定所述移动终端内存在待加载的目标对象;如果判断出无法获取到所述配置信息指示的资源,确定所述移动终端内不存在待加载的目标对象。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种在负一屏加载对象的方法,其特征在于,包括:
于移动终端提供一面负一屏,所述负一屏用于加载所述移动终端内安装的至少一个对象;
检测所述移动终端内是否存在待加载的目标对象;
当所述移动终端内存在待加载的目标对象时,在所述负一屏中创建加载位置;
将所述目标对象加载到所述负一屏中的所述加载位置上;及
在所述加载位置上显示所述目标对象。
2.根据权利要求1所述的方法,其特征在于,将所述目标对象加载到所述负一屏中的所述加载位置上包括:
创建类加载器classloader;
通过所述类加载器classloader将所述目标对象加载到所述负一屏中的所述加载位置上。
3.根据权利要求2所述的方法,其特征在于,所述创建类加载器classloader包括:
利用安卓系统android本身提供的接口createPackageContext,通过已安装的第三方应用的包名,创建出所述第三方应用的类加载器classloader。
4.根据权利要求2所述的方法,其特征在于,所述创建类加载器classloader包括:
利用安卓系统android本身提供的接口dexClassLoader,通过插件的存放路径,创建出所述插件的类加载器classloader,其中,所述目标对象为所述插件中待加载的对象。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在将所述目标对象加载到所述负一屏中的所述加载位置上之后,还包括:
通过基类BaseFragment中实现的callback接口,在第三方应用与所述负一屏之间或在插件与所述负一屏之间进行通信,以对所述目标对象进行控制,其中,所述目标对象为所述第三方应用中待加载的对象或所述插件中待加载的对象。
6.根据权利要求5所述的方法,其特征在于,通过基类BaseFragment中实现的callback接口,在第三方应用与所述负一屏之间或在插件与所述负一屏之间进行通信,以对所述目标对象进行控制包括以下至少之一:
对所述目标对象的生命周期进行调用;
在所述第三方应用与所述负一屏之间或在所述插件与所述负一屏之间进行事件传递。
7.根据权利要求1所述的方法,其特征在于,检测所述移动终端内是否存在待加载的目标对象包括:
接收服务器下发的配置文件;
解析所述配置文件,得到待加载的目标对象的配置信息;
判断能否获取到所述配置信息指示的资源;
如果判断出能够获取到所述配置信息指示的资源,确定所述移动终端内存在待加载的目标对象;
如果判断出无法获取到所述配置信息指示的资源,确定所述移动终端内不存在待加载的目标对象。
8.一种在负一屏加载对象的装置,其特征在于,包括:
提供单元,用于于移动终端提供一面负一屏,所述负一屏用于加载所述移动终端内安装的至少一个对象;
检测单元,用于检测所述移动终端内是否存在待加载的目标对象;
创建单元,用于当所述移动终端内存在待加载的目标对象时,在所述负一屏中创建加载位置;
加载单元,用于将所述目标对象加载到所述负一屏中的所述加载位置上;及
显示单元,用于在所述加载位置上显示所述目标对象。
9.根据权利要求8所述的装置,其特征在于,所述加载单元包括:
创建子单元,用于创建类加载器classloader;
加载子单元,用于通过所述类加载器classloader将所述目标对象加载到所述负一屏中的所述加载位置上。
10.根据权利要求9所述的装置,其特征在于,所述创建子单元包括:
第一创建模块,用于利用安卓系统android本身提供的接口createPackageContext,通过已安装的第三方应用的包名,创建出所述第三方应用的类加载器classloader。
11.根据权利要求9所述的装置,其特征在于,所述创建子单元包括:
第二创建模块,用于利用安卓系统android本身提供的接口dexClassLoader,通过插件的存放路径,创建出所述插件的类加载器classloader,其中,所述目标对象为所述插件中待加载的对象。
12.根据权利要求8至11中任一项所述的装置,其特征在于,还包括:
通信单元,用于在所述加载单元将所述目标对象加载到所述负一屏中的所述加载位置上之后,通过基类BaseFragment中实现的callback接口,在第三方应用与所述负一屏之间或在插件与所述负一屏之间进行通信,以对所述目标对象进行控制,其中,所述目标对象为所述第三方应用中待加载的对象或所述插件中待加载的对象。
13.根据权利要求12所述的装置,其特征在于,所述通信单元包括以下至少之一:
调用子单元,用于对所述目标对象的生命周期进行调用;
传递子单元,用于在所述第三方应用与所述负一屏之间或在所述插件与所述负一屏之间进行事件传递。
14.根据权利要求8所述的装置,其特征在于,所述检测单元包括:
接收子单元,用于接收服务器下发的配置文件;
解析子单元,用于解析所述配置文件,得到待加载的目标对象的配置信息;
判断子单元,用于判断能否获取到所述配置信息指示的资源;
第一确定子单元,用于如果所述判断子单元判断出能够获取到所述配置信息指示的资源,确定所述移动终端内存在待加载的目标对象;
第二确定子单元,用于如果所述判断子单元判断出无法获取到所述配置信息指示的资源,确定所述移动终端内不存在待加载的目标对象。
CN201611014901.1A 2016-11-17 2016-11-17 负一屏加载对象的方法和装置 Pending CN106557319A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611014901.1A CN106557319A (zh) 2016-11-17 2016-11-17 负一屏加载对象的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611014901.1A CN106557319A (zh) 2016-11-17 2016-11-17 负一屏加载对象的方法和装置

Publications (1)

Publication Number Publication Date
CN106557319A true CN106557319A (zh) 2017-04-05

Family

ID=58444837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611014901.1A Pending CN106557319A (zh) 2016-11-17 2016-11-17 负一屏加载对象的方法和装置

Country Status (1)

Country Link
CN (1) CN106557319A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315531A (zh) * 2017-07-17 2017-11-03 深圳铂睿智恒科技有限公司 智能终端应用的控制方法及系统
CN109032479A (zh) * 2018-06-07 2018-12-18 珠海格力电器股份有限公司 一种打开应用中功能界面的方法和装置
CN109918001A (zh) * 2019-03-28 2019-06-21 北京小米移动软件有限公司 界面显示方法、装置及存储介质
CN110083355A (zh) * 2019-04-26 2019-08-02 北京奇艺世纪科技有限公司 一种app页面的处理方法及装置
CN110231922A (zh) * 2019-05-23 2019-09-13 珠海格力电器股份有限公司 一种移动终端显示控制方法及移动终端
CN110362759A (zh) * 2019-07-03 2019-10-22 北京小米移动软件有限公司 一种搜索结果处理方法、装置及介质
CN110362760A (zh) * 2019-07-04 2019-10-22 北京小米移动软件有限公司 一种智能提示搜索结果的方法、装置及介质
CN110427135A (zh) * 2019-08-14 2019-11-08 北京字节跳动网络技术有限公司 确定应用呼出的方法、装置、终端及存储介质
WO2020024989A1 (zh) * 2018-07-31 2020-02-06 中兴通讯股份有限公司 负一屏加载方法、装置、终端及计算机可读存储介质
CN110865765A (zh) * 2019-11-06 2020-03-06 青岛海信移动通信技术股份有限公司 终端及地图控制方法
CN110874198A (zh) * 2018-08-31 2020-03-10 成都鼎桥通信技术有限公司 一种门户信息展示方法和装置
CN111176766A (zh) * 2019-12-16 2020-05-19 青岛海信移动通信技术股份有限公司 一种通信终端及组件显示方法
CN111813476A (zh) * 2020-06-30 2020-10-23 中天掌金(北京)科技有限公司 一种基于安卓负一屏的手机银行应用方法
CN113419665A (zh) * 2021-08-25 2021-09-21 腾讯科技(深圳)有限公司 一种应用显示方法、相关装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955656A (zh) * 2012-10-26 2013-03-06 深圳市永利讯科技股份有限公司 一种移动通信终端的全媒体桌面操作方法和装置
CN104021024A (zh) * 2014-06-25 2014-09-03 广州市久邦数码科技有限公司 一种桌面系统功能屏幕的加载方法及其系统
CN106020901A (zh) * 2016-05-30 2016-10-12 青岛海信电器股份有限公司 一种应用程序入口配置方法及终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955656A (zh) * 2012-10-26 2013-03-06 深圳市永利讯科技股份有限公司 一种移动通信终端的全媒体桌面操作方法和装置
CN104021024A (zh) * 2014-06-25 2014-09-03 广州市久邦数码科技有限公司 一种桌面系统功能屏幕的加载方法及其系统
CN106020901A (zh) * 2016-05-30 2016-10-12 青岛海信电器股份有限公司 一种应用程序入口配置方法及终端

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315531A (zh) * 2017-07-17 2017-11-03 深圳铂睿智恒科技有限公司 智能终端应用的控制方法及系统
CN109032479A (zh) * 2018-06-07 2018-12-18 珠海格力电器股份有限公司 一种打开应用中功能界面的方法和装置
US11966795B2 (en) 2018-07-31 2024-04-23 Zte Corporation Method and device for loading minus-one screen, terminal, and computer readable storage medium
WO2020024989A1 (zh) * 2018-07-31 2020-02-06 中兴通讯股份有限公司 负一屏加载方法、装置、终端及计算机可读存储介质
CN110874198B (zh) * 2018-08-31 2023-08-22 成都鼎桥通信技术有限公司 一种门户信息展示方法和装置
CN110874198A (zh) * 2018-08-31 2020-03-10 成都鼎桥通信技术有限公司 一种门户信息展示方法和装置
CN109918001A (zh) * 2019-03-28 2019-06-21 北京小米移动软件有限公司 界面显示方法、装置及存储介质
CN110083355A (zh) * 2019-04-26 2019-08-02 北京奇艺世纪科技有限公司 一种app页面的处理方法及装置
CN110083355B (zh) * 2019-04-26 2023-07-25 北京奇艺世纪科技有限公司 一种app页面的处理方法及装置
CN110231922B (zh) * 2019-05-23 2021-01-22 珠海格力电器股份有限公司 一种移动终端显示控制方法及移动终端
CN110231922A (zh) * 2019-05-23 2019-09-13 珠海格力电器股份有限公司 一种移动终端显示控制方法及移动终端
CN110362759A (zh) * 2019-07-03 2019-10-22 北京小米移动软件有限公司 一种搜索结果处理方法、装置及介质
CN110362760B (zh) * 2019-07-04 2023-02-21 北京小米移动软件有限公司 一种智能提示搜索结果的方法、装置及介质
CN110362760A (zh) * 2019-07-04 2019-10-22 北京小米移动软件有限公司 一种智能提示搜索结果的方法、装置及介质
CN110427135B (zh) * 2019-08-14 2021-04-06 北京字节跳动网络技术有限公司 确定应用呼出的方法、装置、终端及存储介质
CN110427135A (zh) * 2019-08-14 2019-11-08 北京字节跳动网络技术有限公司 确定应用呼出的方法、装置、终端及存储介质
CN110865765A (zh) * 2019-11-06 2020-03-06 青岛海信移动通信技术股份有限公司 终端及地图控制方法
CN111176766A (zh) * 2019-12-16 2020-05-19 青岛海信移动通信技术股份有限公司 一种通信终端及组件显示方法
CN111813476A (zh) * 2020-06-30 2020-10-23 中天掌金(北京)科技有限公司 一种基于安卓负一屏的手机银行应用方法
CN111813476B (zh) * 2020-06-30 2024-04-05 中天掌金(北京)科技有限公司 一种基于安卓负一屏的手机银行应用方法
CN113419665A (zh) * 2021-08-25 2021-09-21 腾讯科技(深圳)有限公司 一种应用显示方法、相关装置及设备
CN113419665B (zh) * 2021-08-25 2021-11-16 腾讯科技(深圳)有限公司 一种应用显示方法、相关装置及设备

Similar Documents

Publication Publication Date Title
CN106557319A (zh) 负一屏加载对象的方法和装置
US10367920B2 (en) Mechanism for determining whether to redirect a request originally destined for a server based on a uniform resource locator
US8650481B1 (en) Stable and secure use of content scripts in browser extensions
CN1757216B (zh) 创建基于无线应用程序的组件并与之通信的系统和方法
US8499282B2 (en) System and method for extending capabilities and execution efficiency of script based applications
US7471947B1 (en) Method and system for accessing a universal message handler on a mobile device
US8381096B2 (en) Managing list tailoring for a mobile device
CA2604445C (en) A method and system for implementing customizable container services as component wireless applications
EP3647981A1 (en) Security scanning method and apparatus for mini program, and electronic device
US8843646B2 (en) Multi-desktop interaction using nested remote desktop sessions
CN110061909A (zh) 用于处理信息的方法和设备
US20030060896A9 (en) Software, devices and methods facilitating execution of server-side applications at mobile devices
US20090300063A1 (en) Software, devices and methods facilitating execution of server-side applications at mobile devices
WO2008109821A1 (en) Context based data searching
CN109408136A (zh) 信息处理方法、装置、存储介质及电子设备
Helal Pervasive java
CA2557811A1 (en) Execution of unverified programs in a wireless device operating environment
US9424364B2 (en) Integrated context-driven information search and interaction
US20060190813A1 (en) Mobile device having extensible sofware for presenting server-side applications, software and methods
CN107894891A (zh) 程序打包方法及装置与程序安装方法及装置
US9198009B2 (en) System and method for providing end to end interactive mobile applications using SMS
CN108764374A (zh) 图像分类方法、系统、介质和电子设备
WO2003067427A2 (en) Graphical user interface
WO2012044769A2 (en) Generating behavior information for a link
CN110297976A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170405