Optimizing Android apps for desktop experience
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 52 | |
Autor | ||
Lizenz | CC-Namensnennung 3.0 Unported: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/47758 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | |
Genre |
1
2
3
6
7
12
14
23
24
30
35
40
42
44
46
47
48
51
52
00:00
Coxeter-GruppeProdukt <Mathematik>TermNetzbetriebssystemCodeKartesische KoordinatenReelle ZahlBildschirmfensterSchnelltasteMultiplikationRechter WinkelMultiplikationsoperatorTouchscreenPhysikalisches SystemDatensichtgerätHardwareLeistung <Physik>CASE <Informatik>InstantiierungHumanoider RoboterWorkstation <Musikinstrument>App <Programm>Dezimalzahl
02:40
MultiplikationComputervirusBildschirmfensterBitATMRechter WinkelProdukt <Mathematik>Popup-FensterProgrammierumgebungMobiles InternetHeegaard-ZerlegungMultiplikationTouchscreenHumanoider RoboterMAPGruppenoperationSchnelltaste
03:50
Bridge <Kommunikationstechnik>ProgrammierumgebungWorkstation <Musikinstrument>BildschirmfensterMultiplikation
04:31
TaskBildschirmfensterCoxeter-GruppeQuellcodeNotebook-ComputerMessage-PassingComputeranimation
05:23
Mobiles InternetNotebook-ComputerProdukt <Mathematik>Maskierung <Informatik>Coxeter-GruppeGruppenoperationTouchscreenMultiplikationsoperatorComputeranimation
06:13
Mobiles InternetKartesische KoordinatenBildschirmfensterProgrammierumgebungApp <Programm>Humanoider RoboterProdukt <Mathematik>Rechter WinkelYouTubeBridge <Kommunikationstechnik>GraphiktablettComputersicherheitComputeranimation
07:40
BildschirmfensterApp <Programm>PunktNormalvektorVideokonferenzHumanoider RoboterBandmatrixWechselseitige InformationYouTubeSoftwareentwicklerATMGüte der AnpassungMultiplikationsoperatorOrdnung <Mathematik>Computeranimation
08:35
Mobiles InternetApp <Programm>AuswahlaxiomNeuroinformatikBildschirmfensterVideokonferenzProzess <Informatik>Rechter WinkelProgrammierumgebungComputerspielWorkstation <Musikinstrument>Message-PassingComputeranimation
09:14
Mobiles InternetCASE <Informatik>App <Programm>Humanoider RoboterOffene MengeMessage-PassingSchlüsselverwaltungAuswahlaxiomFunktionalMaskierung <Informatik>Notebook-ComputerBildschirmfensterSchnelltasteFreewareGamecontrollerMultiplikationsoperatorGraphiktablettHackerMaschinenschreibenComputeranimation
10:37
WahrscheinlichkeitsfunktionProdukt <Mathematik>SchnelltasteBrowserFreewareWeb SiteFunktional
11:24
DatenmissbrauchCookie <Internet>WärmeübergangWurm <Informatik>Computeranimation
12:01
ComputervirusLokales NetzTwitter <Softwareplattform>EreignishorizontWinkelSoftwareentwicklerRechenbuchProdukt <Mathematik>BildschirmfensterWiederkehrender ZustandHumanoider RoboterFunktionalRechter WinkelWorkstation <Musikinstrument>App <Programm>ATMUmwandlungsenthalpieIntegralSichtenkonzeptZoomTouchscreenMessage-PassingDezimalzahlSchnelltasteSchlüsselverwaltungPunktAttributierte GrammatikElektronischer ProgrammführerTropfenMultiplikationStrömungswiderstandBitBrowserElektronische PublikationRandomisierungEigentliche AbbildungFreewareGamecontrollerComputeranimation
16:47
ComputervirusWinkelRechenwerkApp <Programm>BildschirmsymbolRechter WinkelOrientierung <Mathematik>Befehl <Informatik>ProgrammierumgebungTouchscreenMaschinenschreibenKonfiguration <Informatik>ATMComputeranimation
19:07
RechenwerkMenütechnikWinkelPrimzahlzwillingeComputervirusTwitter <Softwareplattform>App <Programm>TouchscreenMultiplikationRPCHumanoider RoboterSoftwaretestProgrammierumgebungStatistikComputeranimation
20:13
ServerPasswortCASE <Informatik>URLFlussdiagramm
21:02
Projektive EbeneProdukt <Mathematik>TouchscreenPhysikalisches SystemBildschirmfensterFlussdiagrammComputeranimation
21:37
ProgrammierumgebungHumanoider RoboterTouchscreenLesezeichen <Internet>ClientCodeComputeranimationProgramm/Quellcode
22:27
ZoomGenerizitätHumanoider RoboterXML
23:03
Mobiles InternetApp <Programm>Minkowski-MetrikTouchscreenProgrammierumgebungSchlüsselverwaltungApp <Programm>TouchscreenVersionsverwaltungKartesische KoordinatenMinkowski-MetrikSchnelltasteBitBildschirmfensterDifferenteKonfigurationsraumComputeranimation
25:18
TouchscreenLaufzeitfehlerKonfigurationsraumMathematikAggregatzustandÄußere Algebra eines ModulsBildschirmfensterPixelATMMultiplikationsoperatorKonfigurationsraumBitApp <Programm>TouchscreenMultiplikationDienst <Informatik>ZeichenketteDichte <Physik>PlastikkarteLaufzeitfehlerÜberlagerung <Mathematik>
27:18
Workstation <Musikinstrument>Plug inComputersicherheitCASE <Informatik>Workstation <Musikinstrument>Wort <Informatik>GamecontrollerSoftwareentwicklerMathematikTouchscreenTLSCoxeter-GruppeLokales MinimumAuflösung <Mathematik>
28:54
MultiplikationCOMGlobale OptimierungSoftwareentwicklerApp <Programm>SoftwareentwicklerMereologieCASE <Informatik>PunktGlobale OptimierungATMElektronischer ProgrammführerRechenschieberQuellcode
29:37
Workstation <Musikinstrument>MathematikSchnelltasteApp <Programm>Güte der AnpassungMultiplikationsoperatorEinfach zusammenhängender RaumATMSoundverarbeitungBroadcastingverfahrenEnergiedichteWidgetCASE <Informatik>Formation <Mathematik>PunktMessage-PassingZweiHumanoider RoboterAutomatische HandlungsplanungBridge <Kommunikationstechnik>MaschinenschreibenTUNIS <Programm>TouchscreenOrdnung <Mathematik>Rechter WinkelTopologischer VektorraumFunktion <Mathematik>Dienst <Informatik>RichtungProgrammierumgebungInformationsspeicherungEreignishorizontEinfache GenauigkeitEmulatorWorkstation <Musikinstrument>LaufzeitfehlerE-MailSoftwareentwicklerNotebook-ComputerMomentenproblemBildschirmfensterMereologieWeb-SeiteGamecontrollerMultiplikationNormalvektorDezimalzahl
36:46
Workstation <Musikinstrument>BewegungsunschärfeNotebook-ComputerGraphiktablettPersönliche IdentifikationsnummerWeb SiteVersionsverwaltungKlassische PhysikTouchscreenZählenFormation <Mathematik>SpieltheorieRechter WinkelPersönliche IdentifikationsnummerBildschirmfensterZweiComputeranimation
39:09
SoftwareentwicklerWendepunktGraphfärbungTouchscreenKonfiguration <Informatik>Service providerMobiles InternetComputeranimation
39:49
Workstation <Musikinstrument>PunktMomentenproblemTurnier <Mathematik>Workstation <Musikinstrument>VerkehrsinformationGüte der AnpassungComputeranimation
40:24
Software Development KitHumanoider RoboterWendepunktATMVersionsverwaltungApp <Programm>ATMBildschirmfensterHumanoider RoboterAutomatische IndexierungComputeranimationXML
41:10
ATMWendepunktTouchscreenBildschirmfensterPunktTouchscreenATMDifferenteComputeranimationXML
41:48
WendepunktSchnelltasteApp <Programm>Ordnung <Mathematik>Objekt <Kategorie>SchnelltasteComputeranimation
42:23
WendepunktSichtenkonzeptSchnelltasteZoomAutomatische IndexierungImplementierungSchnelltasteComputeranimationXML
42:59
SchnelltasteATMDichte <Physik>GamecontrollerSchnelltasteDichte <Physik>Automatische IndexierungComputeranimationXML
43:51
ATMDichte <Physik>KonfigurationsraumPunktWorkstation <Musikinstrument>MathematikKonfigurationsraumLaufzeitfehlerComputeranimation
44:26
ComputersicherheitComputersicherheitBetrag <Mathematik>XMLComputeranimation
45:10
PunktMomentenproblemMAP
Transkript: Englisch(automatisch erzeugt)
00:00
It's right here. Who knows what Samsung Deck Station is? Well, that's pretty impressive. In case if you don't, you can just go upstairs. There's a pretty impressive Samsung display, and you can learn all about it. Also, I'm going to mention something about Deck Station during the presentation.
00:22
OK, so back to our topic, how to optimize your Android apps for desktop experience. Well, the first thing we need to establish is why even bother about desktop, right? Because we all have our mobile devices right now, pockets, and we love them.
00:42
And I think one of the reasons we like them so much is because of their availability. The instant you need them, you pop it out from your pocket, you press the power button, and it's ready for you. There is no hibernation going on. You don't need to open a lid like on your notebook
01:01
and wait for the operating system to wake up. It's instantly available. But when you need to do a real work, let's say you need to crunch some code, or maybe you need to prepare a presentation like this, or even present a presentation, can we
01:21
rely on our mobile devices? Maybe not quite yet, right? But to do things like that, we would like to have a large screen, a true multi-window operating system where you can open multiple windows at the same time. Perhaps we would like to have a physical keyboard with all
01:44
the shortcuts and the mouse. And that makes us really productive. So desktops are great in terms of the productivity. But the question is, is it possible to combine the both worlds?
02:03
Something that's productive, but also mobile. So the question is this. As you can imagine, to achieve something like this, we need to get some innovations from both sides, from the operating system to get it ready for the multi-window support,
02:23
and from the hardware to be able to pull it off. As you can imagine, multiple running applications at the same time may require some extra effort from the hardware. So let's look what happens on the operating system side of this challenge.
02:43
So starting from Android API level 24, aka Android Nougat, we actually got a support for multi-window. And currently, there's basically two ways you can use a multi-window support in Android.
03:00
Pop-up window and split screen mode. Can you show me how many people actually use this feature of Android? Looks like maybe 30% or so. Well, I think we need a bit more than this
03:23
to actually get to the productivity side. Specifically, we need a larger screen. Specifically, we need to be able to look at the multiple windows at the same time, resize them, plug in our keyboard,
03:41
and basically make some kind of transition to the desktop environment. Because this is still mobile, right? It's great, but productivity is not there yet. So to close the gap, Samsung actually built what's called deck station. Let's say Samsung has built decks, which consists of deck station.
04:03
Some of the new flagship devices, S8, S8 Plus, and Note 8, they work with that deck station. And we also have built a custom launcher. So when you pop your phone into the deck station, a new launcher comes up that takes care of presenting you
04:22
with the multi-window environment and basically giving you a true desktop workspace. So this is the screenshot. That's basically how it looks. That's actually Android, guys. And as you can see, you can open multiple windows.
04:41
You get your notifications. You have a desktop-like home screen, a task bar, everything kind of at your command. So, yes, and thank you for this reminder.
05:01
And don't forget that you get a desktop that's actually integrated with the telephony, which means you can actually receive a text message, copy and paste it to your, I don't know, source code or PowerPoint presentation. This is something we cannot absolutely do with the notebooks.
05:23
So one of the best ways to experience a desktop experience is actually see it in action. And by the way, Samsung, when we built this product, we didn't intend to replace notebooks.
05:40
Basically, the aim is to provide a desktop experience to the mobile users. So all I have to do is to jump into a live presentation, is to click Escape button, because I am actually presenting from my Galaxy S8 Plus phone.
06:03
I don't have my notebook with me. That actually makes my travel kind of light these days. So it's a bit awkward for me to look at the screen at the same time. So here's my Android desktop. These are my applications.
06:25
As you can see, I can open multiple windows. And all these windows are resizable.
06:42
I can maximize them. I can minimize them. Who knows what this is? Well, that kind of surprises me, because it's a product from Germany. It's made by the company called App4. And it's an Android IDE that you can run from Android.
07:02
And you can develop and deploy an app right on the same device. So you don't really need an ADB bridge to deploy your app. You can do it right here. So what I've actually done, I put together some demo app. I call it Secure MemoPad.
07:22
And I'll use this app to actually show some of the features that you get with a desktop environment in Android. But before we do that, I'd like to show you something. Do you know how when you play YouTube videos
07:42
on your mobile phone, once you launch another app on top of YouTube, the video playback stops? And I think there's a good reason for that. Because what's the point of wasting all this bandwidth and playing the video if nobody's watching? Because in normal Android mode, in the mobile mode,
08:02
you can basically see one window at a time. So as an app developer, you just jump into your onPause method, and you stop the playback. Well, let's see what. I actually had to pick some video to show you. So I thought kittens probably is the most neutral subject that everyone kind of tolerates.
08:23
So let's play the kittens. So here they are. And everything good, because it's the topmost activity. But look at this. I actually switched to another activity.
08:41
Now my aid window is the topmost, but the video still plays. This is your choice. So when you'll be optimizing apps for the desktop environment, keep that in mind. You no longer have to stop your processing. You can keep it going if required.
09:03
Here's the messages. It's coming live. It's actually my workstation, if you will. That's my real computer. So let's close the kittens. Thank you very much, kittens. And let's just click the button.
09:25
So it actually works way faster than the Android Studio on my notebook. I don't know. Maybe it's just my notebook, or maybe it's Android Studio, but I really like the way how fast it works here. So app installed, open.
09:41
So here's the Memapad. It's just a Memapad, and I use some of the features of Samsung Knox APIs to secure the data. Like in case if somebody hacks your phone, the encryption keys are immediately destroyed, and nobody can get access to it. But we're not going to touch that subject today.
10:02
We just don't have time. So hello, world. This is my message. What do I get for free? When you build an app for the desktop environment, what kind of functionality do you get for free?
10:21
You get all kinds of keyboard shortcuts for free. All the familiar shortcuts work. Control-C, Control-V, Control-A. Escape button closes the window. Alt-Tab gives you a choice of active activities.
10:44
So really convenient. We like to use shortcuts, right? Because again, it's productivity. We also get lots of mouse functionality for free. Like I can select, for example, hello, world. And I can copy and then combine it
11:06
with my keyboard shortcuts. Copy, paste. So you'll be pleased that it actually looks more and more like a real desktop. What else can we do? We can, let's open a browser here and go to some website.
11:35
I should probably minimize it. Yeah, here's our DroidCon.
11:54
All right. OK, let's try to select some text.
12:08
And let's try to drag it up. So that's your mouse drag and drop that comes for free. You actually don't have to do it.
12:21
This is just an edit text view. And it comes with all this functionality. But you can actually extend this functionality even further. So you can add custom keyboard shortcuts. And you can add custom mouse functionality to this.
12:42
So what I've done here, I decided, well, why not build some zoom, right? Like we just use zoom in a web browser. So it's nice to be able to adjust the text size. So I build a couple of custom shortcuts, Control, Control Plus, Control Minus shortcuts
13:01
on the keyboard with zoom in, zoom out. And if I hold Control key, I can actually zoom in and zoom out with my mouse. So extremely easy to do. All you have to do is to look into Android Developer Guide. And by the way, with this product, with the deck station,
13:24
Samsung introduced zero proprietary APIs. So everything is based on Android specifications. There's nothing proprietary. You're not going to put together any dependency on any of the Samsung APIs. So that's always a good use. We hate proprietary, right?
13:43
OK, what else should I show you? Yeah, the messages. Remember, I said telephone integration. Let me send myself a text message.
14:02
So here it is. Copy text, paste it. This is pretty cool, huh? That's your integration with desktop and the telephony.
14:26
All right, so let's have a look at the code and see what we can learn from there. First thing to probably inspect would be our manifest file. So when you look at the manifest,
14:40
there is one really important bit that you need to remember, this. Please make sure if you want your activity to be resizable, declare it explicitly in the manifest. True, starting from Android API 24,
15:01
you don't have to do that according to Google documentation. So it's actually implied that if you target SDK 24, then all your windows will be resizable. Well, we put a little safeguard here. We basically want you to explicitly say, yes, my activity should be resizable.
15:22
Why? Well, because not every app looks pretty. Like if you go to Google Play and pick up some random apps, there's good chances that it won't look pretty in a desktop mode. If you resize it, the layout may actually not adjust properly.
15:42
We've seen a lot of those kind of things. So to save your users from possible headaches and your company from embarrassment and DeX product from the bad rep, we decided that we want to ask developers to explicitly say,
16:01
yes, my app is ready for multi-window. Go for it. But do you think every app has to be resizable? Do you think every app deserves to be maximized on the whole screen? Probably not. Think about a calculator or maybe an alarm clock
16:23
or maybe just a watch. There's probably no point to blow up the watch on the whole screen. So using this attribute, you can actually say that, no, I don't want my activity to be resizable.
16:42
Let's turn it to false. And let's use the beauty of aid. We'll rebuild the app, redeploy it right away. See what happens. So when I said false, or I could just as well omit, skip the whole statement, this is what I get.
17:03
This is basically a mobile app in a desktop environment. What we really want to build, we want to build a true desktop app. We don't necessarily always want apps like this. So with the mobile app just deployed on a desktop
17:22
environment, we basically get only the chance to rotate it from landscape to portrait, and only if we don't constrain our app to a particular orientation. Because we can even say, like again in the manifest,
17:41
we can say, landscape only. And then that's it. You won't even get that little icon. So that's good to remember. And that's something that you may remember for the quiz as well. Another thing about manifest, remember from the old days of Android, there
18:02
was basically an option to demand that your device supposed to support touch screen. Well, if you put that feature into your manifest, that feature request, and you redeploy the app, it won't even open in desktop mode.
18:21
Because you can't really touch the screen, right? And as you can probably see, my phone screen is black. So I can't touch anything anywhere. So therefore, logically, if you demand touch screen, then it's probably not suitable for the desktop.
18:42
So keep that in mind too. All right. What else? So let's turn it back to true. Kind of like it more that way. Oh, see how fast it is.
19:15
OK, so now I can do whatever I want with this app.
19:21
Maximize, minimize, resize. All right. So that's, I think, what I was going to show you on the screen. By the way, if you're not super comfortable using
19:41
aid, IDE, and you absolutely want to have your Android Studio, well, you can always use remote desktop. Let's try to launch one. There's multiple remote desktop solutions for Android from Amazon, from Citrix, from NetWare.
20:07
Let me see if it works. It's a test account, guys, don't worry about it. You still need to know the server URL.
20:25
I actually found that it usually takes like two tries to do it. Same password. So in case if you didn't remember it first time,
20:48
you got it. OK. Well, let's give it one more chance, and you as well. So watch carefully.
21:06
Come on, Amazon. This product is actually being developed right now, and a new release is pretty much going on every day.
21:26
So this is actually real cool. So if I blow this out for the whole screen, what operating system do I have here? It's Windows, running from my Android phone.
21:43
And here's our favorite Android IDE that we can use to examine the screen. And by the way, of course, you can have a Git client to synchronize. For example, you can develop on the remote desktop,
22:02
then you can push and then switch to your Android environment. You can pull the code from there. So it's all pretty easy. So let's just have a look at a few things here. I kind of really like to use to-dos as bookmarks.
22:22
Just click on the to-do, brings you right to the place you want. So this is basically how I implemented the mouse-based zoom. All I had to do is to implement the on generic motion listener.
22:41
And here it is. Really, really easy to do. So again, nothing proprietary. Let's go back to Android.
23:03
It's quite handy. OK, so basically our main discussion here is what things you have to remember when you build for a desktop environment. So let's get back to our app.
23:22
Basically, it's F5, same key. The clicker works. OK, so when you build for the big screen, you need to remember. You need to handle the extra screen space
23:43
that you're going to have in your application. So you may want to think how you're going to utilize that. Maybe you can add additional pane, or maybe you can put some menus that are visible and improve the user experience.
24:02
You also need to remember that your activities are now freely resizable. And what that really means, it means that your layout should play nicely when your activity windows change configuration. You're no longer locked to a certain aspect ratio,
24:25
because it's up to the user what aspect ratio they're going to set on your activity window. And no longer you can guarantee that you're going to work in landscape or portrait, unless you specifically request that.
24:42
Mouse navigation. So remember, in desktop environment, there's no more fingers. It's a bit more civilized now. Mouse. So make provisions for that. Specifically, if you use some fancy gestures on your mobile version of the activity,
25:02
think about maybe supporting some mouse-based navigation in a bit different way. And physical keyboard. Again, maybe add additional shortcuts to make your user experience a bit more friendly.
25:22
So with this new technology, basically all we have to do is stick to the old, good, proven best practices. So when it comes to supporting multiple screen sizes, well, use density pixels. Don't use the real pixels.
25:43
You can choose to use alternative layouts and alternative drawable resources. Well, because the screen density changes. Don't forget about handling runtime configuration changes. You know how when you flip mobile application from portrait
26:02
to landscape, what happens to your activity? It gets destroyed and relaunched. So please save the state. The same actually happens when you resize the window. Every time you drag and resize your activity window, it gets destroyed and relaunched. It happens so quickly you don't even notice it.
26:23
But you need to remember to preserve the state. Be smart about on pause. We already had that topic covered. So you may choose to keep your background services running, background streaming, or whatever makes your app useful.
26:43
And of course, configuration qualifiers. That's, again, that's the standard practice. So you get a new configuration qualifier, desk. So basically when your app switches to the desk mode, that's where you put all those alternative layouts
27:03
and alternative drawables and alternative strings or whatever you want to put alternative. And currently, when you switch to desktop, you get MDPI screen density. So keep that in mind.
27:21
We're getting closer to a quiz. So just a few words about this little beast here. So it's called Samsung DEX Station. And what do you think DEX stands for? Desktop Experience. Yeah, exactly. So it basically matches the title of our presentation.
27:43
So we get two USB ports. You can plug whatever you want pretty much to those USB ports. So today I used my clicker's RF receiver and my keyboard and mouse RF receiver. So I basically used both of my ports.
28:00
We also get ethernet port, in case you want to plug in your ethernet cable. We get HDMI out port. Currently, it runs in full HD. This is the maximum resolution. But as you can see, even on this huge screen, it looks remarkably well. And currently, the only devices you can pop into this station
28:21
are Galaxy S8, S8 Plus, and Note 8. And yes, in case if you are users of Samsung NOCs or developers who use Samsung NOCs APIs, and in case if you want to take this quiz,
28:41
you need to remember that all the great security features of Samsung NOCs still work with DeX. So nothing changes here. And that's it. I think, well, one more slide. So where to look for resources? Well, your first resource is to go to developerandroid.com
29:02
and look at how to build multi-window apps. That's pretty much all you need to know. But in case if you need to have some hand walking, go to developer.samsung.com, and we have a really nicely put developer guide that's actually built
29:22
by colleagues from Vancouver. So in that guide, step by step, we kind of point you to the most important parts of your app optimization for the desktop mode. And that's it. There's no more other resources. So let's have some Q&A.
29:43
You can actually talk or come to the mic, and then we'll do the quiz. Hello? Is it on? Yeah. How do you detect that you're on a DeX or that you're in a desktop mode in the on pause?
30:01
How do you detect if you switch to DeX mode? Basically, there's a broadcast that you can listen to. Can we use the phone screen as a second screen? Can we use phone screen as a second screen? Well, actually, it's a really clever idea, and we're working on that. So stay tuned.
30:21
I'm actually not allowed to say anything about roadmaps. Roadmaps are usually top secret. When we receive them, they're top secret only for Samsung employees. So let's stick to that. Don't ask me what the next features are coming, but we are working, and we're listening. So if you want a feature, just say, I want that. And there's a good chance it will happen pretty quickly.
30:44
Is there or will there be support for touchscreens, TVs? So I have an HDMI screen with touch enabled. So can I connect it to the DeX station, and then I get the touch events as well? That one I'm not sure about, because normally,
31:03
HDMI is single directional kind of input, output. So usually, TVs has a USB cable. TVs, basically, when you touch screen on a TV, everything happens on a TV. It doesn't actually send the signal back over HDMI cable
31:21
to the phone. You have a USB cable from the TV to the device. Well, maybe. I don't know. But we may have two ports, remember? Can I try at home? You can certainly try, yeah. Send me an email if it works. How about power consumption and like effects on battery? Oh, that's a good question.
31:41
Power consumption. As you can imagine, when you pop your phone and make it work so hard with all these multi-windows, it requires extra energy. So the good thing about DeX station, it actually charges your phone as well. So there's basically the only cable that I,
32:00
well, apart from HDMI, I need to plug it to the charger and so the phone charges at the same time. So basically, it's not an issue. Thank you. Hello? Hi, thanks for the talk. I don't have a Samsung phone. I would like to use this with my normal phone.
32:22
Are there any plans to support that? So you basically have a question. Can you use it with your normal phone, right? Yes, right. OK, so that desktop environment is actually a custom built launcher, Android launcher, that we put together in Samsung. And that launcher, obviously, deployed
32:42
on our flagship devices. So other phones, they don't have that launcher. So basically, what DeX station does, it triggers the replacement of the launcher at the runtime. Yeah, you could publish the launcher on the Play Store
33:02
for other devices, too. Absolutely, yeah. But at the moment, this is how it works. OK, thank you. Thank you. Great talk, thank you. One question about background services. Let's say that you have a background, sorry,
33:22
foreground service and it's a sticky foreground service. Google Play Music, for example, you are listening to music. How do the notifications work in this case in desktop mode? I don't think anything changes. Can you give me an example?
33:40
Yeah, sure. Like all the broadcasts still work? Yeah, sure. But for example, when you play music in your phone, you have a sticky notification that it's basically with controls, play, pause, next, and so on. Do these notifications disappear in desktop mode? I think the only thing that you're losing when you switch to desktop mode, you're losing the widgets.
34:02
Everything else kind of works the same. Thank you. Hey guys, two last questions and then let's do the quiz. We're kind of running out of time. You mentioned at the very beginning that you have to declare the touch keyboard to be hidden in order to launch your activities.
34:21
No, you don't have to do it. If you declare touch keyboard, your app is not even going to launch in desktop mode. But how does it work then? Can you still run the app in your decks? Or is it rather pointless to do it? I don't really see it. So if your app needs a touch screen to operate,
34:43
we think, well, there's no touch screen with the big monitors. So if that's the requirement for running the app, such an app won't be even launched in the decks mode with the message that your app requires a touch screen, which
35:01
is not available in decks. So what's the point behind it? If I have this note-taking app, for example, I can't really hide the keyboard on the phone just so I can use it on the decks? Or do I misunderstand something here? Well, basically, the requirement for the touch screen
35:20
comes from the very old days of Android. Nobody is doing it anymore, because all screens now have touch. All the mobile devices, they do have touch screen. But I think the point of that message was if you have a left over from the old days, and if you find that your app won't even open in the desktop mode, just nuke it off
35:41
from your manifest. It won't change anything in the behavior of your app. But it will make your app work in the desktop. OK, thank you. Thank you. Is there any emulator available? Emulator, good question. You basically can configure an emulator
36:01
that runs in the desktop mode with Android Studio. And if you go to our page, developer.samsung.com, we actually tell you exactly how to make it happen. And in case somebody is interested, how do you debug something with the phone plugged
36:22
into the deck station? Do you have to unplug it, connect it to your notebook, deploy the app, put it back? No, you can actually use TCP connectivity of ADB bridge and just deploy it over Wi-Fi or ethernet. So that works just flawlessly.
36:40
All right, guys. Thank you for your questions. Let's run the quiz. So I'll have to switch to all you have to do is to have your mobile devices ready. We'll use this little Kahoot website.
37:00
It'll keep the score. I'm going to play classic version. So look at the screen. Just go to kahoot.it and enter that game pin.
37:25
Hi, Boris.
37:46
And we do have a music playing on the Kahoot website. And I can actually redirect the music from my local device to the projecting device, but we don't have this capability in this room right now.
38:02
So let's stick to the quiet background. OK, 45 players and counting. 53.
38:24
Try to shrink the website window. Sometimes it looks too big.
38:44
OK, 60 players. Should we start? 15 more seconds, guys.
39:01
OK, let's go ahead. So it's really simple. Basically, we ask you a question and you need to click something on your screen that matches the color of the question. So what is the purpose of DEX?
39:20
Four different options. So click the corresponding color on your screen. Remember, it's the accuracy and the speed that counts. OK, so to provide desktop experience to mobile users.
39:47
Excellent. Next, let's see the leaderboard. So tournament is at the top at the moment, but it's just the beginning. What port the DEX station doesn't have?
40:14
Firewire. Yeah, we don't have Firewire. Good. Ethernet. We do have Ethernet port. Come on, guys. I just told you about it.
40:21
OK, tournament is at the top still. Who's going to challenge him? You have a resizable windows in desktop mode. Your app needs to target Android SDK 24.
40:46
Excellent. Next, pretty close race. To be able to resize the app window in DEX, you need two.
41:11
Excellent, guys. I guess you were actually listening. Very close race. Only two points difference. If you explicitly declare required touchscreen in your app,
41:23
it will open in desktop mode.
41:44
It is not going to open at all. Excellent. We just have a few more questions left. In order to make your app DEX compatible, it's mandatory, too.
42:15
Excellent. None of the above. Yeah, you don't actually have to create keyboard shortcuts
42:20
or some custom mouse behavior. You can, but you don't have to. The mouse wheel zoom works in DEX.
42:49
Yeah, custom listener implementation is the answer. I actually had to do it myself. Turbine is still at the top. The following keyboard shortcuts don't work off the shelf with DEX.
43:20
Yeah, you did listen. Control plus, control minus is, again, it's my custom shortcut. What density resource qualifier you should use in DEX?
43:52
MDPI. Excellent. And I think probably one of the last questions. Runtime configuration change doesn't occur when you...
44:21
It's minimizing, guys. Yes. Okay. We have a new leader. And I think that's probably the last question.
44:57
All the security features of Knox work. Well, maybe it's my fault.
45:01
There's some features of Knox that deal with the UX. Those, they don't necessarily work. But security features, absolutely. Okay, so, Aussie. Who is Aussie? Thank you. Come on the stage, my friend.
45:21
Thank you. Somebody take a picture. It's a really important moment. Thank you, guys. Thanks a lot for attending. Pleasure. Thank you.