CN104050035A - 应用程序的处理方法及装置 - Google Patents

应用程序的处理方法及装置 Download PDF

Info

Publication number
CN104050035A
CN104050035A CN201410203339.1A CN201410203339A CN104050035A CN 104050035 A CN104050035 A CN 104050035A CN 201410203339 A CN201410203339 A CN 201410203339A CN 104050035 A CN104050035 A CN 104050035A
Authority
CN
China
Prior art keywords
application program
running background
switched
front stage
stage operation
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.)
Granted
Application number
CN201410203339.1A
Other languages
English (en)
Other versions
CN104050035B (zh
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.)
Beijing Xiaomi Technology Co Ltd
Xiaomi Inc
Original Assignee
Xiaomi Inc
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 Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201410203339.1A priority Critical patent/CN104050035B/zh
Publication of CN104050035A publication Critical patent/CN104050035A/zh
Priority to BR112015000216-1A priority patent/BR112015000216B1/pt
Priority to JP2016518833A priority patent/JP6072362B2/ja
Priority to RU2014152488A priority patent/RU2606051C2/ru
Priority to KR1020147035959A priority patent/KR101668786B1/ko
Priority to MX2015000194A priority patent/MX359997B/es
Priority to PCT/CN2014/089218 priority patent/WO2015172518A1/zh
Priority to US14/586,968 priority patent/US20150333971A1/en
Priority to EP15248028.1A priority patent/EP2945058B1/en
Application granted granted Critical
Publication of CN104050035B publication Critical patent/CN104050035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本公开是关于一种应用程序的处理方法及装置,涉及电子终端领域,能够有效地节省电子终端的处理资源,提高资源的利用效率。本公开的方法主要包括:将应用程序从前台运行切换到后台运行;其中,所述应用程序的进程包括用户界面UI进程和逻辑进程;结束所述应用程序的UI进程,并继续运行所述应用程序的逻辑进程。本公开的实施例主要用在电子终端的应用程序的处理过程中。

Description

