Placeholder Image

字幕列表 影片播放

  • RETO MEIER: All right.

  • Good afternoon, everyone.

  • Welcome to this year's Android Fireside Chat.

  • My name is Reto Meier.

  • I'm part of the developer relations team at Google

  • and I'm joined by some of the most important people

  • on the Android Engineering, Design and Product teams.

  • The purpose of the fireside chat is basically

  • to let you guys ask questions from these people, all

  • of the stuff that you want to know about Android,

  • where it is, what we've announced today,

  • how things have been done, how some of those decisions

  • have been made, all of those sorts of things.

  • So it is a Q&A session.

  • We have mics at the front and middle of the room.

  • If you have a question, please line up, ask.

  • If there are no questions, it'll be a really short session.

  • We do have a few from online which

  • we've collected in the weeks leading up.

  • So I'm going to ask some of those as well.

  • While you guys are getting ready to ask questions yourself,

  • I'll ask the panel to introduce themselves,

  • just who you are and a little bit

  • about what you do at Google.

  • Maybe start with you, Gabe.

  • GABE COHEN: I'm Gabe Cohen.

  • I'm a product manager on the Android OS.

  • I also work on Google Play services

  • and a few other things.

  • XAVIER DUCROHET: Hello, I'm Xavier Ducrohet.

  • I'm the lead for the Developer Tool and the SDK.

  • ADAM POWELL: I am Adam Powell I'm

  • a framework engineer on the UI Toolkit.

  • RACHEL GARB: Hi.

  • I'm Rachel Garb and I'm an interaction designer

  • on the Android OS.

  • JHILMIL JAIN: Hi.

  • My name is Jhilmil Jain and I lead user research for Android.

  • CHET HAUSE: I'm Chet Hause.

  • I'm an engineer on the UI Toolkit team.

  • DIANNE HACKBORN: I am Dianne Hackborn.

  • I'm an engineer on the Android Core Framework team.

  • DAVE BURKE: Dave Burke.

  • Engineering Director.

  • I work on the Platform and Nexus devices.

  • FICUS KIRKPATRICK: I'm Kirkpatrick.

  • I work on the Play Store apps and games and hardware.

  • MILES BAR: I'm Miles Bar, I'm the engineering manager

  • for the apps part of Google Play.

  • RETO MEIER: Thanks everyone.

  • All right.

  • Let's get started.

  • We've got a line at the back.

  • So, why don't we start with you, sir.

  • AUDIENCE: My question is about Java 8.

  • Will it be coming to Android?

  • And if so, when?

  • And will it be supported on all the versions as well?

  • RETO MEIER: It's like a hot potato question.

  • Oh, the mic's going to Xav.

  • CHET HAUSE: Usually any question that has the word will in it,

  • you might want to think about it.

  • Because I'm not sure the answer is going to be what you want.

  • In general, can we say the general policy, which is,

  • we don't really talk about stuff that we will do in the future.

  • Just so you know.

  • Let's just lay the groundwork out there.

  • Xav, go.

  • RETO MEIER: Now, answer the question,

  • Xav, What will happen and when?

  • [LAUGHTER]

  • XAVIER DUCROHET: I have no comment.

  • [LAUGHTER]

  • RETO MEIER: Perfect.

  • All right.

  • Now you can all see me as well.

  • All right.

  • Let's try another question.

  • Hopefully one which we can actually answer.

  • AUDIENCE: Hi.

  • This is for Dianne.

  • First off, I really appreciate all

  • of the work you've done on Binder.

  • And I know that it sits at the heart of everything that

  • is Android at all.

  • And I just wanted to ask you, you've

  • been involved in Binder development

  • even before Android was Android.

  • Can you talk a little bit about the history of Binder

  • and your work with it?

  • DIANNE HACKBORN: OK.

  • Well, thank you.

  • Oh, well I, So Binder started out in BOS

  • and has been something that I was--

  • I was not main person who did Binder.

  • I worked on it as an engineer at BE, then at Palm Source.

  • And then we kind of adopted it just for IPC in Android.

  • But actually, I don't even think it's the core of Android.

  • It's a convenient way to do IPC on the Android.

  • Previous versions of the Binder were actually much more core

  • to the platform design.

  • So today it's a really nice way to do capability based IPC.

  • RETO MEIER: Fair enough.

  • Thank you.

  • All right, I'm going to ask one of the questions we received

  • online earlier.

  • I think material design is one of the most interesting things

  • that I saw come out of the keynote today.

  • So I was wondering, what sort of research

  • did we do to be able to come up with some of those ideas?

  • JHILMIL JAIN: Thanks.

  • I think for the first time at Google,

  • the researchers came together across the company

  • to work on medieval design.

  • So we had researchers from 15 different groups

  • and four different Google offices come together

  • to do research.

  • And we conducted research on four main areas.

  • The first was components, which is containers and elements,

  • patterns and layouts, which is like the floating action

  • button, motion and accessibility.

  • So some examples of the types of research

  • that we did, was first, we explored and validated

  • key design principles, such as really figuring out

  • the motion curve and speed.

  • Second was that we highlighted key usability issues

  • that designers should be mindful of.

  • For example, when picking the color of the floating action

  • button, making sure that it doesn't

  • blend into the background like it was in some mocks

  • that we exploded earlier.

  • Or making sure that the fabs, the size of the fab

  • wasn't, or floating action button

  • wasn't like varying within the app

  • because that would confuse users.

  • And third is that we conducted a whole bunch

  • of accessibility studies that led

  • to a number of design changes.

  • And one such design change is that we

  • have now a much improved color palette, which

  • takes into account the color contrast that

  • is required between type and the background.

  • So now our low, vision impaired users

  • can actually read the text a lot better.

  • DAVE BURKE: If you're wondering what a floating action

  • button is, because I didn't know what it was until a week ago,

  • it's actually an image view.

  • It's where someone's called set elevation on the view.

  • Just thought you should know.

  • But it looks cool.

  • And it's round.

  • Does it have to be round?

  • So the dialer one's the floating action button.

  • We need a translation between you and engineering.

  • RETO MEIER: Question for Xav, I think.

  • I will quote it out to you.

  • Considering its performance, why not offer Genymotion

  • as the official emulator for Android?

  • [LAUGHTER AND CHEERS]

  • XAVIER DUCROHET: It's a good question.

  • First of all, I think it's a great product.

  • I think they are not quite free, though.

  • So there is a demo version.

  • I don't know exactly what the demo is.

  • But I think that's what I sense, that you

  • have to pay for to get some things.

  • So we can't quite distribute that.

  • The other thing is that, obviously, we

  • need to improve a lot, the story there.

  • We have, one other thing that we really want to do

  • is a low eliminating already, all the ecosystem.

  • And that means also AUM and MEEPS.

  • And they go mostly with x86 for performance reasons

  • which totally makes sense.

  • But we have to sleep on that.

  • And we do want to support a lot more hardware in the long term,

  • like Bluetooth, multi-touch, and things like that.

  • And it's a lot better, if we control

  • the own stack, the whole stack for that.

  • And so we want to keep all technology to do that.

  • But it's a great product.

  • You should definitely try it out and use it

  • if it fits your needs.

  • RETO MEIER: Thanks.

  • Let's take another question from the crowd, at the back.

  • AUDIENCE: Sure.

  • Just curious in Android L, what's

  • new with adaptive bit rate video and HLS support?

  • DAVE BURKE: OK.

  • So, let's see.

  • The most interesting thing we're doing.

  • And I'm not sure if it's launched yet

  • but it's imminent is, we're going

  • to open source something we call XO Player.

  • This is the player that's in YouTube and in Play Movies

  • and TV.

  • And it's built on MediaCodec, MediaDRM, and MediaExtractor,

  • MediaCrypto.

  • It's a really good adaptive bit rate player.

  • It uses Dash.

  • So that's one thing to know.

  • And then I'm pretty sure we've updated to the latest internet

  • draft of HLS in L. And that's all

  • I can remember that we've done so far.

  • AUDIENCE: Thank you.

  • RETO MEIER: From the front.

  • AUDIENCE: Hello.

  • I've seen the new UI and UX you have

  • prepared for the L release.

  • I was wondering, I've seen that in the action bar, where

  • we used to have the up navigation affordments, now

  • we have what looks like a back button.

  • What's going on there?

  • Is it changing?

  • Are we giving up on the app navigation?

  • So what's going to happen?

  • ADAM POWELL: So the short answer is that structurally nothing

  • is changing in that navigation.

  • Some of the stuff that was shown,

  • I think during the keynote, there

  • was a demo of multiple Chrome tabs opening

  • in different documents within recents as well.

  • So some of that is going to subtly change just

  • as a result of that new feature.

  • In terms of the iconography, unfortunately I

  • don't think we have a representative

  • from our visual design team here,

  • but Rachel do you want to talk to that?

  • RACHEL GARB: Yeah, I believe it's just that an arrow really

  • clearly says for most people, this is what I wanted to do.

  • want do what I was doing before.

  • Whether it's hierarchical or historical.

  • AUDIENCE: Don't we have the back button for that?

  • ADAM POWELL: There is.

  • And what, Go ahead Feel free.

  • So what we found is that, and again, even just

  • in terms of some of the research that we've done with this,

  • users tend to really think either in terms

  • of the system or the app at a given point in time.

  • And having that extra affordance be sitting there

  • in the app, very clearly in the app in the bar,

  • is something that they much more closely tie to,

  • I'm going to continue acting within the context of this app.

  • Whereas the Back button in the system

  • is really seen as more of kind of meta action

  • that can act between apps.

  • Even though a lot of users aren't

  • able to clearly articulate the difference between these two,

  • and even though the iconography is very similar, what we found

  • is a lot of users tend to develop this really intuitive

  • understanding of what to expect when they press either one.

  • Now, of course for developers, this is really interesting

  • because it means that there's a lot of subtlety to really get

  • this right.

  • And we're really hoping that some of the new functionality

  • that we've exposed to open documents in more recents tabs

  • will really help iron out some of the rougher cases that

  • have come up along with this.

  • So definitely stay tuned for more of the published

  • guidelines around how to use that effectively.

  • AUDIENCE: OK.

  • Thank you.

  • RETO MEIER: Thanks.

  • So I think seeing the keynote this morning

  • and all of the awesome changes from material design

  • and how good that makes apps look,

  • I think one of the questions that I have,

  • and I think, some other developers,

  • how much work is it going to take

  • to get an existing app which already looks good,

  • follows the Android design guidelines,

  • and turn it into something that's

  • a great example of a material design implementation?

  • CHET HAUSE: A bit.

  • RETO MEIER: Thank you, Chet.

  • GABE COHEN: I think you were supposed

  • to plug the talk for tomorrow.

  • CHET HAUSE: Right, so, Go see the talk tomorrow.

  • Answer over.

  • So, in fact, there's two talks on material design,

  • sort of the engineering side of that one with Adam at 11.

  • So you can go there if you want a little bit more information

  • about there, where we talk about things like this.

  • So there's sort of a gradient of how much work

  • you want to take on to get toward the vision of what

  • your material design app will be.

  • The first step is not that bad.

  • Which is basically enable the material theme.

  • then, if you're using custom apps, custom views,

  • in your system, then you may need to fix up some of those.

  • If you have assets that were created

  • with other themes in mind, maybe they

  • look a little bit out of place.

  • So we basically see it as enable the theme, spot

  • fix as necessary.

  • And that's kind of the minimum bar to be a material app.

  • And then after that, you can say, well,

  • what is the material design actually going

  • to be for this app, with different padding,

  • different lay out, and then what does that necessitate in terms

  • of the functionality that I need to change in my app.

  • And then, you can figure out how far down that road

  • you want to go.

  • And I should also point out that a lot of that work

  • is actually just using APIs that already exist.

  • They're not new APIs in L. So it's not

  • like we expose this huge new surface area of APIs in L

  • that you have to use to be a quantum app.

  • It's more that we have new capabilities

  • to do things like Real-Time Shadows

  • that we use internally to get elevation for views

  • when appropriate.

  • You can access those if you want,

  • if it's appropriate for your application.

  • But most of what we're talking about

  • is simply new design along the paradigm

  • that we talked about with material design.

  • And then the work that you need to do, just traditional Android

  • development work for layouts and padding and assets

  • to realize that design.

  • ADAM POWELL: The nice thing a lot of this,

  • as well, is that if you followed some of the design

  • evolution of a lot of big Android apps

  • in the last few years, you'll notice that a lot of them

  • have been moving in this sort of direction to begin with.

  • You'll see that a lot of things are contained on surfaces.

  • You have drawers that slide out over scrolling areas of cards.

  • You have a lot of these very similar patterns that

  • have really been kind of kicked up for material design

  • and refined.

  • So if you've been sort of following along

  • in a lot of the footsteps that have been blazed before this,

  • then I think you'll find that the workload to really go

  • that extra step isn't quite as much as it

  • looks like in the first glance.

  • GABE COHEN: I should also say material design's one

  • of the big drivers behind us doing the L Developer

  • Preview this year.

  • I definitely recognize that it's going to take, quote,

  • a bit of effort for people to adapt their apps.

  • We wanted to give people time to do that in advance of consumers

  • getting the full sweep of apps from Google in that theme.

  • But we also want to give people a chance

  • to give us feedback on where it works for them.

  • Where it doesn't.

  • What sort of patterns they want to express

  • in this design language.

  • And hopefully hear back from people about

  • how it fits with their design ethos in their brain.

  • Looking forward to that.

  • RETO MEIER: And that's a really important thing

  • as well, like one of the big key things about doing a Developer

  • Preview like this is that we want to hear from you guys

  • as to what works, what doesn't work, what you love,

  • start to see some of that stuff.

  • So tell us.

  • Let's see, from the front.

  • AUDIENCE: First off, I want to thank all of you

  • seriously for your work on the platform

  • and on developer relations.

  • You make my life a lot better.

  • So, thanks.

  • [APPLAUSE]

  • So my question.

  • I've noticed a lot of differing perspectives

  • from different developers.

  • And some developers who just throw up their hands

  • and say, I'm confused about when it's

  • appropriate to use an activity with one

  • fragment or an activity with a bunch of fragments,

  • like a dozen or an activity with two different fragments

  • or maybe, is it ever appropriate these days

  • to use an activity with no fragments?

  • And I know that's nuanced, but I'd really

  • appreciate if we could talk through it a little bit.

  • DIANNE HACKBORN: I'll start.

  • One of the basic things is that you're

  • going to have at least one activity.

  • And you'll probably have multiple activities.

  • So you should think of activities

  • as being the entry points into your application.

  • Android doesn't have like one main entry point.

  • It has more than one.

  • And so activities are the top things,

  • that if someone is going to go into your application,

  • that's how they get into it.

  • And then once you're inside the activity, the right way

  • to do things is, from my perspective,

  • now, Adam add to this, but from my perspective,

  • as far as the system management, that's really

  • up the application.

  • Now, the application has the freedom to say,

  • if it makes sense now to have multiple fragments,

  • to have one fragment, to have no fragments, however

  • it wants organize it, there's not concrete rules on that.

  • ADAM POWELL: So I would say that one of the rules

  • to follow with that is,

  • [LAUGHTER]

  • DIANNE HACKBORN: Nonconcrete.

  • ADAM POWELL: Not a concrete rule.

  • Rule of thumb, maybe, is just kind of look

  • to the name of the API.

  • It's a fragment, it's a piece.

  • It is a piece of an activity if you're

  • finding that your activity is just

  • getting too big and unwieldy and too much

  • code to think about in one go, then

  • maybe it's worth breaking some of that

  • up into some more logical fragments.

  • I mean, keep in mind that both activities and fragments

  • fulfill the role of being a controller in sort

  • of your whole model view controller

  • setup of your application.

  • So as long as it makes sense to break that

  • down into smaller more understandable pieces, then

  • maybe it makes sense to break that down

  • into some more fragments.

  • DIANNE HACKBORN: I would also add,

  • I think a very reasonable approach

  • is to say, just implement everything as fragments.

  • So all your UI elements are fragments

  • and then you put those into activities

  • where it makes sense.

  • Right?

  • Because fragments are the more flexible way

  • to organize your application.

  • And so if you find, like, I have this UI element here and now

  • in the future I need it somewhere else,

  • it's really nice that, instead of having implemented it

  • as an activity, you have it there as a fragment

  • and it can be fairly reasonable to other parts of the UI.

  • ADAM POWELL: Just think of it as another unit of abstraction

  • that's available to you.

  • AUDIENCE: Thank you.

  • RETO MEIER: From the back.

  • AUDIENCE: Yes.

  • I would like to understand what your experience is

  • with your own usage of permissions in Android,

  • as a user of Android.

  • And what user research you might have

  • and I wanted to give you some feedback from the Wild

  • West of developing, which is our users may not have a Google

  • approved version of Android.

  • So anywhere in my code that I'm calling

  • for system resources or assistant managers of any kind,

  • I need to protect that.

  • I need to be prepared for, although I got the permission,

  • because they installed it, it might not be there.

  • And where I'm going with this is,

  • I like the way you've simplified, recently,

  • the presentation when you install.

  • But where can we go with dynamic permissions

  • because I think that helps users to understand

  • the context with which a permission is used.

  • So what can you tell me about the research that's going on

  • and what you use.

  • Do you just hold your nose and install?

  • I mean that seems like a normal thing to do to me.

  • JHILMIL JAIN: All right.

  • So I'll talk from a research perspective

  • and then Dave or somebody else will

  • talk from a framework perspective.

  • So from a research perspective I do

  • realize that we can do a lot more to provide transparency

  • with the permissions.

  • I know one thing is that, OK, I have accepted these permissions

  • to install an app.

  • How was this data being showed?

  • Shared with other third party maybe.

  • Or is there was one place where I

  • can go to sort of manage all my permissions.

  • So these are things that we are aware of.

  • And we are deeply thinking about this.

  • So stay tuned.

  • FICUS KIRKPATRICK: Yeah.

  • I just wanted to comment on a couple things you mentioned.

  • I think there was a lot to unpack in that question.

  • But around, I guess, having to code defensively

  • around incompatible versions of Android and so on.

  • I'd be curious if you tell me afterward

  • what particularly that is because we work on the Play

  • Store and you may have heard of it.

  • It runs on a lot of devices and it's just not something

  • that we've run into of seeing this inconsistent

  • availability of permissions, whether they're granted or not.

  • RETO MEIER: I suspect you may be referring

  • to some of the problems which have come out which allow users

  • to optionally disable some of the permissions which you may

  • have been granted through installation.

  • AUDIENCE: Yes.

  • Thank you.

  • FICUS KIRKPATRICK: I think that, thank you

  • for the feedback on the way we display permissions now.

  • I think the big insight there was

  • we had tied the developers idea for the permission and the user

  • idea for the permission together for a long time.

  • I think what the users care about is the data.

  • So I think that we're just getting started on figuring out

  • how people think about what data they're getting access to.

  • You saw some of the stuff in the keynote today about data

  • control is something users want.

  • I think you're seeing the first step.

  • And the research is going to, the research we've done

  • is going to inform where the platform goes going forward.

  • Gabe do you want to, do you want to talk about app ops.

  • GABE COHEN: Also, thank you for the feedback

  • on the simplification.

  • Actually you ask for personal anecdotes or experience.

  • I think I'm similar to many users in that there's

  • a service I want.

  • And there's a certain number of things

  • I'm willing to bear to get it.

  • And sometimes I just want that service and that's

  • kind of the end of the conversation.

  • And for users who may be looking for more commodity experience,

  • I think the difference in permissions between apps

  • will actually make a difference in what they choose.

  • We hope the new UI makes it clear

  • what those differences are between apps.

  • And then anecdotally, what I've heard from friends and family

  • after we did the roll out, they're like, what is this?

  • Is that generally they're noticing them more.

  • I think our goal is to give a more gestalt impression, using

  • iconography and things like that.

  • And that's having an effect.

  • People are like, wow, this application can do this stuff.

  • Actually it could always do that stuff,

  • you couldn't tell because it was buried

  • in a mess of information.

  • We really uplifted the signal there.

  • And I guess for your question about context and run time.

  • I think we would all agree that context

  • helps users make decisions.

  • We just haven't come up with the right way

  • to incorporate that into the experience yet.

  • But like Jhilmil said, we're still thinking about this.

  • I think we have a long way to go still.

  • ADAM POWELL: And just to your point about your experience

  • as a developer, I think that's a great example of the experience

  • that we don't want.

  • And users are our developers as engineers on the platform.

  • So I think that as we continue thinking about this problem,

  • we're really going to try and find

  • where that balance is between user's needs and developer's

  • needs and make sure that everybody can kind of come

  • to some agreements.

  • AUDIENCE: Thanks guys.

  • RETO MEIER: So another question from online.

  • Asks, are there any plans to improve the Android activity

  • life cycle stack.

  • In particular making it less complex for developers

  • to deal with.

  • DIANNE HACKBORN: Well, less complex.

  • Well since this question did not say anything

  • about exactly what was wrong, I'm going to make that up.

  • [LAUGHTER]

  • So one perspective on this is that Android

  • took a quite different approach from a traditional operating

  • system to what an application is,

  • in that normally an operating system in an application

  • is basically a main.

  • And the platform just says, OK, the user

  • wants to run this application main go.

  • And at that point, the application

  • is all in control of what's going on inside of it.

  • And the platform doesn't really have any control over it.

  • So when we did Android, one of the basic things

  • we wanted to do is, we say we don't

  • want to have just a main entry point.

  • Because we want to have a lot more interesting

  • interactions across applications.

  • And so we have this activity component model.

  • This activity is services, receivers,

  • and stuff that make up all the entry

  • points into the application.

  • So once you do that, you kind of can't

  • have just this main black box application that is just

  • this box, you make it run and it does its thing.

  • Because the operating system actually

  • needs to have a lot more interaction

  • with the application about, oh, it's made this activity.

  • But now someone wants to share.

  • And so now we need to make another activity.

  • And we have to tell the application to do that.

  • And the application has to always be in a state

  • that it can do that.

  • Because it can't know when this is going to happen.

  • So that's where a lot of that complexity comes in.

  • And it's really, I think, about-- it's

  • this change from the app developer being

  • in control of its box to needing to do

  • some coordination with the platform.

  • And it may be some complexity.

  • I think there's it's maybe more learning curve.

  • I really think that once you get through

  • that, there's a lot of advantages to us,

  • certainly for developing the platform,

  • it's given us a lot of opportunities

  • to do new features in the platform

  • with existing applications and ways we never

  • could have without this.

  • And one example in L that I love is

  • that we introduced this whole recents

  • with this document oriented recents

  • that applications have multiple recent entries.

  • And if you run the developer preview, you're going to see,

  • we're actually doing this to existing applications.

  • So if you do a share, and you go through the standard share

  • dialogue, when you end up in the share target,

  • this becomes another entry on recents.

  • And now you can switch back and forth

  • between the original application and the thing

  • you're sharing to.

  • And we can do this because we made this break

  • between the application being this black box

  • and the something that the platform coordinates with more.

  • So, if that's the kind of complexity

  • you're talking about, I think that, yes,

  • there is a learning curve on it.

  • It's a little more complex, but I think it actually gives us

  • a lot of benefit going forward.

  • DAVE BURKE: I don't know if you guys just noticed that.

  • I see this about every month where Dianne goes, yeah,

  • we designed this thing four years ago

  • because we knew that tomorrow we're

  • going to want to work this way.

  • So she's this always happens.

  • Great.

  • RETO MEIER: Thanks, Dianne.

  • From the front of the room.

  • AUDIENCE: So I was wondering if you guys, at any point,

  • consider the support, the official support,

  • of the Scala programming language.

  • I'm asking this question, especially,

  • I know that we also that Apple already

  • has Swift after four years of work.

  • And I think that Swift does all those things for us

  • as developers that we can't do in Java.

  • And with the Android SDK.

  • So my question was, have you ever thought about it,

  • before the release of Swift?

  • Have you thought about it after that?

  • And is there any plan?

  • DAVE BURKE: Well, so I like Cocoa,

  • but Objective-C is based on C which is 40 years old.

  • So I think Apple sort of had to update it a bit.

  • I don't know.

  • Scala, I don't know.

  • Anyone want to take that?

  • DIANNE HACKBORN: No.

  • [LAUGHTER[

  • Seriously, Java is the programming language

  • for Android, you know, I don't really

  • think there's a lot benefit to-- The entire framework is built

  • around the Java programming language.

  • And I don't think there's much benefit for us

  • to try to support another whole other different language.

  • AUDIENCE: What about Swift?

  • DIANNE HACKBORN: I'll think about it.

  • DAVE BURKE: It's not optional semicolons.

  • DIANNE HACKBORN: You have the NDK.

  • So if you want to throw something in there.

  • But the NDK, it doesn't have access to the framework.

  • Right?

  • And that's kind of the challenge is

  • if you want to do a different language,

  • if you want to have it as a first class language,

  • equivalent to the current framework,

  • you've got to have either a whole new framework

  • or some bindings to it, which is going

  • to make it a really bad experience

  • because it's going to be Java in this other language.

  • AUDIENCE: I'm in a country that always

  • to work with Scala because Scala is compared to the JVM, right?

  • So it cannot run on Android.

  • So there can't be ways to do that, to work with Scala,

  • but it's using third-parties libraries.

  • So you have classes that were made by people to word the Java

  • classes but then it becomes tricky to integrate that

  • cleanly with that Android Studio that the [INAUDIBLE] quickly.

  • So I'm not sure it's as complicated as creating

  • a whole new language like Apple did, but I think, I don't know,

  • my question was just if you guys were considering and uh--

  • XAVIER DUCROHET: I think from the tool perspective, probably

  • later this year, or early next year,

  • there are some changes going on inside Grata

  • right now that will make things easier to you

  • to just have a module that's originally written in Scala

  • and then complied down to byte code

  • and then we can just text that and package

  • that with your application.

  • But it's not going to help you access like the activity API

  • through Scala code.

  • Right?

  • It would be if you have some code that your Business Logic

  • or whatever that you want to write in Scala because it's

  • easier for you, you should be able to do that.

  • Because, as you said, it's compatible in just

  • regular byte code and then just texting it.

  • But that's very different from saying

  • you can could code Android in Java

  • where you have access to all the framework API.

  • AUDIENCE: Thank you.

  • RETO MEIER: Thanks From the back of the room.

  • AUDIENCE: Hi.

  • Yeah.

  • I was wondering some of the newer features

  • in Android L, for example, like the notifications on the home

  • screen.

  • How much control will the user have over that?

  • And I mean, I went to the What's New In Android session earlier

  • and they talked about how, as the app developer

  • I will have the option of setting privacy levels.

  • But let's imagine for a second, that I

  • don't think that a third party developer knows

  • what I think is appropriate for displaying on my home screen.

  • Will I be able to, say, turn those off entirely?

  • GABE COHEN: Yes.

  • AUDIENCE: Oh, and just my two cents,

  • I think the new app ops of the Play Store permissions

  • are kind of confusing, actually, and they kind of

  • obfuscate a lot of things that I don't think

  • should be obfuscated.

  • [APPLAUSE]

  • RETO MEIER: Thank you for that feedback and to Chet

  • for not explaining the notification things well enough

  • in the earlier session.

  • Front of the room.

  • AUDIENCE: Hey.

  • So Kit Kat did an exceptional job of making Android svelte,

  • I guess.

  • And with L's new focus on lush animation and 3-D rendered

  • shadows and everything that's beautiful,

  • I was wondering how like emerging market

  • devices and older devices will fare with it?

  • Yeah.

  • ADAM POWELL: So when some of the engineers who

  • are working on some of the flashier features

  • that you've been seeing in here first started,

  • this was something that we thought was really important.

  • We didn't want to make a move like this in KitKat,

  • only to just kind of toss it out as soon as we found

  • some new, flashy effects we wanted to implement.

  • So they'd actually found the absolute oldest devices

  • they could, sitting around in a desk

  • that we still had drivers for.

  • And they actually started on those devices

  • to implement these effects.

  • So this is the sort of thing where performance on low end

  • devices is something that was really

  • intrinsic to the initial design of the implementation.

  • So there's definitely a few cases, a bunch of you're

  • going to get the L preview and go run some of it.

  • You'll probably run into some cases where you say, oh, wait,

  • this is a little bit slower than I thought.

  • We know about them already.

  • We're working on them.

  • Many of them actually have already

  • been addressed internally as we've continued along this.

  • So performance is something that we think is really important.

  • We can't really accomplish the goal of material design

  • if everything is just janking across the screen

  • the whole time.

  • DAVE BURKE: Yeah.

  • I'd just add that we still literally

  • have a weekly meeting on Svelte, so kind

  • of monitoring the memory.

  • We don't want to go backward.

  • And then Art, the runtime is actually

  • more memory efficient than Dalvik.

  • Well we have different types of garbage collectors

  • but there's a moving collector that's

  • used when your app goes in the background.

  • It's slower.

  • So you don't want to do it in the foreground.

  • But it will save like hundreds of kilobytes easily.

  • So it's helping us too.

  • AUDIENCE: Thank you.

  • Related question.

  • We had a project about a Svelte folder.

  • What comes first, the name or the idea?

  • DAVE BURKE: Genuis.

  • The idea.

  • ADAM POWELL: There was that one where you just

  • had to come up with a project for the name though.

  • DAVE BURKE: Project Project.

  • [LAUGHTER]

  • RETO MEIER: From the back of the room.

  • AUDIENCE: I have a question about Google Play services.

  • We want to use services like Google Analytics, Drive, AdMob,

  • across all Android devices including

  • those without Google Play.

  • These services used to be individual jars.

  • But now are part of Google Play services.

  • How do you propose we use these services across all Android

  • devices?

  • [APPLAUSE]

  • GABE COHEN: Did you ask this question in the Google Play

  • Services rocks?

  • AUDIENCE: I didn't but someone else did.

  • GABE COHEN: Someone else did.

  • OK.

  • I heard the same question.

  • I'm afraid I don't have much to add to the answer.

  • So all of us here work in the compatible device ecosystem

  • devices with Google Play.

  • So our primary concern is how this platform

  • is expressed on those devices.

  • We actually don't really have any opinion

  • on what other organizations in Google

  • do with devices outside of our ecosystem.

  • So it's kind of a question, I think, for somebody

  • from the analytics and the AdMob team.

  • I don't think I can answer that.

  • Sorry.

  • RETO MEIER: From the front of the room.

  • AUDIENCE: Hi.

  • Ever since Cupcake, or versions before that.

  • I'm not that old anyway.

  • I've been using BroadcastReceiver

  • to do fun things with getting SMS messages.

  • But these days everyone uses Hangouts, which is awesome.

  • But should I just give up on trying

  • to have an application interact with Hangout's messages

  • or-- Could someone comment on what

  • I should do in that regard?

  • DIANNE HACKBORN: I think if you're

  • talking about what happened in KitKat with the change in how

  • the messaging is, so you have a preferred messaging

  • application?

  • AUDIENCE: Not so much.

  • More on just a sense of like the fact

  • that Hangout's messages don't trigger an SMS broadcast out

  • to other applications.

  • DIANNE HACKBORN: People are not using SMS.

  • Yeah if they're not using SMS then

  • the platform won't know about it and--

  • AUDIENCE: OK With Hangout, people,

  • apps can't respond to messages as they come in

  • through the API?

  • RETO MEIER: I think that's unfortunately

  • more of a question for someone on the Hangout team

  • rather than Android framework team.

  • So,

  • ADAM POWELL: From the perspective

  • of the framework though, this is the sort of thing

  • where, if an application was implementing

  • messaging that moves over its own protocols

  • over the internet, then that application

  • would be totally free to publish their own broadcast if they so

  • chose.

  • AUDIENCE: OK.

  • Thanks.

  • RETO MEIER: From the back of the room.

  • AUDIENCE: Hi.

  • So I wanted to ask you guys, what's the status,

  • and if you do, for the Wi-Fi peer to peer tools for Android?

  • Because as a developer that has worked with them,

  • I know that the technology has a great potential but right now

  • these tools seem very incomplete and very buggy.

  • So I wanted to know if there are plans to replicate or continue

  • developing whatever.

  • DAVE BURKE: Oh, Yeah they are a little bit but buggy.

  • I agree.

  • We're actually scaling that team so we've

  • been hiring lots of people.

  • Wireless in general.

  • Actually so like trying to really invest a lot

  • more in Bluetooth and Wi-Fi and cellular and Volke

  • and all of stuff.

  • So no plan to duplicate peer to peer Wi-Fi.

  • There's some new Wi-Fi features coming.

  • I mean you can see some of the standards in Wi-Fi Alliance,

  • like Network Neighborhood, things like that.

  • I'm trying to think what else we're doing in that space.

  • We're actually doing a lot of refactoring internally

  • on Wi-Fi.

  • So previously in releases to Supplicant,

  • the WPA Supplicant had a lot of the logic.

  • We've actually sort of taken the logic

  • and moved it up and rewritten the parts of the Wi-Fi state

  • machine and then we've introduced a new Wi-Fi

  • How to abstract out Wi-Fi features.

  • Like, for example, Devices Scan for Locations.

  • Today they scan all the channels now with the new Wi-Fi

  • How, we can selectively scan.

  • Anyway, the point I'm making is that we're

  • investing in that area and so we're trying to improve it.

  • AUDIENCE: OK.

  • RETO MEIER: Thanks, Dave.

  • A question here from online.

  • Which is the most important thing

  • to focus on when you're first creating an app.

  • Should it be the engineering or the design?

  • JHILMIL JAIN: You're thinking about this the wrong way.

  • You should really be focusing on the user.

  • RETO MEIER: Nice.

  • I see what you did there.

  • DAVE BURKE: User design.

  • JHILMIL JAIN: Sure.

  • RETO MEIER: Moving on.

  • Someone from the back of the room.

  • JHILMIL JAIN: I think like even for a number of products

  • that we talked about today, where automotive, TV,

  • it didn't really start just with the design or whatever.

  • Coding really started with really looking

  • at some fundamental issues that are currently the wrong,

  • our products are not meeting when users are concerned

  • and really trying to be really clever about how can we

  • build a product that really solves those issues for users.

  • AUDIENCE: Thank you so much for thinking so much about design

  • with the new release.

  • It's very exciting.

  • I think that I probably speak for a number of people

  • though when we go and talk to our design teams

  • about the new looks and the new ways of doing things.

  • They will pull out a Galaxy S4 and they'll

  • show us the text messaging app and they'll say,

  • you think Android has a consistent design language.

  • And yet this is my text messaging app.

  • We're going to design it the way we want to design it.

  • What steps are you taking or thinking

  • of taking to address the kind of crazy design ecosystem that

  • exists in the Android world?

  • [APPLAUSE]

  • RACHEL GARB: One step that we can take that will help this,

  • I think, is to do a better job with our own applications.

  • Following our own design guidelines.

  • [APPLAUSE]

  • That's something that we've been working on for a while.

  • You know we're a big company.

  • We've got close to 100 teams that we're

  • working with that are developing Android

  • apps all across the company.

  • And they're all on different release schedules.

  • So it's a bit of a challenge.

  • Plus as you can see, we're also evolving our design guidelines

  • too.

  • And that happens usually internally first

  • and then externally.

  • But one of things about that strategy of starting internally

  • is it means that by the time the guidelines are rolled out

  • you have some concrete examples to work with,

  • which we know is really important.

  • RETO MEIER: Thank you.

  • In the front.

  • AUDIENCE: First thank you all for all your hard work

  • building a platform that so many of us

  • can create a career around.

  • My question is as a developer, I personally experience

  • a lot of pain points and hear about a lot

  • of pain around testing, particularly unit testing

  • in Android.

  • I feel like solutions like Robilectric

  • feel more like a bandaid than a proper solution

  • for the problem.

  • Can you speak to maybe anything in the L preview

  • or just a general idea around testing, particularly unit

  • testing in Android.

  • [APPLAUSE]

  • XAVIER DUCROHET: So first, we do want

  • to help Robilectric to integrate better

  • with our current set of tools.

  • We know it's definitely a bandaid,

  • that it's not a perfect solution.

  • But like a lot of teams currently rely on it,

  • so we want to improve the solutions there so for people

  • who want to use it, they can actually use it.

  • For the rest, anything that doesn't run on an Android

  • device is going to be a bandaid.

  • I mean, if you have some code that's purely non-Android

  • and can run on the VM, then you should

  • be able to create a Java module and test your logic there.

  • For the thing that access the Android API,

  • you should run it on a device.

  • Now the problem is that it is slow to deploy

  • It is slow to build.

  • And to run the test.

  • On the build and deploy, on the build, at least part,

  • we are trying to improve the situation

  • to build faster with greater [INAUDIBLE].

  • There's some work going on in there.

  • That will get better some time.

  • The deploy part is more complicated.

  • And it's something that we want to tackle,

  • but it's like we need to work with the runtime

  • to be able to do that.

  • So it does nothing in L that would help with that.

  • But in your existing Android API, there is no other way.

  • You need to run on a device to make sure that it is actually

  • reliable, as far as the test results.

  • RETO MEIER: Thank you.

  • From the back of the room.

  • AUDIENCE: Like many apps displays,

  • text and images for which we employ text views, and image

  • views, and layouts, we were not aware of a general purpose way

  • to wrap text around images.

  • And we're not satisfied with third party libraries

  • that we researched at the time.

  • So about a year ago, we developed our own overriding

  • canvas.

  • It was complicated.

  • It was difficult to test.

  • And lately we're revisiting the code

  • and wishing that our app didn't have to do all this work.

  • Is the Android team looking at this problem?

  • ADAM POWELL: So the short answer is yes.

  • I think that it's something that we've definitely

  • seen as a pain point in a number of apps that

  • have come to us asking questions about how to do exactly

  • the sorts of things that you've described.

  • And for all the reasons that I'm sure that you've already

  • run into you've realized that it's

  • a fairly complicated problem space.

  • Now a lot of that just comes from the way

  • that text views interaction with canvas and the way

  • that it deals with text and fonts and so on and so forth

  • is complicated, to say the least.

  • But it's also very tightly coupled right now.

  • And in the future we'd really like to work on that

  • and see if there's anything that we can do to sort of tease

  • that apart into some modules that can be used a little bit

  • more naturally to accomplish the types of things

  • you're talking about.

  • AUDIENCE: Thanks.

  • RETO MEIER: One of questions online.

  • It's colorfully asked, so I'll try to rephrase it slightly.

  • Dan is wondering, do you see a possibility

  • of having the ability to do a full build and test environment

  • within the Chrome OS 400?

  • [APPLAUSE]

  • DAVE BURKE: So I don't know.

  • I think that means an ID within Chromo S.

  • FICUS KIRKPATRICK: The ethos of Chrome OS

  • is that the ID would be like in the cloud

  • somewhere, right I don't know if there's anything that

  • makes sense to say we've made an ID for Chrome OS

  • that they couldn't use from any browser.

  • RETO MEIER: Question to the cloud team.

  • We saw a little stuff from them on like IDEs for cloud apps.

  • I don't see building Android apps

  • in the cloud happening soon.

  • XAVIER DUCROHET: I mean, you also

  • have to look at deployment.

  • I would guess that a lot of developers

  • right now mostly use devices to test.

  • If you're bringing in the cloud, and your application is not

  • a small, Hello World, application

  • you're going to have to be download

  • that APK on your local device every time you build.

  • And if your app is 10 megs and you

  • don't have a crazy connection, that's

  • just not going to work at all.

  • So I don't see that happening.

  • The current state of web ID is just the beginning of it.

  • If you compare that to a really good Java ID like IntelliJ

  • it just doesn't compare.

  • So I think that test of IDs are still the way to go for now.

  • RETO MEIER: Thank you.

  • Let's see.

  • From the front.

  • AUDIENCE: Like most of the people in this room,

  • I'm really excited to see that there's an L preview

  • release this time around.

  • And by the fact that it's coming out as factory images only,

  • it's pretty clear that it's only meant

  • for developers and extreme enthusiasts, who

  • want to get a real jump on it.

  • Is this a pattern that we can expect

  • to see in the future, more preview releases?

  • Because I've seen a lot of complaints from more normal,

  • average users who are running into problems

  • with the early versions of each major release.

  • DAVE BURKE: Yeah I think it's funny

  • that this idea everybody claims to be their idea

  • and pushed for it.

  • So I'm going to claim was my idea and pushed for it.

  • But it wasn't as everyone's idea.

  • I think one of the observations I had was just

  • that the platforms, it's getting so big.

  • Right?

  • That the surface area is so large.

  • We do, we've got a great QA team.

  • And we do, we test the top 1,000 apps and all this good stuff.

  • Got a CTS tasks but this is the long tale of apps.

  • You just can't test everything.

  • And so what ends up happening is you would make a release

  • and you break something.

  • And it's just, I remember triaging the bugs post

  • JBMR2 for KitKat.

  • And it was just embarrassing.

  • It was like, you should've caught this.

  • It was clear to me that we had to move to this model, where

  • we put out the developer preview, where people can test

  • their apps, submit bugs, and when we fix things.

  • So, I think, obviously I can't make promises

  • but I think the reason we've done

  • it is a very rational reason, and entropy, increases

  • not decreases.

  • So I think we shall continue doing it most likely, possibly

  • not promising, but yes.

  • [LAUGHTER]

  • AUDIENCE: And to that I say, thank you so much.

  • Thank you.

  • RETO MEIER: What do you guys think?

  • Do you like having the preview releases?

  • DAVE BURKE: And the other thing I hope to see

  • is actually to get OEM as a jump in building devices.

  • Because once we make the preview available

  • we don't have to be so secretive.

  • We can share our builds.

  • We can share more source.

  • We can look at vendors and stuff.

  • So my hope is that when L comes out officially in the fall,

  • that a bunch of devices pass follow.

  • So we'll see how that pounds out this year.

  • XAVIER DUCROHET: I just to point out quickly

  • that there will be a [INAUDIBLE] system

  • images of available as well.

  • So if you can use that if needed.

  • RETO MEIER: From the back of the room.

  • AUDIENCE: Hi.

  • I really like the new Grata Build System.

  • It's really awesome.

  • You can do really awesome things with it.

  • But I'm not really an intelligent user nor will

  • I see myself being one in the future.

  • Is Eclipse going to become the redheaded stepchild of Android

  • or is there going to be support for it continuing forward?

  • XAVIER DUCROHET: Did you see the time, Reto?

  • [LAUGHTER]

  • RETO MEIER: Thanks everyone.

  • We don't even have time to open a Java form on Eclipse.

  • [LAUGHTER AND GROANS]

  • AUDIENCE: Yeah, but you don't have time

  • to build an Android app in IntelliJ in this time.

  • AUDIENCE: No, I get it.

  • DAVE BURKE: Think it's tricky.

  • An ideal world will support all IDs.

  • But we sort of have to pick one to double down on.

  • And I think we're starting to pull down on IntelliJ.

  • So.

  • Yeah.

  • XAVIER DUCROHET: There's actually

  • some work going on with Grata on Eclipse

  • to try to improve to the integration there.

  • I mean separate from Android.

  • Also there's some work happening in Grata

  • itself to improve their internal model

  • so that's our model can be closer

  • or more compatible with theirs.

  • And so if both of those things happen,

  • then you could potentially at least,

  • open and Android Grata base project inside Eclipse

  • and do at least basic job editing

  • with all of the dependencies working

  • and possibly just build out.

  • You wouldn't have any Android specific feature tied to Grata

  • but it might actually work.

  • But as they've said, it would be nice to support every ID,

  • but right now we're focusing on Studio.

  • AUDIENCE: Thank you for everything you do.

  • RETO MEIER: Thanks.

  • We are completely out of time.

  • So thank you, everyone for your great questions.

  • [APPLAUSE]

  • And thank everyone on stage for joining us and answering

  • everything so open.

  • So thank you.

RETO MEIER: All right.

字幕與單字

單字即點即查 點擊單字可以查詢單字解釋

B1 中級

Google I/O 2014 - Android爐邊哈拉 (Google I/O 2014 - Android fireside chat)

  • 122 3
    Hhart Budha 發佈於 2021 年 01 月 14 日
影片單字