 So, we are selecting 1, 2, 6, 2. I want to ask that why Android 4.2 named as the codename Ice Cream Sandwich? I mean, I would have loved to answer that, but I am not the one who has developed it or who has named it actually. So, that was just, I mean, what Google came up with. I mean, those are just alphabetical sequence names of desert names. I mean, it's ICS, then it's a Jellib in IJ. If you just look at it, it's alphabetical sequence names of the deserts. All right, I mean, there is no access significance of it. Thank you. 1, 0, 2, 0. How to get the maximum working speed of the processor of Android? Yeah, definitely. I mean, the processing speed will definitely depend on the processor which is used. And if you, I'm not sure how, what do you want to ask? If you want to ask that whether your application runs fast or not, that's what you want to make sure? Or what is it exactly? No, no, I want to ask that what is the maximum speed it can go? So, the processor which is provided in right now, our Akash tablet is 1.2 gigahertz. It depends completely on the processor which is there in your device. That's it. Thank you. Remote Center 1164. Ma'am, why DVM is used? My question is why DVM is used when JVM is more compatible? And operations of, when you're comparing DVM and JVM, I think JVM is much better than DVM. Then why we are using DVM for Android development? So, basically as I already shown you, DVM optimizes code, optimizes a Java bytecode itself. I had mentioned this point in my presentation also. Java bytecode is a pretty verbose code. There are a lot of redundant things are there in a Java bytecode. So, what DEX compiler or what Dalvik bytecode does is, it optimizes code at several layers. So, I had mentioned this point also that if you decompile your Java bytecode, you will get everything back as it is. But if you try to do this with Dalvik bytecode, it's not possible because it gets optimized to such a level that it is not possible. So, the Dalvik bytecode basically is more optimized compared to the Java bytecode and that's why DVM is used. The code has to be optimized so that it will run faster compared to the Java bytecode because we are talking about the tablets and devices. We are not talking about the desktop and laptops here, which has lots of power to support the application. I hope it answered your question. Yes, ma'am. Yes. Thank you. We have for BPIT. Thank you so much. Remote Center 1138. You explained about sandboxing, right? Yes. Sandboxing. According to sandboxing, no two applications can communicate with each other. But my question is Android has a lot of anti-virus applications. So, without even communicating to any other application, how will it identify the viruses? I mean, how anti-virus application needs the shared data? I didn't understand. Yeah. How anti-virus applications will identify viruses if it can't communicate to other applications? See, there will be definitely, the applications can communicate to each other with certain permissions. It won't be straightforward. I mean, if you don't put a permission in your Android manifest file, it won't happen. You need some set of permissions in order your application to communicate with other application. It is possible, but a by default application won't communicate to each other. That's what the point was. 1057. My question is, what is a virtual machine? Can you please explain? So, basically, what do you understand by a real machine? What happens on a real machine? You can, whatever you do on your desktop or a laptop, everything gets executed at an assembly language code, right? So, virtual machine is nothing but a virtual, I mean, an image of a real machine. What do you understand by a virtual word? It's an image of real machine, which helps you to do the same thing what real machine does it for you. And this VM is a virtual machine is a part which makes a Java as a platform independent. So, basically, it's nothing but an image of a real machine. Whatever your real machine can do, everything, I mean, the maximum things will be done by a virtual machine. A better example of content provider. So, actually, there is a dedicated session on this building blocks and Vivek would be conducting it. So, I would like him to explain what is a content provider. The best example is like we have in Android phones, we have the contacts where it is stored. It is stored in a database. Inside it, there is one SQL lite database. It is embedded inside Android. So, I think this is the best example. Contacts and name number in the phone. So, basically, your contacts data will be shared across the different applications, like the application which is dialing a number, which is giving a notification that you had a missed call. So, I mean, you will see the name of the person from whom you got a missed call. So, all this data is getting shared across. What is API level? I hope your question was what is API level? So, API level is nothing but a unique integer identification of API framework. So, what is this API? When you will deal with Android programming, you need to mention what is the minimum API level your application will work on, what would be the maximum version on which it will run on. So, here what API will come into the picture. Basically, API decides what all things you can access in your application. It will basically contain certain set of classes, some functionalities, a lot of attributes which you can use in your application. So, basically, it will decide your application can support what all things. When you will start coding, when you will start looking at this technical session in Android, you will come across this API very often and that time it would be more clear for you. One, two, four, three. A libc library at the back end for implementing a C code in an application. So, how the compiler can is putting the C code into and putting it into a DEX file. Okay. So, in the architecture diagram, there was one green layer of libraries. Have you seen that? The libraries. I hope you were not sleeping at that time. So, there was something libraries and what I had mentioned is, these are open source libraries. In that layer itself, you can have your own library with help of NDK. That is a native development toolkit where you can just import your CC++ code and get it converted it to the .DEX file. So, it is done using the NDK concept. Whatever games you see in Android, most of them are done using like that. The basic coding, the basic physics behind the gaming application is done using C++ and those gets ported on the Android. So, that happens with the NDK concept at the libraries level. Thank you. Is it possible to get the Java source code from that .APK file? You are doing a reverse engineering. So, from .APK, you want to go to the Java source code, right? Yeah. I mean, it is possible, but it's pretty difficult. I had mentioned this during the session also that because of the .DEX format, because the code is optimized at such a level that it is not possible to get your source code back. And thinking that, you know, I will, from Google Play Store or some, from somewhere else, I will get a .APK file, I'll try to decompile and get the source code, then copy paste in my application. No, practically it's not possible. Okay. I mean, reverse engineering is possible almost in every domain. Yes, it is, but it is pretty difficult. Thank you. Yeah. Okay. So, I hope your question was, is it possible to get your source code back from your Java byte code or not, right? If that is the question, yes. There are a lot of third-party tools available using which you can decompile your code and get your basic code back. 117. SVT as Indore. Go ahead with your question. Can you please explain the application fundamentals of Android once again and stack base and register base? Okay. So, I guess you were sleeping during the session or what? All right. Let me just briefly explain you back. So, first question was your register base and stack base, right? So, as you had seen, I mean, this is mostly a microprocessor concept. How the instructions get executed at the processor level? So, in a stack base, basically a stack operation happens where, you know, push in and pop in operation happens. So, whenever you have to do any operation, you have to push the data first using a stack pointer, then pop the result again. So, there is a stack where, you know, normal push and pop operation happens. So, for every instruction, you have to get your operand, that is fetch your operand, then do your, I mean, whatever operation it is, add, subtraction, whatever it is, and pop your result back. So, this is how happens in the stack base. Whereas in register base, you give directly the register address in the instruction itself. So, the instructions which needs to fetch operand, give it back, these instructions are saved. That's why the number of instructions get reduced. So, I had shown you the example. Just adding the two numbers, it required four instructions in stack base. Where in register base, it was done using a simple one instruction. The length of instruction increases because you have to give the register address, but the number of instructions gets reduced. That is about the stack base and register base. And I guess your second question was the application fundamentals. That is a .apk file. I mean, don't be, I mean, go into detail at this point because when technical session will start, you will see how to install .apk on the device. And once it, I mean, whatever things I told you, that was just the behind the scene. Once you get to understand what happens in the front scene, what is there in .apk, how do you compile, when you compile, then what all things get packed along with it, it will be more clear for you. Right now, just understand .apk is a format which gets installed on the Android device. And basically, it installs your application and it has, along with the code, a lot of other things like a manifest, resources, resources can be your just images, so if you want to play using your applications. Manifest file, I told you, is a controller file. It decides what all permissions your application requires. So, this all gets combined into the one package as a .dex, which gets installed on the device. Like what you have in a .jar, right? There also, you have a manifest. There also, you have a code. There also, you have a resources. A lot of things get compressed and gets combined to the jar. Basically here, it gets combined to the .apk. I hope that answers your question. Ma'am, I have another question. When we switch from one application to another application, where are sensation stores? Like we touch an application and go from one page to another page, then a log is maintained of these sensations or input. So, where these are stored? So, I had shown you something called as an activity back stack. You cannot call it exactly a log because this is getting handled by an activity manager at the framework level. So, this gets stored at the back stack level. I mean, not exactly a log file, you can say. Basically, in your application, you will only call... Can we retrieve these sensations? Like what we have already touched or we used? Can we retrieve these in our program? Yes, definitely. I mean, if I get you correctly, you want to... What you want to do is you want to just touch the screen. It goes to the next application... Sorry, next screen or something, right? Yes, it is possible. Everything is on touch. We are talking about the on touch environment completely, a touch screen. Ma'am, I am asking this. When we touch on any page or any application, this is stored somewhere in our logs where we can say any storage. So, can we retrieve these logs from in our program? Okay, so basically, if you are trying to develop such application, which is happening on touch, something is happening. So, there are concept of on touch listeners. So, once you on touch on the screen anywhere, there are on touch listeners who listen to the event and you can write a code whatever you want inside that listener. So, that is what will happen in case of a custom application. If you are trying to develop something that on touch, something should be happened. Yeah, remote center 1 to 7-1. Ma'am, I have no actually difficult technical doubts, but I have a simple question to ask, to clarify. And that question is actually, you are showing us all the demo on the Unix platform. But most of the people are not comfortable with Unix platform. Linux platform. So, is it possible for us to work in the Windows environment? Yes, definitely. If it is so, will you be explaining? Yeah, go ahead, ma'am. I hope I got your, yes, sir. I hope I got your question correctly that whether this, everything whatever we are showing you, whether it works on a Windows or not. Basically, yes, Android can be installed on Windows and it runs flawlessly on Windows. There is no issue of it. Accelerometer is an app of Akash as you mentioned. But what actually it does and how it help us? Okay, so I hope you can see my tablet, right? So, now, right now the orientation is a horizontal, right? If I switch my tablet like this, so can you see the orientation now? So, this is the answer to your question. This is what Accelerometer does. I mean, depends on the orientation because we are talking about the tablets and smartphones. You can just view it in, you know, any direction you want. We are not talking about the desktop or laptop, which are difficult to even port it from one place to another. So, we are talking about the tablets, smartphones in any orientation you just, so that the whole screen switches. So, this is what the Accelerometer feature is. So, you have a vertical screen. Previously, you had a horizontal screen. So, now, again, horizontal. So, this is what Accelerometer does for you. We have some announcement over here to do and then we will go for the lunch break. So, basically, we receive the feedback that, you know, for some sessions the code and a lot of slides were not visible. So, we have already uploaded it on a GitHub. So, all these technical sessions, every presenter has already recorded their session and have uploaded on this website. So, you can straight forward go and check out. Let me see if I can show you the format of it. So, if you have just missed out something, something was not visible due to bandwidth, some issue was there because, see, at our remote, at our center, we can see everything clearly. So, if there is some bandwidth, network issue, something not visible, couldn't hear, you can go, you can still, I mean, there is still you haven't lost anything. You can visit this and you will have everything over there, right from the example code, which you can directly import in your Eclipse and try to run the slides and the videos. The whole session video has been recorded and uploaded. Let me just check if I can show you that link right away. Yeah. So, basically, this is the link. If you see this, you will have session-wise all details, that is the Java basic introduction to Android. This is all day one sessions. So, we have already uploaded slides, video on it and along with the example code as well. So, if you go inside this, you will find the example code. So, the Java program part 1, part 2, these are straight forward Eclipse project, which you can import and check out. And these are slides. Along with that, here are the videos present. So, the all videos have been uploaded on YouTube. The links have been given here. So, you can just go ahead and check out. So, basically, the important videos would be for installation because lot of people will try the installation. Afternoon session will be dedicated completely for installation. In case, again, you miss out something. So, this is the place where you can visit. And along with this, we will soon upload it on a Moodle also so that you will have access to it. Okay. It has been already, my team has communicated that it has been already uploaded on Moodle. So, you can go and check this out. Thank you. And we will have an hour lunch break. We will resume back at sharp 2 o'clock. Thank you.