应用程序的处理方法及装置
技术领域
本公开涉及电子终端领域,尤其涉及一种应用程序的处理方法及装置。 
背景技术
目前针对手机、pad等电子终端的应用程序非常多,在一个电子终端上经常会有多个应用程序同时运行的场景。而应用程序的运行包括两种形式:一种是前台运行,即直接在屏幕显示的窗口或界面上运行,呈现出程序运行的当前界面,可以和电子终端使用者通过显示的界面互动。另一种形式是后台运行,即屏幕不呈现应用程序的运行界面,但该应用程序继续提供服务,可以随时切换成前台并显示出来。 
在电子终端的实际使用过程中,经常会有应用程序从前台运行切换到后台运行的需求。例如,用户打开了音乐应用并开始播放音乐,此时音乐应用的进程会计算出该音乐应用的UI(User Interface,用户界面)并显示出来,界面内容可以包含播放控制按钮、唱片封面、歌曲信息以及滚动歌词等。而此时,用户将音乐应用切换到后台运行,并开启备份应用并开始备份终端数据,备份应用的进程也会计算包含备份控制按钮和备份进度的UI并显示。在备份进行的同时,用户还可以切换到主页面进行其他操作,这里不再一一举例。 
对于这类场景,相关技术中的处理方法为:当应用程序切换到后台运行时,继续执行与前台运行时一样的进程,应用程序的数据、服务以及UI都会和前台运行时一样继续处理,只是将UI隐藏。当再次将该应用程序切换到前台运行时,将UI显示。 
在上述应用程序处理的过程中,至少存在以下问题:由于在应用程序切换到后台运行后,仍然执行与前台运行时一样的进程,占用大量的处理资源,并且实际场景中用户并不关心后台程序的UI,因此这样的处理方式造成了处理资源的浪费,资源利用效率较低。 
发明内容
为克服相关技术中存在的问题,本公开提供一种应用程序的处理方法及装置,能够有效地节省电子终端的处理资源,提高资源的利用效率。 
根据本公开实施例的第一方面,提供一种应用程序的处理方法,包括: 
将应用程序从前台运行切换到后台运行;其中,所述应用程序的进程包括用户界面UI进程和逻辑进程; 
结束所述应用程序的UI进程,并继续运行所述应用程序的逻辑进程。 
根据本公开实施例的第二方面,提供一种应用程序的处理装置,包括: 
第一切换单元,用于将应用程序从前台运行切换到后台运行;其中,所述应用程序的进程包括用户界面UI进程和逻辑进程; 
结束单元,用于在所述第一切换单元将应用程序从前台运行切换到后台运行之后,结束所述应用程序的UI进程; 
运行单元,用于在所述第一切换单元将应用程序从前台运行切换到后台运行之后,继续运行所述应用程序的逻辑进程。 
本公开的实施例提供的技术方案可以包括以下有益效果:通过将应用程序的UI进程和逻辑进程分开独立运行,使得在应用程序切换到后台运行时,可以继续运行用户需要的逻辑进程,而将用户不关心的UI进程结束,与相关技术中将应用程序的运行都集合在一个进程中运行并在后台仍然继续运行应用程序的所有程序的技术相比,可以在应用程序进入后台运行时,节省UI计算所占用的CPU处理资源和内存空间,从而降低了多个应用程序同时运行时电子终端的功耗,达到省电的目的,并且由于避免了电子终端的CPU处理资源浪费,不仅提高了资源利用效率,还可以有效减少电子终端发热。 
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。 
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。 
图1是根据一示例性实施例示出的一种应用程序的处理方法的流程图; 
图2是根据一示例性实施例示出的另一种应用程序的处理方法的流程图; 
图3是根据一示例性实施例示出的又一种应用程序的处理方法的流程图; 
图4是根据一示例性实施例示出的又一种应用程序的处理方法的流程图; 
图5是根据一示例性实施例示出的又一种应用程序的处理方法的流程图; 
图6是一种应用程序的处理装置的框图; 
图7是另一种应用程序的处理装置的框图; 
图8是又一种应用程序的处理装置的框图; 
图9是又一种应用程序的处理装置的框图; 
图10是又一种应用程序的处理装置的框图; 
图11是根据一示例性实施例示出的一种应用程序的处理装置的框图; 
图12是根据一示例性实施例示出的另一种应用程序的处理装置的框图。 
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。 
图1是根据一示例性实施例示出的一种应用程序的处理方法的流程图,如图1所示,应用程序的处理方法用于终端中,包括以下步骤。 
在步骤S11中,将应用程序从前台运行切换到后台运行;其中,所述应用程序的进程包括UI进程和逻辑进程。 
在本公开中,应用程序运行过程中与相关技术中应用程序的运行方式不一样的地方在于,相关技术中一个应用程序通常只有一个进程,并且进程中混杂有服务、数据、算法和UI的子程序。而在本公开中,由于应用程序的程序代码中有一些是与应用程序的服务、数据或算法相关的子程序,这些子程序可以合并到逻辑进程中运行。应用程序的另一些程序代码与核心的服务、数据或算法影响不大,通常是UI相关的一些子程序,这些子程序可以合并到UI进程中运行。 
例如,音乐应用程序中播放控制按钮、唱片封面、音乐信息和滚动歌词等,都可以划分到UI进程中执行,以便切换到后台时可以结束这些程序;而音乐播放、音乐数据下载等应用程序的服务程序就可以划分到逻辑进程中执行,即使切换到后台也可以继续运行。类似的,收音机应用、备份应用、股票应用和天气应用等诸多应用程序都可以采用类似的方法将程序划分成UI进程和逻辑进程后分别独立运行。 
在步骤S12中,结束所述应用程序的UI进程,并继续运行所述应用程序的逻辑进程。 
其中,由于本公开采用S11中所描述的将UI进程和逻辑进程分开独立运行的方式,在切换到后台运行时,便可以区别对待这两部分进程。一方面,由于用户将应用程序从前台运行切换到后台运行,并没有关闭该应用程序。因此,为保证终端完整的应用功能,后台运行的应用程序仍然要继续提供相应的服务,即继续运行所述应用程序对应逻辑进程。另一方面,由于用户将应用程序切换到后台以显示其他界面或关闭屏幕,所以用户不会感知到后台运行的应用程序的UI界面。而这些UI界面的计算占用的处理资源较多,有时是逻辑进程的若干倍,因此为了减少占用资源,可以在后台运行时不再计算UI界面,即结束UI进程。 
进一步地,图2为另一示例性实施例示出的一种应用程序的处理方法的流程图,如图2所示,该方法还可以包括以下步骤。 
在步骤S13中,将所述应用程序从后台运行切换到前台运行时,根据所述逻辑进程重新生成所述UI进程。 
其中,虽然在后台运行时结束了UI进程,但是当切换到前台运行时还是要及时准确地显示出应用程序的UI界面。当切换到前台运行时,重新启动UI进程,UI进程要完善自我恢复,重新开启后,要先访问逻辑进程的状态,计算当前逻辑进程对应的UI界面。 
进一步地,图3为又一示例性实施例示出的一种应用程序的处理方法的流程图,如图3所示,在步骤S11之前,该方法还可以包括以下步骤。 
在步骤S14中,当启动所述应用程序时,读取所述应用程序的配置文件中的逻辑进程标识和/或UI进程标识。 
其中,在应用程序的开发过程中,开发人员就可以在该应用程序的配置文件里进行相应的标识,以满足本公开的将逻辑进程和UI进程剥离的策略。标识的方法可以为,将不允许被结束的进程标记出来,例如将server、data等标识成process或logic。这里举例的process或logic就可以看作是逻辑进程标识,这样操作***在运行该应用程序时,可以将logic对应的程序都集合到逻辑进程中运行,其余的程序都放到UI进程中运行。可以理解的是,在应用程序的配置文件中,也可以使对UI相关的程序加以UI进程标识,类似地将具有UI进程标识的程序放到UI进程中运行,其余的则作为即使进入后台也不允许结束的逻辑进程运行。或者,可以既对UI相关的程序加以UI进程标识,也对逻辑相关的程序加以逻辑进程标识,本公开的实施例对此不做限定。 
在步骤S15中,根据所述逻辑进程标识和/或UI进程标识,将所述应用程序包含的各 个子程序划分进程类别;其中,所述进程类别包括UI类和逻辑类。 
例如,以一个音乐应用程序为例,该应用程序的配置文件名字叫AndroidManifest.xml,里面的元素包括:组件(Activity)、服务(Service)、提供方(Provider)和接收方(Receiver)。 
其中,每个元素简单介绍,并划分每个元素所属的进程类别如下: 
1)Activity,对应于UI界面中的每个组件,例如我们看到的音乐的列表,播放界面等,属于UI进程。 
2)Service,后台的播放服务,属于逻辑进程。 
3)Provider,音乐的数据,比如当前有哪些音乐以及音乐作者等,属于逻辑进程。 
4)Receiver,收到***广播后触发的一些动作,比如下载完成某首歌曲后,开始播放,属于逻辑进程。 
在步骤S16中,根据已划分的所述进程类别运行所述UI进程和所述逻辑进程;其中,所述UI进程中运行所述UI类的子程序,所述逻辑进程中运行所述逻辑类的子程序。 
其中,基于步骤S15中已划分好的结果,建立UI进程以独立地运行属于UI类的子程序,建立逻辑进程以独立地运行属于逻辑类的子程序。例如,将一个音乐应用中所有的Activity元素在一个UI进程中运行,将Service、Provider和Receiver元素都放在一个逻辑进程中运行。 
需要说明的是,如果步骤S15能够将实现,即应用程序的配置文件中可以体现允许在后台运行时结束和不允许在后台运行时结束的子程序,那么采取本公开实施例的方法可以有效节省处理资源。但是,由于应用程序的开发团队众多,不能保证每个应用程序的配置文件都符合本公开的将UI进程和逻辑进程剥离的策略,为了避免将应用程序必要的后台程序结束,影响应用程序功能的正常使用,本实施例还可以采取有区别的处理方式。例如,对于符合将UI进程和逻辑进程剥离的策略的应用程序,在后台运行时结束其UI进程;对于不符合将UI进程和逻辑进程剥离的策略的应用程序,在后台运行时继续运行其应有的程序。 
进一步地,在一种可选的实现方式中,如图4所示,为了保证流程的界面切换,避免UI进程频繁的结束和重启,可以在退到后台运行后,在结束UI进程之前增加一个对时间的判断条件。具体的,在步骤S11之后,该方法还可以包括以下步骤。 
在步骤S17中,确定所述应用程序在后台运行的时长是否达到预定时长。 
其中,当所述应用程序在后台运行的时长达到预定时长时,执行步骤S12。若所述应 用程序在后台运行的时长未达到预定时长,则继续执行步骤S17。可以理解的是,如果应用程序切换到后台并开始计时,未达到预定时长又回到前台运行,则可以结束计时;当再次进入后台运行时,可以开始新一轮的计时。所述预定时长可以是在应用程序开发过程中预先配置的,也可以由用户设定。例如,预定时长可以是5秒或10秒等。 
在另一种可选的实现方式中,如图5所示,除了可以将时长作为判断是否结束后台UI进程的条件,也可以采取其他判定条件。具体的,在步骤S11之后,该方法还可以包括以下步骤。 
在步骤S18中,确定后台运行的其他UI进程数量是否达到预定数量。 
其中,当所述其他UI进程数量达到预定数量时,执行步骤S12。若当前后台运行的UI进程数量未达到预定数量,可以认为处理资源的可用空间较充足,执行步骤S19。所述预定数量可以是在应用程序开发过程中预先配置的,也可以由用户设定。例如,预定数量可以为5个或10个等。 
在步骤S19中,在后台继续运行所述应用程序的UI进程和逻辑进程。 
其中,由于当前后台运行的UI进程数量未达到预定数量,因此可以不结束应用程序的UI进程,在后台运行时依然同时运行UI进程和逻辑进程。当后台运行的UI进程达到预定数量时,为了不过多的占用处理资源,可以将后续再加入到后台运行的应用程序的UI进程结束掉。 
本公开的实施例提供的应用程序的处理方法,通过将应用程序的UI进程和逻辑进程分开独立运行,使得在应用程序切换到后台运行时,可以继续运行用户需要的逻辑进程,而将用户不关心的UI进程结束,与相关技术中将应用程序的运行都集合在一个进程中运行并在后台仍然继续运行应用程序的所有程序的方法相比,可以在应用程序进入后台运行时,节省UI计算所占用的CPU处理资源和内存空间,从而降低了多个应用程序同时运行时电子终端的功耗,达到省电的目的,并且由于避免了电子终端的CPU处理资源浪费,不仅提高了资源利用效率,还可以有效减少电子终端发热。 
图6是根据一示例性实施例示出的一种应用程序的处理装置200框图。参照图6,该装置200包括:第一切换单元201、结束单元202和运行单元203。 
该第一切换单元201被配置为将应用程序从前台运行切换到后台运行;其中,所述应用程序的进程包括用户界面UI进程和逻辑进程。 
该结束单元202被配置为在所述第一切换单元201将应用程序从前台运行切换到后台运行之后,结束所述应用程序的UI进程。 
运行单元203被配置为在所述第一切换单元201将应用程序从前台运行切换到后台运行之后,继续运行所述应用程序的逻辑进程。 
进一步地,如图7所示,该装置200还可以包括:第二切换单元204和重生单元205。 
第二切换单元204,用于将所述应用程序从后台运行切换到前台运行。 
重生单元205,用于在第二切换单元204将所述应用程序从后台运行切换到前台运行之后,根据所述逻辑进程重新生成所述UI进程。 
进一步地,如图8所示,该装置200还可以包括: 
读取单元206,用于在所述第一切换单元201将所述应用程序从前台运行切换到后台运行之前,在所述应用程序启动时,读取所述应用程序的配置文件中的逻辑进程标识和/或UI进程标识; 
分类单元207,用于根据所述读取单元206读取到的所述逻辑进程标识和/或UI进程标识,将所述应用程序包含的各个子程序划分进程类别;其中,所述进程类别包括UI类和逻辑类; 
生成单元208,用于根据所述分类单元207已划分的所述进程类别生成所述UI进程和所述逻辑进程;其中,所述UI进程中运行所述UI类的子程序,所述逻辑进程中运行所述逻辑类的子程序。 
进一步可选的,如图9所示,在一种可能的实现方式中,该装置200还可以包括: 
第一确定单元209,用于在所述第一切换单元201将所述应用程序从前台运行切换到后台运行之后,确定所述应用程序在后台运行的时长; 
所述结束单元202,还用于在所述第一单元201确定的时长达到预定时长时,结束所述应用程序的UI进程。 
如图10所示,在另一种可能的实现方式中,该装置200还可以包括: 
第二确定单元210,用于在所述第一切换单元201将所述应用程序从前台运行切换到后台运行之后,确定后台运行的其他UI进程数量; 
所述结束单元201,还用于在所述第二确定单元210确定的所述其他UI进程数量达到预定数量时,结束所述应用程序的UI进程。 
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实 施例中进行了详细描述,此处将不做详细阐述说明。 
本公开的实施例提供的应用程序的处理装置200,通过将应用程序的UI进程和逻辑进程分开独立运行,使得在应用程序切换到后台运行时,可以继续运行用户需要的逻辑进程,而将用户不关心的UI进程结束,与相关技术中将应用程序的运行都集合在一个进程中运行并在后台仍然继续运行应用程序的所有程序的装置相比,可以在应用程序进入后台运行时,节省UI计算所占用的CPU处理资源和内存空间,从而降低了多个应用程序同时运行时电子终端的功耗,达到省电的目的,并且由于避免了电子终端的CPU处理资源浪费,不仅提高了资源利用效率,还可以有效减少电子终端发热。 
图11是根据一示例性实施例示出的一种用于应用程序的处理装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。 
参照图11,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。 
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。 
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。 
电力组件806为装置800的各种组件提供电力。电力组件806可以包括电源管理***,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。 
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些 实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。 
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。 
I/O接口812为处理组件802和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。 
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。 
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置00可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。 
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。 
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。 
图12是根据一示例性实施例示出的一种应用程序的处理装置1900的框图。例如,装置1900可以被提供为一服务器。参照图12,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行 上述应用程序的处理方法。 
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。 
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。 
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。 

