WEBVTT - Android Dumps Desserts

0:00:04.240 --> 0:00:07.240
<v Speaker 1>Welcome to tech Stuff, a production of I Heart Radios,

0:00:07.320 --> 0:00:13.920
<v Speaker 1>How Stuff Works. Hey there, and welcome to tech Stuff.

0:00:13.960 --> 0:00:16.960
<v Speaker 1>I'm your host, Jonathan Strickland. I'm an executive producer with

0:00:17.000 --> 0:00:18.840
<v Speaker 1>I Heart Radio and How Stuff Works and Love of

0:00:18.840 --> 0:00:22.239
<v Speaker 1>all Things Tech. And in our last episode, I talked

0:00:22.239 --> 0:00:25.920
<v Speaker 1>about the creation of Google Android leading up to the

0:00:25.960 --> 0:00:30.040
<v Speaker 1>release of ice Cream Sandwich, also known as Android version

0:00:30.120 --> 0:00:32.680
<v Speaker 1>four point Oh. But before I go any further with

0:00:32.760 --> 0:00:35.400
<v Speaker 1>that story, I thought I might take some time to

0:00:35.440 --> 0:00:39.480
<v Speaker 1>describe what an operating system actually does from a high level,

0:00:39.479 --> 0:00:42.080
<v Speaker 1>since I kind of skipped over that in the last episode.

0:00:42.720 --> 0:00:44.280
<v Speaker 1>But in my defense, I really wanted to get to

0:00:44.320 --> 0:00:48.680
<v Speaker 1>the actual Android stuff, all right, So let's go from

0:00:48.880 --> 0:00:52.559
<v Speaker 1>the most basic explanations here and work our way up

0:00:52.600 --> 0:00:56.680
<v Speaker 1>from there. A computer is essentially a machine that, through

0:00:56.960 --> 0:01:01.160
<v Speaker 1>processing tons of complex calculations in a short amount of time,

0:01:01.440 --> 0:01:05.080
<v Speaker 1>can produce all sorts of different end results. Some of

0:01:05.080 --> 0:01:08.800
<v Speaker 1>them can be pretty intuitive, like calculating a formula that's

0:01:08.800 --> 0:01:13.560
<v Speaker 1>embedded in a spreadsheet program. That's very clearly a mathematical process.

0:01:13.600 --> 0:01:16.720
<v Speaker 1>It's easy to understand. Some are a little less intuitive,

0:01:17.200 --> 0:01:20.080
<v Speaker 1>like allowing you to make a video call to someone

0:01:20.120 --> 0:01:22.959
<v Speaker 1>who's on the other side of the world. But ultimately,

0:01:23.000 --> 0:01:26.520
<v Speaker 1>a computer is taking information in the forms of zeros

0:01:26.520 --> 0:01:30.000
<v Speaker 1>and ones, and it is performing various operations on that

0:01:30.080 --> 0:01:32.480
<v Speaker 1>data to get results, which are then fed back to

0:01:32.560 --> 0:01:35.800
<v Speaker 1>you in some appropriate way, depending upon whatever it is

0:01:35.800 --> 0:01:37.960
<v Speaker 1>you're trying to do, but you know you'll be able

0:01:38.000 --> 0:01:39.480
<v Speaker 1>to see it in a way that makes sense to you,

0:01:39.560 --> 0:01:42.280
<v Speaker 1>as opposed to just a different string of zeros and ones,

0:01:42.319 --> 0:01:46.400
<v Speaker 1>which would be useless to us. We run programs on

0:01:46.440 --> 0:01:49.440
<v Speaker 1>computers to get these results. So in the examples I've

0:01:49.440 --> 0:01:52.800
<v Speaker 1>already mentioned, you would have some sort of spreadsheet program

0:01:52.800 --> 0:01:57.400
<v Speaker 1>like Microsoft Excel, or some sort of video calling program

0:01:57.440 --> 0:02:01.160
<v Speaker 1>like Skype. Microsoft has nothing to do with this episode,

0:02:01.160 --> 0:02:04.200
<v Speaker 1>by the way, Obviously I'm talking about androids, so but

0:02:04.280 --> 0:02:06.840
<v Speaker 1>that's just to give you an example of programs that

0:02:06.880 --> 0:02:10.960
<v Speaker 1>exist on computers. These programs need to interface with the

0:02:11.040 --> 0:02:16.080
<v Speaker 1>hardware that's actually doing all of those calculations and gathering

0:02:16.200 --> 0:02:20.480
<v Speaker 1>that information. Now, in the old old days of computers,

0:02:20.840 --> 0:02:25.120
<v Speaker 1>programmers would build their programs into the machines themselves. They

0:02:25.120 --> 0:02:28.600
<v Speaker 1>would program on what we would call bare metal, and

0:02:28.760 --> 0:02:32.600
<v Speaker 1>computers would only do very specific tasks. By the time

0:02:32.639 --> 0:02:36.520
<v Speaker 1>we got to general programmable computers, we could run different

0:02:36.520 --> 0:02:40.480
<v Speaker 1>programs on the same machines. Programmers would write these four

0:02:40.520 --> 0:02:44.800
<v Speaker 1>specific computers, and the program instructions were essentially telling the

0:02:44.800 --> 0:02:47.600
<v Speaker 1>hardware what to do. And this goes all the way

0:02:47.639 --> 0:02:51.800
<v Speaker 1>from the era where you would actually physically unplug parts

0:02:52.080 --> 0:02:54.440
<v Speaker 1>of the computer system and plug it into different parts,

0:02:55.000 --> 0:02:57.959
<v Speaker 1>up to where you might program it in a series

0:02:58.000 --> 0:03:00.600
<v Speaker 1>of punch cards that would be read by computer, and

0:03:00.639 --> 0:03:03.760
<v Speaker 1>then the computer would follow whatever the instructions were that

0:03:03.800 --> 0:03:07.480
<v Speaker 1>the punch cards indicated. These are all various examples of

0:03:07.560 --> 0:03:12.120
<v Speaker 1>programs and computers, but as computers and programs evolved, it

0:03:12.200 --> 0:03:15.640
<v Speaker 1>became necessary to create some sort of liaison between the

0:03:15.680 --> 0:03:20.200
<v Speaker 1>bare metal of the hardware underneath and the programs that

0:03:20.240 --> 0:03:22.720
<v Speaker 1>would run on top of it. And the operating system

0:03:22.800 --> 0:03:26.359
<v Speaker 1>is kind of like a foreman or a supervisor. It's

0:03:26.360 --> 0:03:30.040
<v Speaker 1>in charge of managing stuff like computer memory and the

0:03:30.160 --> 0:03:33.600
<v Speaker 1>order of operations, and with modern computer devices that also

0:03:33.680 --> 0:03:37.400
<v Speaker 1>handles stuff like multitasking, making sure each instance of a

0:03:37.480 --> 0:03:40.600
<v Speaker 1>program has the resources it needs to run, or in

0:03:40.640 --> 0:03:43.760
<v Speaker 1>some cases even throttling those resources that are going to

0:03:43.800 --> 0:03:46.440
<v Speaker 1>a program that might be in the background while another

0:03:46.440 --> 0:03:50.240
<v Speaker 1>program is taking center stage. It's sort of dynamically managing

0:03:50.280 --> 0:03:53.720
<v Speaker 1>all these different resources. Most of the operating systems we

0:03:53.840 --> 0:03:58.600
<v Speaker 1>encounter today incorporate a graphical user interface or gooey, in

0:03:58.640 --> 0:04:03.040
<v Speaker 1>which little icon represent computer processes. Now, in the old

0:04:03.120 --> 0:04:06.720
<v Speaker 1>days and with some modern line command systems, you would

0:04:06.720 --> 0:04:10.080
<v Speaker 1>actually type out a command to start a program dot

0:04:10.200 --> 0:04:13.120
<v Speaker 1>e x C file. So, for example, I remember using

0:04:13.200 --> 0:04:15.920
<v Speaker 1>our old two eight six PC back when I was

0:04:15.960 --> 0:04:18.680
<v Speaker 1>a kid. We had MS DOSS running on it. That

0:04:18.760 --> 0:04:21.559
<v Speaker 1>was a line command operating system, and you would type

0:04:21.560 --> 0:04:24.800
<v Speaker 1>in commands to go to a particular file directory in

0:04:24.880 --> 0:04:29.400
<v Speaker 1>order to run a program like say Wolfenstein. The gooey

0:04:29.400 --> 0:04:32.800
<v Speaker 1>for home PCs became popular after the introduction of the

0:04:32.839 --> 0:04:37.720
<v Speaker 1>Macintosh computer from Apple and the Windows operating system from

0:04:37.720 --> 0:04:42.560
<v Speaker 1>Microsoft the following year, though really Windows truly took off

0:04:42.600 --> 0:04:46.760
<v Speaker 1>after Windows three point one. Now for pretty obvious reasons,

0:04:47.240 --> 0:04:52.640
<v Speaker 1>the operating systems we find on smartphones feature gooey's, Apple's iOS,

0:04:52.720 --> 0:04:56.640
<v Speaker 1>Android and other smartphone OS flavors. All of us interface

0:04:56.680 --> 0:04:59.680
<v Speaker 1>with programs through touch screen controls, or, as was the

0:04:59.720 --> 0:05:03.440
<v Speaker 1>case with older Android phones, with physical keyboards and maybe

0:05:03.440 --> 0:05:06.160
<v Speaker 1>even a track ball controller. The old g one had

0:05:06.200 --> 0:05:12.280
<v Speaker 1>one of those those icons on the screen represent processes, programs,

0:05:12.360 --> 0:05:17.360
<v Speaker 1>initiation programs, executable files. So selecting one of these icons

0:05:17.520 --> 0:05:20.960
<v Speaker 1>initiates the sequence to start a program sending instructions to

0:05:20.960 --> 0:05:23.960
<v Speaker 1>the operating system underneath to manage the resources that are

0:05:23.960 --> 0:05:28.880
<v Speaker 1>required to make the program go. Computer programmers and engineers

0:05:29.440 --> 0:05:35.800
<v Speaker 1>describe operating systems as existing as a stack of various functions.

0:05:36.080 --> 0:05:39.360
<v Speaker 1>Now these are not physical layers or anything like that.

0:05:39.960 --> 0:05:42.599
<v Speaker 1>It's more of a way for us to think about

0:05:42.680 --> 0:05:46.440
<v Speaker 1>the different functions the operating system must perform and grouping

0:05:46.480 --> 0:05:50.320
<v Speaker 1>those functions together in a way that makes sense. So

0:05:50.360 --> 0:05:52.440
<v Speaker 1>in general, you can think of if you think of

0:05:52.480 --> 0:05:54.719
<v Speaker 1>a stack like a vertical stack, almost like a stack

0:05:54.760 --> 0:05:58.360
<v Speaker 1>of wooden blocks. At the very bottom or the foundation

0:05:58.600 --> 0:06:02.600
<v Speaker 1>of the stack, the part that's against the bare metal

0:06:03.000 --> 0:06:06.440
<v Speaker 1>or the hardware of the device itself would be the

0:06:06.600 --> 0:06:11.839
<v Speaker 1>kernel that is the core of the operating system. These

0:06:11.880 --> 0:06:15.600
<v Speaker 1>are the functions that are are most directly interfacing with

0:06:15.720 --> 0:06:19.159
<v Speaker 1>the hardware stuff like processors and circuits and all the

0:06:19.160 --> 0:06:22.520
<v Speaker 1>stuff that's doing all the number crunching androids. Foundation is

0:06:22.560 --> 0:06:26.400
<v Speaker 1>based specifically around the Linux kernel. So, as I said,

0:06:26.440 --> 0:06:28.560
<v Speaker 1>the kernel is the core of the operating system. It

0:06:28.600 --> 0:06:32.839
<v Speaker 1>has complete control over the hardware. Lenox is an open

0:06:32.920 --> 0:06:36.599
<v Speaker 1>source operating system, has a large community of developers and

0:06:36.680 --> 0:06:40.360
<v Speaker 1>programmers contributing to it. And because of this huge community,

0:06:40.720 --> 0:06:44.799
<v Speaker 1>things like security vulnerabilities and bugs are typically discovered pretty

