<div dir="ltr">I think this is something that should be looked into, this cycle. We really nned faster startup for apps :)</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 17, 2013 at 1:35 PM, Thomas Voß <span dir="ltr"><<a href="mailto:thomas.voss@canonical.com" target="_blank">thomas.voss@canonical.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Mon, Jun 17, 2013 at 10:02 AM, Michael Zanetti<br>
<<a href="mailto:michael.zanetti@canonical.com">michael.zanetti@canonical.com</a>> wrote:<br>
> On Monday 17 June 2013 07:43:26 Thomas Voß wrote:<br>
>> thanks for bringing this up. Upstart user session will take care of<br>
>> single application instances and integrates with AppArmor to implement<br>
>> our confinement strategy (for >= saucy). The interesting feature from<br>
>> my pov is the accelerated application startup. Is that relying on<br>
>> preloading specific symbols?<br>
><br>
> Yes, Its preloading all the Qt and libmeegotouch stuff.<br>
><br>
> Basically instead of launching your app normally, you give it as an argument<br>
> to a the so called invoker (/usr/bin/invoker) which has all the common stuff<br>
> already loaded and forks to your application.<br>
<br>
</div>Ack, here is where the upstart-launcher would come into play.<br>
<div class="im"><br>
> Additionally, they've introduced an own QApplication class with some better<br>
> tuned caching. Instead of creating a QApplication like you would do with<br>
> standard Qt, you use this<br>
><br>
> QApplication *app = MDeclarativeCache::qApplication(argc, argv);<br>
><br>
> to create a new QApplication. I don't exactly know the details what they do<br>
> inside that MDeclarativeCache. I guess one thing is to monitor the state of<br>
> the created QML view and make the splash screen go away when ready.<br>
><br>
<br>
</div>This is something we would need to investigate further. Alberto, can<br>
you take a look at MDeclarativeCache and try to summarize the benefits<br>
it provides?<br>
<br>
Thanks,<br>
<br>
  Thomas<br>
<div class="HOEnZb"><div class="h5"><br>
> Hope this helps,<br>
> Michael<br>
><br>
>><br>
>> I'm CC'ing Ted and Steve explicitly on this mail as they are most<br>
>> familiar with upstart user session.<br>
>><br>
>> Thanks,<br>
>><br>
>>   Thomas<br>
>><br>
>> On Mon, Jun 17, 2013 at 7:33 AM, Alberto Mardegan<br>
>><br>
>> <<a href="mailto:alberto.mardegan@canonical.com">alberto.mardegan@canonical.com</a>> wrote:<br>
>> > Hi all!<br>
>> ><br>
>> >   I'm sending this message both to ubuntu-devel and ubuntu-phone, in the<br>
>> ><br>
>> > hope of reaching the widest interested audience as possible. However,<br>
>> > please reply to ubuntu-devel only.<br>
>> ><br>
>> > I want to bring to your attention the existence of a project which IMHO<br>
>> > would be very beneficial to Ubuntu (especially on embedded devices, but<br>
>> > not<br>
>> > only): the application launcher originally developed for Maemo/MeeGo.<br>
>> ><br>
>> > In short, the main features that applauncherd bring to the system are:<br>
>> >  * faster application startup<br>
>> >  * support for single instance applications<br>
>> >  * splash screen while the application is starting up<br>
>> ><br>
>> > The recommended readings are these:<br>
>> >   <a href="http://apidocs.meego.com/1.0/mtf/launcher.html" target="_blank">http://apidocs.meego.com/1.0/mtf/launcher.html</a><br>
>> >   <a href="http://goo.gl/DjGCV" target="_blank">http://goo.gl/DjGCV</a><br>
>> ><br>
>> > In order to be used in Ubuntu, the software itself needs some porting, to<br>
>> > remove the dependencies to Qt4, X11, and the AEGIS security framework used<br>
>> > in MeeGo. Luckily though, these changes have already been made by the Mer<br>
>> > people, who ported the software to Qt5, removed the AEGIS stuff and also<br>
>> > simplified a bit the architecture (there isn't an applauncherd daemon any<br>
>> > more, but the invoked directly talks to the booster processes). They also<br>
>> > wrote a booster for speeding up the startup of applications using QML<br>
>> > components, and we could easily modify that to use our Ubuntu SDK<br>
>> > components instead.<br>
>> ><br>
>> > Their code is here:<br>
>> >   <a href="https://github.com/nemomobile/mapplauncherd" target="_blank">https://github.com/nemomobile/mapplauncherd</a><br>
>> >   <a href="https://github.com/nemomobile/mapplauncherd-qt" target="_blank">https://github.com/nemomobile/mapplauncherd-qt</a><br>
>> >   <a href="https://github.com/nemomobile/mapplauncherd-booster-qtcomponents" target="_blank">https://github.com/nemomobile/mapplauncherd-booster-qtcomponents</a><br>
>> ><br>
>> > Please let me know what you think of this. IMHO it's a simple and<br>
>> > brilliant<br>
>> > idea, it could be integrated with apparmor and also be used to provide<br>
>> > sane<br>
>> > default callbacks for handling the application lifetime state changes.<br>
>> ><br>
>> > I've never been directly involved in this project, but given how much I<br>
>> > dislike NIH, I'd be happy to collaborate with whoever wants to bring this<br>
>> > to Ubuntu.<br>
>> ><br>
>> > Ciao,<br>
>> ><br>
>> >   Alberto<br>
>> ><br>
>> > --<br>
>> > Mailing list: <a href="https://launchpad.net/~ubuntu-phone" target="_blank">https://launchpad.net/~ubuntu-phone</a><br>
>> > Post to     : <a href="mailto:ubuntu-phone@lists.launchpad.net">ubuntu-phone@lists.launchpad.net</a><br>
>> > Unsubscribe : <a href="https://launchpad.net/~ubuntu-phone" target="_blank">https://launchpad.net/~ubuntu-phone</a><br>
>> > More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
<br>
--<br>
Mailing list: <a href="https://launchpad.net/~ubuntu-phone" target="_blank">https://launchpad.net/~ubuntu-phone</a><br>
Post to     : <a href="mailto:ubuntu-phone@lists.launchpad.net">ubuntu-phone@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~ubuntu-phone" target="_blank">https://launchpad.net/~ubuntu-phone</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
</div></div></blockquote></div><br></div>