Claims (10)

1.一种应用程序的处理方法,其特征在于,包括:
将应用程序从前台运行切换到后台运行;其中,所述应用程序的进程包括用户界面UI进程和逻辑进程;
结束所述应用程序的UI进程,并继续运行所述应用程序的逻辑进程。
2.根据权利要求1所述的应用程序的处理方法,其特征在于,还包括:
将所述应用程序从后台运行切换到前台运行时,根据所述逻辑进程重新生成所述UI进程。
3.根据权利要求1所述的应用程序的处理方法,其特征在于,在将所述应用程序从前台运行切换到后台运行之前,还包括:
当启动所述应用程序时,读取所述应用程序的配置文件中的逻辑进程标识和/或UI进程标识;
根据所述逻辑进程标识和/或UI进程标识,将所述应用程序包含的各个子程序划分进程类别;其中,所述进程类别包括UI类和逻辑类;
根据已划分的所述进程类别运行所述UI进程和所述逻辑进程;其中,所述UI进程中运行所述UI类的子程序,所述逻辑进程中运行所述逻辑类的子程序。
4.根据权利要求1-3中任一项所述的应用程序的处理方法,其特征在于,在将所述应用程序从前台运行切换到后台运行之后,还包括:
确定所述应用程序在后台运行的时长;
当所述应用程序在后台运行的时长达到预定时长时,执行所述结束所述应用程序的UI进程的步骤。
5.根据权利要求1-3中任一项所述的应用程序的处理方法,其特征在于,在将所述应用程序从前台运行切换到后台运行之后,还包括:
确定后台运行的其他UI进程数量;
当所述其他UI进程数量达到预定数量时,执行所述结束所述应用程序的UI进程的步骤。
6.一种应用程序的处理装置,其特征在于,包括:
第一切换单元,用于将应用程序从前台运行切换到后台运行;其中,所述应用程序的进程包括用户界面UI进程和逻辑进程;
结束单元,用于在所述第一切换单元将应用程序从前台运行切换到后台运行之后,结束所述应用程序的UI进程;
运行单元,用于在所述第一切换单元将应用程序从前台运行切换到后台运行之后,继续运行所述应用程序的逻辑进程。
7.根据权利要求6所述的应用程序的处理装置,其特征在于,还包括:
第二切换单元,用于将所述应用程序从后台运行切换到前台运行;
重生单元,用于在第二切换单元将所述应用程序从后台运行切换到前台运行之后,根据所述逻辑进程重新生成所述UI进程。
8.根据权利要求6所述的应用程序的处理装置,其特征在于,还包括:
读取单元,用于在所述第一切换单元将所述应用程序从前台运行切换到后台运行之前,在所述应用程序启动时,读取所述应用程序的配置文件中的逻辑进程标识和/或UI进程标识;
分类单元,用于根据所述读取单元读取到的所述逻辑进程标识和/或UI进程标识,将所述应用程序包含的各个子程序划分进程类别;其中,所述进程类别包括UI类和逻辑类;
生成单元,用于根据所述分类单元已划分的所述进程类别生成所述UI进程和所述逻辑进程;其中,所述UI进程中运行所述UI类的子程序,所述逻辑进程中运行所述逻辑类的子程序。
9.根据权利要求6-8中任一项所述的应用程序的处理装置,其特征在于,还包括:
第一确定单元,用于在所述第一切换单元将所述应用程序从前台运行切换到后台运行之后,确定所述应用程序在后台运行的时长;
所述结束单元,还用于在所述第一单元确定的时长达到预定时长时,结束所述应用程序的UI进程。
10.根据权利要求6-8中任一项所述的应用程序的处理装置,其特征在于,还包括:
第二确定单元,用于在所述第一切换单元将所述应用程序从前台运行切换到后台运行之后,确定后台运行的其他UI进程数量;
所述结束单元,还用于在所述第二确定单元确定的所述其他UI进程数量达到预定数量时,结束所述应用程序的UI进程。
CN201410203339.1A 2014-05-14 2014-05-14 应用程序的处理方法及装置 Active CN104050035B (zh)

