Method for monitoring the usage of at least one application executed within an operating system, corresponding device, computer program product and computer-readable carrier medium

文档序号:1909873 发布日期:2021-11-30 浏览:15次 中文

阅读说明:本技术 用于监控在操作系统内执行的至少一个应用的使用情况的方法、相应装置、计算机程序产品和计算机可读载体介质 (Method for monitoring the usage of at least one application executed within an operating system, corresponding device, computer program product and computer-readable carrier medium ) 是由 洛朗·道文 于 2020-03-30 设计创作,主要内容包括:本公开涉及一种用于监控在电子设备的操作系统内执行的至少一个应用的使用情况的方法。该方法包括以下处理的至少一次迭代:当处理条件不满足时:确定(11)与当前应用相关联的视频事件;将所述视频事件存储(12)在数据结构中,提供视频事件集(21);一旦所述处理条件满足:确定(13)过去的播放时段;调用(14)所述操作系统上提供的使用统计API,提供代表应用被放在系统前台还是系统后台中的应用事件集(22);从所述应用事件集(22)中检索(15)在所述过去的播放时段期间发生的应用事件;从所述视频事件集(21)中检索(16)在所述过去的播放时段期间发生的视频事件;按时间顺序对检索到的应用事件和视频事件排序(17),提供已排序事件的合并集(23)。(The present disclosure relates to a method for monitoring usage of at least one application executing within an operating system of an electronic device. The method includes at least one iteration of: when the processing conditions are not satisfied: determining (11) a video event associated with a current application; storing (12) the video events in a data structure, providing a set of video events (21); once the processing conditions are satisfied: determining (13) a past playing period; calling (14) a usage statistics API provided on said operating system, providing a set of application events (22) on behalf of whether an application is placed in system foreground or system background; retrieving (15) from the set of application events (22) application events that occurred during the past playing period; retrieving (16) video events occurring during the past playing period from the set of video events (21); the retrieved application events and video events are sorted in time order (17), providing a union set of sorted events (23).)

1. A method for monitoring usage of at least one application executing within an operating system of an electronic device, the method being implemented by a monitoring application different from the at least one application, wherein the method comprises at least one iteration of:

-when the processing conditions are not satisfied:

-determining (11) a video event associated with the current application;

-storing (12) the video events in a data structure together with corresponding video event timestamps, providing a set of video events (21);

-once the processing conditions are satisfied:

-determining (13) a past playing period;

-calling (14) a usage statistics API provided on said operating system, providing a set of application events (22) representative of whether an application is placed in the system foreground or the system background:

-the application is put in the system foreground, defining an application start event; or

-the application is placed in the system background, defining an application stop event;

each application event is associated with a respective application event timestamp;

-retrieving (15) from the set of application events (22) application events occurring during the past playing period based on the application event timestamp;

-retrieving (16) video events occurring during the past playing period from the set of video events (21) based on the video event timestamps;

-sorting (17) the retrieved application events and video events in a temporal order based on the application event timestamps and the video event timestamps, providing a union set (23) of sorted events occurring during the past playing period.

2. The method of claim 1, wherein determining a video event associated with a current application comprises:

-identifying the current application by a call to the usage statistics API, the current application corresponding to the last application recorded in usage statistics as being placed in a system foreground;

-determining the video event from a previous video event associated with the current application, a current audio state, and a current network usage state.

3. The method of claim 2, wherein the previous video event associated with the current application is retrieved from the set of video events.

4. The method of claim 2, wherein the current audio state and/or the current network usage state is obtained through a call to at least one API provided by the operating system.

5. The method of claim 2, wherein the current audio status and/or the current network usage status is obtained by monitoring at least one equipment of the electronic device.

6. The method of claim 2, wherein the video event is a video start event or a video stop event, and wherein:

-the video event is a video start event when the following conditions are met:

-the previous video event is a video stop event; and is

-the current audio state is an active state; and is

-the network current network usage state is an active state;

-the video event is a video stop event when the following conditions are met:

-the previous video event is a video start event; and is

-the current audio state is an inactive state.

7. The method of claim 1, wherein the method further comprises: removing consecutive duplicate events of the same type from the merged set of ordered events.

8. The method of claim 1, wherein the method further comprises: removing from the merged set of ordered events:

-successive repeating pairs formed by application start events and application stop events; and

-successive repeated pairs formed by video start events and video stop events.

9. The method of claim 1, wherein the method further comprises: removing event pairs formed by application start events and application stop events from the consolidated set of ordered events when the following conditions are satisfied:

-separating the application start event and the application stop event for a duration below a predetermined threshold; and

-the application associated with the event pair is not in a predetermined list of applications.

