What’s new in Android apps for Chrome OS (Google I/O '18)
What’s new in Android apps for Chrome OS (Google I/O '18)
With the Play Store on Chromebooks gaining traction, developers need to understand how to build high-quality apps and content for the new form factor. Attend this session to learn about adding support for larger screens, mouse and trackpad support, keyboard support (i.e. shortcut keys), free-from resizable windows, and stylus support for devices that have them.
#io18 #chromeos event: Google I/O 2018; re_ty: Publish; product: Android - General, Chrome - Chrome OS, Google Play - Play Store; fullname: Shahid Hussain, Stefan Kuhne; event: Google I/O 2018;
Content
2.88 -> [Music]
7.04 -> hi everyone my name is Ida I'm a product
10.23 -> manager on the Chrome OS team and
11.78 -> welcome to all of you to our session on
15.42 -> developing Android apps on Chrome OS now
18.99 -> we talked about this last year at i/o
21.6 -> and if you saw that talk today's talk is
24.449 -> a continuation we'll be talking about
26.699 -> the basics briefly and talking about how
30.75 -> we've worked with a number of you over
32.64 -> the past year and as well as sharing a
35.25 -> number of new features that we'd love to
36.93 -> tell you about so first of all let's
40.95 -> talk about why this matters so we've
44.25 -> talked previously about the success of
46.17 -> Chromebooks within the education space
47.94 -> where we outsell every other device
49.95 -> combines but Google's really been
51.87 -> doubling down on Chrome OS you've
53.969 -> hopefully been inundated by ads over q4
56.399 -> last year and ongoing this year and
58.469 -> that's helped drive demand in the
60.27 -> consumer space too so much so that in q4
63.51 -> last year 17% of notebooks sold in the
67.11 -> US for Chromebooks
73.13 -> so why does this matter to you Android
76.59 -> developers so the headline here is
78.74 -> Android apps work on Chrome OS how does
82.409 -> that happen
83.18 -> it works by the android framework
85.29 -> running inside a container that sits on
87.9 -> top of the base of Chrome OS and the
90.24 -> full Play stores are already available
91.68 -> so your app is probably already running
94.71 -> on Chrome OS now ultimately what we care
99.84 -> about is a good user experience part of
102.81 -> that is the operating system itself and
104.52 -> part of that is the apps that users
106.829 -> choose to run now we've been investing
109.35 -> heavily and improving the product and
111.149 -> those of you who use Chrome OS over the
113.399 -> past year have seen evidence of that and
115.35 -> system updates you've gotten and many of
118.469 -> you who are developing apps we've
120.329 -> already been working with to ensure that
122.52 -> you're ensuring that the apps work
125.159 -> really well on Chrome OS Adobe roblox
129.69 -> sony EA and many many more have already
132.72 -> include
133.44 -> Chromebook optimizations in their latest
136.05 -> updates on to the Play Store and that's
139.2 -> opening up different kinds of usage and
141.03 -> different kinds of revenue may Alan p.m.
144.33 -> from Evernote told us pencil book users
146.61 -> are spending four times more time in
149.37 -> Evernote than an average app user an
153.02 -> Andrew and David founders from steadfast
155.91 -> innovation who make the squid app told
158.28 -> us that Chromebooks have made up 21
160.5 -> percent of their revenue over the last
162.51 -> 30 days so first of all to begin we were
167.1 -> quickly going to review some basics
169.82 -> ensuring that an app works well on
172.59 -> Chrome OS comes down to four key
175.71 -> differences between Chromebooks and
177.93 -> phones wider screens default landscape
181.86 -> window management and different primary
184.35 -> input devices keyboard pointer stylus
188.63 -> first wider screens chromic screens are
191.97 -> bigger from 10.1 inch on the smaller
194.28 -> side to 15 inch on some of our larger
197.04 -> units so apps need to be able to work
199.44 -> well at all of these works and respond
201.42 -> appropriately to resize events for
204.03 -> example a IDs coding lessons now switch
207.9 -> to a two column view when the app has
209.94 -> resized to be wider second default
214.05 -> landscape as a default landscape device
216.45 -> apps need to have a really great
218.19 -> landscape experience and so for example
220.77 -> pocket casts pins open its navigations
223.26 -> menu and arranges items in a grid so
225.9 -> they can fill the space available rather
227.82 -> than listing items out with white space
229.83 -> to the right third multi window chrome
234.33 -> OS is a multi window desktop environment
237.06 -> the sign easy and Sony sketch apps and
239.85 -> their latest versions on the Play Store
241.29 -> and now resizable so users can work
243.81 -> better with these inside our environment
245.79 -> and finally maybe the most important
250.2 -> keyboard and mouse inputs when a user
252.69 -> pulls out a laptop and uses it the
255.18 -> keyboard and touchpad are closest to the
257.1 -> user so they gravitate towards them as
259.23 -> their primary inputs so the infinite
261.45 -> painter team is an example built
263.49 -> keyboard accelerators for common
265.2 -> commands so users can get around fast
267.24 -> inside the interface and that's
269.1 -> especially true for games so pick Sonic
271.86 -> they make war robots built keyboard
274.83 -> controls into their game
276.18 -> the game now uses a special manifest
278.55 -> flag to get inputs directly from Chrome
280.74 -> OS and enables standard WASD gaming
284.099 -> controls so these are just a few of the
287.97 -> app teams who are now building and
290.49 -> testing their apps for Chrome OS and a
293.43 -> huge huge thank you to everyone many of
296.46 -> you are here in the audience that we've
297.99 -> worked with we're always looking for
300.63 -> apps that work really really great on
302.13 -> Chrome OS so that we can show them off
303.87 -> and we want your app to be one of them
307.729 -> now to talk about some of the latest
310.139 -> improvements in Chrome OS for Android
311.699 -> app developers I'd like to hand over to
313.44 -> Stephan one of our lead engineers on
315.03 -> Chrome OS please welcome Stephan
322.9 -> morning everyone I'm glad you could all
326.09 -> join for our today's talk and I'm here
329.3 -> to talk about well all our latest news
331.64 -> what we have done and what you can do in
334.25 -> order to improve your application even
335.81 -> more for a desktop environment so first
339.86 -> slide
341.24 -> what is new so that is one of the things
343.94 -> which is mostly important for the user
346.64 -> but of course also has some impact on
348.53 -> what you are doing and then ever unsink
351.56 -> so you can do we have added a lot of
352.94 -> stuff over the last year and we really
356.27 -> want to show that and we hope that you
358.37 -> are actually making best use of it and
360.14 -> last of it
361.52 -> best practices so when you are following
363.89 -> these best practices you will have a
366.2 -> better chance in the Play Store because
367.88 -> you will bubble up and we will make sure
369.29 -> of that so what's new let's see so first
374.24 -> off we have improved our tablet mode why
376.58 -> did we do that because we have now also
378.44 -> a tablet only device well and what did
381.41 -> we change
381.95 -> well there are smoother animations we
384.32 -> have removed the caption bar so means
386.21 -> the window control bar and the controls
388.37 -> from the caption control bar they are
390.32 -> actually now moving down into the shelf
392.06 -> as you can see there and also all
395.36 -> windows are automatically start at
397.55 -> fullscreen so which is of course
399.68 -> experience what you expect on each other
401.78 -> so next thing a split screen we have
404.75 -> added split screen which is well you
407.27 -> know that of course from phones but now
409.01 -> on a big tablet and or bigger screen it
411.08 -> makes of course much more sense so you
413.09 -> can split now the screen with any kind
415.58 -> of window which is available on Chrome
417.41 -> OS so it might be well might be a Chrome
420.41 -> window might be of course an Android we
422 -> know the only thing is at the moment you
424.28 -> will not be able to figure out that you
425.99 -> are actually running in split screen we
428.45 -> will headset later the next thing is you
431.9 -> have a the picture and picture so it's
434.09 -> the full specification according to
435.5 -> Android oh and it will coming soon and
438.49 -> you can resize a window you can explai
441.38 -> sit at multiple locations and it will be
443.06 -> fairly similar to the one which we are
445.43 -> using for web applications as well so we
449.69 -> have also added the Android keyboard so
452.87 -> you can essentially replace now
455.03 -> coming soon the the Chrome OS keyboard
458.9 -> with an android keyboard which makes a
461.12 -> lot of people happy notifications we
464.42 -> have overhauled our notifications they
466.01 -> are looking not now much more like so
468.05 -> color scheming and everything should be
469.79 -> much more integrated you have to chop
471.83 -> now instead of swiping and well
474.35 -> everything is much more integrated into
476.6 -> the Chrome OS style in itself and yeah
482.2 -> pro audio so we have actually added
485.81 -> since m65 beginning of this year em
488.54 -> that's all milestones I don't know if
490.13 -> you know that but it's essentially like
492.47 -> every six weeks we have a new release
494.21 -> cycle and m65 is out or a since a while
497.15 -> and MIDI is in since while in our pixel
502.22 -> book so and soon we will also have
505.22 -> multi-channel audio USB audio
507.49 -> multi-channel USB or a audio a audio
510.89 -> memory mapped and this is all coming
513.56 -> later this year and with that you have
516.56 -> actually seen when you were coming in
518.06 -> someone playing music here he was
519.979 -> actually using a pixel book and to show
522.59 -> you a little bit more about it I want to
524.9 -> invite for a RICO Testament from the
527.99 -> founder of algorithm to actually show
529.76 -> how this works
531.51 -> [Applause]
544.58 -> [Music]
570.73 -> [Music]
577.4 -> [Music]
577.93 -> [Applause]
581.22 -> [Music]
593.14 -> [Applause]
597.56 -> [Music]
633.439 -> thank you so you have possibly seen how
636.48 -> everything was really real time
638.179 -> synchronized visit abayas
640.11 -> and everything is real time so it's
642.749 -> getting more interesting advanced things
645.72 -> now what you can do it to your
647.639 -> application in order to make your life
649.47 -> well to make the life on a desktop
651.149 -> better well become desktop native I
654.839 -> think I had that already last year but
656.699 -> we have of course a follow-up on that
658.649 -> one so first off this is something which
661.529 -> is something everybody knows for my
663.689 -> everyday business right menu
665.429 -> accelerators they're not really very
666.929 -> something special right but the thing is
669.089 -> like if you were using the toolkit UI in
671.249 -> the past it was actually from a I think
674.399 -> it was like I don't know angel cake or
676.529 -> whatever Android was back then so means
679.379 -> like really ancient so this play was
681.749 -> small and they had to actually fit
684.029 -> everything on there and it looked ugly
685.8 -> it was really not not meant to be
688.829 -> primetime so we have actually changed
691.17 -> library to make this much much easier
693.179 -> for you to actually get these kind of
695.04 -> things in so and all you have to do is
697.35 -> you have to go into your layout XML you
699.72 -> use in your menu you put into the item
702.959 -> itself then the shortcut means the
705.869 -> character and modifier keys and you're
709.17 -> ready to go well not entirely but if
711.689 -> you're using a standard menu you have to
713.399 -> actually call then the set Queerty
717.769 -> what was it again set creative mode to
720.72 -> true so that you are actually getting
722.879 -> alphanumeric characters okay this is
726.959 -> really old but it's still there so shelf
729.54 -> integration that is something like if
731.459 -> you want to do something inside the
733.079 -> shelf you want to change your icon like
735.119 -> for example you're opening a document or
737.249 -> whatnot you want to change the shape of
738.749 -> the icon itself or you want to display
740.819 -> then the document which you have opened
742.499 -> you can actually do that with this set
744.929 -> task description very simple and very
747.389 -> effective next thing is if you want to
751.079 -> combine multiple items inside the
753.029 -> shelves into one menu item you can
756.059 -> actually put in my intent put extra you
759.029 -> put then the shelf shortcut to it and
761.089 -> you take then any kind of string for a
765.059 -> kind of modifier which you actually know
766.769 -> and you actually then reuse it for all
768.54 -> the items you want to put into the same
769.98 -> same episode cuts are coming so this is
774.629 -> something which is coming soon it's
777.509 -> there already since I think n mr1 and we
781.199 -> will support them very soon as well
782.699 -> so essentially you can actually actions
785.669 -> and any kind of short things which you
788.279 -> want to do in order to to get the user
790.41 -> faster access to things the back button
794.399 -> well I think many of you since you are
796.62 -> already doing something for our Chrome
798.54 -> OS have already seen that there's a back
800.79 -> button up in the window control bar well
803.249 -> you have also a back button we know that
805.35 -> and the problem is of course two on top
807.419 -> of each other looks pretty crappy so
809.429 -> therefore by adding this special meter
811.559 -> flag you can get rid of it makes it much
814.049 -> much nicer and that helps but there's
817.499 -> one other thing and this is I think even
819.24 -> more important if you're on a desktop
821.22 -> and you're pressing backspace or escape
823.529 -> or navigate back or whatnot and your
825.509 -> windows suddenly disappears is something
827.459 -> which is very unexpected to the user
829.019 -> please don't do that so if you can do it
831.509 -> please what you should do is you should
833.22 -> actually check if your activity is at
835.829 -> the bottom of well at the root of the
838.049 -> stack and if it is and you know that
840.209 -> your windowed please don't close your
841.679 -> window please keep it open because it's
844.169 -> really really unexpected and disturbing
846.299 -> froze users suddenly all his work is
847.919 -> suddenly gone lifetime management so we
852.72 -> are getting a lot of requests from from
855.089 -> users which said well you know what my
857.129 -> application isn't really running
858.419 -> multitasking well why is it not
860.49 -> multitasking well because the thing is
862.139 -> like I have this game I'm playing
864.089 -> and I'm also checking my new status and
866.369 -> the new status isn't updating while I'm
868.23 -> playing but I would really like to see
870.119 -> that well they are actually three states
872.639 -> there's running there's paused and
874.829 -> they're stopped running and post means
877.23 -> you are visible on the screen so which
880.199 -> means not that you should actually drop
881.999 -> everything and stop that when you're
884.249 -> getting a pause no you can actually
885.839 -> continue to run unless you are high
888.569 -> whatever game where you have to have a
890.639 -> lot of real-time action and whatnot
892.439 -> where you maybe want to really pause
895.74 -> in most cases you really want to
897.45 -> continue running so please do this and
899.55 -> you make a lot of users much much
901.17 -> happier
902.75 -> next thing sharing data well I said
905.85 -> already earlier that we have plenty of
908.31 -> windows on our desktop right so there
910.41 -> are all kinds of Chrome OS your window
912.39 -> and whatnot if you don't specify drag
914.85 -> flick global and you are doing a drag
916.92 -> and drop operation it will not be
918.81 -> dropped on another application this is
920.46 -> an only for you so in order to allow
922.89 -> other applications to actually get your
924.75 -> data please specify this flag and if you
928.98 -> are actually getting some data from
931.26 -> someone well also check out what you are
934.29 -> getting if you are simply blindly taking
936.06 -> text
936.75 -> well you might actually miss out of all
938.46 -> the richness of the data which comes
939.87 -> with it so therefore please check that
941.97 -> out as well
942.57 -> and if you're looking at the clipboard
945 -> it's exactly the same thing you
947.04 -> definitely want to have of course all
948.72 -> the richness of whatever is being copied
951.15 -> and pasted as well so with that resizing
956.07 -> I was talking last year about resizing
958.62 -> that it's a really big problem right
960.24 -> because resizing looks pretty clunky on
963.36 -> Android in general when you are doing
965.13 -> this so here is a solution for you this
967.89 -> is an application which was written for
969.96 -> material design 2.0 and it looks nice on
973.92 -> a phone see this looks actually pretty
975.96 -> nice so when you are doing when you're
978.9 -> following the design study from from
980.64 -> material design they were coming up with
982.98 -> this thing for a tablet form factor
985.05 -> see there's more information you can
987.24 -> actually see more things and they are
989.4 -> revealing more stuff so with that let me
992.58 -> show you a short demo of my notebook
998.64 -> so so there's the application and you
1003.769 -> can resize it and as you can see while
1006.38 -> I'm resizing it more and more data as IG
1008.36 -> coming into play and see more stuff is
1012.529 -> coming oops
1013.279 -> let what of course the wrong guy yeah
1017.56 -> there you go and you see that more and
1020.87 -> more data is coming in this is all
1022.43 -> dynamically happening and it's very
1024.799 -> fluid without a restart which is usually
1027.26 -> the problem right can I back to my
1030.26 -> slides please so first off good news the
1036.65 -> demo is actually online you can download
1038.449 -> it you can test it all yourself it's on
1042.02 -> github and there's also an excellent
1044.569 -> code lab which is actually even showing
1047.329 -> more so you can also doing animations
1049.61 -> while you're transforming from one
1050.99 -> layout into another which is then
1052.76 -> looking really cool you should check out
1054.47 -> the code lab for sure
1057.28 -> so how is it being done well first off
1060.5 -> you need to have a constrained layout
1062.15 -> state file it's like a blueprint which
1064.37 -> is essentially getting all the different
1065.72 -> layouts into into some kind of order
1068.48 -> when to use which one and then comes the
1072.049 -> tricky part every of these layouts need
1074.419 -> to have all UI elements which you use so
1077.69 -> if you don't want to see you if you want
1079.46 -> to show it then you simply hide the
1081.29 -> thing if it's hidden it doesn't show but
1083.54 -> it's still in the layout itself so one
1086.48 -> by doing this and in oncreate you will
1091.22 -> actually create then the transition in
1092.69 -> which you want to use when you want to
1094.19 -> transition from one to another and you
1096.44 -> set the unconstraint changed layout
1098.6 -> handler you will be able to do to attend
1103.82 -> the the pre-layout change handler which
1106.309 -> is then essentially like giving the
1108.29 -> control to the to the to the sorry which
1116.48 -> is giving the control to our layout and
1120.4 -> which is doing the transition itself so
1125.08 -> inside your activity what you have to do
1127.49 -> is you have to add the on configuration
1128.87 -> change handler which is usually being
1130.34 -> called every time when something changed
1132 -> like the virtual keyboard is
1132.99 -> disconnected the screen resolution
1134.31 -> changes or anything like that and fine
1138.18 -> well and from there you are essentially
1140.16 -> calling the constraint changed layout
1142.56 -> Handler to actually let him know what
1144.96 -> the size is and that will actually and
1147.3 -> do all the work for you and finally you
1150.45 -> will actually add inside the Android
1152.16 -> manifest file the requests that you want
1154.8 -> to handle all configuration changes for
1157.38 -> size changes and with that you are done
1160.71 -> if you want to try it out again try the
1163.05 -> code lab to actually get this done so
1167.22 -> the next thing is new well zero latency
1170.28 -> Inc what does zero latency Inc means
1173.22 -> well you have possibly had already a pen
1175.77 -> you were trying to draw something and
1177.36 -> you see there is a lag between drawing
1179.43 -> something or using the pen and seeing
1182.07 -> something on the on the device itself so
1185.28 -> where is it coming from well first off
1189.06 -> you have to read the sender you have to
1191.04 -> do the input processing you have to then
1193.26 -> do the app code whatever the application
1195.42 -> is doing you have to do some drawing
1197.52 -> with OpenGL and you're actually doing
1199.35 -> multiple buffering because you have to
1201.45 -> actually pass everything to the
1202.68 -> compositor which is in compositing
1204.51 -> actually everything on the Chrome OS
1205.95 -> side or whatever you're parading system
1208.53 -> you have the compositing side and it's
1210.63 -> going through the entire pipeline which
1212.19 -> might be for for images or whatnot so in
1216.06 -> total you are coming out to a hundred
1217.86 -> milliseconds of delay which is very very
1220.74 -> noticeable so the ideal thing is of
1223.89 -> course you simply remove all the
1226.2 -> compositing so now we are down to well
1228.42 -> of roughly two frames which is less than
1230.46 -> sorry two milliseconds right
1231.78 -> so but if we are adding now also the
1234.45 -> prediction logic to it well then we are
1236.61 -> really at pretty much zero so mission
1241.74 -> accomplished so and with that I will
1243.87 -> actually hand it over to Powell Riviere
1245.64 -> a comic book author which is showing us
1247.98 -> a whole thing in action
1251.349 -> thank you hi everyone hmm
1270.26 -> all right can you guys see what I got up
1272.57 -> there so I drew some spider-man that's
1278.809 -> typically what I'm known for at Marvel
1280.79 -> but I also do with a nose did anyone see
1283.37 -> infinity war yet all right I did - all
1290.419 -> right so what I like about this app is
1293.14 -> you know you can rotate you can draw at
1295.61 -> any angle you can also do layers this is
1298.16 -> a infinite painter by the way so what
1300.559 -> I've done is I've drawn Spidey ahead of
1303.26 -> time and I'm going to ink on top of him
1306.29 -> using some of the inking tools oh I
1315.83 -> gotta change my color
1332.95 -> I'm from the school of thought where
1334.87 -> spider-man should have expressive eyes
1336.88 -> and so I'm glad that they did that in
1340.06 -> the movies
1363.55 -> some people don't like doing the webbing
1365.26 -> but I do it does add a little bit of
1368.35 -> time to each panel but it's worth it in
1372.97 -> the end
1391.67 -> and then of course you can add color as
1393.38 -> well I put in a layer already with a red
1400.07 -> base and I'm gonna add some shadow to it
1406.36 -> one of the other features I like about
1408.559 -> this so you can double tap to reset it
1411.95 -> and then if you hold and long press
1413.42 -> it'll flip it so as a comic book artists
1416.299 -> I'm always flipping things if I can
1418.82 -> because it gives you a fresh perspective
1424.36 -> of course there's all kinds of drawing
1426.44 -> tools that you can use some are more
1430.52 -> painterly than others
1445.95 -> and what I did was I clipped the shadow
1448.59 -> layer to the layer beneath it which
1450.36 -> means that everything I do on this layer
1453.69 -> will be bounded by the layer below it
1457.55 -> one way to save time
1465.2 -> and of course the other nice thing about
1466.91 -> the stylus is it has tilt so in this
1470.09 -> case I made tilt depending on which way
1477.65 -> I hold the pen it will give me a thick
1481.43 -> or thin line
1528.85 -> No
1541.389 -> I could do this all day I usually do
1548.759 -> usually this there aren't this many
1550.989 -> people watching while I'm drawing
1560.61 -> y'all are lucky I'm even wearing pants
1575.87 -> and let's finish it off with some spidey
1578.659 -> sense because Thanos is nearby
1587.59 -> and he's a Malthusian
1595.399 -> there we go thank you Thanks
1601.86 -> it's hi thanks
1606.89 -> okay so how is it done so we have an ink
1610.5 -> overlay view which is a new thing which
1613.77 -> is not yet really public if you want to
1616.62 -> get access to it there's a QR code
1618.18 -> please grab it and sign up for our our
1623.3 -> release so it will actually be edit then
1626.07 -> to our release notes as soon as we are
1628.41 -> giving you access to it so but
1630.99 -> essentially we have well you can see the
1633.45 -> code and it might change a little bit so
1638.61 -> multi display which is another topic so
1641.43 -> it's a very big topic because the thing
1643.11 -> is like on the phone you have two
1644.1 -> screens right you have the internal
1645.45 -> screen you have an external screen maybe
1647.25 -> on a well if you're really creative and
1650.16 -> you have a pixel book Pro you might
1651.42 -> actually get up to seven screens I'm not
1654.51 -> entirely sure I thought that is possible
1656.22 -> so anyways but the thing is like what
1658.17 -> does it mean for you well actually it
1660.96 -> means a lot because the thing is like
1662.73 -> many applications are doing stupid
1664.32 -> things sorry you are not that right but
1668.13 -> the thing is like for example simply
1669.33 -> using hey I want to get to display the
1671.94 -> display information for display id0
1674.09 -> well which is a default display right
1676.56 -> well the thing is like it's not the
1678.48 -> default display because what is the
1680.1 -> default display you don't know that
1682.08 -> right so therefore we have actually if
1685.2 -> you are prio then we are thinking that
1689.22 -> you are a non multi aware multi display
1692.1 -> aware application in this case we have a
1694.05 -> special thing for you to make your life
1696.24 -> easier essentially zero is like a
1699.3 -> virtual display which is always a
1700.95 -> display you are on so and therefore the
1704.07 -> entire API is is really clear everything
1706.77 -> is exactly as it should be but the thing
1708.96 -> is like you get this kind of special
1710.73 -> display so that you're working fine if
1713.67 -> however on the other hand you are
1715.62 -> actually something after all or oh then
1719.01 -> you will actually get a different
1720.78 -> treatment in that case you will get the
1723 -> real IDs the real display IDs so
1725.28 -> therefore if you are doing these kind of
1726.93 -> things you should be careful what you
1728.52 -> are doing so and yes one additional
1733.62 -> thing is if you are actually running an
1735.99 -> NYC application you still have the set
1738.24 -> launch display
1739.05 -> as a function call so what should you do
1743.61 -> well you should definitely use the the
1747.33 -> size of the window so always use your
1749.309 -> context and try to get this as the
1751.32 -> display matrix from that that is
1753.03 -> everything perfectly for you so and if
1755.82 -> you want to see any kind of changes like
1757.98 -> for example you were moved to a
1758.97 -> different display or something like then
1761.04 -> look at on configuration change to see
1763.77 -> these kind of changes and if you want to
1767.25 -> actually position yourself think also
1769.59 -> about settings the set launch display ID
1772.05 -> if you do not want to get to the same
1773.79 -> screen where your current application is
1775.59 -> on what you shouldn't do is you
1778.59 -> shouldn't really assume anything well
1781.1 -> without using your context if you're
1784.02 -> using any kind of display ID I mean
1786.57 -> trying to get the default display you
1788.49 -> will get something which is most
1790.23 -> certainly wrong so and also what was
1795.51 -> that yeah don't don't make any
1797.52 -> assumptions that you are actually on the
1798.84 -> built-in display because that is
1800.1 -> definitely wrong as well and last but
1804.6 -> not least don't assume that you're
1807.45 -> always running from the same display so
1811.83 -> presentation API we were being asked to
1814.08 -> actually get this to you we are getting
1815.88 -> that very soon and it is
1818.79 -> well actually I think by pretty much by
1820.86 -> now it should be there
1821.85 -> you can alternatively also you set
1823.77 -> launch display ID and set launch bounds
1826.32 -> which will actually do pretty much the
1827.85 -> same same sweetie and caming so what is
1831.39 -> they up so basically we have Vulcan
1834.24 -> support for four examples that picks the
1837 -> book it was actually shipping already
1839.85 -> 1.0 was a shipping beginning of this
1841.8 -> year one point one should be shipping
1843.929 -> around now and older I take just are
1846.69 -> also on the way so working as much
1849.63 -> faster them and so on so when you are
1852.45 -> building your own game one so there are
1854.67 -> a few things what you should actually
1855.72 -> take care of first off you should always
1857.58 -> use the latest version of the framework
1859.23 -> if you're using unity and whatnot they
1861.48 -> are actually fixing their stuff so if
1863.25 -> for example a windows size changes and
1865.17 -> whatnot and they as the input region
1866.73 -> which is changing a little bit they will
1869.1 -> actually fix that for you so please use
1871.29 -> the latest run because otherwise you
1872.89 -> vacation will fail when you are trying
1874.48 -> to be resized so next thing is also use
1878.5 -> int'l either 64-bit or so a 2 bit native
1882.46 -> code as well don't use only arm because
1885.58 -> arm is of course a little bit slower
1887.05 -> especially on the high end devices so
1891.4 -> when you are running a game application
1893.95 -> quality control might actually be bad
1897.13 -> for you depending on what you are doing
1898.87 -> so if you have for example multiple
1900.67 -> surfaces and whatnot and you're trying
1902.44 -> then to to squeeze all the latest thing
1904.96 -> and if you're running into a state where
1906.97 -> you are using suddenly quadruple
1908.65 -> buffering because you're being composite
1910.48 -> on the desktop or something your quality
1913.27 -> control might actually do something
1914.62 -> negative to your quality and you get
1916.9 -> some kind of really weird behavior so
1918.43 -> therefore try it out on Chromebooks
1919.75 -> before you before you release it that
1922.36 -> would be really awesome and yeah if
1927.22 -> you're using a lot of layers like a lot
1928.93 -> of surface use and whatnot you might
1930.79 -> also fall out of this and then your
1933.61 -> quality might actually drop so therefore
1935.26 -> if you can actually do everything in one
1936.91 -> in a single layer and said please try to
1938.89 -> do that instead and always be aware that
1942.16 -> your window size might change at any
1943.9 -> point in time and of course since users
1947.86 -> for example minimizing you you might
1949.63 -> actually lose your state and or if the
1951.82 -> window gets being resized the state
1955.06 -> might actually be lost so please save
1956.89 -> your state best practices as I said
1960.67 -> earlier we are trying to work with
1962.2 -> Playstore to actually serve face
1965.14 -> applications which are really good for
1966.94 -> the Chrome OS environment so therefore
1968.71 -> if you are doing everything which we are
1971.11 -> asked for you will actually get a better
1973.3 -> rating so therefore target SDK bigger
1976.27 -> than 26 that is definitely something
1979.06 -> good implement keyboard/mouse
1980.83 -> active and mouse navigation that is a
1983.44 -> good thing
1984.55 -> UI elements when you're resizing they
1987.01 -> should always be inside the screen so
1989.14 -> because if you're all tabbing through
1990.43 -> something and suddenly your element is
1992.2 -> outside of the screen that's bad when
1994.72 -> you're doing resizing definitely try to
1996.7 -> think about landscape and portrait those
1999.51 -> operations are very important make good
2002.88 -> use of a lot of space because you have a
2004.89 -> lot of space so
2006.07 -> use it I showed you how to use a
2009.76 -> high-tech chiral components whenever
2011.77 -> possible in order to save your state or
2013.99 -> save interest a plus that's also a
2015.73 -> little same thing be fluid and please
2018.25 -> the won't crash let us really the worst
2020.5 -> thing which can happen check out that
2022.39 -> you are not crashing and with that I'm
2024.22 -> passing it on to Emily who is talking
2026.26 -> about all the great tools we have for
2028.21 -> you thank you there's so many exciting
2036.61 -> new things for Android applications on
2038.83 -> Chrome OS and I'm honored to be able to
2041.92 -> present to you three new amazing
2043.93 -> developer tools to help optimizing your
2046.33 -> application for Chrome OS faster and
2048.94 -> easier the first one I'm you've all been
2051.82 -> very patient so thank you for your
2053.98 -> patience and a big thank you to the
2055.9 -> engineering team for making this happen
2057.88 -> and doing it right in Android studio
2060.37 -> we're pleased to present the Chrome OS
2063 -> emulator
2065.31 -> [Applause]
2070.59 -> so right in Android studio you have a
2073.06 -> full Chrome OS image you can test out
2075.31 -> the user flow for Chrome OS and of
2076.899 -> course test and optimize your app for
2079.149 -> Android your Android application right
2081.909 -> in Chrome OS which is awesome however if
2084.94 -> any of you have ever made an Android
2086.169 -> application that's my joke okay some of
2089.32 -> you did some of you made one if you do
2090.85 -> you'll know there's nothing like testing
2092.89 -> on a real device especially a form
2095.8 -> factor like this where the user will be
2097.9 -> flipping and rotating it tossing it on
2100 -> the bed keyboard input mouse input MIDI
2102.4 -> controllers stylus input you just you
2105.37 -> need to test this on a real device so
2107.44 -> we've made that a lot easier I'm very
2110.26 -> happy to present ADB debugging over us
2113.65 -> beating it's available for your pixel
2121.57 -> book in your HP Chromebook X to the
2124.63 -> public documentation will be out in a
2126.01 -> week or two so please watch those links
2128.11 -> and more devices coming soon and it
2130.57 -> makes development that much easier okay
2133.21 -> so I said there was three exciting
2134.71 -> developer tools we're printing
2135.94 -> announcing and the first two are awesome
2138.91 -> but I actually think the third one is
2140.98 -> even more exciting and I truly truly
2143.53 -> believe it's gonna knock your socks off
2145.18 -> and we didn't want anyone to go home
2147.4 -> with cold feet so we brought some
2149.56 -> replacement socks for when they fly off
2151.66 -> your your feet here's some and if you're
2154.09 -> in the middle of the audience or at the
2155.2 -> back don't be jealous
2156.91 -> there's plenty of socks for everyone and
2158.74 -> on your way out of the session you can
2161.05 -> you can pick them up we're gonna have
2162.16 -> people handing them out so with that yes
2165.01 -> socks right socks is your new developer
2167.05 -> tool so I'm gonna switch over to the
2170.11 -> Chromebook for a quick demo we have a
2173.14 -> terminal super-exciting terminal you can
2181.42 -> see get clone all sorts of exciting
2184.33 -> things I cloned the codelab
2185.92 -> optimizing your Android application for
2187.69 -> Chrome OS which you should check out at
2189.58 -> the code lab tent there's dinosaurs but
2192.64 -> what's interesting about this particular
2194.23 -> terminal is it's running inside a full
2196.75 -> Linux environment no clap okay you watch
2201.04 -> the keynote you watch the keynote okay
2202.39 -> fine so if you
2204.01 -> have a full Linux environment you can
2205.42 -> cut for this next one you can install an
2207.46 -> application Linux application like
2209.65 -> Android studio so here we have Android
2212.23 -> studio it more exciting than a terminal
2219.64 -> I guess so here I have the code lab
2221.29 -> loaded up I'm making those dinosaurs
2223.51 -> click I'm adding drag-and-drop and I go
2225.37 -> in here run oh so if you're in the back
2229.09 -> and you can't see that says Google pixel
2232.15 -> book which means when I press ok you
2234.97 -> know goes through the Gradle build Oh
2238.18 -> pushing the application to the device
2241.11 -> what on device yeah look you can click
2250.45 -> oh we got keyboard commands and that's
2252.1 -> it's pushed it straight to the device so
2254.05 -> we can program on the pixel book in
2256.15 -> Android studio push directly to the
2258.76 -> device test your app out and of course
2260.77 -> you have your logcat there with and all
2263.47 -> your debugging tools so this is amazing
2270.48 -> and it's so glad the engineering team
2273.04 -> let me present this super exciting
2274.63 -> announcement so we're super excited by
2277.24 -> linux on Chromebooks we're gonna tell
2278.35 -> you how to set it up for yourself before
2280.63 -> I do we had a lot of questions at office
2282.28 -> hours and in the code lab what's going
2284.53 -> on behind the scenes how does this work
2285.94 -> how's that set up so I'm gonna give you
2287.05 -> a brief overview
2288.67 -> here's Chrome OS in real life it's a bit
2291.7 -> snazzier but it's a representative box
2294.82 -> and inside there we have the Android
2296.83 -> container this is nothing new this is
2299.26 -> how your Android apps run on Chrome OS
2301.12 -> today of course what is the new is we
2303.37 -> have Linux VM and we install great
2305.98 -> applications like tux tracer which they
2308.35 -> wouldn't let me show today also Android
2310.36 -> studio and to achieve that last step
2313.63 -> which i think is the most exciting
2314.86 -> pushing straight to the app and
2316.45 -> debugging on device we need to connect
2318.67 -> ADB to the Android container do that's
2322.12 -> quite simple ADB connect command it's
2325.39 -> not a secret IP address it's the IP
2326.98 -> address for the ad ADB D on the Android
2331.69 -> container and this will be in the public
2333.94 -> it is in the public instructions already
2336.04 -> but here's a
2337.03 -> tip since he came to our session for
2340.12 -> some situations is handy to set up a
2342.13 -> little SSH tunnel simple SSH tunnel in
2344.35 -> Chrome OS that will just forward those
2347.23 -> connections automatically not necessary
2349.54 -> it's helpful in some situations here's
2352.78 -> the instructions if you haven't whoops
2356.22 -> here are the instructions if you haven't
2358.63 -> seen it I think we were number one on
2361.6 -> hacker news yesterday or something so
2363.31 -> that's kind of exciting please install
2365.35 -> it on your Google pixel book coming to
2367.6 -> more devices soon we're super excited
2368.86 -> about it let us know how it works try it
2371.35 -> out so where are we at we have an
2376.03 -> emulator we have a TB debugging over USB
2379.09 -> we've got Linux on Chromebooks running
2381.43 -> Android studio which you can debug and
2383.29 -> develop on the device and you have socks
2385.51 -> for those long cold coding nights so
2388 -> your Tootsie's stay toasty what's
2390.52 -> missing nothing right except I heard a
2394 -> rumor on the way in but some of you
2396.19 -> don't yet have a pixel book what so
2399.97 -> we're gonna help you out a little bit
2401.41 -> with that
2401.8 -> on your way out when you grab your socks
2403.39 -> you can pick up
2404.56 -> [Applause]
2410.26 -> a coupon for 75% off Oh Google picks the
2414.1 -> book
2414.52 -> don't forget your socks oh they're
2417.52 -> kicking me out the stage so I'm going to
2418.54 -> say quickly come to our code labs we
2420.22 -> have two great code labs you can do the
2421.57 -> resizing with animations it looks great
2423.76 -> you can make keyboard input
2425.44 -> drag-and-drop click on the dinosaurs
2427.39 -> talk to us office hours today fill out
2430.3 -> the survey thank you can everyone come
2433.45 -> back on stage it's about we're done yes
2435.61 -> Shahid federico come on up Stepan Paulo