Priority Applications (9)

Application Number Priority Date Filing Date Title
CN201410203339.1A CN104050035B (zh) 2014-05-14 2014-05-14 应用程序的处理方法及装置
KR1020147035959A KR101668786B1 (ko) 2014-05-14 2014-10-22 응용 프로그램의 처리방법, 장치, 프로그램 및 기록매체
JP2016518833A JP6072362B2 (ja) 2014-05-14 2014-10-22 アプリケーションプログラムの処理方法、装置、プログラム及び記憶媒体
RU2014152488A RU2606051C2 (ru) 2014-05-14 2014-10-22 Способ обработки и устройство для прикладной программы
BR112015000216-1A BR112015000216B1 (pt) 2014-05-14 2014-10-22 Método e dispositivo de processamento para um programa de aplicativo
MX2015000194A MX359997B (es) 2014-05-14 2014-10-22 Método de procesamiento y dispositivo para programa de aplicación.
PCT/CN2014/089218 WO2015172518A1 (zh) 2014-05-14 2014-10-22 应用程序的处理方法及装置
US14/586,968 US20150333971A1 (en) 2014-05-14 2014-12-31 Method and device for managing processes of application program
EP15248028.1A EP2945058B1 (en) 2014-05-14 2015-04-03 Processing method and device for application program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410203339.1A CN104050035B (zh) 2014-05-14 2014-05-14 应用程序的处理方法及装置