10. The method of claim 9, wherein the method further comprises: adding a flag to an event pair formed by an application start event and an application stop event in the merged set of ordered events when the following conditions are met:

-separating the application start event and the application stop event for a duration below the predetermined threshold; and

-the application associated with the event pair is present in the predetermined application list.

11. The method of claim 1, wherein the monitoring application is a system application executing in the system background.

12. The method of claim 1, wherein the operating system is an android operating system.

13. An apparatus for monitoring usage of at least one application executing within an operating system of an electronic device, wherein the apparatus comprises at least one processor adapted and configured to:

-when the processing conditions are not satisfied:

-determining a video event associated with the current application;

-storing the video events together with corresponding video event timestamps in a data structure, providing a set of video events;

-once the processing conditions are satisfied:

-determining a past playing period;

-calling a usage statistics API provided on said operating system, providing a set of application events representing whether an application is placed in the system foreground or in the system background:

-the application is put in the system foreground, defining an application start event; or

-the application is placed in the system background, defining an application stop event;

each application event is associated with a respective application event timestamp;

-retrieving, from the set of application events, application events occurring during the past play period based on the application event timestamp;

-retrieving video events occurring during the past playing period from the set of video events based on the video event timestamps;

-sorting the retrieved application events and video events in a temporal order based on the application event timestamps and the video event timestamps, providing a union set of sorted events occurring during the past playing period.

14. A computer program product downloadable from a communication network and/or recorded on a computer-readable medium and/or executable by a processor, the computer program product comprising program code instructions for implementing a method according to any one of claims 1 to 12.

15. A non-transitory computer readable medium comprising a computer program product recorded thereon and capable of being executed by a processor, the computer program product comprising program code instructions for implementing the method according to any one of claims 1 to 12.

Technical Field

The present invention relates generally to the field of data analysis. More particularly, the present disclosure relates to a method for monitoring usage of an application executing within an operating system of an electronic device.

Background

This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present disclosure that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.

Collecting customer information from the field is crucial to the operator (such as an internet service provider or a telephone operator) to react proactively, enhancing the customer experience. More specifically, operators are interested in collecting information about which applications (applications) are primarily used on an electronic device (e.g., a smartphone or a set-top box) and the duration and manner of use of those applications. These data must be anonymous, but information can still be inferred to a greater extent.

However, obtaining such information is often quite difficult.

Indeed, while some applications may implement their own analytical solutions in their own code that allow users to monitor their usage, no direct information is generally available outside of these applications. Furthermore, many applications do not implement such analytical solutions at all. Furthermore, the operator typically has no control over the applications installed on the electronic device.

Some operating systems provide methods for obtaining some information about application usage. However, the information obtained is often fragmented and limited. For example, androidThe operating system provides a native usage statistics Application Programming Interface (API) that can be called to obtain a history of whether an application is placed in the system foreground or the system background, and a corresponding timestamp. However, no information about how the application is used can be inferred directly from such an API. For example, considering applications that provide video content, it makes sense to distinguish the time that is actually used to view a video from the time it takes to browse a catalog of videos provided by the application.

It is therefore desirable to provide a technique that will avoid at least some of these disadvantages of the prior art, and that will significantly allow monitoring of applications in a more accurate manner.

Disclosure of Invention

In accordance with the present disclosure, a method for monitoring usage of at least one application executing within an operating system of an electronic device is disclosed. The method is implemented by a monitoring application different from the at least one application and comprises at least one iteration of:

-when the processing conditions are not satisfied:

-determining a video event associated with the current application;

-storing the video events in a data structure together with corresponding video event timestamps, providing a set of video events;

-once the processing conditions are satisfied:

-determining a past playing period;

-calling a usage statistics API provided on said operating system, providing a set of application events representing whether an application is placed in the system foreground or in the system background:

-the application is put in the system foreground, defining an application launch event; or

-the application is placed in the system background, defining an application stop event;

each application event is associated with a respective application event timestamp;

-retrieving, from the set of application events, application events occurring during the past play period based on the application event timestamp;

-retrieving video events occurring during the past playing period from the set of video events based on the video event timestamps;

-sorting the retrieved application events and video events in a temporal order based on the application event timestamps and the video event timestamps, providing a union set of sorted events occurring during the past playing period.

According to an embodiment, determining the video event associated with the current application comprises:

-identifying the current application by a call to the usage statistics API, the current application corresponding to the last application recorded in usage statistics as being placed in a system foreground;

-determining the video event from a previous video event associated with the current application, a current audio state, and a current network usage state.

According to an embodiment, the previous video event associated with the current application is retrieved from the set of video events.

According to an embodiment, the current audio state and/or the current network usage state is obtained by calling at least one API provided by the operating system.