0:06:44.880 --> 0:06:47.920
<v Speaker 1>quickly and they can be fixed pretty quickly too. Now

0:06:47.920 --> 0:06:52.400
<v Speaker 1>an Android that's just the kernel. Android itself is not Lennox.

0:06:52.920 --> 0:06:56.600
<v Speaker 1>So the next layer up from the Lenox kernel and

0:06:56.600 --> 0:07:02.120
<v Speaker 1>Android is called the hardware abstraction layer or how which

0:07:02.160 --> 0:07:05.719
<v Speaker 1>is an ominous at all. Sorry, I can't do that, Dave.

0:07:06.400 --> 0:07:10.640
<v Speaker 1>This layer provides a software environment through which the programs

0:07:10.720 --> 0:07:13.600
<v Speaker 1>higher up on the stack can interface to access the

0:07:13.600 --> 0:07:17.000
<v Speaker 1>components they need, such as let's say it's the handset speaker.

0:07:17.120 --> 0:07:21.280
<v Speaker 1>Let's say that it's a music program. Well it the

0:07:21.320 --> 0:07:25.720
<v Speaker 1>program would then send messages to the hardware abstraction layer

0:07:26.080 --> 0:07:27.960
<v Speaker 1>to say I need to get access to the speaker

0:07:28.360 --> 0:07:32.440
<v Speaker 1>and play this audio file through the speaker. So how

0:07:32.560 --> 0:07:36.600
<v Speaker 1>would kind of handle that and then relay the specific

0:07:37.000 --> 0:07:40.240
<v Speaker 1>requirements further down to the Linux kernel to get all

0:07:40.280 --> 0:07:43.679
<v Speaker 1>the way down to the speaker level. So other examples

0:07:43.720 --> 0:07:47.840
<v Speaker 1>would be the Bluetooth devices. You know, Bluetooth devices connect

0:07:47.840 --> 0:07:52.239
<v Speaker 1>to a phone via the Bluetooth transmitter. Well, the hardware

0:07:52.240 --> 0:07:56.120
<v Speaker 1>abstraction layer provides the resources needed for an app that

0:07:56.400 --> 0:07:59.960
<v Speaker 1>needs to have access to a Bluetooth transmitter to actually

0:08:00.080 --> 0:08:02.720
<v Speaker 1>get that access. So this way, developers don't have to

0:08:02.760 --> 0:08:06.840
<v Speaker 1>create stuff for specific handsets, but rather for any Android handset.

0:08:07.200 --> 0:08:10.800
<v Speaker 1>They don't have to worry if one Android phone is

0:08:10.840 --> 0:08:14.040
<v Speaker 1>built in a very different way to another Android phone.

0:08:14.520 --> 0:08:17.320
<v Speaker 1>Now two blocks share the next layer in the stack.

0:08:17.680 --> 0:08:21.240
<v Speaker 1>They are the Android run time block and the native

0:08:21.360 --> 0:08:26.800
<v Speaker 1>c C plus plus libraries. Okay, so the Android run

0:08:26.800 --> 0:08:30.920
<v Speaker 1>Time or a RT serves as a kind of envelope

0:08:31.240 --> 0:08:35.199
<v Speaker 1>for processes. Alright, think of like every program that you're

0:08:35.280 --> 0:08:37.600
<v Speaker 1>running on a phone, like you're actually running that program

0:08:37.600 --> 0:08:40.120
<v Speaker 1>on the phone. It exists in kind of a think

0:08:40.160 --> 0:08:43.760
<v Speaker 1>of it as like a box. It keeps each process separate.

0:08:43.840 --> 0:08:47.040
<v Speaker 1>So let's say that you've got your photo app running

0:08:47.400 --> 0:08:50.920
<v Speaker 1>and you're also listening to something on the I Heart

0:08:51.000 --> 0:08:55.880
<v Speaker 1>radio app, for example, shameless Plug. Let's say you're listening

0:08:55.880 --> 0:08:58.079
<v Speaker 1>to both of those, so you've got both processes running

0:08:58.120 --> 0:09:00.320
<v Speaker 1>at the same time. Well, you don't want them just

0:09:00.760 --> 0:09:05.160
<v Speaker 1>running on the phone with no division between them, because

0:09:05.200 --> 0:09:08.240
<v Speaker 1>if something were to happen to one of those processes,

0:09:08.559 --> 0:09:11.439
<v Speaker 1>it could affect the other one. Let's say that the

0:09:11.480 --> 0:09:15.480
<v Speaker 1>photo app has a failure for some reason, something goes

0:09:15.520 --> 0:09:17.960
<v Speaker 1>wrong and it freezes. Well, you don't want that to

0:09:18.040 --> 0:09:21.040
<v Speaker 1>affect the other apps running on your device. So the

0:09:21.080 --> 0:09:23.400
<v Speaker 1>best thing you could do is create what are called

0:09:23.520 --> 0:09:26.040
<v Speaker 1>virtual machines, which I've talked about quite a bit in

0:09:26.080 --> 0:09:32.240
<v Speaker 1>recent episodes. These virtual machines act as silos. They act

0:09:32.280 --> 0:09:38.360
<v Speaker 1>as as uh, separated and protected areas in which a

0:09:38.440 --> 0:09:41.840
<v Speaker 1>process can run without it affecting anything else, and each

0:09:41.880 --> 0:09:46.079
<v Speaker 1>of them will get the resources needed to run that process.

0:09:46.600 --> 0:09:49.719
<v Speaker 1>So again, the operating system has to look at the

0:09:49.800 --> 0:09:52.640
<v Speaker 1>requirements of each of those processes, the photo app and

0:09:52.760 --> 0:09:55.040
<v Speaker 1>the I Heart Radio app, and say, all right, well,

0:09:55.360 --> 0:09:58.040
<v Speaker 1>I need to dedicate this much memory and processing power

0:09:58.080 --> 0:10:00.760
<v Speaker 1>to run this one, and this much memory processing power

0:10:00.760 --> 0:10:03.360
<v Speaker 1>to run this other one, and that all that stuff

0:10:03.400 --> 0:10:06.280
<v Speaker 1>is happening in the background. We as users are completely

0:10:07.000 --> 0:10:10.160
<v Speaker 1>not you know, aware of this, unless something were to

0:10:10.200 --> 0:10:11.800
<v Speaker 1>go wrong, in which case we might say, oh, the

0:10:11.800 --> 0:10:14.080
<v Speaker 1>photo app crashed, but at least I'm still listening to

0:10:14.120 --> 0:10:17.839
<v Speaker 1>my music, so really you don't notice it happening. Now

0:10:17.840 --> 0:10:22.120
<v Speaker 1>I should add that this particular feature was really added

0:10:22.200 --> 0:10:26.400
<v Speaker 1>in starting with Android version five point oh also known

0:10:26.440 --> 0:10:29.880
<v Speaker 1>as Lollipop. So this is technically jumping ahead in our

0:10:29.920 --> 0:10:32.640
<v Speaker 1>story a little bit, but this is the part of

0:10:32.640 --> 0:10:35.840
<v Speaker 1>the stack that lets stuff run independently of one another. Now,

0:10:35.880 --> 0:10:40.959
<v Speaker 1>before Android run time, before that was the virtualization strategy

0:10:41.040 --> 0:10:43.880
<v Speaker 1>that Google was using, they did rely on a different

0:10:43.960 --> 0:10:49.440
<v Speaker 1>virtualization strategy with a process virtual machine software called dal

0:10:49.520 --> 0:10:52.959
<v Speaker 1>vic d A l v I K. That's what did

0:10:53.040 --> 0:10:55.480
<v Speaker 1>essentially the same sort of job as the Android run

0:10:55.520 --> 0:10:59.360
<v Speaker 1>time component up through Android version four point four, also

0:10:59.440 --> 0:11:02.800
<v Speaker 1>known as get cat. So Android did have this earlier,

0:11:03.800 --> 0:11:06.480
<v Speaker 1>but I figured it would be more and make more

0:11:06.480 --> 0:11:09.240
<v Speaker 1>sense to talk about Android runtime because that's what's currently

0:11:09.320 --> 0:11:13.959
<v Speaker 1>being used in Android operating system phones today. Now, as

0:11:14.000 --> 0:11:17.160
<v Speaker 1>for the libraries I mentioned earlier, In programming, a library

0:11:17.240 --> 0:11:20.520
<v Speaker 1>is a collection of pre compiled routines that programs can

0:11:20.600 --> 0:11:23.120
<v Speaker 1>take advantage of. So when you think of a program,

0:11:23.120 --> 0:11:26.280
<v Speaker 1>a program is really a series of instructions for a computer,

0:11:26.600 --> 0:11:29.199
<v Speaker 1>and some of those instructions are going to be common ones,

0:11:29.360 --> 0:11:32.520
<v Speaker 1>ones that you would use in lots of different types

0:11:32.559 --> 0:11:34.760
<v Speaker 1>of programs. So it doesn't make a whole lot of

0:11:34.760 --> 0:11:38.960
<v Speaker 1>sense to have to go back and re established that

0:11:39.040 --> 0:11:41.600
<v Speaker 1>path every single time you want to build a program.

0:11:41.640 --> 0:11:44.280
<v Speaker 1>It would be time consuming, it would be wasteful. So

0:11:44.400 --> 0:11:49.480
<v Speaker 1>libraries are these pre compiled routines that mean that you

0:11:49.480 --> 0:11:52.559
<v Speaker 1>you just plug those in for that part. And this

0:11:52.640 --> 0:11:55.840
<v Speaker 1>is a very, very granular approach. We'll get into a

0:11:55.880 --> 0:12:00.000
<v Speaker 1>slightly larger version of this in just a second. Library

0:12:00.120 --> 0:12:02.560
<v Speaker 1>is dramatically reduced the amount of work programmers have to

0:12:02.600 --> 0:12:05.720
<v Speaker 1>do to build out applications. So if a program needs

0:12:05.720 --> 0:12:08.559
<v Speaker 1>to access a particular process, a module in the library

0:12:08.640 --> 0:12:11.400
<v Speaker 1>can be plugged into the program as a kind of shortcut.

0:12:11.679 --> 0:12:14.800
<v Speaker 1>So it's an invaluable resource and pretty much all programming

0:12:14.920 --> 0:12:18.160
<v Speaker 1>environments take advantage of them. Now, next up in the

0:12:18.240 --> 0:12:21.720
<v Speaker 1>stack we have the Java a p I framework. This

0:12:21.760 --> 0:12:24.480
<v Speaker 1>includes all the basic components you need to build out apps.

0:12:24.720 --> 0:12:27.160
<v Speaker 1>So it's kind of like taking that concept I just

0:12:27.200 --> 0:12:29.760
<v Speaker 1>talked about with the library, you know, these these little

0:12:29.960 --> 0:12:33.920
<v Speaker 1>pre compiled routines and building on that. Now we're talking

0:12:33.920 --> 0:12:39.640
<v Speaker 1>about larger building blocks, not super teeny tiny ones, but

0:12:39.800 --> 0:12:43.760
<v Speaker 1>that can still be used to put together basic functions

0:12:43.800 --> 0:12:48.080
<v Speaker 1>of various applications and it's a huge help to developers.

0:12:48.679 --> 0:12:51.640
<v Speaker 1>The framework has the building blocks or puzzle pieces that

0:12:51.720 --> 0:12:54.679
<v Speaker 1>programmers can use to to build out those apps. And

0:12:54.720 --> 0:12:57.760
<v Speaker 1>this is the environment in which programmers actually operate. They

0:12:57.760 --> 0:13:00.520
<v Speaker 1>rely on the a p I, which stands for Application

0:13:00.559 --> 0:13:03.800
<v Speaker 1>Programming Interface in order to build out the apps, whether

0:13:03.840 --> 0:13:06.079
<v Speaker 1>it's a video editing app or a puzzle game or

0:13:06.120 --> 0:13:09.240
<v Speaker 1>whatever it might be. Now, the topmost layer of this

0:13:09.400 --> 0:13:12.880
<v Speaker 1>stack is what it tends to be that well, it

0:13:13.000 --> 0:13:16.240
<v Speaker 1>is the system apps themselves. So again, if you think

