-
Arnaud Ferraris authored
This commit enables the generation and display of the ToC on all pages where it's relevant due to the content size. More pages could have been included but left aside due to inconsistent use of heading levels leading to rendering/visual glitches. The pages' content has not been modified, except for the "Terms of use" page which included a manually-generated ToC. Signed-off-by:
Arnaud Ferraris <arnaud.ferraris@collabora.com>
Arnaud Ferraris authoredThis commit enables the generation and display of the ToC on all pages where it's relevant due to the content size. More pages could have been included but left aside due to inconsistent use of heading levels leading to rendering/visual glitches. The pages' content has not been modified, except for the "Terms of use" page which included a manually-generated ToC. Signed-off-by:
Arnaud Ferraris <arnaud.ferraris@collabora.com>
date = "2018-10-17"
weight = 100
toc = true
title = "Apertis Development Environment"
aliases = [
"/old-developer/latest/appdev-ade.html",
"/old-developer/v2019/appdev-ade.html",
"/old-developer/v2020/appdev-ade.html",
"/old-developer/v2021pre/appdev-ade.html",
"/old-developer/v2022dev0/appdev-ade.html",
"/old-wiki/SDK"
]
Apertis provides tools to aid with the development of applications using the Canterbury application framework, which help with the building of applications targeting a hardware platform; the installation of development versions of the application to the target device and debugging of the application.
These tools are pre-installed in the Apertis SDK. The SDK images shipped by
Apertis are meant to be run in VirtualBox.
They provide a common, reproducible environment to build both platform
packages and application-bundles for Apertis. The tool provides general manual
pages so you can get command information by using man ade
on the SDK.
Sample applications
The Apertis SDK provides sample applications in the user
home folder. Each
application aims to demonstrate how to create a bundle addressing a minimal use
case.
- helloworld-app: A basic sample application which can be used as the basic skeleton for more complex application
- helloworld-simple-agent: An agent-only application which does not provide any graphical program
- helloworld-agentapp: An agent application which interacts with a graphical program
- helloworld-https-client: A basic HTTP(S) client application
- helloworld-persistapp: An application to deal with persistent data
- helloworld-prefsapp: An application to deal with preferences
- notification-example: An example for using Notifications API
- hard-keys-example: An example for using hardware keys
- cpp-library-example: An example for using external library with C++
- helloworld-webapp: A basic Web Runtime application
{{% notice info %}} The sample applications are also available from the Apertis gitlab. {{% /notice %}}
To demonstrate how to use ade
,
helloworld-app
is going to be used through this document.
Building and running an application bundle with ade on the SDK
To install and test on the SDK, ade
provides the --native
option.
$ cd /home/user/sample-applications/helloworld-app
$ ade configure --native
$ ade build --native
$ ade export
$ ade install --native
$ ade run --native
If you want to build the application in debug mode, you should use ade configure --native --debug
.
When the build is done, ade export
will create a bundle file. For the helloworld-app
example,
the command will generate the org.apertis.HelloWorldApp-0.1.0.bundle
file under the current path.
The final step for installation is to run ade install --native
. Then, if it is done successfully,
you can run the application by executing ade run --native
.
Building and debugging app bundles with ade
The following steps can be used to cross-compile an example "Hello World"
agent, deploy it onto the target device and debug it remotely using gdb
using
the Apertis helper tool called ade
:
Debugging on a target device with ADE
Installation of a sysroot
To run/debug an application bundle on a target device, the first step is to download a sysroot.
You can manage sysroots on the SDK with the ade sysroot
command. See man ade-sysroot
for more
details about sysroot-related options.
ade sysroot list
is used to check which sysroots are already installed
on the SDK. If there's no installed sysroot image, the result would be like the following
message.
$ ade sysroot list
No sysroot installed in directory /opt/sysroot/.