According to an alternative embodiment, the current audio status and/or the current network usage status is obtained by monitoring at least one equipment of the electronic device.

According to an embodiment, the video event is a video start event or a video stop event, and:

-the video event is a video start event when the following conditions are met:

-the previous video event is a video stop event; and

-the current audio state is an active state; and

-the network current network usage state is an active state;

-the video event is a video stop event when the following conditions are met:

-the previous video event is a video start event; and

-the current audio state is an inactive state.

According to an embodiment, the proposed method further comprises: removing consecutive duplicate events of the same type from the merged set of ordered events.

According to an embodiment, the proposed method further comprises: removing from the merged set of ordered events:

-successive repeating pairs formed by application start events and application stop events;

-successive repeated pairs formed by video start events and video stop events.

According to an embodiment, the proposed method further comprises: removing event pairs formed by application start events and application stop events from the consolidated set of ordered events when the following conditions are satisfied:

-separating the application start event and the application stop event for a duration below a predetermined threshold;

-the application associated with the event pair is not in a predetermined list of applications.

According to a particular feature of this embodiment, the method further comprises: adding a flag to an event pair formed by an application start event and an application stop event in the consolidated set of ordered events when the following conditions are met:

-separating the application start event and the application stop event for a duration below the predetermined threshold;

-the application associated with the event pair is present in the predetermined application list.

According to an embodiment, the monitoring application is a system application executed in the system background.

According to an embodiment, the operating system is an android operating system.

The present disclosure also relates to an apparatus for monitoring usage of at least one application executing within an operating system of an electronic device, wherein the apparatus comprises at least one processor adapted and configured to:

-when the processing conditions are not satisfied:

-determining a video event associated with the current application;

-storing the video events together with corresponding video event timestamps in a data structure, providing a set of video events;

-once the processing conditions are satisfied:

-determining a past playing period;

-calling a usage statistics API provided on said operating system, providing a set of application events representing whether an application is placed in the system foreground or in the system background:

-the application is put in the system foreground, defining an application start event; or

-the application is placed in the system background, defining an application stop event;

each application event is associated with a respective application event timestamp;

-retrieving, from the set of application events, application events occurring during the past play period based on the application event timestamp;

-retrieving video events occurring during the past playing period from the set of video events based on the video event timestamps;

-sorting the retrieved application events and video events in a temporal order based on the application event timestamps and the video event timestamps, providing a union set of sorted events occurring during the past playing period.

According to one embodiment, the different steps of the method for monitoring the usage of at least one application as described above are implemented by one or more software programs or software module programs comprising software instructions intended to be executed by a data processor of a device for monitoring the usage of at least one application executed within an operating system of an electronic device, these software instructions being designed to command the execution of the different steps of the method according to the present principles.

A computer program executable by a computer or a data processor is also disclosed, the program comprising instructions for commanding the execution of the steps of the method for monitoring the usage of at least one application executed within the operating system of an electronic device as described above.

The program may use any programming language and may be in the form of source code, object code, or an intermediate code between source and object code, such as in partially compiled form or in any other desired form.

The information carrier may be any entity or device capable of storing the program. For example, the carrier may comprise storage means such as a ROM, e.g. a CD-ROM or a microelectronic circuit ROM, or magnetic recording means, e.g. a floppy disk or a hard disk drive.

Also, the information carrier may be a transmissible carrier such as an electrical or optical signal, which may be conveyed via electrical or optical cable, by radio or by other means. A program according to the present principles may be uploaded to, among other things, an internet-type network.

Alternatively, the information carrier may be an integrated circuit in which the program is embodied, the circuit being adapted to perform, or to be used for the performance of, the method.

According to one embodiment, the method/apparatus may be implemented by software and/or hardware components. In this respect, the terms "module" or "unit" may equally well correspond to software components and hardware components or a collection of hardware and software components in this document.

A software component corresponds to one or more computer programs, one or more subroutines of a program, or more generally to any element of a program or piece of software that is capable of implementing the function or set of functions described below with respect to the associated module. Such software components are executed by a data processor of a physical entity (terminal, server, etc.) and are able to access hardware resources of the physical entity (memory, recording medium, communication bus, input/output electronic board, user interface, etc.).

In the same way, a hardware component corresponds to any element of a hardware unit capable of implementing the function or set of functions described below for the relevant module. It may be a programmable hardware component or a component with an integrated processor for executing software, e.g. an integrated circuit, a smart card, a memory card, an electronic board for executing firmware, etc.

Non-transitory processor-readable media having such programs stored thereon are also disclosed.

It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the disclosure, as claimed.

It must also be understood that references in the specification to "one embodiment" or "an embodiment" indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