0:13:16.280 --> 0:13:18.719
<v Speaker 1>of that bottom layer of the stack as the foundation

0:13:19.080 --> 0:13:22.960
<v Speaker 1>that rests against the bare metal of the handset, this

0:13:23.120 --> 0:13:26.760
<v Speaker 1>topmost layer, you can think of, is the layer that

0:13:26.800 --> 0:13:30.079
<v Speaker 1>actually faces the end user. It's it's what we interact

0:13:30.120 --> 0:13:32.640
<v Speaker 1>with when we're using our phones. So this is the

0:13:32.679 --> 0:13:35.880
<v Speaker 1>side that we actually see. It includes stuff like the

0:13:35.920 --> 0:13:38.640
<v Speaker 1>dialer application, you know, in case we want to use

0:13:38.640 --> 0:13:43.600
<v Speaker 1>our smartphone as a phone, or maybe the email app

0:13:43.720 --> 0:13:47.800
<v Speaker 1>or well you get the idea. It's all those basic apps. Now,

0:13:48.360 --> 0:13:51.360
<v Speaker 1>these are intended to be the basic apps that any

0:13:51.400 --> 0:13:56.280
<v Speaker 1>other third party app could tap into for certain capabilities. Now,

0:13:56.320 --> 0:14:00.000
<v Speaker 1>Google made the decision to allow users, carriers, and or

0:14:00.200 --> 0:14:04.960
<v Speaker 1>handset manufacturers the chance to swap out many, but not all,

0:14:05.080 --> 0:14:08.840
<v Speaker 1>of these system apps for something from a third party.

0:14:09.320 --> 0:14:11.800
<v Speaker 1>So if you don't like let's say the basic on

0:14:11.960 --> 0:14:16.160
<v Speaker 1>screen keyboard that comes standard with Android, you could change that.

0:14:16.280 --> 0:14:18.880
<v Speaker 1>You could switch it out for a different on screen

0:14:18.960 --> 0:14:23.640
<v Speaker 1>keyboard created from a different put third party, and that

0:14:23.640 --> 0:14:27.160
<v Speaker 1>would become the new system level app for that particular feature.

0:14:27.560 --> 0:14:31.240
<v Speaker 1>Google does restrict this for certain functions. Not every system

0:14:31.320 --> 0:14:34.400
<v Speaker 1>level app is available to be swapped out. For example,

0:14:34.440 --> 0:14:37.600
<v Speaker 1>the settings app, you can't do that, and that gives

0:14:37.640 --> 0:14:40.280
<v Speaker 1>you more fine tune control over a lot of the

0:14:40.280 --> 0:14:43.880
<v Speaker 1>handsets settings. So that's the reason why Google says, no,

0:14:44.240 --> 0:14:46.520
<v Speaker 1>this one is off limits. We're going to keep it

0:14:46.560 --> 0:14:49.800
<v Speaker 1>as is. But otherwise it's pretty fair game. And that's

0:14:49.840 --> 0:14:53.440
<v Speaker 1>an overview of what an operating system is and how

0:14:53.480 --> 0:14:57.360
<v Speaker 1>the Android OS stacks up, so to speak. And it's

0:14:57.480 --> 0:15:00.120
<v Speaker 1>good to remember that Android is built on top of

0:15:00.240 --> 0:15:04.600
<v Speaker 1>an older operating system, that being Linux. Because Linux is

0:15:04.640 --> 0:15:07.880
<v Speaker 1>open source, Reuben and his team of developers Andy Rubin,

0:15:07.960 --> 0:15:11.800
<v Speaker 1>that is, could tweak the Linux kernel to suit their

0:15:11.800 --> 0:15:14.840
<v Speaker 1>own needs when they were building out Android. Anyone can

0:15:14.880 --> 0:15:18.400
<v Speaker 1>do that because it's open source. And another point that's

0:15:18.480 --> 0:15:22.960
<v Speaker 1>important to stress. I'm really just talking about the kernel

0:15:23.200 --> 0:15:26.880
<v Speaker 1>that component just above the bare metal the interfaces directly

0:15:26.920 --> 0:15:29.240
<v Speaker 1>with the hardware of the handset. And the reason it's

0:15:29.240 --> 0:15:32.280
<v Speaker 1>important to remember that is you can't just run Linux

0:15:32.280 --> 0:15:36.480
<v Speaker 1>applications on an Android device, nor can you run Android

0:15:36.480 --> 0:15:39.640
<v Speaker 1>apps on a Linux computer, at least without not without

0:15:39.680 --> 0:15:42.840
<v Speaker 1>some sort of emulator. And that's because those layers that

0:15:42.920 --> 0:15:46.600
<v Speaker 1>stack on top of the kernel are different. Between Linux

0:15:46.600 --> 0:15:50.600
<v Speaker 1>and Android, the software libraries necessary to run certain processes

0:15:50.720 --> 0:15:54.280
<v Speaker 1>are different, and because of those differences, there's been some

0:15:54.320 --> 0:15:57.680
<v Speaker 1>debate over whether or not you should actually call Android

0:15:57.720 --> 0:16:01.680
<v Speaker 1>a Linux distribution or dis s trow so. In Linux speak,

0:16:02.200 --> 0:16:06.480
<v Speaker 1>a distribution is a specific implementation of the Linux operating system,

0:16:06.480 --> 0:16:09.920
<v Speaker 1>and there are hundreds of different distros out there now.

0:16:09.960 --> 0:16:13.720
<v Speaker 1>I think the debate is largely unimportant because it remains

0:16:13.800 --> 0:16:17.760
<v Speaker 1>that the two different operating systems are different enough that

0:16:17.920 --> 0:16:21.120
<v Speaker 1>you can't port apps across environments without doing a lot

0:16:21.120 --> 0:16:24.360
<v Speaker 1>of extra legwork. Now, before I take a quick break,

0:16:24.640 --> 0:16:26.640
<v Speaker 1>I do want to give a quick recap of what

0:16:26.720 --> 0:16:30.280
<v Speaker 1>was going on. When I finished the last episode. Google

0:16:30.320 --> 0:16:33.440
<v Speaker 1>had released Android three point oh a k A Honeycomb,

0:16:33.480 --> 0:16:35.680
<v Speaker 1>which I'll talk about a little bit more in a second,

0:16:36.160 --> 0:16:38.840
<v Speaker 1>and this was a version of Android that Google had

0:16:38.840 --> 0:16:42.320
<v Speaker 1>designed specifically for Android tablets. It was the first version

0:16:42.320 --> 0:16:46.720
<v Speaker 1>of Android that UI expert Matthias Duarte really had a

0:16:46.800 --> 0:16:49.640
<v Speaker 1>hand in, as he had been brought in shortly before

0:16:49.760 --> 0:16:53.400
<v Speaker 1>its predecessor, Gingerbread, had been pushed out to users. So

0:16:53.600 --> 0:16:56.040
<v Speaker 1>Duarte didn't have a whole lot of opportunity to put

0:16:56.080 --> 0:16:59.040
<v Speaker 1>his mark on Gingerbread, but he definitely did a lot

0:16:59.080 --> 0:17:02.280
<v Speaker 1>more work on honey Home. Duarte also faced a big

0:17:02.400 --> 0:17:06.240
<v Speaker 1>challenge because Google is a company built by and arguably

0:17:06.359 --> 0:17:10.720
<v Speaker 1>some would say four engineers, and the Android phones definitely

0:17:10.760 --> 0:17:13.440
<v Speaker 1>reflected that. I say that as someone who owned a

0:17:13.800 --> 0:17:19.000
<v Speaker 1>first generation Android phone. They worked, but they weren't necessarily intuitive.

0:17:19.280 --> 0:17:23.800
<v Speaker 1>The design didn't establish a coherent aesthetic. There was no

0:17:24.720 --> 0:17:29.280
<v Speaker 1>defining trait for an Android app apart from the fact

0:17:29.320 --> 0:17:31.520
<v Speaker 1>that it was running on an Android phone. They all

0:17:31.760 --> 0:17:37.960
<v Speaker 1>looked wildly different. There was no cohesive vision. Convincing engineers

0:17:37.960 --> 0:17:42.200
<v Speaker 1>that design was an important component wasn't always easy, but

0:17:42.320 --> 0:17:45.720
<v Speaker 1>Duarte figured he was up for the challenge. I'll talk

0:17:45.760 --> 0:17:47.679
<v Speaker 1>a little bit more about that in just a second,

0:17:47.680 --> 0:17:57.840
<v Speaker 1>but first let's take a quick break. Okay, let's go

0:17:57.960 --> 0:18:03.159
<v Speaker 1>back to Honeycomb for a second. The tablet only version

0:18:03.160 --> 0:18:06.119
<v Speaker 1>of Android. Google itself has admitted that the development of

0:18:06.119 --> 0:18:10.119
<v Speaker 1>Honeycomb was rushed. They didn't have a whole lot of

0:18:10.160 --> 0:18:13.120
<v Speaker 1>time to get it out, and it was a frantic response.

0:18:13.200 --> 0:18:17.199
<v Speaker 1>You could think to Apple's iPad launch, which managed to

0:18:17.240 --> 0:18:20.440
<v Speaker 1>do what no other tablet had done up to that point.

0:18:20.560 --> 0:18:24.320
<v Speaker 1>It was able to capture the attention of the mainstream public.

0:18:24.920 --> 0:18:28.240
<v Speaker 1>Tablet computers had been around for a while, and they

0:18:28.240 --> 0:18:30.400
<v Speaker 1>weren't brand new when the iPad came out. They had

0:18:30.440 --> 0:18:33.840
<v Speaker 1>been a thing for years, but they had previously been

0:18:33.880 --> 0:18:37.479
<v Speaker 1>fairly niche gadgets used by a few different industries, like

0:18:37.960 --> 0:18:41.199
<v Speaker 1>in medicine. Nurses were using them things like that for

0:18:41.359 --> 0:18:44.760
<v Speaker 1>very specific tasks, and largely they were ignored by the

0:18:44.800 --> 0:18:48.600
<v Speaker 1>general public. In fact, tablet computers had been such a

0:18:48.680 --> 0:18:55.200
<v Speaker 1>non component in everyday computing that I famously, and if

0:18:55.240 --> 0:18:58.840
<v Speaker 1>you want to search the back catalog of tech stuff

0:18:58.840 --> 0:19:01.200
<v Speaker 1>you can find out where I did this. I famously

0:19:01.280 --> 0:19:04.440
<v Speaker 1>predicted the iPad itself would flop. I mean, no one

0:19:04.560 --> 0:19:07.719
<v Speaker 1>had managed to make tablet computers useful enough for anyone

0:19:07.760 --> 0:19:10.879
<v Speaker 1>to actually want one, So I was a bit off

0:19:11.480 --> 0:19:15.359
<v Speaker 1>on that particular prediction, But I don't even know to

0:19:15.440 --> 0:19:19.240
<v Speaker 1>this day if I was off about them truly being usable.

0:19:19.480 --> 0:19:23.560
<v Speaker 1>Maybe this speaks more to my inability to incorporate tablets

0:19:23.600 --> 0:19:26.800
<v Speaker 1>into my day to day life. So I very rarely

0:19:27.000 --> 0:19:29.439
<v Speaker 1>use them myself. If I do use a tablet, I

0:19:29.480 --> 0:19:33.120
<v Speaker 1>typically turn it into a super lightweight laptop computer instead,

0:19:33.680 --> 0:19:36.119
<v Speaker 1>like I have a Microsoft Surface that I use for

0:19:36.200 --> 0:19:40.640
<v Speaker 1>that purpose. I love it as a very lightweight laptop,

0:19:40.680 --> 0:19:42.120
<v Speaker 1>but I don't know that I would get as much

0:19:42.200 --> 0:19:44.280
<v Speaker 1>use out of it if I used it strictly as

0:19:44.280 --> 0:19:48.320
<v Speaker 1>a tablet, simply because that's not how I work. However,

0:19:48.359 --> 0:19:51.840
<v Speaker 1>I should say I gotta concede. The Apple iPad was,

0:19:52.280 --> 0:19:57.479
<v Speaker 1>without any qualifiers, a huge success, and Google recognized that too,

