1 00:00:00,630 --> 00:00:01,560 ‫-: Hi. 2 00:00:01,560 --> 00:00:05,997 ‫Now you have seen a lot of Android and Java code 3 00:00:05,997 --> 00:00:09,990 ‫but in fact you don't know how to proceed 4 00:00:09,990 --> 00:00:12,300 ‫with Android development at all. 5 00:00:12,300 --> 00:00:14,234 ‫And this is perfectly normal 6 00:00:14,234 --> 00:00:18,240 ‫because we haven't gone into the Android development. 7 00:00:18,240 --> 00:00:21,299 ‫And this course is not for Android development 8 00:00:21,299 --> 00:00:24,520 ‫but rather it's for reverse engineering 9 00:00:24,520 --> 00:00:27,840 ‫and it's for mobile application security. 10 00:00:27,840 --> 00:00:31,022 ‫But in order to continue with reverse engineering 11 00:00:31,022 --> 00:00:33,141 ‫you should be able to comprehend 12 00:00:33,141 --> 00:00:37,457 ‫at least the basics of Android development as well 13 00:00:37,457 --> 00:00:41,460 ‫rather than just pure focusing on Java. 14 00:00:41,460 --> 00:00:43,659 ‫So around 10 minutes over here 15 00:00:43,659 --> 00:00:46,710 ‫we are going to try and teach you 16 00:00:46,710 --> 00:00:49,980 ‫the basics of the Android. 17 00:00:49,980 --> 00:00:52,800 ‫So if you open the developer.android.com 18 00:00:52,800 --> 00:00:55,339 ‫and you don't have to do that, by the way. 19 00:00:55,339 --> 00:00:58,038 ‫I'm just showing you this as a reference. 20 00:00:58,038 --> 00:01:01,341 ‫You will see that an Android app 21 00:01:01,341 --> 00:01:05,660 ‫is actually consisted of four components. 22 00:01:05,660 --> 00:01:10,080 ‫So this is Activities, Services, Broadcast receivers 23 00:01:10,080 --> 00:01:11,860 ‫and Content providers. 24 00:01:11,860 --> 00:01:14,610 ‫So Activities are piece of screens 25 00:01:14,610 --> 00:01:19,200 ‫that we, the user actually sees the content, okay? 26 00:01:19,200 --> 00:01:21,630 ‫This is how user interacts with the app. 27 00:01:21,630 --> 00:01:24,175 ‫This is the screen that user is seeing. 28 00:01:24,175 --> 00:01:27,551 ‫So we have worked with Activities 29 00:01:27,551 --> 00:01:30,877 ‫during the Android development section, right? 30 00:01:30,877 --> 00:01:34,320 ‫When you build a calculator, for example 31 00:01:34,320 --> 00:01:36,690 ‫you have worked with Activities. 32 00:01:36,690 --> 00:01:39,090 ‫And for the Services, actually 33 00:01:39,090 --> 00:01:41,700 ‫this is for running things in background, 34 00:01:41,700 --> 00:01:44,716 ‫like if you wanna download something from the internet 35 00:01:44,716 --> 00:01:47,799 ‫and if you don't want to block the user interface 36 00:01:47,799 --> 00:01:51,618 ‫so that user can still interact with the app, 37 00:01:51,618 --> 00:01:54,000 ‫you use Services. 38 00:01:54,000 --> 00:01:56,622 ‫So this downloads the data in the background. 39 00:01:56,622 --> 00:01:59,583 ‫User doesn't even see what's going on 40 00:01:59,583 --> 00:02:02,223 ‫but it's being done. 41 00:02:03,150 --> 00:02:05,010 ‫And for Broadcast receivers, 42 00:02:05,010 --> 00:02:07,739 ‫we use them in order to provide communication 43 00:02:07,739 --> 00:02:10,496 ‫between the other apps and our app 44 00:02:10,496 --> 00:02:14,624 ‫or between the activities with inside of our app. 45 00:02:14,624 --> 00:02:16,260 ‫Okay? 46 00:02:16,260 --> 00:02:18,390 ‫And last but not least, 47 00:02:18,390 --> 00:02:22,980 ‫Content providers is for providing content obviously. 48 00:02:22,980 --> 00:02:25,470 ‫And you use them for something 49 00:02:25,470 --> 00:02:28,236 ‫like getting contacts from phone book for example. 50 00:02:28,236 --> 00:02:29,730 ‫Okay? 51 00:02:29,730 --> 00:02:33,354 ‫Or if you want to create a database inside of your app 52 00:02:33,354 --> 00:02:36,893 ‫you can use a content provider in order to retrieve data 53 00:02:36,893 --> 00:02:41,893 ‫or work with data generally from the database. 54 00:02:42,210 --> 00:02:46,058 ‫So this are the general components of the app. 55 00:02:46,058 --> 00:02:48,560 ‫And Services, Broadcast receivers 56 00:02:48,560 --> 00:02:51,195 ‫and Content providers are not always there 57 00:02:51,195 --> 00:02:53,580 ‫but Activities are always there 58 00:02:53,580 --> 00:02:55,170 ‫because we need something 59 00:02:55,170 --> 00:02:58,811 ‫to be interacting with for the user, right? 60 00:02:58,811 --> 00:03:01,448 ‫So let me open an Android project 61 00:03:01,448 --> 00:03:05,353 ‫and just show you some kind of basic terms 62 00:03:05,353 --> 00:03:08,070 ‫and some kind of basic operations 63 00:03:08,070 --> 00:03:11,387 ‫so that you can comprehend all of these things better. 64 00:03:11,387 --> 00:03:14,310 ‫In fact, in this lecture 65 00:03:14,310 --> 00:03:16,230 ‫you don't have to do that with me. 66 00:03:16,230 --> 00:03:18,330 ‫You can just note it down 67 00:03:18,330 --> 00:03:21,131 ‫write it down so that you won't forget, okay? 68 00:03:21,131 --> 00:03:23,760 ‫I'm gonna create an empty activity. 69 00:03:23,760 --> 00:03:24,630 ‫And as you can see 70 00:03:24,630 --> 00:03:27,313 ‫there are a lot of other activities as well. 71 00:03:27,313 --> 00:03:30,300 ‫So we can create a full screen activity. 72 00:03:30,300 --> 00:03:34,620 ‫We can create a Google Maps activity, like a login activity. 73 00:03:34,620 --> 00:03:36,555 ‫And these are just themes. 74 00:03:36,555 --> 00:03:38,656 ‫So activities with some kind 75 00:03:38,656 --> 00:03:43,656 ‫of built in views that comes within. 76 00:03:43,770 --> 00:03:45,873 ‫But we are going to go with empty activity 77 00:03:45,873 --> 00:03:48,240 ‫because we don't need any other thing 78 00:03:48,240 --> 00:03:51,960 ‫like maps or some kind of login service. 79 00:03:51,960 --> 00:03:56,490 ‫So I'm going to name this Android 10 minutes, okay? 80 00:03:56,490 --> 00:04:00,810 ‫And 10 minutes start right now, not before. 81 00:04:00,810 --> 00:04:02,596 ‫So I'm gonna go for Java, 82 00:04:02,596 --> 00:04:06,551 ‫but in fact it's actually the same thing 83 00:04:06,551 --> 00:04:08,280 ‫with Kotlin as well 84 00:04:08,280 --> 00:04:11,390 ‫because in this lecture at least 85 00:04:11,390 --> 00:04:14,940 ‫we are going to learn the basics of Android development. 86 00:04:14,940 --> 00:04:16,934 ‫So the terms will be the same. 87 00:04:16,934 --> 00:04:18,775 ‫The usage will be the same. 88 00:04:18,775 --> 00:04:21,636 ‫But since you get to know the Java right now 89 00:04:21,636 --> 00:04:23,700 ‫I'm gonna go for Java 90 00:04:23,700 --> 00:04:28,533 ‫and I'm gonna go for API 22 3 for minimum level. 91 00:04:28,533 --> 00:04:30,874 ‫It really doesn't matter at this point, 92 00:04:30,874 --> 00:04:34,620 ‫but generally you want to make your app audience 93 00:04:34,620 --> 00:04:36,123 ‫as broad as possible. 94 00:04:37,014 --> 00:04:40,470 ‫So you may wanna go with API 19 or something like that 95 00:04:40,470 --> 00:04:42,540 ‫which is not too old 96 00:04:42,540 --> 00:04:46,176 ‫so that you can use the newer technology in your app 97 00:04:46,176 --> 00:04:50,460 ‫and you can actually reach much broader audience 98 00:04:50,460 --> 00:04:52,055 ‫in your Android app. 99 00:04:52,055 --> 00:04:53,880 ‫So here we go. 100 00:04:53,880 --> 00:04:55,530 ‫Here is our first app 101 00:04:55,530 --> 00:04:57,210 ‫and you know how it looks. 102 00:04:57,210 --> 00:04:59,700 ‫So let me close this down. 103 00:04:59,700 --> 00:05:01,620 ‫This is the coding section. 104 00:05:01,620 --> 00:05:05,490 ‫This is our main activity, which we write our codes in. 105 00:05:05,490 --> 00:05:08,100 ‫And also we have this layout as well, 106 00:05:08,100 --> 00:05:10,710 ‫which is where we do the design, 107 00:05:10,710 --> 00:05:12,840 ‫the user interface of our app. 108 00:05:12,840 --> 00:05:14,700 ‫So let me open this decoration 109 00:05:14,700 --> 00:05:16,792 ‫so that we can see the thing 110 00:05:16,792 --> 00:05:19,675 ‫which is called title bar, by the way. 111 00:05:19,675 --> 00:05:21,939 ‫So this is the title bar. 112 00:05:21,939 --> 00:05:24,873 ‫And as you can see, we see the title of our app. 113 00:05:24,873 --> 00:05:27,180 ‫So this is a text view. 114 00:05:27,180 --> 00:05:30,396 ‫So we can drag and drop views from the left hand side 115 00:05:30,396 --> 00:05:33,480 ‫and we don't even need that. 116 00:05:33,480 --> 00:05:34,936 ‫So let me delete this. 117 00:05:34,936 --> 00:05:37,479 ‫And let me bring in a new one 118 00:05:37,479 --> 00:05:41,370 ‫so that we would have an ID. 119 00:05:41,370 --> 00:05:43,860 ‫So over here you can drag 120 00:05:43,860 --> 00:05:45,510 ‫and drop as many as you want 121 00:05:45,510 --> 00:05:47,550 ‫like this button, okay? 122 00:05:47,550 --> 00:05:50,760 ‫And for some reason I cannot drop this. 123 00:05:50,760 --> 00:05:53,010 ‫Yep. Now this works. 124 00:05:53,010 --> 00:05:54,390 ‫So here you go. 125 00:05:54,390 --> 00:05:55,800 ‫Now I have a button 126 00:05:55,800 --> 00:05:58,770 ‫and I have a text view. 127 00:05:58,770 --> 00:06:01,020 ‫So I can bring in an image view 128 00:06:01,020 --> 00:06:04,971 ‫as well as like other views if I want. 129 00:06:04,971 --> 00:06:08,400 ‫Like I can choose any picture to display 130 00:06:08,400 --> 00:06:10,590 ‫inside of this image view. 131 00:06:10,590 --> 00:06:13,860 ‫Okay? So the ID is important. 132 00:06:13,860 --> 00:06:15,660 ‫Don't forget to give IDs 133 00:06:15,660 --> 00:06:19,560 ‫or control the IDs if they exist or not. 134 00:06:19,560 --> 00:06:20,393 ‫So as you can see 135 00:06:20,393 --> 00:06:22,320 ‫we have IDs for text views, 136 00:06:22,320 --> 00:06:24,000 ‫buttons, and image views. 137 00:06:24,000 --> 00:06:26,487 ‫So that that is how we connect our views 138 00:06:26,487 --> 00:06:30,210 ‫with our main activity. 139 00:06:30,210 --> 00:06:33,600 ‫And on the left hand side you see the Android manifest 140 00:06:33,600 --> 00:06:36,540 ‫which is a file containing our some kind 141 00:06:36,540 --> 00:06:38,370 ‫of general settings for the app. 142 00:06:38,370 --> 00:06:41,177 ‫Like we see the icon over here, 143 00:06:41,177 --> 00:06:45,750 ‫we see the title of the app 144 00:06:45,750 --> 00:06:49,620 ‫we see the activities like this main activity. 145 00:06:49,620 --> 00:06:51,270 ‫And if you see something like this 146 00:06:51,270 --> 00:06:53,670 ‫like a main and a launcher 147 00:06:53,670 --> 00:06:56,168 ‫it means that this is going to be launched first. 148 00:06:56,168 --> 00:06:57,270 ‫Okay? 149 00:06:57,270 --> 00:07:00,090 ‫So when a user opens this app 150 00:07:00,090 --> 00:07:02,640 ‫they will see main activity first. 151 00:07:02,640 --> 00:07:04,832 ‫Of course we can have multiple activities 152 00:07:04,832 --> 00:07:06,550 ‫inside of an app 153 00:07:06,550 --> 00:07:09,600 ‫and they will be all listed here. 154 00:07:09,600 --> 00:07:12,616 ‫We're gonna go and look into that later on. 155 00:07:12,616 --> 00:07:14,776 ‫So under gradle scripts you will see 156 00:07:14,776 --> 00:07:17,771 ‫some kind of build up gradle file, which is, 157 00:07:17,771 --> 00:07:22,500 ‫which again actually consists of our general settings 158 00:07:22,500 --> 00:07:24,990 ‫like minimum SDK version. 159 00:07:24,990 --> 00:07:27,390 ‫Remember we have chosen 23 160 00:07:27,390 --> 00:07:31,872 ‫and target SDK version is the SDK that we are building this 161 00:07:31,872 --> 00:07:34,388 ‫that we're targeting this, okay? 162 00:07:34,388 --> 00:07:37,320 ‫And over here, under dependencies 163 00:07:37,320 --> 00:07:40,417 ‫we see the libraries or tools that we use. 164 00:07:40,417 --> 00:07:42,840 ‫These are the external libraries 165 00:07:42,840 --> 00:07:45,432 ‫and it gets downloaded by the gradle 166 00:07:45,432 --> 00:07:49,110 ‫once you build the app, okay? 167 00:07:49,110 --> 00:07:51,540 ‫So if you add something over here 168 00:07:51,540 --> 00:07:53,936 ‫like a cloud server, like a fire base. 169 00:07:53,936 --> 00:07:57,660 ‫We're gonna see what a fire base is later on. 170 00:07:57,660 --> 00:07:59,040 ‫You have to use this. 171 00:07:59,040 --> 00:08:03,294 ‫And sometimes when you actually reverse engineer the app 172 00:08:03,294 --> 00:08:05,674 ‫this information can be seen 173 00:08:05,674 --> 00:08:08,208 ‫in the underwritten manifest as well 174 00:08:08,208 --> 00:08:11,595 ‫like a minimum SDK version or something. 175 00:08:11,595 --> 00:08:13,923 ‫Don't be surprised about that. 176 00:08:14,880 --> 00:08:18,660 ‫So under main activity, remember what we have 177 00:08:18,660 --> 00:08:22,392 ‫we have this on create, 178 00:08:22,392 --> 00:08:27,392 ‫and if we add another activity from here by right clicking. 179 00:08:27,582 --> 00:08:28,740 ‫Okay? 180 00:08:28,740 --> 00:08:32,127 ‫We can create as many as activities as we want 181 00:08:32,127 --> 00:08:36,632 ‫and they will have their own on create methods. 182 00:08:36,632 --> 00:08:39,331 ‫So remember what on create does. 183 00:08:39,331 --> 00:08:42,206 ‫It actually defines what's gonna happen 184 00:08:42,206 --> 00:08:46,200 ‫once this activity is created, right? 185 00:08:46,200 --> 00:08:50,040 ‫Now, if I write something over here under main activity 2 186 00:08:50,040 --> 00:08:52,604 ‫it will be done when main activity loads. 187 00:08:52,604 --> 00:08:55,140 ‫And if you go to Android Manifest 188 00:08:55,140 --> 00:08:57,727 ‫you will see the main activity is listed 189 00:08:57,727 --> 00:09:00,310 ‫on the Android manifest as well right now. 190 00:09:00,310 --> 00:09:03,410 ‫So all these services, content providers 191 00:09:03,410 --> 00:09:07,088 ‫and broadcast receivers as well as activities 192 00:09:07,088 --> 00:09:11,769 ‫should be listed in the Android manifest like this. 193 00:09:11,769 --> 00:09:16,769 ‫And again, like Java file, we also have Activity Main 194 00:09:17,250 --> 00:09:20,730 ‫and Activity Main 2 XMLs separately over here. 195 00:09:20,730 --> 00:09:22,793 ‫We do the design separately 196 00:09:22,793 --> 00:09:26,310 ‫with different XML files. 197 00:09:26,310 --> 00:09:28,530 ‫For example, I'm gonna drag 198 00:09:28,530 --> 00:09:30,420 ‫and drop this text we wrote here 199 00:09:30,420 --> 00:09:32,040 ‫and make it a little bit bigger 200 00:09:32,040 --> 00:09:35,610 ‫and then put it in the middle of the screen like this. 201 00:09:35,610 --> 00:09:39,330 ‫Okay? And I'm going to change the text. 202 00:09:39,330 --> 00:09:40,890 ‫And I'm gonna write something 203 00:09:40,890 --> 00:09:43,790 ‫like activity 2 or second activity 204 00:09:43,790 --> 00:09:47,610 ‫so that we can really understand where we are. 205 00:09:47,610 --> 00:09:49,350 ‫So let me make this central 206 00:09:49,350 --> 00:09:51,300 ‫and make it a little bit bigger. 207 00:09:51,300 --> 00:09:52,320 ‫Here we go. 208 00:09:52,320 --> 00:09:54,349 ‫Now it's looking good, right? 209 00:09:54,349 --> 00:09:57,930 ‫So if I click on this button Infer Constraints 210 00:09:57,930 --> 00:10:00,330 ‫it will add some constraints 211 00:10:00,330 --> 00:10:01,770 ‫and constraints are tools 212 00:10:01,770 --> 00:10:05,750 ‫that we use to define where this view will be located 213 00:10:05,750 --> 00:10:08,550 ‫on an average screen like this. 214 00:10:08,550 --> 00:10:13,550 ‫So we use constraints to define the location 215 00:10:13,947 --> 00:10:16,530 ‫of the view on the screen. 216 00:10:16,530 --> 00:10:19,890 ‫So don't forget to hit Infer Constraints button 217 00:10:19,890 --> 00:10:23,850 ‫or give manual constraints if you're watching this lecture 218 00:10:23,850 --> 00:10:26,910 ‫and practicing it at the same time. 219 00:10:26,910 --> 00:10:30,810 ‫So I'm gonna do this same thing for main activity as well. 220 00:10:30,810 --> 00:10:33,428 ‫I'm gonna infer the constraints like this 221 00:10:33,428 --> 00:10:35,970 ‫so that they will be in place 222 00:10:35,970 --> 00:10:38,171 ‫when we run and build this app. 223 00:10:38,171 --> 00:10:40,123 ‫So if you click on the button 224 00:10:40,123 --> 00:10:42,960 ‫and give some kind of on click method 225 00:10:42,960 --> 00:10:44,550 ‫like this button clicked 226 00:10:44,550 --> 00:10:47,674 ‫it will be required for you to come 227 00:10:47,674 --> 00:10:51,408 ‫over the main activity.java 228 00:10:51,408 --> 00:10:54,060 ‫and write button clicked methods. 229 00:10:54,060 --> 00:10:54,960 ‫Okay? 230 00:10:54,960 --> 00:10:57,930 ‫So you are gonna have to come up over here 231 00:10:57,930 --> 00:10:59,730 ‫and not under on create 232 00:10:59,730 --> 00:11:03,597 ‫but inside of main activity you can create a new method 233 00:11:03,597 --> 00:11:06,012 ‫and it has to be exactly the same 234 00:11:06,012 --> 00:11:10,127 ‫like you have written inside of the buttons 235 00:11:10,127 --> 00:11:12,540 ‫buttons on clicked methods, like this. 236 00:11:12,540 --> 00:11:13,500 ‫Button clicked. 237 00:11:13,500 --> 00:11:17,854 ‫And we're gonna use view view in order to specify 238 00:11:17,854 --> 00:11:19,793 ‫this will be called by view. 239 00:11:19,793 --> 00:11:22,350 ‫So if you come across something like that 240 00:11:22,350 --> 00:11:24,390 ‫you're gonna have to hit alt 241 00:11:24,390 --> 00:11:28,570 ‫and enter on your keyboard to import the classes. 242 00:11:28,570 --> 00:11:30,360 ‫So here you go. 243 00:11:30,360 --> 00:11:33,794 ‫Now I have written button clicked over here and there. 244 00:11:33,794 --> 00:11:37,588 ‫So it's going to be whatever I write over here 245 00:11:37,588 --> 00:11:39,251 ‫is going to be happening 246 00:11:39,251 --> 00:11:42,368 ‫when I actually click on the button. 247 00:11:42,368 --> 00:11:46,920 ‫So now I'm going to use something called intents. 248 00:11:46,920 --> 00:11:51,920 ‫So we use intents in order to specify where we wanna go 249 00:11:52,353 --> 00:11:55,313 ‫what we wanna do inside of our app. 250 00:11:55,313 --> 00:11:58,869 ‫For example, I can say whenever I click this button 251 00:11:58,869 --> 00:12:01,327 ‫I'm going to create a new intent. 252 00:12:01,327 --> 00:12:06,030 ‫And this intent will take me to from here 253 00:12:06,030 --> 00:12:08,009 ‫from main activity, okay? 254 00:12:08,009 --> 00:12:10,620 ‫We are gonna use the main activity context 255 00:12:10,620 --> 00:12:12,769 ‫with main activity dot this 256 00:12:12,769 --> 00:12:15,540 ‫and we are going to go to main, 257 00:12:15,540 --> 00:12:17,395 ‫main 2 activity dot class. 258 00:12:17,395 --> 00:12:20,760 ‫So when I'm going to, 259 00:12:20,760 --> 00:12:22,150 ‫when I press this button 260 00:12:23,032 --> 00:12:24,048 ‫when I click on this button 261 00:12:24,048 --> 00:12:28,067 ‫it will actually take me to main 2 activity dot class. 262 00:12:28,067 --> 00:12:31,246 ‫And I'm going to say Start activity intent 263 00:12:31,246 --> 00:12:34,392 ‫in order to make this happen. 264 00:12:34,392 --> 00:12:38,550 ‫So maybe don't understand fully of this 265 00:12:38,550 --> 00:12:41,820 ‫and you need a full underdevelopment course for that 266 00:12:41,820 --> 00:12:43,050 ‫obviously. 267 00:12:43,050 --> 00:12:45,370 ‫But just so you know, if you know an, 268 00:12:45,370 --> 00:12:47,268 ‫if you see an intent 269 00:12:47,268 --> 00:12:49,825 ‫it means that you are gonna go someplace 270 00:12:49,825 --> 00:12:51,889 ‫like you're gonna go to another activity. 271 00:12:51,889 --> 00:12:55,050 ‫Are you gonna go to, for example 272 00:12:55,050 --> 00:12:59,232 ‫gallery of the user to choose a picture or something. 273 00:12:59,232 --> 00:13:01,860 ‫You're gonna go some places. 274 00:13:01,860 --> 00:13:04,020 ‫So let me run this app 275 00:13:04,020 --> 00:13:08,032 ‫and we are going to click on the first activity button 276 00:13:08,032 --> 00:13:11,110 ‫and it will take us to this activity 277 00:13:11,110 --> 00:13:15,600 ‫where we will see activity 2 text view, right? 278 00:13:15,600 --> 00:13:17,552 ‫And we haven't written down anything 279 00:13:17,552 --> 00:13:19,530 ‫in the main 2 activity 280 00:13:19,530 --> 00:13:22,394 ‫because we don't need to write, right? 281 00:13:22,394 --> 00:13:26,848 ‫We don't want something to happen under on create method 282 00:13:26,848 --> 00:13:29,580 ‫in the main activity as well, 283 00:13:29,580 --> 00:13:31,815 ‫because we only want something to happen 284 00:13:31,815 --> 00:13:34,290 ‫once a button is clicked. 285 00:13:34,290 --> 00:13:36,900 ‫For example, if I write something over here, 286 00:13:36,900 --> 00:13:39,698 ‫it'll happen then we see the screen, 287 00:13:39,698 --> 00:13:42,453 ‫but I don't want that right now. 288 00:13:43,350 --> 00:13:46,300 ‫So whenever I click on this button, 289 00:13:46,300 --> 00:13:47,850 ‫it'll create the intent 290 00:13:47,850 --> 00:13:51,690 ‫and take me to the main 2 activity, right? 291 00:13:51,690 --> 00:13:52,875 ‫So let's do that. 292 00:13:52,875 --> 00:13:53,940 ‫Here we go. 293 00:13:53,940 --> 00:13:57,014 ‫Now we are inside of second activity. 294 00:13:57,014 --> 00:14:00,538 ‫And this is how it works actually. 295 00:14:00,538 --> 00:14:03,852 ‫Now you know the intent, you know the manifest 296 00:14:03,852 --> 00:14:08,090 ‫you know the gradle, at least you know the terms. 297 00:14:08,090 --> 00:14:11,400 ‫Of course, you don't have to comprehend everything. 298 00:14:11,400 --> 00:14:14,250 ‫Every coder here, this is not for Android development 299 00:14:14,250 --> 00:14:17,850 ‫as I said before, but you have to know the basics. 300 00:14:17,850 --> 00:14:20,340 ‫Like you have to know what an intent does. 301 00:14:20,340 --> 00:14:22,267 ‫You have to know what is a gradle 302 00:14:22,267 --> 00:14:24,373 ‫or what is a manifest. 303 00:14:24,373 --> 00:14:27,850 ‫And when you are done with your app, 304 00:14:27,850 --> 00:14:30,360 ‫if you're a developer you can come over here 305 00:14:30,360 --> 00:14:32,076 ‫and say Build APKs. 306 00:14:32,076 --> 00:14:35,850 ‫And this will create an APK file for you 307 00:14:35,850 --> 00:14:37,249 ‫which is the final product 308 00:14:37,249 --> 00:14:40,615 ‫of your Android development steps. 309 00:14:40,615 --> 00:14:44,331 ‫So this is like an EXE file in Windows. 310 00:14:44,331 --> 00:14:46,653 ‫So this is what happens 311 00:14:46,653 --> 00:14:48,557 ‫if you double click on them, it'll run 312 00:14:48,557 --> 00:14:53,250 ‫and on the phone or on the, or on any Android device 313 00:14:53,250 --> 00:14:58,230 ‫If you just one click on the APK file, it will run again. 314 00:14:58,230 --> 00:15:00,480 ‫So this is the final product. 315 00:15:00,480 --> 00:15:03,060 ‫And actually in the real world, 316 00:15:03,060 --> 00:15:05,700 ‫when developers are done with their development, 317 00:15:05,700 --> 00:15:08,992 ‫they generate this APK, they sign it. 318 00:15:08,992 --> 00:15:11,250 ‫Okay, we are gonna see how to sign it. 319 00:15:11,250 --> 00:15:12,450 ‫Actually, we have seen it 320 00:15:12,450 --> 00:15:14,790 ‫in the first backdoor section as well. 321 00:15:14,790 --> 00:15:17,534 ‫And then they upload it to the Google Play 322 00:15:17,534 --> 00:15:19,791 ‫or App Store in iOS. 323 00:15:19,791 --> 00:15:24,594 ‫So APK is the final product of Android development. 324 00:15:24,594 --> 00:15:26,970 ‫So that's it. 325 00:15:26,970 --> 00:15:29,043 ‫See you in the next lecture.