Drawings

Embodiments of the disclosure may be better understood with reference to the following description and the accompanying drawings, which are given by way of illustration and not of limitation of the scope of protection, and in which:

FIG. 1 is a flow diagram illustrating the general principles of a proposed technique for monitoring usage of at least one application executing within an operating system of an electronic device, in accordance with an embodiment of the present disclosure;

FIG. 2 illustrates an example of how the proposed technique may be used to obtain a merged set of ordered events that provide valuable information about application usage, according to an embodiment of the present disclosure;

FIG. 3 illustrates various mechanisms that allow clearing a union set of ordered events, according to embodiments of the disclosure;

fig. 4 is a schematic block diagram illustrating an example of an apparatus for monitoring usage of at least one application executing within an operating system of an electronic device in accordance with an embodiment of the present disclosure.

The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosure.

Detailed Description

The present disclosure relates to a method of allowing monitoring of usage of an application executing within an operating system of an electronic device. The method is implemented by a monitoring application different from the application to be monitored and the method aims at providing not only information about the time of use of the application but also information about how certain monitored applications are used. Thus, by monitoring, it is understood herein to provide a way to detect some use cases of applications executing within an operating system from outside of the applications. More specifically, the proposed technique aims at determining application usage times (i.e., detecting when an application starts and closes), and for applications that allow playing videos (e.g., YouTube, Netflix, etc.), also determining times dedicated to viewing videos and times dedicated to browsing video directories. In one embodiment, the proposed technique also allows detecting when a search engine is used, and whether it is used to perform a text search or a speech search, as will be described later herein.

As will be described more fully below with reference to the accompanying drawings, one aspect of the present disclosure proposes to obtain a set of video events occurring in a monitored application by interleaving various available data, and another aspect of the present disclosure proposes to obtain a set of application events by calling a usage statistics API provided on an operating system. The set of video events and the set of application events are then merged under certain conditions to provide a merged set of ordered events that provides valuable information about when to use the application on the electronic device and the duration and manner in which to use the application. In the context of the present disclosure, a statistics API is used to return information about whether an application is placed in the system foreground or the system background. Since the statistics update is not a critical point in the global system lifecycle, it is usually one of the last core processes that are allowed to be executed using the resources of the electronic device. Thus, the set of application events provided by the usage statistics API may not be updated in real-time. In contrast, a set of video events must be built up in step-by-step, near real-time, by analyzing electronic device activity on a regular basis (e.g., every second), as no API in the context of the present disclosure allows access to video statistics. In order to reconcile these two problems, it is proposed, according to the general principles of the present disclosure, to delay the merging process described above for a period of time in order to give the system the necessary time to update the usage statistics, and to perform the merging according to a given playing period (time slot) in the past, to ensure that the data obtained by using the statistics API when the API is called is complete within the given playing period.

This disclosure may, however, be embodied in many alternate forms and should not be construed as limited to the embodiments set forth herein. Accordingly, while the disclosure is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intention to limit the disclosure to the specific forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternatives falling within the scope of the disclosure as defined by the claims. In the drawings, like or similar elements are designated with identical reference numerals throughout the several views.

Although not explicitly described, embodiments and variations of the present disclosure may be used in any combination or sub-combination.

FIG. 1 shows a schematic view of aIs a method for explaining a use case for monitoring at least one application executed within an operating system of an electronic device according to an embodiment of the present disclosureIs described. According to a particular feature, the method is implemented by a monitoring application in the form of a system application running on top of the operating system (as a background service). The electronic device may be any device with an embedded operating system, e.g., a smartphone, tablet, computer, set-top box, etc. Operating systems (e.g., Windows, MacOS, Android (Android), IOS, etc.) provide an environment that allows various applications to be executed on the electronic device. These applications may be pre-installed applications or applications that are installed by a user of the electronic device after purchase.

In a first phase, in case the processing conditions are not met, two steps are performed on a cycle time basis (e.g. every second) -step 11 for determining the video event associated with the current application and step 12 for storing said video event in a data structure. In this way, a set of video events is built up step by step in near real-time. Steps 11 and 12 are described in further detail below.

At step 11, a video event associated with the current application is determined. In one embodiment, such a video event is a video start event (i.e., the video has just started in the current application) or a video stop event (i.e., the video has just stopped in the current application). In other words, a video event represents a change in the state of a video (from video stop to video play, or from video play to video stop). The current application is the application that was in the system foreground when step 11 was executed. In an embodiment, the current application is identified by calling an operating system provided usage statistics API. The current application then corresponds to the last application recorded as being placed in the foreground of the system (but not recorded as being placed in the background of the system) in the results provided by the call to the usage statistics API. The video event associated with the current application is then determined based on the previous video event associated with the current application, the current audio state, and the current network usage state.