0:19:57.720 --> 0:20:00.119
<v Speaker 1>and so there was a strong incentive to develop a

0:20:00.200 --> 0:20:03.960
<v Speaker 1>version of Android aimed at the tablet experience. In some ways,

0:20:04.640 --> 0:20:08.280
<v Speaker 1>this helped the people who were building Honeycomb because the

0:20:08.359 --> 0:20:11.199
<v Speaker 1>version of Android would only be used for tablets, and

0:20:11.280 --> 0:20:13.800
<v Speaker 1>that helped cut down on the sheer variety of things

0:20:13.840 --> 0:20:17.080
<v Speaker 1>that had to consider, like screen size or access to

0:20:17.160 --> 0:20:20.520
<v Speaker 1>a cell phone. Those were off the table. Because most

0:20:20.560 --> 0:20:23.399
<v Speaker 1>tablets were in a pretty small range of sizes, they

0:20:23.440 --> 0:20:26.399
<v Speaker 1>didn't have to worry about the huge number of variables

0:20:26.400 --> 0:20:29.320
<v Speaker 1>that they would encounter if they were designing and operating

0:20:29.320 --> 0:20:32.320
<v Speaker 1>system for smartphones. But it also meant that Google needed

0:20:32.320 --> 0:20:35.520
<v Speaker 1>to make sure the hardware manufacturers were gonna play by

0:20:35.520 --> 0:20:39.560
<v Speaker 1>the rules because previous versions of Android were all open source,

0:20:40.040 --> 0:20:43.200
<v Speaker 1>so after they were pushed out after a certain amount

0:20:43.240 --> 0:20:46.520
<v Speaker 1>of time, Google would allow the code to be freely

0:20:46.560 --> 0:20:51.840
<v Speaker 1>available for anyone to look at, to use, and etcetera.

0:20:52.320 --> 0:20:56.879
<v Speaker 1>But Google did not want some manufacturer out there trying

0:20:56.880 --> 0:21:00.399
<v Speaker 1>to push Honeycomb out on a phone like device was

0:21:00.480 --> 0:21:05.880
<v Speaker 1>not intended to do that, so they said, while we're

0:21:05.920 --> 0:21:08.200
<v Speaker 1>going to instead of releasing this as open source, we're

0:21:08.200 --> 0:21:11.600
<v Speaker 1>going to keep it to ourselves, and manufacturers would have

0:21:11.640 --> 0:21:14.600
<v Speaker 1>to go through Google to get Honeycomb for their Android

0:21:14.600 --> 0:21:19.080
<v Speaker 1>based tablets. Upon its initial release, Honeycomb lacks support for

0:21:19.160 --> 0:21:22.800
<v Speaker 1>some pretty important processes, like it didn't have support for

0:21:22.840 --> 0:21:25.960
<v Speaker 1>Adobe Flash, which at the time was still a very

0:21:26.000 --> 0:21:31.480
<v Speaker 1>important component for web content, and Honeycomb was a bit

0:21:31.560 --> 0:21:34.320
<v Speaker 1>buggy when it was first released. There were a lot

0:21:34.320 --> 0:21:38.240
<v Speaker 1>of little performance issues and that, paired with the lack

0:21:38.320 --> 0:21:42.320
<v Speaker 1>of open source, would end up hurting the launch of Honeycomb,

0:21:42.720 --> 0:21:45.600
<v Speaker 1>and so a lot of people didn't really care for

0:21:45.720 --> 0:21:47.960
<v Speaker 1>the Android tablets that were coming out of that time,

0:21:48.000 --> 0:21:51.000
<v Speaker 1>and that's not really the fault of the OS necessarily,

0:21:51.680 --> 0:21:54.399
<v Speaker 1>but it didn't end up doing it didn't do the

0:21:54.440 --> 0:21:59.400
<v Speaker 1>OS any favors either. The design decisions were largely admired.

0:21:59.480 --> 0:22:03.119
<v Speaker 1>Duarte had created a more cohesive design approach and he

0:22:03.280 --> 0:22:07.280
<v Speaker 1>leaned really hard on sci fi like visuals. A lot

0:22:07.320 --> 0:22:10.680
<v Speaker 1>of people referred to it as a tron like interface,

0:22:11.400 --> 0:22:15.200
<v Speaker 1>and it was called a hologram interface. Within Google, Google

0:22:15.200 --> 0:22:18.280
<v Speaker 1>built in some new features that would give handset manufacturers

0:22:18.280 --> 0:22:22.240
<v Speaker 1>more options. Uh the Zoom, the XO o M, the

0:22:22.280 --> 0:22:26.280
<v Speaker 1>first tablet to feature Honeycomb, had no hardware buttons, so

0:22:26.440 --> 0:22:29.720
<v Speaker 1>Google had to build in on screen capabilities to do

0:22:29.800 --> 0:22:33.160
<v Speaker 1>stuff like navigate to the home page of the Android

0:22:33.160 --> 0:22:36.119
<v Speaker 1>operating system, pull up menus, that kind of stuff, the

0:22:36.160 --> 0:22:42.120
<v Speaker 1>stuff that previously had dedicated hardware buttons on Android devices,

0:22:42.160 --> 0:22:44.480
<v Speaker 1>because up to that point that's what you had to

0:22:44.480 --> 0:22:46.679
<v Speaker 1>have if you had an Android phone. It had a

0:22:46.720 --> 0:22:50.159
<v Speaker 1>physical menu button, a physical home button, a physical back button.

0:22:50.920 --> 0:22:54.280
<v Speaker 1>But starting with Honeycomb, Google was able to get rid

0:22:54.320 --> 0:22:56.760
<v Speaker 1>of some of that and they built in on screen

0:22:56.920 --> 0:23:00.720
<v Speaker 1>versions of those functions. That design element would carry over

0:23:00.760 --> 0:23:04.719
<v Speaker 1>into ice Cream Sandwich, which was the next version for

0:23:04.880 --> 0:23:09.120
<v Speaker 1>actual Android smartphones, it was toned down a bit. However,

0:23:09.160 --> 0:23:13.080
<v Speaker 1>The Honeycomb was full on tron but ice Cream Sandwich

0:23:13.160 --> 0:23:16.240
<v Speaker 1>was sort of tron light. They eased off a bit

0:23:16.400 --> 0:23:19.800
<v Speaker 1>on that design approach. This version of Android debut on

0:23:19.840 --> 0:23:23.000
<v Speaker 1>the Samsung Galaxy Nexus, a phone that had a seven

0:23:24.119 --> 0:23:26.879
<v Speaker 1>resolution screen, which was a big step up from the

0:23:26.920 --> 0:23:30.199
<v Speaker 1>earlier Android phones, and the additions in Honeycomb for on

0:23:30.280 --> 0:23:34.200
<v Speaker 1>screen controls meant the Galaxy Nexus and most Android phones

0:23:34.240 --> 0:23:37.600
<v Speaker 1>that were to follow no longer needed those physical buttons.

0:23:37.600 --> 0:23:40.880
<v Speaker 1>Other than maybe a power button and volume controls, those

0:23:40.880 --> 0:23:44.120
<v Speaker 1>would typically be physical, everything else would be an on

0:23:44.160 --> 0:23:48.560
<v Speaker 1>screen button. Uh. This let designers create more sleek and

0:23:48.600 --> 0:23:52.520
<v Speaker 1>aesthetically pleasing handsets to dedicate more of the space of

0:23:52.560 --> 0:23:56.080
<v Speaker 1>the phone to the screen itself, and it put the

0:23:56.160 --> 0:23:59.879
<v Speaker 1>more chunky origins of Android phones deep into the past.

0:24:00.480 --> 0:24:03.280
<v Speaker 1>Ice Cream Sandwich also had a lot of UI updates,

0:24:03.320 --> 0:24:05.280
<v Speaker 1>like a system bar for the top of the phone

0:24:05.320 --> 0:24:08.680
<v Speaker 1>that would hold stuff like notifications, and there was also

0:24:08.720 --> 0:24:10.200
<v Speaker 1>a system bar at the bottom of the phone that

0:24:10.200 --> 0:24:13.159
<v Speaker 1>would allow users to navigate home, back and hit the

0:24:13.160 --> 0:24:16.520
<v Speaker 1>menu button. Some of the icons got not just a

0:24:16.560 --> 0:24:19.720
<v Speaker 1>graphical facelift, but also a name change, so what was

0:24:19.760 --> 0:24:24.680
<v Speaker 1>previously referred to as contacts now became people. For example,

0:24:25.600 --> 0:24:28.600
<v Speaker 1>it seems a little less cold, so I'm I'm in

0:24:28.680 --> 0:24:31.280
<v Speaker 1>favor of it. It's an Android that's learning to love.

0:24:32.080 --> 0:24:35.840
<v Speaker 1>In January two twelve, Duarte led the effort to publish

0:24:35.880 --> 0:24:39.880
<v Speaker 1>a set of guidelines called Android Design. The site would

0:24:39.920 --> 0:24:43.280
<v Speaker 1>act as a tutorial for app developers so they can

0:24:43.359 --> 0:24:45.800
<v Speaker 1>make apps in such a way as to fit within

0:24:45.880 --> 0:24:50.000
<v Speaker 1>the overall aesthetic of Android operating system. This was something

0:24:50.040 --> 0:24:51.920
<v Speaker 1>that Apple had been doing for a while. In fact,

0:24:51.960 --> 0:24:56.600
<v Speaker 1>over at Apple, it was notorious for the company to

0:24:56.680 --> 0:24:59.880
<v Speaker 1>deny apps from being able to go into the App Store,

0:25:00.600 --> 0:25:04.280
<v Speaker 1>and one of the many reasons that Apple might give

0:25:04.359 --> 0:25:07.440
<v Speaker 1>is that the aesthetic of the app didn't match Apple's

0:25:07.520 --> 0:25:10.960
<v Speaker 1>overall aesthetic for iOS, and so the designers will have

0:25:11.000 --> 0:25:13.879
<v Speaker 1>to go back and retool the look and u I

0:25:14.160 --> 0:25:16.520
<v Speaker 1>of their app. So that was more in line with

0:25:16.600 --> 0:25:20.439
<v Speaker 1>Apple's design policies. Google would be a lot more lenient

0:25:20.440 --> 0:25:23.439
<v Speaker 1>than Apple in those days, but Duarte saw the value

0:25:23.480 --> 0:25:27.120
<v Speaker 1>of establishing a definable look so that when people saw

0:25:27.160 --> 0:25:29.719
<v Speaker 1>something they would know, oh, that's an Android app, as

0:25:29.760 --> 0:25:33.439
<v Speaker 1>opposed to that's on some sort of mobile device. A

0:25:33.480 --> 0:25:36.040
<v Speaker 1>few months after the introduction of ice Cream Sandwich, Google

0:25:36.119 --> 0:25:38.560
<v Speaker 1>made some more changes to some of its primary apps.

0:25:38.880 --> 0:25:42.119
<v Speaker 1>The company introduced the Google Play banner of apps. So

0:25:42.160 --> 0:25:47.040
<v Speaker 1>you had Google Play Music, Google Play Books, Google Play Store, etcetera.

0:25:47.160 --> 0:25:49.960
<v Speaker 1>And you could buy content through the Google Play Store

0:25:50.200 --> 0:25:52.200
<v Speaker 1>like you Let's say you want to buy a movie

0:25:52.560 --> 0:25:56.719
<v Speaker 1>or maybe a record album. Anyway, the content would end

0:25:56.800 --> 0:26:00.480
<v Speaker 1>up going to the appropriate apps library, so was all

0:26:00.480 --> 0:26:02.600
<v Speaker 1>the management stuff was done in the background. You didn't

0:26:02.600 --> 0:26:04.000
<v Speaker 1>have to worry about it, and you didn't have to

0:26:04.040 --> 0:26:06.680
<v Speaker 1>go through the individual apps in order to access the store.

0:26:07.080 --> 0:26:09.399
<v Speaker 1>This was the first example of Google doing an out

0:26:09.440 --> 0:26:13.160
<v Speaker 1>of cycle update for individual apps, and it would mean

