# Overview

The VEE Wear Kernel application provides:

- the capability to deploy and install Features
- Kernel APIs for wearable services, including APIs for Features to:
    - register Activities, Watchfaces and Complication Data Sources
    - get device, health and time information
    - get fonts
    - create and delete external resources
- a UI showing the lists of Activities and of Watchfaces registered by Features

It is built using the VEE Port provided by the `veeport.dir` or `veeport.dependency` properties.

# Usage

## Using a local Vee Port project

When the sources for the VEE Port are available locally, it can be more efficient to load these projects directly
instead of resolving them as module dependencies.
This approach improves development workflow by automatically incorporating any changes made to the VEE Port during the
application build, eliminating the need for manual dependency updates.
To achieve this, use Gradle's Composite Build feature to include the local project, as shown in the example below:

`.\gradlew runOnSimulator -P"veePortVariant"="com.microej.veeport.<veeport>:vee-port:1.2.0" -P"groupVariant"="<veeport>" --include-build path/to/veeport`

It is possible to make the above arrangement by using `includeBuild()` to declare the included build in
the `settings.gradle.kts` file instead. For example: `includeBuild("path/to/veeport")`.

## Configuring the Image Heap Size for Different Displays

The required image heap size depends on the VEE Port in use, as it must accommodate the display size.
If the image heap size is too small, MicroUI will throw runtime errors.
At build time, specify the image heap size using the `ej.microui.memory.imagesheap.size` application option, as shown in
the example below:

`.\gradlew runOnSimulator -P"veePortVariant"="com.microej.veeport.<veeport>:vee-port:1.2.0" -P"groupVariant"="<veeport>" -D"microej.option.ej.microui.memory.imagesheap.size"="<value>"`

## Feature Portability Control

To build the Kernel metadata file, execute the target task located at  `wear-kernel/Tasks/other/genereKDat`. 
Running the task will create a file named `application.kdat` at the root of the project. 
This file contains the necessary metadata for your kernel.
The generated `application.kdat` file will be used in each kernel generation process. 
This is crucial for ensuring Feature Portability Control, which helps maintain compatibility across different environments and configurations.

For more detail, see https://docs.microej.com/en/latest/KernelDeveloperGuide/kernelLink.html#feature-portability-control.

# Requirements

This application requires the following Foundation Libraries:

* EDC 1.3
* BON 1.4
* SNI 1.4
* KF 1.6
* BLUETOOTH 2.2
* MICROUI 3.1
* MICROVG 1.2
* DRAWING 1.0

# Dependencies

_All dependencies are retrieved transitively by Gradle_.

# Source

N/A.

# Restrictions

None.

---
_Copyright 2024-2025 MicroEJ Corp. All rights reserved._  
_MicroEJ Corp. PROPRIETARY/CONFIDENTIAL. Use is subject to license terms._