More specifically, according to one embodiment:

-a video event is identified as a video start event when all of the following conditions are met: the previous video event associated with the current application is a video stop event, the current audio state is an active state, and the current network usage state is an active state (i.e., as described later herein, usage of the network is continuous for at least a predetermined amount of time);

-a video event is identified as a video stop event when all of the following conditions are met: the previous video event associated with the current application is a video start event and the current audio state is an inactive state.

In one embodiment, the previous video event associated with the current application is retrieved from the set of video events provided at the end of the previous iteration of steps 11 and 12 (if the set of video events does not already contain any video event associated with the current application, a default value may be used: e.g., in this case, the previous video event may be considered a video stop event).

Determining whether an audio stream is currently playing on the electronic device and determining application network usage over a period of time may be performed in a variety of ways. According to an embodiment, this information is obtained using some application programming interfaces provided within the operating system (other than using a statistical API). For example, an API may be called to determine whether the current application is using the network. More specifically, such an API may be invoked periodically so that it may be determined whether the time that the current application is currently using the network is above a predetermined threshold. If the threshold is reached (e.g., the threshold is set to 10 seconds and it is determined that the current application has used the network within the past 11 seconds), then the current network usage status is considered to be the active status. Otherwise, the current network usage state will be considered as the inactive state. This enables a more accurate differentiation between true video streaming use (typically characterized by a large use of the network) and other uses that should not be understood as video playback (e.g., progressive loading of a video catalog while the user is browsing in the case where audio is somehow also active). The same or similar mechanisms may be implemented to determine whether the current audio state is considered active. For example, if an audio stream is currently playing on the electronic device, the current audio state is considered active, and if no sound is playing within the past ten seconds, the current audio state is considered inactive. According to another embodiment, instead of using an API, the current network usage status and/or the current audio status may be obtained by directly monitoring a specific equipment of the electronic device by means of a dedicated probe. For example, monitoring a sound card and/or a network interface of an electronic device may allow a current audio status and/or a current network usage status, respectively, to be inferred.

This interleaving of information as described above makes it possible to infer some application usage that otherwise would not be possible to detect using only one metric. For example, when streaming video, it is necessary to download the video block by block over time. Thus, the use of the network is not constant. However, audio is always used, so interleaving network usage information with audio information can detect whether video is being streamed. In addition, further interleaving this information with application usage, it can be determined which application is currently streaming video.

At step 12, the determined video event is stored in a data structure (e.g., a database associated with a monitoring application) along with a corresponding video event timestamp. In one embodiment, the name of the current application is also associated with the determined event in a data structure.

As previously mentioned, in case the processing conditions are not satisfied, the step 11 of determining the video event associated with the current application and the step 12 of storing said video event in the data structure are performed on a cyclic time basis (e.g. per second). Such a processing condition may be satisfied when a given number of video events are stored in the video event set 21, when a given time has elapsed, or when a given number of iterations of steps 11 and 12 have been performed. For example, the processing conditions may be satisfied every 10 seconds.

Once the processing conditions are met, a second phase is performed, which may be referred to as a processing phase or a merge phase.

In step 13, the past playing period is determined. In one embodiment, the past playing period is determined based on the current time and the frequency with which the second stage is performed. For example, if the processing condition is satisfied every 10 seconds, the past play period may be defined by a time interval from "current time-20 seconds" to "current time-10 seconds" end (i.e., it starts from "current time minus twice the period for performing the second stage", and ends at "current time minus the period for performing the second stage").

At step 14, a call to a usage statistics API provided on the operating system is executed. The call returns to the set of application events 22, which represent whether the application is placed in the system foreground (in the context of this disclosure, considered an application start event) or the system background (in the context of this disclosure, considered an application stop event). Each application event is associated with a respective application event timestamp.

At step 15, based on the application event timestamp, the application events that occurred during the past play period determined at step 13 are retrieved from the set of application events. The past playing period is a playing period far enough in the past, and therefore the usage statistics returned using the statistics API based on this interval are up-to-date.

The set of video events 21 previously constructed by the repeated iterations of steps 11 and 12 is processed in a similar manner: at step 16, video events occurring during the past play period determined at step 13 are retrieved from the set of video events 21 based on the video event timestamps.

The application events retrieved at step 15 and the video events retrieved at step 16 are then collected and ordered in time sequence based on the application event timestamps and video event timestamps to provide a consolidated set 23 of ordered events that occurred during the past play period determined at step 13.

FIG. 2It is shown how the set of video events 21 and the set of application events 22 are filtered with respect to a past playing period TS (e.g. the past playing period starts at a time stamp t200 and ends at a time stamp t 400) and then merged to provide a merged set 23 of ordered events.