0:26:13.200 --> 0:26:15.560
<v Speaker 1>more freedom to update apps without having to wait for

0:26:15.600 --> 0:26:19.840
<v Speaker 1>a full operating system cycle update, a full version update

0:26:19.880 --> 0:26:22.600
<v Speaker 1>in other words. And this approach also managed to do

0:26:22.680 --> 0:26:26.720
<v Speaker 1>something that would have a big a big impact on users. Earlier,

0:26:26.840 --> 0:26:29.520
<v Speaker 1>Google would issue updates in a new version of the

0:26:29.520 --> 0:26:33.199
<v Speaker 1>operating system, or at least an update to the current version,

0:26:33.359 --> 0:26:35.720
<v Speaker 1>and it would then make that update available for all

0:26:35.760 --> 0:26:39.040
<v Speaker 1>the service carriers and handset manufacturers to push out to

0:26:39.240 --> 0:26:43.040
<v Speaker 1>users on the network. But that meant that Android phone

0:26:43.080 --> 0:26:46.320
<v Speaker 1>owners might be waiting for a while to get the

0:26:46.400 --> 0:26:49.159
<v Speaker 1>latest update, just because the carrier they used had and

0:26:49.240 --> 0:26:52.080
<v Speaker 1>pushed it out yet, or because there are delays in

0:26:52.119 --> 0:26:55.920
<v Speaker 1>the handset manufacturers making sure that the chips in their

0:26:55.920 --> 0:27:01.359
<v Speaker 1>handsets could accommodate the new operating system. But the app

0:27:01.440 --> 0:27:04.760
<v Speaker 1>updates were different. Google could push those out through the

0:27:04.760 --> 0:27:09.120
<v Speaker 1>Play Store and bypass the entire operating system update. If

0:27:09.119 --> 0:27:13.199
<v Speaker 1>it was just adjusting something, you know, relatively small in

0:27:13.280 --> 0:27:16.920
<v Speaker 1>one of these apps, those were completely under Google's control,

0:27:17.000 --> 0:27:19.399
<v Speaker 1>so in that way, Google could deliver new features to

0:27:19.640 --> 0:27:22.920
<v Speaker 1>users without them getting frustrated while waiting for their carrier

0:27:22.960 --> 0:27:26.359
<v Speaker 1>to roll out the latest OS update. And in April

0:27:26.400 --> 0:27:30.120
<v Speaker 1>two twelve, Google would go back to selling devices directly

0:27:30.160 --> 0:27:33.760
<v Speaker 1>to customers through the Google Play Store. They had done

0:27:33.800 --> 0:27:37.240
<v Speaker 1>this with the launch of the Nexus one smartphone, but

0:27:37.320 --> 0:27:41.720
<v Speaker 1>it essentially discontinued the practice shortly thereafter. Then it would

0:27:41.760 --> 0:27:45.200
<v Speaker 1>open up a new market for Google, one that would

0:27:45.200 --> 0:27:49.240
<v Speaker 1>include not just smartphones and tablets, but eventually also stuff

0:27:49.320 --> 0:27:53.800
<v Speaker 1>like smart thermostats and Chromebook laptops. So Google started to

0:27:53.800 --> 0:27:57.880
<v Speaker 1>get more into the business of selling hardware directly to users,

0:27:58.280 --> 0:28:01.720
<v Speaker 1>more like Apple in that regard, although Google was relying

0:28:01.760 --> 0:28:06.159
<v Speaker 1>on third party manufacturers to actually design the hardware, at

0:28:06.200 --> 0:28:10.120
<v Speaker 1>least until we acquired Nest. The next version of Android

0:28:10.160 --> 0:28:13.439
<v Speaker 1>to come out of Google was version four point one,

0:28:13.520 --> 0:28:17.000
<v Speaker 1>also known as jelly Bean, and starting with jelly Bean,

0:28:17.280 --> 0:28:21.439
<v Speaker 1>Google hidden operating system update cycle that would typically last

0:28:21.640 --> 0:28:26.560
<v Speaker 1>about half a year, so you could expect to updates

0:28:26.600 --> 0:28:30.640
<v Speaker 1>each year for several operating system updates in a row.

0:28:31.320 --> 0:28:34.840
<v Speaker 1>Jelly Bean featured some more updates to the user interface.

0:28:35.200 --> 0:28:38.480
<v Speaker 1>It also aimed to create more smooth animations and scrolling.

0:28:38.920 --> 0:28:42.480
<v Speaker 1>Google managed to make some steps forward with tablets as well.

0:28:42.640 --> 0:28:45.680
<v Speaker 1>A sous had created a seven inch tablet that would

0:28:45.680 --> 0:28:49.040
<v Speaker 1>be branded the Nexus seven and that would set a

0:28:49.080 --> 0:28:52.280
<v Speaker 1>form factor for many Android tablets to follow. It was

0:28:52.360 --> 0:28:57.440
<v Speaker 1>not so successful in the ten inch tablet size form factor.

0:28:57.480 --> 0:28:59.239
<v Speaker 1>I mean, I had it pretty much sewned that up,

0:28:59.240 --> 0:29:02.520
<v Speaker 1>but they were able to get some traction on this

0:29:02.720 --> 0:29:06.640
<v Speaker 1>smaller version the seven inch form factor, and in fact

0:29:06.720 --> 0:29:09.200
<v Speaker 1>they were successful enough that for once, Apple would end

0:29:09.280 --> 0:29:13.240
<v Speaker 1>up following suit by later launching the iPad many largely

0:29:13.320 --> 0:29:16.920
<v Speaker 1>as a response to this. Jelly Bean also introduced the

0:29:17.000 --> 0:29:21.000
<v Speaker 1>Google Now feature a type of predictive search results based

0:29:21.040 --> 0:29:24.600
<v Speaker 1>upon user activities and locations. Some people found this to

0:29:24.640 --> 0:29:27.640
<v Speaker 1>be a bit creepy because Now would serve up cards

0:29:27.720 --> 0:29:31.719
<v Speaker 1>of information that seemed to anticipate what you wanted before

0:29:31.800 --> 0:29:35.320
<v Speaker 1>you knew you wanted it. Some folks, like yours, truly

0:29:35.400 --> 0:29:38.680
<v Speaker 1>found the feature really interesting. However, since they do a

0:29:38.720 --> 0:29:42.360
<v Speaker 1>ton of research for lots of different stuff. I'm not

0:29:42.720 --> 0:29:46.560
<v Speaker 1>always really interested in all that stuff. I'm doing it

0:29:46.600 --> 0:29:49.959
<v Speaker 1>for my job. But my Now results sometimes feature a

0:29:49.960 --> 0:29:52.640
<v Speaker 1>lot of news stories about things that aren't really that

0:29:52.720 --> 0:29:56.680
<v Speaker 1>pertinent to me. I still get news stories about football,

0:29:56.840 --> 0:29:59.640
<v Speaker 1>for example, and I am not really a football fan,

0:30:00.560 --> 0:30:02.800
<v Speaker 1>but do keep the baseball updates coming because I am

0:30:02.840 --> 0:30:07.040
<v Speaker 1>a baseball fan. The card style introduced by Google Now,

0:30:07.360 --> 0:30:10.200
<v Speaker 1>in which each of these predictive search results sat in

0:30:10.240 --> 0:30:12.920
<v Speaker 1>their own sort of individual cards, and then you could

0:30:12.960 --> 0:30:16.320
<v Speaker 1>select a card to learn more about whatever the thing was.

0:30:16.920 --> 0:30:19.080
<v Speaker 1>That would become the basis for many of the play

0:30:19.120 --> 0:30:21.840
<v Speaker 1>apps that Google offered, and this would be a huge

0:30:21.880 --> 0:30:25.160
<v Speaker 1>contribution of jelly Bean. It shaped the way Android operated

0:30:25.200 --> 0:30:29.760
<v Speaker 1>and looked from that point. Moving forward, Google also introduced

0:30:29.800 --> 0:30:33.239
<v Speaker 1>play services, which were extremely important for the company. And

0:30:33.320 --> 0:30:37.440
<v Speaker 1>for app developers and almost entirely invisible to the end user.

0:30:37.760 --> 0:30:40.560
<v Speaker 1>It concerns stuff going on in the heart of the

0:30:40.600 --> 0:30:44.360
<v Speaker 1>Android operating system. With play Services, Google could send out

0:30:44.360 --> 0:30:47.480
<v Speaker 1>tweaks to core components of the operating system and add

0:30:47.600 --> 0:30:50.520
<v Speaker 1>new A p I features without the need for a

0:30:50.560 --> 0:30:54.760
<v Speaker 1>full system update. Again, this would let Google bypass handset

0:30:54.800 --> 0:30:58.840
<v Speaker 1>manufacturers and carriers to make these adjustments to the operating system.

0:30:58.920 --> 0:31:01.520
<v Speaker 1>And why is that important, Well, it meant that app

0:31:01.560 --> 0:31:04.680
<v Speaker 1>developers could be sure that the stuff they were creating

0:31:05.000 --> 0:31:07.360
<v Speaker 1>would be able to run on most of the Android

0:31:07.360 --> 0:31:10.320
<v Speaker 1>phones out in the market. So by this time, Android

0:31:10.400 --> 0:31:14.120
<v Speaker 1>was rapidly becoming the dominant operating system for smartphones in

0:31:14.160 --> 0:31:17.360
<v Speaker 1>the world. Now, again I want to stress this does

0:31:17.400 --> 0:31:21.880
<v Speaker 1>not mean Android was superior to iOS. Rather, Apple was

0:31:21.880 --> 0:31:24.560
<v Speaker 1>taking a very different approach in which you had to

0:31:24.600 --> 0:31:26.840
<v Speaker 1>go through Apple to get a phone that was running

0:31:26.880 --> 0:31:30.720
<v Speaker 1>iOS on it, and it was a premium experience. Android

0:31:30.720 --> 0:31:34.240
<v Speaker 1>phones could run on just about anything, so there was

0:31:34.280 --> 0:31:37.320
<v Speaker 1>a huge range of different hardware and a different price

0:31:37.400 --> 0:31:42.440
<v Speaker 1>points out there. So adoption for Android skyrocketed because there

0:31:42.520 --> 0:31:45.320
<v Speaker 1>was an Android phone for just about every budget, as

0:31:45.320 --> 0:31:48.080
<v Speaker 1>opposed to the iPhone, which was still kind of a

0:31:48.120 --> 0:31:51.320
<v Speaker 1>luxury item. So on the one hand, that was great

0:31:51.320 --> 0:31:54.520
<v Speaker 1>news for developers because it meant they could potentially reach

0:31:54.640 --> 0:31:57.400
<v Speaker 1>a much larger audience because there are more people with

0:31:57.480 --> 0:32:00.320
<v Speaker 1>Android phones. But on the other hand, it also meant

0:32:00.320 --> 0:32:03.400
<v Speaker 1>that there were folks out there with older handsets running

0:32:03.400 --> 0:32:06.960
<v Speaker 1>older versions of Android, and the people with the latest,

0:32:07.000 --> 0:32:09.640
<v Speaker 1>most up to date version might end up being a

0:32:09.680 --> 0:32:13.960
<v Speaker 1>small sliver of the overall Android population, and that would

0:32:13.960 --> 0:32:18.160
<v Speaker 1>discourage developers from embracing Android because the fragmentation in the

0:32:18.240 --> 0:32:21.400
<v Speaker 1>operating system would mean that there was no guarantee someone

0:32:21.480 --> 0:32:24.560
<v Speaker 1>with an Android phone could even run the app the

0:32:24.600 --> 0:32:28.480
<v Speaker 1>developer was making the play Services update. Then Google could

0:32:28.560 --> 0:32:31.800
<v Speaker 1>address this, creating more assurances that apps would run across

0:32:31.840 --> 0:32:36.160
<v Speaker 1>a greater number of handsets, though obviously hardware limitations would

0:32:36.200 --> 0:32:38.520
<v Speaker 1>still mean that some people wouldn't get a great result

0:32:38.720 --> 0:32:42.120
<v Speaker 1>if they ran particularly demanding apps on their older phones.

0:32:42.960 --> 0:32:46.440
<v Speaker 1>But this wouldn't stop the operating system updates, mind you.

