Abstract

Last Updated: February 23, 2014

The document contains general overview YotaPhone software architecture and describesdetails of Back Screen Activity application lifecycle. The document is intended to third–party developers of Back Screen applications.

YotaPhone Software Architecture

YotaPhone software architecture follows the rules common for Android based mobile devices.Please, see details on Fig. 1

Image
Figure 1. YotaPhone Software Architecture

Figure below represents architecture components necessary for applications development andhow they interact with each other.

Image
Figure 2. Architecture components necessary for applications development.

Applications Layer

Applications Layer is a main place of interest for the third–party developers. Any third–party application shall be installed within this layer only.

Applications Layer is on top of Google Applications and Services Layer and contains customapplications such as Organizer, Notepad, Wallpapers, etc. It interacts with SDK in bothdirections.

SDK

SDK is intended to be used by developers for their YotaPhone applications.The SDK supports a number of high-level services to front–end applications in the form of Java classes. These services are opened for Back Screen applications developers. SDK exposes bi–directional interfaces to custom applications and services.

YotaPhone Manager

It is an important part of Architecture. YotaPhone Manager controls the interaction between applications and the lower-level methods. Any 3rd party interact with YM via SDK.

YotaPhone Daemon

Yota Daemon is low–level software instance and is responsible for transmitting commands from Applications/Services via YotaPhone Manager to Eink Controller Driver. Draw a figure on E-Ink display, for example.

Eink controller driver

Vendor’s Eink Controller driver is used. It is responsible for executing the commands received from applications/services or OS.

Android Framework

YotaPhone utilizes standard Android framework with minor custom modifications.

Back Screen Activity Lifecyrcle

Section describes details of BSActivity application lifecycle. BSActivity is responsible for display of output data on the Back Screen. Figure below represents the lifecycle of this application.

Image
Figure 3. Back Screen activity lifecycle.

BSActivity is based on standard android service. Developer must declare it inAndroidManifest.xml:

<service
       android:name="com.yotadevices.example.BSActivity"/>

You can invoke BSActivity using code

mContext.startService(BSActivityIntent);
  • Upon start up the BSActivity receives callback onBSCreate() and registers itself in the YotaPhone Manager (YM) as Back Screen Application, which has an icon and title and is visible in Task Manager on Back Screen.
  • Upon registration BSActivity receives callback onBSResume() and now BSActivity is able to draw on the back screen.
  • When next BS-application is started or user calls the Task Manager on back screen , YM will stop active BSActivity which receives callback onBSPause(), onBSStop().
  • YM will destroy BSActivity upon receive onBSDestroy (like onDestroy() in standard android service)

Any data can be saved in onBSSaveInstanceState(Bundle savedInstanceState), which is called following the onBSPause(). BSapplication is not active upon receive onBSPause() callback, any output to the back screen or arrival of any gestures from back screen touch panel is blocked now. BS-Application could receive onBSStop() in any time. When multiple reuse of BSActivity being active is required, the onHandleIntent(Intent intent) method shall be overrode to allow the output on the back screen.