As can be seen from this example, there are four possible types of events: an application START event (APP _ START), an application STOP event (APP _ STOP), a VIDEO START event (VIDEO _ START), and a VIDEO STOP event (VIDEO _ STOP). Each event is associated with a respective timestamp and a respective application. It should also be noted that events can typically be collected in pairs: an event pair formed by an application START event and an application STOP event on the one hand (for example, with respect to application App7, in the merged set of ordered events 23, an event pair formed by App _ START at timestamp t382 and App _ STOP at timestamp t 398) and by a VIDEO START event and a VIDEO STOP event on the other hand (for example, with respect to VIDEO playing in application App4, in the merged set of ordered events 23, an event pair formed by VIDEO _ START at timestamp t284 and VIDEO _ STOP at timestamp t 355).

The example described above with respect to fig. 2 shows a nominal case where all event pairs (as described above) form well in the consolidated set of ordered events. However, this may not always be the case in practice for various reasons. For example, the accuracy of usage statistics provided using the statistics API may be imperfect because the statistics updates are not critical points in the global operating system lifecycle. Due to system limitations, the operating system may also place the same application in the foreground and background multiple times in a short time. Since the determination of video events also relies on the use of a usage statistics API (to identify the current application), some inaccuracies may eventually be observed in the video event set as well. Thus, for both application events and video events, duplicate events may be seen, as shown in the example of the merged set of ordered events 31 shown in FIG. 3.

Thus, according to some embodiments, various mechanisms described below are proposed to clean up the consolidated set of ordered events 31.

According to one embodiment, the proposed technique includes removing consecutive duplicate events of the same type from a merged set of ordered events. By consecutive repeated events of the same type, it is meant here the same event as the given event type, events associated with the same application rather than the given event, and events forming a chain (of one or more events) immediately following the given event in the merged set of ordered events. For example, referring to fig. 3, the two App _ STOP events associated with application App3 at timestamps t354 and t355 are consecutive repeating events of App _ STOP events associated with application App3 at timestamp t 352. Thus, these events are removed from the consolidated set of ordered events along with all other consecutive duplicate events (numbered 310 in FIG. 3).

According to one embodiment, the proposed technique further comprises: when the duration separating the application start event and the application stop event is below a predetermined threshold (e.g., 3 seconds), the event pair formed by the application start event and the application stop event is removed from the consolidated set of ordered events. These pairs of application events may be considered spurious events or noise in practice because they define time intervals too short to represent the actual use of the application. However, according to a particular feature, such removal may be performed only if the application associated with the application event pair is not in the predetermined application list. In this way, a predetermined list can be used to identify specific applications for which even very short usage times are considered relevant. For example, the usage time of a search engine application (e.g., application Katnis running on an android operating system) may be very short (e.g., less than 3 seconds), especially when the search engine application is used to perform a voice search. In fact, it is generally much faster to pronounce keywords to search than to write them. Such a search engine application may thus be added to the above-mentioned predetermined application list. For example, returning to fig. 3, assuming that application App3 does not exist in such a predetermined list of applications, the App _ START-App _ STOP event pair 320 associated with App3 is removed from the consolidated set of ordered events because the time interval between timestamps t752 and t754 is below a predetermined threshold (e.g., 3 seconds). However, assuming that application App2 is present in such a list (e.g., because App2 is referred to as a search engine application), the App _ START-App _ STOP event pair 330 associated with application App2 is retained (i.e., not removed) in the consolidated set of ordered events, even though the time interval between timestamps t755 and t757 is also below the predetermined threshold of 3 seconds. According to certain features, such event pairs 330 may even be flagged in a consolidated set of ordered events. For example, as shown in fig. 3, a flag "VOICE ACTIVATED" is added to the App _ START-App _ STOP event pair 330 associated with the application App 2. In the case where App2 is a search engine application, such features enable a distinction between a putative voice search (event pair 330) and a putative text search (event pair 340) in a consolidated set of ranked events.

Due to the above mechanism, a cleaned-up consolidated set 32 of ordered events is eventually obtained.

The consolidated set of ordered events obtained by the various embodiments described previously in this document provides a lot of valuable information about the application usage. For example, the consolidated set of ordered events 32 of FIG. 3 tells us that:

between timestamps t301 and t352, the application App3 is used;

between time stamps t356 and t366, the search engine application App2 is used, possibly for text search (no flag);

between time stamps t367 and t750, the video application App4 is used, the time between time stamps t367 and t427 may be dedicated to browsing the video directory (since no video is played during this time), the time between time stamps t427 and t750 is dedicated to watching the video;