0:32:46.520 --> 0:32:49.480
<v Speaker 1>Those would continue on and there would be some important

0:32:49.480 --> 0:32:52.280
<v Speaker 1>contributions made by some of them. I'll explain more in

0:32:52.360 --> 0:32:54.920
<v Speaker 1>just a moment, but first let's take another quick break.

0:33:02.440 --> 0:33:05.440
<v Speaker 1>Google pushed out a couple of updates still under the

0:33:05.600 --> 0:33:09.880
<v Speaker 1>jelly Bean designation, so Android versions four point two and

0:33:10.040 --> 0:33:13.800
<v Speaker 1>four point three were still technically jelly Bean. With four

0:33:13.840 --> 0:33:17.520
<v Speaker 1>point four, the company again assigned a dessert nickname to

0:33:17.560 --> 0:33:20.360
<v Speaker 1>the operating system, and this time it was a branded name,

0:33:20.680 --> 0:33:24.520
<v Speaker 1>kit Cat from Nestley. The launch device for a kit

0:33:24.600 --> 0:33:28.240
<v Speaker 1>Cat was the Nexus five from LG. And one of

0:33:28.280 --> 0:33:31.160
<v Speaker 1>the things I think is really interesting about Android phones

0:33:31.760 --> 0:33:35.080
<v Speaker 1>is that you have the Nexus line of devices, both

0:33:35.440 --> 0:33:40.240
<v Speaker 1>phones and tablets, and they were made by several different manufacturers.

0:33:40.600 --> 0:33:43.400
<v Speaker 1>So you can have an HTC neck Nexus phone, you

0:33:43.400 --> 0:33:45.400
<v Speaker 1>can have a Samsung Nexus phone, you can have an

0:33:45.520 --> 0:33:48.280
<v Speaker 1>LG Nexus phone. They're all made at different times for

0:33:48.360 --> 0:33:52.160
<v Speaker 1>different operating system versions of Android. It's very interesting to

0:33:52.160 --> 0:33:54.360
<v Speaker 1>me that you can have one model name spread across

0:33:54.520 --> 0:33:58.719
<v Speaker 1>multiple manufacturers. At that point, the Nexus five had the

0:33:58.840 --> 0:34:02.520
<v Speaker 1>largest screen for an Android phone at five inches, with

0:34:02.560 --> 0:34:06.120
<v Speaker 1>the resolution of nineteen twenty by ten eighty pixels, so

0:34:06.160 --> 0:34:10.240
<v Speaker 1>a much better resolution than those early Android phones. With KitKat,

0:34:10.600 --> 0:34:13.399
<v Speaker 1>Google was able to improve on stuff under the hood

0:34:13.560 --> 0:34:16.880
<v Speaker 1>to make memory usage more efficient. This made it possible

0:34:16.920 --> 0:34:20.560
<v Speaker 1>to run current versions of Android on lower powered devices,

0:34:20.560 --> 0:34:25.200
<v Speaker 1>which was important because developing countries were building out network

0:34:25.239 --> 0:34:27.920
<v Speaker 1>infrastructure at that time, and that opened up a lot

0:34:27.960 --> 0:34:32.040
<v Speaker 1>of opportunities to have Android phones in brand new markets. Also,

0:34:32.200 --> 0:34:37.040
<v Speaker 1>it gave opportunities for people to get an unprecedented amount

0:34:37.120 --> 0:34:40.600
<v Speaker 1>of access to connectivity apps. And more so, it was

0:34:40.640 --> 0:34:43.239
<v Speaker 1>beneficial both for the company and for the people in

0:34:43.280 --> 0:34:47.960
<v Speaker 1>those developing countries. Kit Kat was also pretty much transitioning

0:34:48.000 --> 0:34:51.560
<v Speaker 1>away from the sci fi design that had been introduced

0:34:51.560 --> 0:34:54.480
<v Speaker 1>with Honeycomb and ice Cream Sandwich. It would also be

0:34:54.520 --> 0:34:56.840
<v Speaker 1>the uperating system that would power many of the first

0:34:56.960 --> 0:35:01.560
<v Speaker 1>Android wear products. These are things like Android based smart watches.

0:35:01.840 --> 0:35:04.120
<v Speaker 1>As far as I can tell, that particular category has

0:35:04.160 --> 0:35:08.000
<v Speaker 1>never really taken off for Google. I don't think any

0:35:08.440 --> 0:35:13.280
<v Speaker 1>Android based smart watch has seen enormous success in the market,

0:35:13.360 --> 0:35:16.319
<v Speaker 1>not like the Apple Watch dead for Apple. Google would

0:35:16.320 --> 0:35:19.640
<v Speaker 1>follow up KitKat with Lollipop, which I mentioned earlier in

0:35:19.680 --> 0:35:23.480
<v Speaker 1>this episode. Lollipop was the first to use the Android

0:35:23.560 --> 0:35:27.239
<v Speaker 1>run time environment for virtualization. It also introduced a new

0:35:27.280 --> 0:35:31.680
<v Speaker 1>era at Google, the era of material design. This was

0:35:31.719 --> 0:35:35.280
<v Speaker 1>not just a set of guidelines, but an actual design

0:35:35.320 --> 0:35:40.440
<v Speaker 1>blueprint that Google gave third party developers to follow. This

0:35:40.560 --> 0:35:43.279
<v Speaker 1>wasn't just for Android, but also for Chrome and all

0:35:43.440 --> 0:35:46.520
<v Speaker 1>versions of Google apps, even those that would be hosted

0:35:46.560 --> 0:35:50.839
<v Speaker 1>on other operating systems like iOS. So while Duarte had

0:35:50.880 --> 0:35:54.799
<v Speaker 1>already shaped the design principles for Android apps, now he

0:35:54.880 --> 0:35:56.719
<v Speaker 1>was working with a team to do the same thing

0:35:56.840 --> 0:36:00.879
<v Speaker 1>across all of Google's apps and services, the idea being

0:36:00.880 --> 0:36:03.480
<v Speaker 1>that if it was from Google, you should be able

0:36:03.560 --> 0:36:07.640
<v Speaker 1>to tell. Duarte would actually leave Android and transition to

0:36:07.800 --> 0:36:11.280
<v Speaker 1>a role in Google itself to help drive this initiative

0:36:11.360 --> 0:36:17.320
<v Speaker 1>across the company. The material design aesthetic took inspiration from paper.

0:36:17.640 --> 0:36:20.560
<v Speaker 1>Each layer a person would see would be like a

0:36:20.600 --> 0:36:23.480
<v Speaker 1>sheet of paper on top of all the ones beneath it,

0:36:23.960 --> 0:36:27.160
<v Speaker 1>and animation was given very much more focus in this

0:36:27.280 --> 0:36:30.400
<v Speaker 1>version of Android. The goal was to have all elements

0:36:30.480 --> 0:36:34.560
<v Speaker 1>animate onto the screen rather than just appear or pop

0:36:34.680 --> 0:36:37.920
<v Speaker 1>into place, so they should scroll up into view or

0:36:38.040 --> 0:36:41.200
<v Speaker 1>fly on into view. They shouldn't just appear. There should

0:36:41.239 --> 0:36:44.400
<v Speaker 1>never just be a transformation of one screen into another.

0:36:44.920 --> 0:36:49.120
<v Speaker 1>The result of all this was that, starting with Lollipop,

0:36:49.520 --> 0:36:52.200
<v Speaker 1>the UI had a very different look and feel to it,

0:36:52.320 --> 0:36:55.040
<v Speaker 1>and Lollipop was the first Android release to include the

0:36:55.120 --> 0:36:59.040
<v Speaker 1>voice recognition feature, in which a user would say okay,

0:36:59.320 --> 0:37:03.600
<v Speaker 1>follow by the word Google to activate the ability to

0:37:03.640 --> 0:37:07.399
<v Speaker 1>speak commands to the phone directly. I tried very hard

0:37:07.480 --> 0:37:10.759
<v Speaker 1>to avoid saying the activation phrase itself to spare all

0:37:10.800 --> 0:37:14.879
<v Speaker 1>of those listening in or near Google devices from having

0:37:14.880 --> 0:37:17.719
<v Speaker 1>to deal with the aftermath. If you listen to my

0:37:17.760 --> 0:37:21.040
<v Speaker 1>recent episode about how this stuff works, you know that

0:37:21.840 --> 0:37:25.080
<v Speaker 1>it's not always listening in on with a sense of it,

0:37:25.160 --> 0:37:27.080
<v Speaker 1>you know, keeping track of what it is you're saying,

0:37:27.320 --> 0:37:31.040
<v Speaker 1>like the phone is not spying on you. Rather, it's

0:37:31.239 --> 0:37:35.120
<v Speaker 1>on a constant lookout for a digital footprint of an

0:37:35.160 --> 0:37:39.040
<v Speaker 1>audio signal that indicates that the activation phrase has been spoken.

0:37:39.520 --> 0:37:42.920
<v Speaker 1>So it's like a key sliding into a lock. Around

0:37:42.960 --> 0:37:46.600
<v Speaker 1>this same time, in Andy Reuben, the guy who had

0:37:46.640 --> 0:37:50.640
<v Speaker 1>founded Android the company and who was associated with the

0:37:50.680 --> 0:37:53.920
<v Speaker 1>operating system at Google, thought of as the father of Android,

0:37:54.520 --> 0:37:58.480
<v Speaker 1>left Google. Now. The official story at the time was

0:37:58.520 --> 0:38:01.560
<v Speaker 1>that Reuben was leaving to start an incubator company to

0:38:01.600 --> 0:38:04.920
<v Speaker 1>help startups that were focusing on hardware. He had already

0:38:04.920 --> 0:38:08.120
<v Speaker 1>stopped running Android back in two thousand thirteen. He had

0:38:08.120 --> 0:38:11.560
<v Speaker 1>transitioned over to working in Google's robotics division, and now

0:38:11.600 --> 0:38:16.160
<v Speaker 1>he was leaving Google completely. Later on, it was revealed

0:38:16.400 --> 0:38:20.680
<v Speaker 1>that Larry Page had actually asked Reuben to resign, and

0:38:20.719 --> 0:38:24.160
<v Speaker 1>this was in the wake of sexual misconduct allegations that

0:38:24.200 --> 0:38:28.440
<v Speaker 1>had been brought against Reuben. The details of those allegations

0:38:28.800 --> 0:38:32.280
<v Speaker 1>are gross and they are horrible, So I'll just say

0:38:32.320 --> 0:38:36.160
<v Speaker 1>that if the allegations are accurate, Paige probably should have

0:38:36.200 --> 0:38:39.239
<v Speaker 1>just fired Reuben. But perhaps there was a worry of

0:38:39.520 --> 0:38:42.960
<v Speaker 1>how this might be bad pr around the whole thing,

0:38:43.320 --> 0:38:45.919
<v Speaker 1>and so I guess it was decided to keep things

0:38:46.000 --> 0:38:49.560
<v Speaker 1>quiet for the sake of and I really hate this word,

0:38:49.600 --> 0:38:52.759
<v Speaker 1>but for the sake of optics. And if so, if

0:38:52.760 --> 0:38:56.600
<v Speaker 1>that were in fact the reason why, that strategy backfired

0:38:56.719 --> 0:39:00.400
<v Speaker 1>big time because in it was revealed that Uben had

0:39:00.480 --> 0:39:05.560
<v Speaker 1>left Google with a ninety million dollar exit package as

0:39:05.600 --> 0:39:09.640
<v Speaker 1>well as leaving in the wake of these allegations. This

0:39:09.840 --> 0:39:14.480
<v Speaker 1>sparked an enormous reaction within Google, with employees protesting and

0:39:14.520 --> 0:39:18.080
<v Speaker 1>walking out upon discovering that a man accused of these

0:39:18.120 --> 0:39:21.160
<v Speaker 1>horrible acts would end up walking away with nearly a

0:39:21.239 --> 0:39:25.040
<v Speaker 1>hundred million dollars, and it's a dark stain on both

0:39:25.040 --> 0:39:30.520
<v Speaker 1>Google and Android. In March, Google rolled out an update