Publications (2)

Publication Number Publication Date
CN104050035A true CN104050035A (zh) 2014-09-17
CN104050035B CN104050035B (zh) 2018-05-25

Family

ID=51502929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410203339.1A Active CN104050035B (zh) 2014-05-14 2014-05-14 应用程序的处理方法及装置

Country Status (9)

Country Link
US (1) US20150333971A1 (zh)
EP (1) EP2945058B1 (zh)
JP (1) JP6072362B2 (zh)
KR (1) KR101668786B1 (zh)
CN (1) CN104050035B (zh)
BR (1) BR112015000216B1 (zh)
MX (1) MX359997B (zh)
RU (1) RU2606051C2 (zh)
WO (1) WO2015172518A1 (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375880A (zh) * 2014-09-18 2015-02-25 腾讯科技(深圳)有限公司 内存释放方法及装置
CN104461663A (zh) * 2014-12-30 2015-03-25 北京奇虎科技有限公司 一种加载其它移动端应用的方法、装置和移动终端
CN104507158A (zh) * 2014-12-30 2015-04-08 北京奇虎科技有限公司 一种建立无线局域网连接的方法、装置和移动终端
WO2015172518A1 (zh) * 2014-05-14 2015-11-19 小米科技有限责任公司 应用程序的处理方法及装置
CN105975347A (zh) * 2016-05-26 2016-09-28 宇龙计算机通信科技(深圳)有限公司 一种冻结应用的方法及***
CN106847272A (zh) * 2016-12-12 2017-06-13 北京光年无限科技有限公司 与运行应用关联的智能机器人的数据交互方法
CN107315658A (zh) * 2017-06-26 2017-11-03 珠海市魅族科技有限公司 一种数据备份方法及装置、计算机装置及可读存储介质
CN107423125A (zh) * 2017-07-27 2017-12-01 上海传英信息技术有限公司 一种用于智能终端的摄像控制方法及摄像控制***
CN107729098A (zh) * 2017-09-25 2018-02-23 北京小米移动软件有限公司 用户界面显示方法及装置
WO2018045934A1 (zh) * 2016-09-09 2018-03-15 华为技术有限公司 应用进程的管理方法和终端设备
CN107918517A (zh) * 2017-11-13 2018-04-17 广东欧珀移动通信有限公司 屏幕旋转的响应方法、装置、移动终端及存储介质
CN108877143A (zh) * 2018-04-20 2018-11-23 深圳市沃特沃德股份有限公司 儿童游乐园项目安全提醒方法及其装置
CN109155765A (zh) * 2016-06-14 2019-01-04 麦克赛尔株式会社 通信控制方法
CN110806926A (zh) * 2019-09-05 2020-02-18 华为技术有限公司 一种资源管控方法及设备
CN111949471A (zh) * 2019-05-16 2020-11-17 珠海格力电器股份有限公司 一种用于终端进程的监听控制方法
CN111949385A (zh) * 2019-05-16 2020-11-17 珠海格力电器股份有限公司 一种用于终端进程的监听控制方法
WO2021000807A1 (zh) * 2019-06-29 2021-01-07 华为技术有限公司 一种应用程序中等待场景的处理方法和装置
CN112835656A (zh) * 2019-11-01 2021-05-25 科美诊断技术股份有限公司 一种客户端的启动方法及装置
US11216283B2 (en) 2018-06-26 2022-01-04 Chiun Mai Communication Systems, Inc. Parameter configuration system of electronic device

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105676991A (zh) * 2015-12-28 2016-06-15 小米科技有限责任公司 一种管理应用程序的方法和装置
CN105653323B (zh) * 2015-12-28 2019-07-02 小米科技有限责任公司 应用程序管理方法及装置
CN105701025B (zh) 2015-12-31 2019-07-23 华为技术有限公司 一种内存回收方法及装置
CN105893130B (zh) * 2016-03-31 2019-06-07 维沃移动通信有限公司 一种移动终端应用程序的处理方法和移动终端
US10552320B2 (en) * 2016-04-01 2020-02-04 Intel Corporation Using a projected out of memory score to selectively terminate a process without transitioning to a background mode
CN105912204B (zh) * 2016-04-07 2022-04-15 北京小米移动软件有限公司 启动应用界面的方法及装置
CN106020813A (zh) * 2016-05-16 2016-10-12 上海传英信息技术有限公司 应用程序启动装置和方法
CN109992363B (zh) * 2017-12-29 2021-03-26 Oppo广东移动通信有限公司 应用程序处理方法和装置、电子设备、计算机可读存储介质
JP7151219B2 (ja) * 2018-07-05 2022-10-12 株式会社リコー 組み込み機器、ウィルススキャンプログラム実行方法、プログラム
CN112685143A (zh) * 2019-10-17 2021-04-20 迈普通信技术股份有限公司 一种设备操作的实现方法及装置
WO2024085487A1 (ko) * 2022-10-21 2024-04-25 삼성전자주식회사 카메라의 설정을 변경하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524246A (en) * 1993-08-23 1996-06-04 At&T Corp. Method and apparatus for configuring computer programs from available subprograms
US20040230911A1 (en) * 2003-05-17 2004-11-18 Microsoft Corporation System and method for controlling user interface properties with data
CN103164269A (zh) * 2011-12-08 2013-06-19 中兴通讯股份有限公司 一种多窗口显示应用程序的方法及终端
US20130343373A1 (en) * 2012-06-25 2013-12-26 Microsoft Corporation Voice-over-internet protocol (voip) application platform
US20140002576A1 (en) * 2012-06-28 2014-01-02 Microsoft Corporation Cross-Process Media Handling in a Voice-Over-Internet Protocol (VOIP) Application Platform

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080233937A1 (en) * 2006-05-08 2008-09-25 Marja-Leena Nurmela Mobile communication terminal and method
US8510743B2 (en) * 2007-10-31 2013-08-13 Google Inc. Terminating computer applications
CN101788926B (zh) * 2009-12-28 2014-04-30 中兴通讯股份有限公司 J2me应用前台切换的资源调配方法及装置
US20110252423A1 (en) * 2010-04-07 2011-10-13 Apple Inc. Opportunistic Multitasking
US8380999B1 (en) * 2010-12-20 2013-02-19 Amazon Technologies, Inc. Power management for electronic devices
CN104252389B (zh) * 2013-06-27 2016-04-13 腾讯科技(深圳)有限公司 应用程序运行方法、***
CN104050035B (zh) * 2014-05-14 2018-05-25 小米科技有限责任公司 应用程序的处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524246A (en) * 1993-08-23 1996-06-04 At&T Corp. Method and apparatus for configuring computer programs from available subprograms
US20040230911A1 (en) * 2003-05-17 2004-11-18 Microsoft Corporation System and method for controlling user interface properties with data
CN103164269A (zh) * 2011-12-08 2013-06-19 中兴通讯股份有限公司 一种多窗口显示应用程序的方法及终端
US20130343373A1 (en) * 2012-06-25 2013-12-26 Microsoft Corporation Voice-over-internet protocol (voip) application platform
US20140002576A1 (en) * 2012-06-28 2014-01-02 Microsoft Corporation Cross-Process Media Handling in a Voice-Over-Internet Protocol (VOIP) Application Platform

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015172518A1 (zh) * 2014-05-14 2015-11-19 小米科技有限责任公司 应用程序的处理方法及装置
CN104375880A (zh) * 2014-09-18 2015-02-25 腾讯科技(深圳)有限公司 内存释放方法及装置
CN104375880B (zh) * 2014-09-18 2016-04-06 腾讯科技(深圳)有限公司 内存释放方法及装置
CN104461663B (zh) * 2014-12-30 2018-04-20 北京奇虎科技有限公司 一种加载其它移动端应用的方法、装置和移动终端
CN104461663A (zh) * 2014-12-30 2015-03-25 北京奇虎科技有限公司 一种加载其它移动端应用的方法、装置和移动终端
CN104507158A (zh) * 2014-12-30 2015-04-08 北京奇虎科技有限公司 一种建立无线局域网连接的方法、装置和移动终端
CN104507158B (zh) * 2014-12-30 2018-10-23 北京奇虎科技有限公司 一种建立无线局域网连接的方法、装置和移动终端
CN105975347A (zh) * 2016-05-26 2016-09-28 宇龙计算机通信科技(深圳)有限公司 一种冻结应用的方法及***
CN109155765A (zh) * 2016-06-14 2019-01-04 麦克赛尔株式会社 通信控制方法
CN107807847B (zh) * 2016-09-09 2022-04-29 华为技术有限公司 应用进程的管理方法和终端设备
WO2018045934A1 (zh) * 2016-09-09 2018-03-15 华为技术有限公司 应用进程的管理方法和终端设备
CN107807847A (zh) * 2016-09-09 2018-03-16 华为技术有限公司 应用进程的管理方法和终端设备
CN106847272A (zh) * 2016-12-12 2017-06-13 北京光年无限科技有限公司 与运行应用关联的智能机器人的数据交互方法
CN107315658A (zh) * 2017-06-26 2017-11-03 珠海市魅族科技有限公司 一种数据备份方法及装置、计算机装置及可读存储介质
CN107423125A (zh) * 2017-07-27 2017-12-01 上海传英信息技术有限公司 一种用于智能终端的摄像控制方法及摄像控制***
CN107729098B (zh) * 2017-09-25 2021-06-29 北京小米移动软件有限公司 用户界面显示方法及装置
CN107729098A (zh) * 2017-09-25 2018-02-23 北京小米移动软件有限公司 用户界面显示方法及装置
CN107918517A (zh) * 2017-11-13 2018-04-17 广东欧珀移动通信有限公司 屏幕旋转的响应方法、装置、移动终端及存储介质
CN108877143B (zh) * 2018-04-20 2021-06-22 深圳市沃特沃德股份有限公司 儿童游乐园项目安全提醒方法及其装置
CN108877143A (zh) * 2018-04-20 2018-11-23 深圳市沃特沃德股份有限公司 儿童游乐园项目安全提醒方法及其装置
US11216283B2 (en) 2018-06-26 2022-01-04 Chiun Mai Communication Systems, Inc. Parameter configuration system of electronic device
CN111949471A (zh) * 2019-05-16 2020-11-17 珠海格力电器股份有限公司 一种用于终端进程的监听控制方法
CN111949385A (zh) * 2019-05-16 2020-11-17 珠海格力电器股份有限公司 一种用于终端进程的监听控制方法
WO2021000807A1 (zh) * 2019-06-29 2021-01-07 华为技术有限公司 一种应用程序中等待场景的处理方法和装置
US11921977B2 (en) 2019-06-29 2024-03-05 Huawei Technologies Co., Ltd. Processing method for waiting scenario in application and apparatus
CN110806926A (zh) * 2019-09-05 2020-02-18 华为技术有限公司 一种资源管控方法及设备
CN112835656A (zh) * 2019-11-01 2021-05-25 科美诊断技术股份有限公司 一种客户端的启动方法及装置

Also Published As

Publication number Publication date
KR20150141124A (ko) 2015-12-17
MX2015000194A (es) 2016-03-03
MX359997B (es) 2018-10-17
CN104050035B (zh) 2018-05-25
EP2945058B1 (en) 2017-09-20
RU2606051C2 (ru) 2017-01-10
EP2945058A1 (en) 2015-11-18
BR112015000216B1 (pt) 2022-01-11
JP6072362B2 (ja) 2017-02-01
KR101668786B1 (ko) 2016-10-24
BR112015000216A2 (pt) 2017-06-27
WO2015172518A1 (zh) 2015-11-19
RU2014152488A (ru) 2016-09-10
JP2016526244A (ja) 2016-09-01
US20150333971A1 (en) 2015-11-19

Similar Documents

Publication Publication Date Title
CN104050035A (zh) 应用程序的处理方法及装置
CN104951335B (zh) 应用程序安装包的处理方法及装置
CN104461725A (zh) 控制应用进程启动的方法及装置
CN104156236A (zh) 节省存储空间的方法和装置
CN104239094A (zh) 后台应用程序的控制方法、装置及终端设备
CN104484200A (zh) 对固件进行升级的方法及装置
CN105204894A (zh) 安装智能设备的插件的方法和装置
CN105338409A (zh) 一种网络视频预加载方法及装置
CN104023129A (zh) 省电方法及装置
CN104035979A (zh) 对象推荐的方法及相关装置
CN105550035A (zh) 后台进程控制方法及装置
CN105553963A (zh) 定位服务的控制方法和装置
CN104679218A (zh) 控制功耗的方法和装置
CN104281478A (zh) 更新应用程序的方法及装置
CN105093980A (zh) 控制智能设备启停的方法及装置
CN105808305A (zh) 静态资源的加载方法和装置
CN104407924A (zh) 内存优化方法及装置
CN107544802A (zh) 设备识别方法及装置
CN103955274A (zh) 应用控制方法和装置
CN105511852A (zh) 屏幕显示处理方法、装置及设备
CN104657172A (zh) ***升级方法及装置
CN104317647A (zh) 应用功能实现方法、装置及终端
CN106455002A (zh) 无线搜索方法、装置及终端
CN104461358A (zh) 点亮屏幕的方法及装置
CN104035764A (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
GR01 Patent grant
GR01 Patent grant