between time stamps t755 and t757, the search engine application App2 is used, possibly for VOICE search (presence flag VOICE ACTIVATED).

According to an embodiment, such a union set of ordered events may be sent to a remote server, such as a data warehouse, for further analysis.

According to another aspect, the present disclosure also relates to an apparatus for monitoring usage of at least one application executing within an operating system of an electronic device, wherein the apparatus comprises at least one processor adapted and configured to:

-when the processing conditions are not satisfied:

-determining a video event associated with the current application;

-storing the video events together with corresponding video event timestamps in a data structure, providing a set of video events;

-once the processing conditions are satisfied:

-determining a past playing period;

-calling a usage statistics API provided on said operating system, providing a set of application events representing whether an application is placed in the system foreground or in the system background:

-the application is put in the system foreground, defining an application launch event; or

-the application is placed in the system background, defining an application stop event;

each application event is associated with a respective application event timestamp;

-retrieving, from the set of application events, application events occurring during the past play period based on the application event timestamp;

-retrieving video events occurring during the past playing period from the set of video events based on the video event timestamps;

-sorting the retrieved application events and video events in a temporal order based on the application event timestamps and the video event timestamps, providing a union set of sorted events occurring during the past playing period.

Such a device is particularly suitable for implementing the above-described method for monitoring the use of at least one application. It may of course comprise different features relating to the method according to embodiments of the disclosure, which features may be combined or taken separately. The features and advantages of the device are therefore the same as those of the method.

FIG. 4Is a schematic block diagram illustrating an example of an apparatus 400 for monitoring usage of at least one application executing within an operating system of an electronic device in accordance with an embodiment of the present disclosure. As previously described, the electronic device may be any device that includes an operating system that provides an environment that allows various applications to be executed on the electronic device. For example, the electronic device maySuch as smart phones, tablet computers, set-top boxes, etc. In one embodiment, the apparatus 400 may be embedded in an electronic device and may have some shared resources. In another embodiment, it may be an external device connected to or communicating with the electronic apparatus.

The apparatus 400 has a memory 41 and a processing unit 42, the memory 41 comprising a buffer memory, the processing unit 42 being equipped, for example, with a microprocessor and being driven by a computer program 43, the computer program 43 implementing at least some steps of the method for monitoring usage of at least one application executed within an operating system of an electronic device according to the invention.

At initialization, code instructions of the computer program 43 are loaded, for example, into a RAM and then executed by a processor of the processing unit 42. The processing unit 42 inputs at least one piece of information I, such as the result of whether the processing condition is satisfied. The microprocessor of the processing unit 42 implements some steps of the above-described method according to the instructions of the computer program 43 to provide a merged set of ordered events occurring during a past playing period as a piece of processing information T. To this end, the microprocessor of the processing unit 42 is adapted and configured for:

-when the processing conditions are not satisfied:

-determining a video event associated with the current application;

-storing the video events together with corresponding video event timestamps in a data structure, providing a set of video events;

-once the processing conditions are satisfied:

-determining a past playing period;

-calling a usage statistics API provided on said operating system, providing a set of application events representing whether an application is placed in the system foreground or in the system background:

-the application is put in the system foreground, defining an application start event; or

-the application is placed in the system background, defining an application stop event;

each application event is associated with a respective application event timestamp;

-retrieving, from the set of application events, application events occurring during the past play period based on the application event timestamp;

-retrieving video events occurring during the past playing period from the set of video events based on the video event timestamps;

-sorting the retrieved application events and video events in a temporal order based on the application event timestamps and the video event timestamps, providing a union set of sorted events occurring during the past playing period.

Another aspect of the disclosure relates to at least one computer program product downloadable from a communication network and/or recorded on a computer-readable medium and/or executable by a processor and comprising program code instructions for implementing the above-described method.

Furthermore, the present disclosure also relates to a non-transitory computer-readable medium comprising a computer program product recorded thereon and capable of being executed by a processor, the computer program product comprising program code instructions for implementing the method for monitoring usage of at least one application as described above.

Computer-readable storage media, as used herein, is considered non-transitory storage media in view of the inherent ability to store information therein and the inherent ability to provide retrieval of information therefrom. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. It should be understood that while providing more specific examples of computer readable storage media to which the present principles may be applied, the following is merely an illustrative and non-exhaustive list as would be readily understood by a worker of ordinary skill in the art: a portable computer diskette; a hard disk; read Only Memory (ROM); erasable programmable read-only memory (EPROM or flash memory); portable compact disc read only memory (CD-ROM); an optical storage device; a magnetic storage device; or any suitable combination of the foregoing.

The claims (modification according to treaty clause 19)