0:39:30.560 --> 0:39:34.000
<v Speaker 1>to Lollipop and introduced a new version of Android for cars,

0:39:34.160 --> 0:39:36.919
<v Speaker 1>called Android Auto, so it's designed to work in car

0:39:37.000 --> 0:39:39.480
<v Speaker 1>systems itself. It's the sort of thing that might power

0:39:39.560 --> 0:39:43.799
<v Speaker 1>the information and entertainment systems within a car. Following Lollipop

0:39:44.040 --> 0:39:48.680
<v Speaker 1>was Marshmallow in October two fifteen. This version introduced fingerprints

0:39:48.680 --> 0:39:52.240
<v Speaker 1>scanning for stuff like unlocking the phone and authorizing apps.

0:39:52.360 --> 0:39:57.000
<v Speaker 1>It was also introducing a feature called Google Now on Tap,

0:39:57.640 --> 0:40:00.440
<v Speaker 1>and that was a particularly odd feature. The I behind

0:40:00.480 --> 0:40:03.600
<v Speaker 1>it was you could hold down the home button on

0:40:03.680 --> 0:40:06.160
<v Speaker 1>any screen that you were in, whether it was an app,

0:40:06.600 --> 0:40:09.280
<v Speaker 1>maybe you were watching a video. But if you held

0:40:09.280 --> 0:40:11.360
<v Speaker 1>down the home button button, what it would do is

0:40:11.400 --> 0:40:14.120
<v Speaker 1>it would take a screenshot of whatever was on your

0:40:14.160 --> 0:40:16.880
<v Speaker 1>screen at that second and send it off to Google,

0:40:17.080 --> 0:40:21.040
<v Speaker 1>and then Google's AI and machine learning technology would analyze

0:40:21.040 --> 0:40:24.000
<v Speaker 1>the image and return search results based on what it,

0:40:24.080 --> 0:40:28.440
<v Speaker 1>quote unquote, thought you were interested in. Ultimately, this feature

0:40:28.480 --> 0:40:32.080
<v Speaker 1>didn't get much traction. It didn't have a refined focus,

0:40:32.120 --> 0:40:34.359
<v Speaker 1>so the chances of you getting the results you were

0:40:34.400 --> 0:40:37.680
<v Speaker 1>hoping for weren't that great. It just made more sense

0:40:37.719 --> 0:40:40.160
<v Speaker 1>to use the search feature for that kind of stuff,

0:40:40.320 --> 0:40:43.520
<v Speaker 1>where you could craft a query to return exactly what

0:40:43.560 --> 0:40:46.120
<v Speaker 1>you were looking for instead of just sending a picture

0:40:46.160 --> 0:40:49.000
<v Speaker 1>and hoping that Google picks up on the right thing

0:40:49.040 --> 0:40:51.399
<v Speaker 1>in that picture and doesn't just send you a bunch

0:40:51.400 --> 0:40:55.880
<v Speaker 1>of random garbage. The Google Assistant service would eventually replace

0:40:55.960 --> 0:40:59.920
<v Speaker 1>Google Now on Tap. Marshmallow also changed up how per

0:41:00.040 --> 0:41:02.960
<v Speaker 1>missions work for apps. So in the past, when you

0:41:03.040 --> 0:41:06.640
<v Speaker 1>downloaded an app that would need to get access to

0:41:06.840 --> 0:41:11.000
<v Speaker 1>stuff on your phone's hardware, stuff like your phone's microphone

0:41:11.160 --> 0:41:14.719
<v Speaker 1>or its camera, whatever that might be, you would get

0:41:14.719 --> 0:41:18.120
<v Speaker 1>a permissions page listing all of the components the app

0:41:18.360 --> 0:41:21.600
<v Speaker 1>wanted to have access to, and then you would authorize

0:41:21.600 --> 0:41:24.320
<v Speaker 1>the app and it would get that access. But starting

0:41:24.520 --> 0:41:28.840
<v Speaker 1>with Marshmallow, that changed. Instead, you would install an app

0:41:29.160 --> 0:41:31.160
<v Speaker 1>and you would never see a permissions page during the

0:41:31.200 --> 0:41:35.200
<v Speaker 1>installation phase. But the first time the app attempted to

0:41:35.280 --> 0:41:38.719
<v Speaker 1>make use of one of those phone components, it would

0:41:38.760 --> 0:41:41.799
<v Speaker 1>then ask permission. A little pop up would appear in

0:41:41.840 --> 0:41:43.759
<v Speaker 1>front of you, and it would ask you to give

0:41:43.760 --> 0:41:46.880
<v Speaker 1>permission for the app to access whatever it was it

0:41:46.920 --> 0:41:50.239
<v Speaker 1>was trying to get access too. So if you downloaded

0:41:50.400 --> 0:41:53.759
<v Speaker 1>like a camera app, and you activated it, you would

0:41:53.760 --> 0:41:56.799
<v Speaker 1>then receive a notification asking you to permit the app

0:41:56.840 --> 0:41:59.640
<v Speaker 1>access to your phone's camera. Or maybe not just your

0:41:59.640 --> 0:42:03.960
<v Speaker 1>phone's camera, but maybe your photos file folder, and then

0:42:04.000 --> 0:42:06.239
<v Speaker 1>you would have to either authorize it or say no,

0:42:06.480 --> 0:42:10.359
<v Speaker 1>and then maybe even uninstalled the program. After Marshmallow came

0:42:10.440 --> 0:42:15.319
<v Speaker 1>Nougat and Google's Pixel phones. Also recently, there was a

0:42:15.360 --> 0:42:18.560
<v Speaker 1>class action lawsuit against Google that wrapped up around that

0:42:18.600 --> 0:42:21.399
<v Speaker 1>first generation of Pixel phones, and if you owned one

0:42:21.440 --> 0:42:24.920
<v Speaker 1>of those first generation Pixels, you could be due a

0:42:25.000 --> 0:42:28.600
<v Speaker 1>small amount of compensation. As the first generation of Pixel

0:42:28.640 --> 0:42:32.440
<v Speaker 1>phones suffered a few problems, such as the handsets microphone

0:42:32.480 --> 0:42:38.480
<v Speaker 1>occasionally just not working anymore. Interestingly, I have a pixel too,

0:42:38.880 --> 0:42:40.759
<v Speaker 1>in fact, to have a pixel two XL right next

0:42:40.800 --> 0:42:42.600
<v Speaker 1>to me that keeps going off because it keeps hearing

0:42:42.680 --> 0:42:46.160
<v Speaker 1>me say the word Google, and it actually happened with

0:42:46.200 --> 0:42:48.879
<v Speaker 1>my phone to the main microphone on my phone doesn't work.

0:42:48.920 --> 0:42:52.680
<v Speaker 1>The speaker phone microphone works, but the main microphone doesn't. Now,

0:42:52.680 --> 0:42:54.239
<v Speaker 1>as far as I can tell, the pixel two is

0:42:54.239 --> 0:42:56.839
<v Speaker 1>not covered in that lawsuit, so I'm just out of luck.

0:42:57.640 --> 0:43:00.960
<v Speaker 1>Nougat added features like the ability to do picture and

0:43:01.040 --> 0:43:05.160
<v Speaker 1>picture due to a recizeable app feature now built into Android.

0:43:05.400 --> 0:43:07.880
<v Speaker 1>This would be more useful for stuff like Android TV

0:43:08.560 --> 0:43:12.440
<v Speaker 1>or Android on tablet devices. Other updates were behind the scenes,

0:43:12.480 --> 0:43:15.640
<v Speaker 1>stuff like support for file based encryption, so the things

0:43:15.640 --> 0:43:18.960
<v Speaker 1>that are important but that we probably wouldn't notice as

0:43:19.080 --> 0:43:22.200
<v Speaker 1>end users. NUGA would stick around for a good long while.

0:43:22.400 --> 0:43:25.000
<v Speaker 1>They would get an update in late and then it

0:43:25.000 --> 0:43:28.560
<v Speaker 1>would make way for Android version eight point oh also

0:43:28.640 --> 0:43:33.080
<v Speaker 1>known as OREO another trademark name. Part of this update

0:43:33.360 --> 0:43:37.040
<v Speaker 1>was something called Project Trouble, and Google released some pretty

0:43:37.080 --> 0:43:40.480
<v Speaker 1>crazy marketing technos speak to describe what this was about.

0:43:40.960 --> 0:43:44.480
<v Speaker 1>So I'm going to quote to you how Google described

0:43:44.600 --> 0:43:49.840
<v Speaker 1>Project Trouble. Quote. It's Google's ambitious effort to re architect

0:43:49.920 --> 0:43:52.759
<v Speaker 1>Android in order to establish a modular base in which

0:43:52.800 --> 0:43:56.320
<v Speaker 1>the lower level code created by Silicon vendors is separated

0:43:56.320 --> 0:43:59.120
<v Speaker 1>from the main Android operating system framework, so that the

0:43:59.200 --> 0:44:02.200
<v Speaker 1>device manufacts can update the OS code without having to

0:44:02.239 --> 0:44:05.399
<v Speaker 1>rely on Silicon vendors to refresh the lower level code

0:44:05.440 --> 0:44:10.040
<v Speaker 1>for every release. End quote. Now, what that actually means

0:44:10.680 --> 0:44:13.000
<v Speaker 1>is that Google was working on ways to smooth out

0:44:13.000 --> 0:44:16.520
<v Speaker 1>the challenges that handset manufacturers were facing when it comes

0:44:16.560 --> 0:44:19.160
<v Speaker 1>to supporting updates to Android, and the goal was to

0:44:19.160 --> 0:44:22.719
<v Speaker 1>cut down on the delay between an OS update coming

0:44:22.719 --> 0:44:27.000
<v Speaker 1>out from Google and the release that the handset manufacturers

0:44:27.000 --> 0:44:29.640
<v Speaker 1>could commit to. And again this gets down to like

0:44:30.560 --> 0:44:36.520
<v Speaker 1>very minute stuff. Largely we're talking about processor level concerns,

0:44:37.160 --> 0:44:40.479
<v Speaker 1>and typically you would have a handset manufacturer they would

0:44:40.480 --> 0:44:44.160
<v Speaker 1>have to work with its chip set, UH supplier, whatever

0:44:44.520 --> 0:44:47.040
<v Speaker 1>company was making the chips that were in those handsets

0:44:47.320 --> 0:44:51.840
<v Speaker 1>to make sure that it could interoperate with the Google

0:44:51.880 --> 0:44:54.560
<v Speaker 1>Android system and then rolling that out to all of

0:44:54.560 --> 0:44:57.520
<v Speaker 1>its users. So there were a lot of delays. Now,

0:44:57.520 --> 0:45:00.480
<v Speaker 1>there were other technical improvements to Android as well, but

0:45:00.520 --> 0:45:04.640
<v Speaker 1>it was largely small evolutionary improvements to a wide range

0:45:04.640 --> 0:45:08.520
<v Speaker 1>of features on the operating system. With Oreo, Android nine

0:45:08.560 --> 0:45:13.239
<v Speaker 1>point oh has the extremely generic name Pie. It was

0:45:13.280 --> 0:45:16.880
<v Speaker 1>released about a year after Oreo came out. The user

0:45:16.920 --> 0:45:19.720
<v Speaker 1>interface got another update with some elements like the clock

0:45:19.800 --> 0:45:23.200
<v Speaker 1>moving to a different default position on the display. It

0:45:23.280 --> 0:45:26.920
<v Speaker 1>was also a move away from the material design philosophy

0:45:26.960 --> 0:45:29.600
<v Speaker 1>Duarte had introduced a few years earlier, or at least

0:45:30.120 --> 0:45:34.680
<v Speaker 1>a refinement of that philosophy. So that philosophy had helped

0:45:34.719 --> 0:45:37.880
<v Speaker 1>create a more cohesive look to Android and the apps

0:45:37.920 --> 0:45:41.400
<v Speaker 1>on Android, but it had also created the effect of

0:45:41.480 --> 0:45:44.439
<v Speaker 1>making things look a little too homogenized. They all look

0:45:44.480 --> 0:45:48.560
<v Speaker 1>a little too similar. So to correct the course, Google

0:45:48.640 --> 0:45:51.920
<v Speaker 1>now has an updated set of design principles and a

