X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2F06_Component_Documentation%2FApplication_Framework%2F02_Application_Startup.md;fp=docs%2F06_Component_Documentation%2FApplication_Framework%2F02_Application_Startup.md;h=8594426c913ebdd55154b1cbf6adc7ffb40be382;hb=04ae05c69a1ee2934b139b179d15ba112ff18ab6;hp=3cd7ca0929fa74cb57cb304abf29281d5c3b06b7;hpb=ecccce4b62c048272dd48378cc05d7165746b83e;p=AGL%2Fdocumentation.git diff --git a/docs/06_Component_Documentation/Application_Framework/02_Application_Startup.md b/docs/06_Component_Documentation/Application_Framework/02_Application_Startup.md index 3cd7ca0..8594426 100644 --- a/docs/06_Component_Documentation/Application_Framework/02_Application_Startup.md +++ b/docs/06_Component_Documentation/Application_Framework/02_Application_Startup.md @@ -1,5 +1,5 @@ --- -title: Application Startup +title: Application Launcher --- # Introduction @@ -14,11 +14,11 @@ discovering installed applications and executing those. In order to provide a language-independent interface for applications and service to use, AGL includes `applaunchd`, a system service. -# Application launcher service +# Application Launcher Service The purpose of `applaunchd` is to enumerate applications available on the system and provide a way for other applications to query this list and start -those on demand. It is also able to notify clients of the startup and +those on demand. It is also able to notify clients of the start-up and termination of applications it manages. To that effect, `applaunchd` provides a gRPC interface which other applications @@ -28,20 +28,20 @@ can use in order to execute those actions. it isn't aware of applications started by other means (`systemd`, direct executable call...), and therefore can't send notifications for those.* -## Application discovery +## Application Discovery Applications are enumerated from systemd's list of available units based on the pattern `agl-app*@*.service`, and are started and controled using their systemd unit. Please note `applaunchd` allows only one instance of a given application. -## Application identifiers +## Application Identifiers Each application is identified by a unique Application ID. Although this ID can be any valid string, it is highly recommended to use the "reverse DNS" convention in order to avoid potential name collisions. -## gRPC interface +## gRPC Interface The interface provides methods for the following actions: @@ -58,7 +58,7 @@ compatibility in case additional fields are required. It is a good standard practice to follow up with these recommendation when developing a new protobuf specification. -### Applications list +### Application Enumeration The `ListApplications` method allows clients to retrieve the list of available applications. @@ -77,7 +77,7 @@ message ListResponse { } ``` -### Application startup request +### Application Start-up Applications can be started by using the `StartApplication` method, passing the `StartRequest` message, defined as: @@ -106,7 +106,7 @@ If the application is already running, `applaunchd` won't start another instance, but instead reply with a `AppStatus` message setting the `status` string to "started". -### Status notifications +### Status Notifications The gRPC interface provides clients with a subscription model to receive status events. Client should subscribe to `GetStatusEvents` method to receive @@ -146,7 +146,7 @@ This can be useful, for example, when switching between graphical applications: set to "terminated" to denote that the application has been terminated, forcibly or not -## A deeper look at start-up, activation and application switching +## Start-up, Activation, and Application Switching Application start-up, activation and application switching are sometimes conflated into a single operation but underneath some of these are distinct @@ -177,7 +177,7 @@ by the desktop run-time/shell client. as this synchronization part between `applaunchd` has not been implemented. The plan is to migrate all of remaining run-times to using this approach.* -### Start-up & activation +### Start-up and Activation This means that we require some sort of interaction between `StartApplication` method and the events sent by the AGL compositor in order to correctly handle @@ -231,7 +231,7 @@ application start-up: ![Application_start](images/start_and_activation.png) -### Application switching +### Application Switching With the compositor providing application status events, it might seem that the `applaunchd`'s, `GetStatusEvents` might be redundant, but in fact it is being