このセッションはAGLプロダクションのレディネスのアップデートについてお話しします。AGLのサポートはどうでしょうか?このセッションはこの7つのセクションです。バックグラウンドとトヨタのアクティビティをAGLについてお話しします。まずはコンテンツを始めましょう。私の名前はみつおだて。私はソクトワーエンジニアのアイヴィアイエイジン。今、IBIシステムとAGLのアイヴィアイエイジンのアイヴィアイエイジンについてお話しします。 also、IBIシステムとIRIのアイヴィアイエイジンのアイヴィアイエイジンのアイヴィアイエイジンのアイヴィアイエイジンでの常会のコミュニティのレデューを受けることを忘れます。 Now, let's get started.つまり、バックグラウンドプロダクションのレディネスのアクティビティのアクティビティについてお話ししましょう。I would like to talk about howToyota has been working with AGL.AGLの日々のアリデートは、AGLのコミュニティにも応援しています。AGLのプレゼントを改めて、プレゼントのPOCs、デモs、ALS、CESのデモを作っています。例えば、Windows Manager、ホームスクリーンとしてのコンテンツです。AGL UCBのスペシビリクエンションも応援しています。3つのアナウンスは、プロダクトを同じようにしています。最近、AGLのプロダクトをアダプトしています。今日、2つのプレゼントの2つのプレゼントを紹介します。1つは、プロダクションのレディアスアクティビティと、そのスペシビリクエンションのドキュメントを紹介します。2つのプレゼントは、AGLのサポートクラッターをサポートしています。HMI Frameworkの新いオプションを紹介します。このプレゼントの最も集中の結果は、お客さまのプロダクションのレディアスによっては、オーフードロゴのプロダクトを隨着しています。このプロダクトの指揮としては、分からない頃に、プロダクションのレディアスアクティビティは、コミュニティメンバーの方々に感謝します エンジェルメンバーの方々はもう140メンバーの方々に増えましたしかし オープニングのステータは オープニングの3つのアナウンスメントがオープニングの3つのアナウンスメントが オープニングの3つのアナウンスメントが柔らかいことは アナウンスメントの次の特別のアイリアクチルを実際には デーサーが現れましたゲームっていうAGL has code-first culture and AGL community usually discuss based on the actual source code.Then we wanted to disclose our product source code.However, because actual products are not fully compatible with IVI profile, that is current UCB.We need a lot of refactoring and modification to be merged with IVI profile.But before paying many costs for refactoring and having long and deep discussions, we needed to make them available as AGL image.Then we have created production readiness profile.This is a platform where source codes used for actual products can be easy disclosed.We hope this profile can be used as product level references for IVI.After the discussion within the community, selected source code and requirements from production readiness profile will be merged into IVI profile.We have released the first version of production readiness profile last year in KK release.It included base system from Toyota and RBA from Denso.Production readiness is currently maintained under Meta-AGL level.We continued to work on this activity.This year we focused on specification documents for production readiness and flutter support.Internally, we also plan to update base system and also plan to disclose more functional modules to production readiness profile in the future.Today, I'd like to briefly introduce production readiness specification.First of all, why do we need a spec?Although AGL has code-first culture and we can discuss based on source code,defining products requirement and use cases for IVI products are quite important,because source code usually doesn't tell us high-level requirements or use cases.In addition to that, we wanted to discuss production requirements and use cases in AGL communityBy talking this topic with other OEMs, tier 1s and AGL community members,we hope we can define common requirements for modern IVI products.Although AGL UCB have their own specification,that is not updated since 2015, so we needed to update it anyway.When creating this spec, we described requirements and use cases implemented in production readiness profile.That means these requirements and use cases are based on actual products.TOTA have created the direct version of this spec.And that was reviewed by other AGL members including OEMs.For this year, we have released version 1.0 that covers functionality of base systems.Main content of production readiness spec 1.0 use cases,the requirements and the corresponding implementation in base system.From production readiness profile, we described 8 topics as following.One thing we have paid attention to when creating this spec is the connection between use cases or requirements and actual implementation.This page shows an example of power state management.This is a feature to notify various power state transitions to other services.One of the related use cases on this topic is delayed ending.That is, when the driver arrives at the destination,the driver might want to continue the hands-free call even after ACCO.To enable this delayed ending use cases,power state management is required and some functional requirements need to be satisfied.One is, for example, receiving state transition request from hardwareand also need to notify the power state change request to each services.Based on the implementation of power state management modulePower state change signal from hardware can be efficiently abstractedand delivered to services.The example of implementation for this topic is also available in production readiness profileand other power services.The source code is shown like this.We have just released version 1.0and this version only contains eight features implemented in base system.That is not covered every features needed for IVAIand not the replacement of AGL spec version 1.0 yet.As a future plan of this activity,we plan to contribute more source code from actual productsto production readiness profile.And then we will update the spec for production readiness accordinglyto make source code and the spec consistent.Then I'd like to pass the button to Chrisand he will present Flutter in AGL.My name is Christopher Casey and I'll be speaking today about Flutter.Specifically how we're using Flutter at Toyotaand how we're starting to integrate Flutter into automotive grade linux.After going through a few slides, I'll also give a brief demoshowing a few Flutter sample apps running on AGLas well as the surrounding tools and workflow.Before that, just a little bit of background on myself.I've been developing customer facing apps for a number of yearsbut most recently I've been focusing on how we use Flutterin the next generation of Toyota vehicles.And why are we using it?In a nutshell, Flutter is a cross-platform UI frameworkproduced by Googleand focused intensely on valuesrelated to developer productivity.Using Flutter it should be possible for a developer to create a highperformance cross-platform touch screen focused appthat's mostly up to the standards that a user would expectfrom a typical smartphone app.In addition, Flutter has a great developer ecosystem.There's many packages published on pub.dev.Google has invested heavily in this.And it's pretty rare that a developer needs to reinvent the wheelwith the great ecosystem that's been produced.And finally, Flutter has really great performance.It includes ahead-of-time compilationand for the most part comes pretty close to nativeperformance in most scenarios. Combining all these advantages,we expect that Flutter may attract a fair amount of attentionto Automotive-grade Linux.At Toyota, we've specifically focused on a few different pillars.The first pillar is enabling Flutter in Automotive-grade Linux.Of course, Flutter supports a number of platformsgiven the standard open-source configuration.These include iOS and Android.However, some additional work is requiredto enable a new platform on Flutter.And we focused on that here at Toyota.The second area that we focused onis enabling seamless mixed 2D and 3D contentwithin a Flutter app.We expect that there's going to be a big demandfor high-quality integrated content in the future.We noticed there's a bit of a gap in the tooling here today.And we focused on fixing that,which we'll be able to demonstrate here in a few minutes.Flutter also does a really great jobof enabling us to do this by providingwhat they call the Embedder API.At Toyota, we've developed a custom Embedder,which integrates the open-source ecosysteminto Automotive-grade Linux.But without Flutter's great Embedder API,this would not have been possible.And for the most part,our Embedder is a fairly small and lightweight piece of software.In fact,our Embedder really only replacesthe very bottom layer of the open-source stack.The middle layer,including the engine,and the top layer,including the Dart framework,can be usedinline with the open-sourcepublished software without modification.Related to our second pillarof integrating 2D and 3D contentwithin Flutter,we've enabled the usageof thestandard Flutter texture widget class.This can be placedanywhere within the widget hierarchy.And when runningon an Automotive-grade Linux environment,we can substitute that widgetfor a fully custom three-dimensional scene.The scene can be rendered usingwhatever technology is neededand can be bound to touch eventsand other control planesusing gesture detectors and platform channels.Following this,I'll give a brief demonstrationthat shows concretelywhat I've been talking about so far.The first portion of this demowill demonstratea hello world Flutter applicationbeing created using the standardopen-source Flutter create commandand runningin to endon an AGL emulator.The second portion of the demowill focuson a slightly more advanced application,including 3D contents.Essentially what will happen in this demois local Flutter toolsinstalled on a developer machinewill communicatewith QMUto an emulated touchscreen device.This is a pretty standard workflowthat anyone who's used an Android emulatorshould be familiar with,and it can be mostly achievedusing the open-source Flutter toolingwith minimal or no modification.So that being said,let's get straight to the demo.To start with,we'll demonstratean example appcreated using the standard open-sourceflutter create commandand runningon the AGL emulator.You'll notice that as soon as we issuethe flutter create command,flutter begins to generate a standardexample app.At the same time,in the top rightwe're starting to boot the AGL emulator.You can see that once the emulatoris booted,you can very quicklyrun at the build and run scriptthat we've defined down in the bottom.This script should simply copythe asset bundle from theflutter application to thevirtualized environment and startto run the application.This happens pretty quicklyand as soon as we copy theasset bundle over and issuethe run command,we should seethe standard flutter counterexample app appear.This application includes a numberand a button that can be usedto increment the number.The next command we'll issueis flutterattach.This attachesthe application running in theapp.to the host toolsover a debug protocol.This debug protocol includesall of the standard nice thingsfor developers,such ashot reload,hot restart,setting breakpoints andobserving logs.Once thedebugger is attached,you'll seethat we can open the main.dartfile for the flutter appthat was generated by the opensource flutter tooling.And we'll go ahead and changeit.Once we change this text,you'llsee that we're going to issue thehot restart command.This tellsflutter to update the text that'son the screen in the running application.You can see this was very fast.It tookless than a second.This isbecause the flutter open source toolsgenerate incremental rebuildsand send this over thedebugger protocol,which is veryefficient.The next commandthat we're going to issue is a hot restart.In some cases,changes areso complex that we can't actuallypreserve our application stateand we have to do a complete reset.When we do this,you'llnotice that the counter changes backfrom 8 to 0,indicatingthat the application state hastotally reset.There are many other commandsavailable over the flutter debuggingprotocols,and this is just a verysimple example.But it showshow quickly you can get up and runningwith the open source flutter toolsand with the open source AGL toolsand an application developer can quickly combinethis to do more powerful thingswhich we'll show next.Inthis next slightly morecomplex demo,we'llshow a mock infotainmentapp developed using flutter.Thisapp includes a number ofcomplex vector animationsas well as integrated 3D content.Whenwe tap the button in thetop right corner,you'llnotice that the graph toggles statewith nice performance,evenwithoutimulation.Next,we'llshow a nice littlemedia player animation.Finally,we'llopen the user profile menuto show another type ofanimatedcontent.Last,when we scrollto the bottom of the demo app,you'llnotice placeholder or emptycontent.In this case,we'regoing to insert a 3D sceneusing a hot reload.As soon aswe issue the hot reload,you'regoing to notice 3D content appear withinthe flutter widget hierarchy.Thisis a scene that's been rendereddynamically using OpenGL.Thisdemonstrates the ability of theToyota and better to include mix2D and 3D content.That's the endof our presentation and demonstrationstoday,so I hope you enjoyed it.Thanks.Thank you Chris.I'd like to wrap upour presentation with ourfuture plans.We plan tocontinue the contribution toproduction readiness.Fluttercontinue to be our mainfocus for some moments,but wealso plan to upgradebased systems and planto contribute more features.Thisis our current roadmap,butwe hope more OEMs or tier1s contribute toproduction readiness.Tosummarize our presentationtoday,Toyota have beencontributing to AGLcommunity.We havereleased the first versionof our presentation today.We have released the firstversion of specificationfor production readiness thisyear.That definesrequirement and use casesfor actual IVIproducts.We arealso trying tosupport Flutter in AGL.Toyota disclose the customerenvader for AGL andFlutter applicationdevelopment in AGLis almost ready.Wehave enabled to use 3Dimages in Flutter appsfor IVI use cases.Wewillcontinue the contribution to AGL.More features toproduction readiness profileis planned andwe will updatethe specification accordinglyand we willcomplete the initial Fluttersupport in AGL.Thankyou for listening to our presentation.