0:45:51.960 --> 0:45:55.320
<v Speaker 1>suite of developer tools to help take the basic ideas

0:45:55.400 --> 0:45:59.160
<v Speaker 1>behind material design, but to apply them more intelligently to

0:45:59.280 --> 0:46:03.560
<v Speaker 1>apps and services. Designers are able to apply customized designs

0:46:03.600 --> 0:46:08.000
<v Speaker 1>on top of the fundamental material design approach. So ideally

0:46:08.320 --> 0:46:11.680
<v Speaker 1>apps built using these tools will look like they belong

0:46:11.760 --> 0:46:15.160
<v Speaker 1>to the Android ecosystem, but they won't look like all

0:46:15.239 --> 0:46:17.120
<v Speaker 1>the other Android apps out there. It won't be a

0:46:17.160 --> 0:46:20.200
<v Speaker 1>cookie cutter kind of approach. This brings us up to

0:46:20.280 --> 0:46:22.799
<v Speaker 1>the most recent version of Android, at least as of

0:46:22.840 --> 0:46:26.960
<v Speaker 1>the recording of this podcast. Android ten point oh has

0:46:27.040 --> 0:46:30.439
<v Speaker 1>eschewed the convention of using dessert names as code names

0:46:30.440 --> 0:46:33.400
<v Speaker 1>for the operating system. The next letter would have been Q,

0:46:34.000 --> 0:46:38.560
<v Speaker 1>so I guess quins the fruit was just out of consideration.

0:46:39.120 --> 0:46:43.080
<v Speaker 1>Google has several Android statues on its campus commemorating the

0:46:43.160 --> 0:46:48.080
<v Speaker 1>various releases of Android with appropriate versions of the Android

0:46:48.480 --> 0:46:52.719
<v Speaker 1>bug droid like sometimes it's posing with doughnuts or a

0:46:52.840 --> 0:46:55.840
<v Speaker 1>Claire's or whatever, you know, whatever the code name for

0:46:55.880 --> 0:46:58.520
<v Speaker 1>the operating system was, I guess moving forward, that won't

0:46:58.520 --> 0:47:01.680
<v Speaker 1>be necessary. The finn version of Android ten point oh

0:47:01.800 --> 0:47:06.440
<v Speaker 1>launched on September three, two thousand nineteen. The latest version

0:47:06.440 --> 0:47:08.920
<v Speaker 1>of the operating system adds in more protections for the

0:47:09.000 --> 0:47:12.040
<v Speaker 1>end user in the form of granting apps permission to

0:47:12.120 --> 0:47:15.200
<v Speaker 1>use stuff like location data or to gain access to

0:47:15.280 --> 0:47:18.400
<v Speaker 1>media and photo files on the device. Now apps have to,

0:47:18.800 --> 0:47:21.319
<v Speaker 1>you know, send those alerts to you when they want

0:47:21.360 --> 0:47:23.399
<v Speaker 1>to make use of it, and it makes you more

0:47:23.440 --> 0:47:26.799
<v Speaker 1>conscious of what your apps are actually trying to do.

0:47:27.560 --> 0:47:30.120
<v Speaker 1>Another cool feature is that you can use an option

0:47:30.160 --> 0:47:33.600
<v Speaker 1>to change background blur in a photo after you've already

0:47:33.640 --> 0:47:36.640
<v Speaker 1>taken the picture. And there were already apps that would

0:47:36.719 --> 0:47:39.799
<v Speaker 1>let you do this, whether your intent was artistic expression,

0:47:40.080 --> 0:47:42.719
<v Speaker 1>maybe you just wanted to blur something that was kind

0:47:42.719 --> 0:47:46.480
<v Speaker 1>of objectionable or distracting that out of the background, and

0:47:46.480 --> 0:47:49.000
<v Speaker 1>and you want to have the focus be on whatever

0:47:49.080 --> 0:47:52.000
<v Speaker 1>is in the foreground. Well, whatever the case, it's now

0:47:52.080 --> 0:47:56.760
<v Speaker 1>natively supported by the operating system itself. Android ten also

0:47:56.840 --> 0:48:00.479
<v Speaker 1>introduced a more pervasive dark mode, meant to help save

0:48:00.520 --> 0:48:03.320
<v Speaker 1>battery life and use less light to illuminate the screen

0:48:03.360 --> 0:48:05.959
<v Speaker 1>when the user is in a low light environment, thus

0:48:06.040 --> 0:48:09.640
<v Speaker 1>the name. There's also a new feature called live Caption ing,

0:48:09.719 --> 0:48:12.960
<v Speaker 1>which can dynamically add captions to videos that have been

0:48:12.960 --> 0:48:15.879
<v Speaker 1>sent to you. So if a friend shoots a quick

0:48:15.960 --> 0:48:18.879
<v Speaker 1>video and sends it as a video message, Android ten

0:48:19.000 --> 0:48:23.200
<v Speaker 1>can actually attempt to create subtitles for the video dynamically.

0:48:23.600 --> 0:48:26.560
<v Speaker 1>And I appreciate that feature a lot because my hearing

0:48:26.680 --> 0:48:29.360
<v Speaker 1>is not as good as it used to be. Darn

0:48:29.480 --> 0:48:33.279
<v Speaker 1>you punk rock shows. I haven't had a chance to

0:48:33.560 --> 0:48:36.960
<v Speaker 1>see this actually used in action yet, so I have

0:48:37.000 --> 0:48:40.319
<v Speaker 1>no idea how accurate it is. I'm just reminded of

0:48:40.320 --> 0:48:45.479
<v Speaker 1>how terrible Google Voice was at transcribing language, at least

0:48:45.520 --> 0:48:48.040
<v Speaker 1>at first, and I'm really curious if my mom sent

0:48:48.080 --> 0:48:51.080
<v Speaker 1>me a video if Google would be able to caption

0:48:51.120 --> 0:48:55.120
<v Speaker 1>it appropriately. Android ten also builds in more support for

0:48:55.239 --> 0:48:59.840
<v Speaker 1>new form factors of smartphones, namely devices that have foldable screens.

0:49:00.440 --> 0:49:02.879
<v Speaker 1>A large incentive to do this came in the form

0:49:02.960 --> 0:49:06.880
<v Speaker 1>of the Samsung Galaxy Fold, which is a squar ish

0:49:06.960 --> 0:49:10.880
<v Speaker 1>kind of tablet from Samsung that, as the name implies,

0:49:11.200 --> 0:49:14.480
<v Speaker 1>has a hinge in the middle of this that goes

0:49:14.520 --> 0:49:18.319
<v Speaker 1>down vertically along this sort of squarish tablet, and then

0:49:18.360 --> 0:49:20.440
<v Speaker 1>you can fold it in half and you're meant to

0:49:20.520 --> 0:49:23.880
<v Speaker 1>use it as a phone when it's folded long ways,

0:49:23.920 --> 0:49:26.799
<v Speaker 1>and when it is done like that, it's closer to

0:49:26.840 --> 0:49:29.680
<v Speaker 1>the dimensions of a typical smartphone, though much much much thicker,

0:49:29.719 --> 0:49:34.120
<v Speaker 1>because you know you've just uh folded it on itself.

0:49:34.600 --> 0:49:37.360
<v Speaker 1>When it's unfolded, it's again more like a small tablet.

0:49:37.440 --> 0:49:40.960
<v Speaker 1>I think it looks pretty funky and weird, but it

0:49:41.000 --> 0:49:44.640
<v Speaker 1>could very well be that the future of smartphones will

0:49:44.680 --> 0:49:47.239
<v Speaker 1>be on foldable technology. So it's a good thing that

0:49:47.280 --> 0:49:50.080
<v Speaker 1>Android now supports it, and that brings us more or

0:49:50.120 --> 0:49:52.719
<v Speaker 1>less up to date with Android so far. Now, while

0:49:52.719 --> 0:49:55.359
<v Speaker 1>I'm wrapping up, I want to give a recommendation for

0:49:55.400 --> 0:50:00.399
<v Speaker 1>an article. It's titled the Updated History of Android, and

0:50:00.480 --> 0:50:03.840
<v Speaker 1>it's on the amazing site Ours Technica. If you're not

0:50:03.880 --> 0:50:06.520
<v Speaker 1>familiar with Ours Technica and you're a fan of this show,

0:50:06.719 --> 0:50:10.680
<v Speaker 1>you should definitely check out that site. They have incredible

0:50:10.760 --> 0:50:14.759
<v Speaker 1>articles on all sorts of technological topics. It's highly recommended.

0:50:15.360 --> 0:50:18.799
<v Speaker 1>This particular article was written by Ron Amadeo, and Ron

0:50:18.840 --> 0:50:23.360
<v Speaker 1>has done a phenomenal and exhaustive job going into way

0:50:23.560 --> 0:50:27.680
<v Speaker 1>more detail about the development, the rollout, the evolution and

0:50:27.719 --> 0:50:32.200
<v Speaker 1>the features of the various Android operating system versions. More

0:50:32.440 --> 0:50:35.080
<v Speaker 1>more than I could ever do unless I wanted to

0:50:35.120 --> 0:50:38.080
<v Speaker 1>just do you know, seven episodes about it. In fact,

0:50:38.080 --> 0:50:41.760
<v Speaker 1>he's got thousands of words written about the beta versions

0:50:41.960 --> 0:50:46.080
<v Speaker 1>of Android before Android Version one point oh ever came out.

0:50:46.160 --> 0:50:48.520
<v Speaker 1>I didn't even really touch on that. So if you

0:50:48.560 --> 0:50:51.080
<v Speaker 1>want to learn even more about what went on behind

0:50:51.160 --> 0:50:54.480
<v Speaker 1>the scenes to create and develop Android, go check out

0:50:54.560 --> 0:50:57.279
<v Speaker 1>that article. I will tell you it does leave off

0:50:57.320 --> 0:51:00.359
<v Speaker 1>in sixteen that's when the last update was written for

0:51:00.400 --> 0:51:03.520
<v Speaker 1>this article. But I figure after you've read thirty three

0:51:03.600 --> 0:51:07.799
<v Speaker 1>pages of material, you're okay taking a short break. As

0:51:07.880 --> 0:51:11.440
<v Speaker 1>for me, well, I recommend that you send me messages

0:51:11.960 --> 0:51:15.040
<v Speaker 1>related to what you would like to hear on tech Stuff.

0:51:15.080 --> 0:51:17.480
<v Speaker 1>If you've got a topic that you would like me

0:51:17.560 --> 0:51:21.439
<v Speaker 1>to tackle, whether it's a company, a technology concept in tech,

0:51:21.520 --> 0:51:24.319
<v Speaker 1>whatever it may be, send me a message. You can

0:51:24.360 --> 0:51:27.080
<v Speaker 1>do so via email the addresses tech stuff at how

0:51:27.120 --> 0:51:29.800
<v Speaker 1>stuff works dot com, or you can pop on over

0:51:29.880 --> 0:51:32.960
<v Speaker 1>to Facebook or Twitter handle we use this tech stuff

0:51:33.040 --> 0:51:35.879
<v Speaker 1>hs W send me a message there. Pop on over

0:51:35.920 --> 0:51:38.640
<v Speaker 1>to tech stuff podcast dot com to check out the

0:51:38.800 --> 0:51:42.640
<v Speaker 1>archive of all of our past episodes that have ever published.

0:51:42.960 --> 0:51:45.279
<v Speaker 1>Plus you'll find a link to our online store where

0:51:45.280 --> 0:51:47.319
<v Speaker 1>every purchase you make goes to help the show, and

0:51:47.360 --> 0:51:49.960
<v Speaker 1>we greatly appreciate it, and I'll talk to you again

0:51:50.719 --> 0:51:58.439
<v Speaker 1>really soon. Text Stuff is a production of I Heart

0:51:58.520 --> 0:52:01.920
<v Speaker 1>Radio's How Stuff Works. Or more podcasts from my heart Radio,

0:52:02.280 --> 0:52:05.440
<v Speaker 1>visit the i heart Radio app, Apple Podcasts, or wherever

0:52:05.520 --> 0:52:11.600
<v Speaker 1>you listen to your favorite shows. H