1. A method for monitoring usage of at least one application executing within an operating system of an electronic device, the method being implemented by a monitoring application different from the at least one application, wherein the method comprises at least one iteration of:

-when the processing conditions are not satisfied:

-determining (11) a video event associated with the current application, the determining comprising:

-identifying the current application by a call to a usage statistics API provided on the operating system, the usage statistics providing a set of application events on behalf of whether an application is placed in system foreground or system background:

-the application is put in the system foreground, defining an application start event; or

-the application is placed in the system background, defining an application stop event;

each application event is associated with a respective application event timestamp, the current application corresponding to a last application recorded as being placed in a system foreground in the set of application events;

-determining the video event from a previous video event associated with the current application, a current audio state, and a current network usage state;

-storing (12) the video events in a data structure together with corresponding video event timestamps, providing a set of video events (21);

-once the processing conditions are satisfied:

-determining (13) a past playing period;

-calling (14) the usage statistics API, providing an updated set of application events (22);

-retrieving (15) from the updated set of application events (22) application events occurring during the past playing period based on the application event timestamp;

-retrieving (16) video events occurring during the past playing period from the set of video events (21) based on the video event timestamps;

-sorting (17) the retrieved application events and video events in a temporal order based on the application event timestamps and the video event timestamps, providing a union set (23) of sorted events occurring during the past playing period.

2. The method of claim 1, wherein the previous video event associated with the current application is retrieved from the set of video events.

3. The method of claim 1, wherein the current audio state and/or the current network usage state is obtained through a call to at least one API provided by the operating system.

4. The method of claim 1, wherein the current audio status and/or the current network usage status is obtained by monitoring at least one equipment of the electronic device.

5. The method of claim 1, wherein the video event is a video start event or a video stop event, and wherein:

-the video event is a video start event when the following conditions are met:

-the previous video event is a video stop event; and is

-the current audio state is an active state; and is

-the network current network usage state is an active state;

-the video event is a video stop event when the following conditions are met:

-the previous video event is a video start event; and is

-the current audio state is an inactive state.

6. The method of claim 1, wherein the method further comprises: removing consecutive duplicate events of the same type from the merged set of ordered events.

7. The method of claim 1, wherein the method further comprises: removing from the merged set of ordered events:

-successive repeating pairs formed by application start events and application stop events; and

-successive repeated pairs formed by video start events and video stop events.

8. The method of claim 1, wherein the method further comprises: removing event pairs formed by application start events and application stop events from the consolidated set of ordered events when the following conditions are satisfied:

-separating the application start event and the application stop event for a duration below a predetermined threshold; and is

-the application associated with the event pair is not in a predetermined list of applications.

9. The method of claim 8, wherein the method further comprises: adding a flag to an event pair formed by an application start event and an application stop event in the merged set of ordered events when the following conditions are met:

-separating the application start event and the application stop event for a duration below the predetermined threshold; and is

-the application associated with the event pair is present in the predetermined application list.

10. The method of claim 1, wherein the monitoring application is a system application executing in the system background.

11. The method of claim 1, wherein the operating system is an android operating system.

12. An apparatus for monitoring usage of at least one application executing within an operating system of an electronic device, wherein the apparatus comprises at least one processor adapted and configured to:

-when the processing conditions are not satisfied:

-determining a video event associated with the current application, the determining comprising:

-identifying the current application by a call to a usage statistics API provided on the operating system, the usage statistics providing a set of application events on behalf of whether an application is placed in system foreground or system background:

-the application is put in the system foreground, defining an application start event; or

-the application is placed in the system background, defining an application stop event;

each application event is associated with a respective application event timestamp, the current application corresponding to a last application recorded as being placed in a system foreground in the set of application events;

-determining the video event from a previous video event associated with the current application, a current audio state, and a current network usage state;

-storing the video events together with corresponding video event timestamps in a data structure,

providing a set of video events;

-once the processing conditions are satisfied:

-determining a past playing period;

-calling the usage statistics API, providing an updated set of application events;

-retrieving, from the updated set of application events, application events occurring during the past play period based on the application event timestamp;

-retrieving video events occurring during the past playing period from the set of video events based on the video event timestamps;

-sorting the retrieved application events and video events in a temporal order based on the application event timestamps and the video event timestamps, providing a union set of sorted events occurring during the past playing period.

13. A computer program product downloadable from a communication network and/or recorded on a computer-readable medium and/or executable by a processor, the computer program product comprising program code instructions for implementing a method according to any one of claims 1 to 12.

14. A non-transitory computer readable medium comprising a computer program product recorded thereon and capable of being executed by a processor, the computer program product comprising program code instructions for implementing the method according to any one of claims 1 to 12.

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:遥控装置、信息处理方法以及程序

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类