← Back to team overview

ubuntu-phone team mailing list archive

Re: MeeGo applauncherd: faster application startup and more

 

On Monday 17 June 2013 07:43:26 Thomas Voß wrote:
> thanks for bringing this up. Upstart user session will take care of
> single application instances and integrates with AppArmor to implement
> our confinement strategy (for >= saucy). The interesting feature from
> my pov is the accelerated application startup. Is that relying on
> preloading specific symbols?

Yes, Its preloading all the Qt and libmeegotouch stuff.

Basically instead of launching your app normally, you give it as an argument 
to a the so called invoker (/usr/bin/invoker) which has all the common stuff 
already loaded and forks to your application.
Additionally, they've introduced an own QApplication class with some better 
tuned caching. Instead of creating a QApplication like you would do with 
standard Qt, you use this

QApplication *app = MDeclarativeCache::qApplication(argc, argv);

to create a new QApplication. I don't exactly know the details what they do 
inside that MDeclarativeCache. I guess one thing is to monitor the state of 
the created QML view and make the splash screen go away when ready.

Hope this helps,
Michael

> 
> I'm CC'ing Ted and Steve explicitly on this mail as they are most
> familiar with upstart user session.
> 
> Thanks,
> 
>   Thomas
> 
> On Mon, Jun 17, 2013 at 7:33 AM, Alberto Mardegan
> 
> <alberto.mardegan@xxxxxxxxxxxxx> wrote:
> > Hi all!
> > 
> >   I'm sending this message both to ubuntu-devel and ubuntu-phone, in the
> > 
> > hope of reaching the widest interested audience as possible. However,
> > please reply to ubuntu-devel only.
> > 
> > I want to bring to your attention the existence of a project which IMHO
> > would be very beneficial to Ubuntu (especially on embedded devices, but
> > not
> > only): the application launcher originally developed for Maemo/MeeGo.
> > 
> > In short, the main features that applauncherd bring to the system are:
> >  * faster application startup
> >  * support for single instance applications
> >  * splash screen while the application is starting up
> > 
> > The recommended readings are these:
> >   http://apidocs.meego.com/1.0/mtf/launcher.html
> >   http://goo.gl/DjGCV
> > 
> > In order to be used in Ubuntu, the software itself needs some porting, to
> > remove the dependencies to Qt4, X11, and the AEGIS security framework used
> > in MeeGo. Luckily though, these changes have already been made by the Mer
> > people, who ported the software to Qt5, removed the AEGIS stuff and also
> > simplified a bit the architecture (there isn't an applauncherd daemon any
> > more, but the invoked directly talks to the booster processes). They also
> > wrote a booster for speeding up the startup of applications using QML
> > components, and we could easily modify that to use our Ubuntu SDK
> > components instead.
> > 
> > Their code is here:
> >   https://github.com/nemomobile/mapplauncherd
> >   https://github.com/nemomobile/mapplauncherd-qt
> >   https://github.com/nemomobile/mapplauncherd-booster-qtcomponents
> > 
> > Please let me know what you think of this. IMHO it's a simple and
> > brilliant
> > idea, it could be integrated with apparmor and also be used to provide
> > sane
> > default callbacks for handling the application lifetime state changes.
> > 
> > I've never been directly involved in this project, but given how much I
> > dislike NIH, I'd be happy to collaborate with whoever wants to bring this
> > to Ubuntu.
> > 
> > Ciao,
> > 
> >   Alberto
> > 
> > --
> > Mailing list: https://launchpad.net/~ubuntu-phone
> > Post to     : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~ubuntu-phone
> > More help   : https://help.launchpad.net/ListHelp


Follow ups

References