Syllabus 1.1 Introduction toAndroid: Open Handset alliance, Android Ecosystem 1.2 Need of Android: Features of Android 1.3 Tools & Software required for Developing an Android Application. 1.4 Android Architecture.
Unit Outcomes 1a.Explain thegiven basic terms related to Android System 1b.Explain with sketches Android Architecture for the given Application. 1c.Identify tools and software required for developing the given Android Application with justification. 1d.Explain significance of the given component in Android Architecture.
5.
1.1 Introduction Androidis an open source and Linux-based Operating System for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies. based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets. Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android. 1.1
6.
History of Android Android Inc.founded in Palo Alto,california ,united states in October 2003 by Andy Rubin[co-founder of danger ], Rich Miner[co-founder of wildfire communication Inc.], Nick Sears[once VP at Tmobile],and Chris White[Headed design and interface development at web TV] to develop “smarter mobile devices that are more aware of its owner's location and preferences”. In July 2005, Google acquired Android Inc. for at least $50 million. 1.1
History of Android On November 5, 2007, the Open Handset Alliance, a consortium of technology companies including Google, HTC, Sony and Samsung and chipset makers such as Qualcomm unveiled itself, with a goal to develop open standards for mobile devices. That day, ANDROID WAS UNVEILED AS ITS FIRST PRODUCT, a mobile device platform built on the LINUX KERNEL. In September 2008 T-Mobile announced the availability of the T-Mobile G1, the first smartphone based on the Android Platform. 1.1
9.
History of Android Thefirst commercially available smartphone running Android was the HTC Dream, released on October 22, 2008. 1.1
10.
History of Android A few days after that, Google announced the availability of Android SDK Release Candidate 1.0. In October 2008, Google made the source code of the Android Platform available under Apache’s open source license. 1.1
All Android Versions Android1.0 (2008) [Android Astro 1.0 ] • Beginning with that initial version of the operating system running on the HTC Dream, join us as we take a look at how Android has changed in the past decade. • Copy and paste feature in the web browser is not present. • Android 1.0 was obviously far less developed than the operating system we know and love today, but there are a few similarities. 1.1
13.
All Android Versions •For example, most agreed that Android pretty much nailed how to deal with notifications, and it included the pull-down notification window that blew the notification system in iOS out of the water. 1.1
14.
All Android Versions Android1.5 Cupcake (2009) • The first major update to Android not only got a new version number, but it was the first to use Google’s naming scheme, too. 1.1
15.
All Android Versions •Cupcake was significant for a number of reasons, but the most important is probably that it was the first version of Android to have an on-screen keyboard — before that, manufacturers had to include physical keyboards on their devices. 1.1
16.
All Android Versions Android1.6 Donut (2009) • Android Donut gave users a pretty big update — a much bigger update than the 0.1 version number increase suggests. For example, Donut brought Android to millions of people by adding support for CDMA networks such as Verizon, Sprint, and a number of big networks in Asia. 1.1
17.
All Android Versions •Donut was really targeted at making Android more user-friendly, but some of the biggest updates were under the hood. • For example, Donut was the first version of Android to support different screen sizes, meaning that manufacturers could create devices with the display sizes they wanted and still run Android. 1.1
18.
All Android Versions Android2.0/2.1 Eclair (2009) • Eclair was the first device to feature Google Maps navigation, for instance, kicking off what soon became the death of the in-car GPS unit. • While Maps has changed a lot since then, a few important features showed up in the service that are still present today, such as turn-by-turn navigation and voice guidance. 1.1
19.
All Android Versions •The internet browser in Android Eclair also got revamped for the new operating system. • Google added HTML5 support to the browser and the ability to play videos, putting Eclair as par with the ultimate mobile internet machine at the time — the iPhone. 1.1
20.
All Android Versions Android2.2 Froyo (2010) • Android Froyo was first released in 2010, and proved why it was an advantage to have a Nexus phone. • Froyo was aimed more at refining the Android experience, offering users five home screen panels instead of three, and showing off a redesigned Gallery app. 1.1
21.
All Android Versions •Froyo was the first version of Android to bring mobile hot spot support. • Users also finally got the PIN lock screen, which was perfect for those who didn’t really like the pattern lock screen that was previously offered in Android. 1.1
22.
All Android Versions Android2.3 Gingerbread (2010) • Google chose the Samsung-built Nexus S for this one, however, a phone that was derived from Samsung’s highly-successful Galaxy S. Gingerbread was another big Android refinement, and it saw a redesign of Android’s stock widgets and home screen. 1.1
23.
All Android Versions •Gingerbread also came with an improved keyboard, which offered new coloration for the keys, as well as improved multi-touch support, which allowed users to press multiple keys to access a secondary keyboard. • Last but not least is that Gingerbread added support for the front-facing camera. 1.1
24.
All Android Versions Android3.0 Honeycomb (2011) • Google had been making waves in the smartphone industry for a few years now, which made Honeycomb a very interesting release purely because it was targeted at tablets. It was even first showcased on a Motorola device that would eventually become the Xoom. 1.1
25.
All Android Versions •Honeycomb provided a few design cues as to what would appear in future versions of Android. • Instead of accenting the operating system with the classic green Android color, for example, Google switched to blue accents. 1.1
26.
All Android Versions •Honeycomb was the fact that it removed the need for the physical button. Instead, the home, back, and menu buttons were all included in the software as virtual buttons, meaning they could be hidden or shown based on the application. 1.1
27.
All Android Versions Android4.0 Ice Cream Sandwich (2011) • The Nexus S was a great phone, but it wasn’t the be all and end all of Google’s partnership with Samsung. The two paired up once again for the release of the Galaxy Nexus, which showcased Ice Cream Sandwich, an operating system that brought many of Honeycomb’s features over to the smartphone. 1.1
28.
All Android Versions •The operating system brought over the aforementioned virtual buttons, as well as the tweaked and refined interface that made use of the blue highlights. • Other small features, such as face unlock, data usage analysis, and new apps for mail and calendar, were also included in the update. 1.1
29.
All Android Versions Android4.1 Jelly Bean (2012) • Android Jelly Bean signaled a new era for the operating system, even if the OS seemed more or less the same as its predecessor. • The most important of which was Google Now, which could be accessed with a quick swipe from the home screen and brought information — i.e. calendar events, emails, weather reports — all to a single screen. 1.1
30.
All Android Versions •Apart from Google Now, a number of other important additions were implemented in Jelly Bean, such as Project Butter, which was aimed at drastically improving Android’s touch performance by tripling buffering graphics. • This eliminated a lot of the stutter in Android and made it a much smoother experience overall. 1.1
31.
All Android Versions Android4.4 KitKat (2013) • The launch of Android 4.4 KitKat coincided with the launch of the Nexus 5, and it came with a number of great features. • For example, KitKat represented one of the biggest aesthetic changes to the operating system to date, modernizing the look of Android. 1.1
32.
All Android Versions •The blue accents found in Ice Cream Sandwich and Jellybean were replaced with a more refined white accent, and a number of the stock apps that came with Android were redesigned to show lighter color schemes. • It also brought a new phone dialer, full-screen apps, and a new Hangouts app, which offered SMS support along with support for the Hangouts messaging platform. 1.1
All Android Versions Android5.0 Lollipop (2014) • Android Lollipop, which debuted alongside the Nexus 6, was the first to feature Google’s “Material Design” philosophy. • Google replaced the aging Dalvik VM with Android Runtime, for example, which boasted ahead-of-time compilation. 1.1
35.
All Android Versions •Android 5.0 also saw the addition of another version of Android, dubbed Android TV, which brought Android to the big screen and is still in use on plenty of TVs today. 1.1
36.
All Android Versions Android6.0 Marshmallow (2015) • Android Marshmallow brought about both design changes and changes under the hood. • Most notably, the app menu almost completely changed. Google used a white background instead of black, for instance, and added a search bar to help users quickly find the app they needed. 1.1
37.
All Android Versions •In Marshmallow, you got access to a more comprehensive set of volume controls, allowing you to change the volume for the device, media, and alarms. • Security also got a pretty big boost within the operating system. 1.1
38.
All Android Versions Android7.0 Nougat (2016) • Android 7.0 Nougat arguably marked one of the biggest upgrades to Android in its 10 years largely because of how smart the operating system got. • In fact, perhaps the biggest change to Android in Nougat is that Google Now was replaced with the now much-respected Google Assistant. 1.1
39.
All Android Versions •Notifications were presented from screen to screen, and unlike previous iterations of Android, they could be grouped together for easy management. • Multitasking also got a boost with Nougat. Whether you’re using a phone or a tablet, you’ll be able to use split-screen mode, allowing you to use two apps at once without having to exit out of each app every few minutes.. 1.1
All Android Versions Android8.0 Oreo (2017) • Android Oreo took the Android platform to version 8.0, and in particular brought a ton of multitasking features. • Picture-in-picture and native split-screen both made their debuts in Android Oreo, meaning you could continue watching your favorite show on Netflix while browsing the web. 1.1
42.
All Android Versions •Android Oreo also gave us a whole lot more control over notifications. • With Oreo, users were given the ability to turn notification channels on or off, meaning you could get super granular with which notifications show up and what happens when they appear. • A few other smaller features showed up in Oreo, too. For example, Google did away with the blob style for emojis, replacing them with emojis that were a little more in line with other platforms. 1.1
43.
All Android Versions •Oreo also gave us auto-enable Wi-Fi, a smart text selector, and so on. 1.1
44.
Android 9.0 Pie(2018) • Android Pie brought with it a number of visual changes that made it the most significant update to Android in a few years. • Android 9.0 Pie also brought some changes to notifications, including extra control over the types of notifications that show up and where they show up, as well as Google’s “Digital Wellbeing,” a feature that essentially tells you how often you use your phone, the apps that you use the most. All Android Versions 1.1
45.
All Android Versions •Other features include adaptive battery, which limits how much battery background apps can use, as well as “App Actions,” which are deep- links to certain app features that show up straight from the app drawer. 1.1
46.
All Android Versions Android10 (2019) You might notice that there’s no sugary name for this version of Android. That’s no mistake — along with the rollout of the latest version of Android, Google also announced a rebranding of the operating system, doing away with the naming scheme and instead sticking with version numbers only. 1.1
47.
All Android Versions •Android 10 marked the end of the Android navigation buttons. While Android 9 kept the back button, Android 10 now uses gestures instead. • Android 10 also brought a Systemwide dark mode, which makes things a little easier on the eyes and could save battery too. 1.1
48.
All Android Versions Android11 (2020) Android 11 operating system is the eleventh big release of Android. It is the 18th version of Android mobile OS, which was released on 8 September 2020. The update builds upon the expanded permissions system introduced in Android 10 and adds in the ability for users to grant apps certain permissions those related to location access, camera access, and microphone access only. 1.1
All Android Versions Android11 (2020) Android 11 refines the system notification area to emphasize and simplify conversation-related alerts; it introduces a new streamlined media player that contains controls for all audio- and video-playing apps in a single space; and it adds in a new contextual menu of connected-device controls for any smart products associated with your account. 1.1
All Android Versions Android11 (2020) Android 11 has plenty of other small but significant improvements —including a new Notification History section, a native screen recording function, and an automated scheduling system for the system-wide Dark Theme. 1.1
53.
Alliance (OHA) Handset Manufacturers OpenHandset Alliance The Open Handset Alliance (OHA) is a consortium whose goal is to develop open standards for mobile devices, promote innovation in mobile phones and provide a better experience for consumers at a lower cost. The Open Handset Alliance is made up of group of 84 technology and mobile companies including telecom-related entities, wireless carriers, semiconductor companies, handset manufacturers and software companies. 1.1
54.
Alliance (OHA) Handset Manufacturers OpenHandset Alliance However, several major wireless companies and manufacturers are absent from the coalition, including Nokia, Symbian, Apple, RIM, Microsoft, Verizon and Cingular. The OHA introduced a mobile device operating system called AndroidSymbian operating system. 1.1
Alliance (OHA) Handset Manufacturers AndroidEco-System An open source platform for mobile, embedded and wearable devices. Google is the principle maintainer. Other companies contribute to the system. Each device manufacturer can customize Android to suite their needs. 1.1
60.
Alliance (OHA) Handset Manufacturers AndroidEco-System Android Ecosystem is nothing but the relationship between Users, Developers/ Programmers, and Hardware equipment makers, the Android ecosystem is nothing but the mutual dependence between Users, Developers, and equipment makers. They are dependent of each other so one cannot exist without the other. 1.1
Alliance (OHA) Handset Manufacturers AndroidEco-System Android User (Users buy handsets and software Application): Android users have more space for customizability for their android devices. Android users are smarter than other users and they are perceived to have greater levels of support. 1.1
63.
Alliance (OHA) Handset Manufacturers AndroidEco-System Android User (Users buy handsets and software Application): Android users are also more likely to prefer saving their cost and love the openness of the platform also they like to customize their device. Android users are fancier to prefer saving money and also android user like customizing their android handset/device. 1.1
64.
Alliance (OHA) Handset Manufacturers AndroidEco-System Developers (sell Application): Android Developers are the professional software developer in designing applications as well as developing applications for Android. Some of the following tasks where an android developer can play his role in the development of android apps: Design and build advanced applications for the android platform. 1.1
65.
Alliance (OHA) Handset Manufacturers AndroidEco-System Developers (sell Application): Collaborate and define with development teams for design and deliver new cool features. Troubleshoot and fix bugs in new and existing applications for Users. Evaluate and implement new development tools to work with outside data sources and APIs. 1.1
66.
Alliance (OHA) Handset Manufacturers AndroidEco-System Equipment Maker: Android equipment's are available in the market in a huge amount. Smartwatches: A smartwatch is a handheld, wearable device that closely relates a wristwatch or other time device. In addition to telling time, many smartwatches are wireless connectivity oriented such as Bluetooth capable. 1.1
67.
Alliance (OHA) Handset Manufacturers AndroidEco-System Equipment Maker: Smartwatches: The traditional watch becomes, in effect, a wireless Bluetooth technology extending the capabilities of the wearer's smartphone to the watch. Smart TV: An Android TV box is a small computer that plugs into any TV and gives the user the ability to stream content, locally and online. 1.1
68.
Alliance (OHA) Handset Manufacturers AndroidEco-System Equipment Maker: Smart TV: Apps can be downloaded from the Google Play Store, installed, and do most anything a standard computer can do from streaming videos to writing an email. Smart Speakers: Smart speakers are booming in the market now, Smart speakers like Google Home, Alexa, We can control our android device via voice using these smart speakers. 1.1
69.
Alliance (OHA) Handset Manufacturers AndroidEco-System Equipment Maker: E-Reader: E-Reader is a device used for reading e-books, digital newspapers, other reading stuff. 1.1
Users Industry Developer Developer • Donnot need permission to ship an application • No hidden or privileged framework APIs • Can integrate, extend and replace existing components Users • Users have control of their experience • They control what gets installed • They choose the defaults Industry • Software stack open- sourced under Apache 2.0 license • Source available after first handsets ship • Anyone will be able to build a system image Android Eco-System 1.1
Alliance (OHA) Handset Manufacturers 1.2Need of Android There are so many reasons you should choose Android platform for mobile application development. 1. Zero/negligible Development Cost : The development tools like Android SDK, JDK, and Eclipse IDE etc. are free to download for the android mobile application development. Also Google charge a small fee $25, to distribute your mobile app on the Android Market. 1.2
74.
Alliance (OHA) Handset Manufacturers 1.2Need of Android 2. Open Source: • The Android OS is an open-source platform based on the Linux kernel and multiple open- source libraries. • In this way developers are free to contribute or extend the platform as necessary for building mobile apps which run on Android devices. 1.2
75.
Alliance (OHA) Handset Manufacturers 1.2Need of Android 3. Multi-Platform Support: In market, there are a wide range of hardware devices powered by the Android OS, including many different phones and tablet. Even development of android mobile apps can occur on Windows, Mac OS or Linux. 1.2
76.
Alliance (OHA) Handset Manufacturers 1.2Need of Android 4. Multi-Carrier Support: World wide a large number of telecom carriers like Airtel, Vodafone, Idea Cellular, AT&T Mobility, BSNL etc. are supporting Android powered phones. 1.2
77.
Alliance (OHA) Handset Manufacturers 1.2Need of Android 5. Open Distribution Model: Android Market place (Google Play store) has very few restrictions on the content or functionality of an android app. So the developer can distribute theirs app through Google Play store and as well other distribution channels like Amazon’s app store. 1.2
Features of Android Interface: Android'sdefault user interface is mainly based on direct manipulation, using touch inputs that loosely correspond to real-world actions, like swiping, tapping, pinching, and reverse pinching to manipulate on-screen objects, along with a virtual keyboard. 1.2
80.
Features of Android Applications: Applications ("apps"), which extend the functionality of devices, are written using the Android software development kit (SDK) and, often, the Java programming language. Java may be combined with C/C++,[91] together with a choice of non-default runtimes that allow better C++ support. 1.2
81.
Features of Android The Go programming language is also supported, although with a limited set of application programming interfaces (API). In May 2017, Google announced support for Android app development in the Kotlin programming language. 1.2
82.
Features of Android HandsetLayouts : The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional smartphone layouts. Storage: SQLite, a lightweight relational database, is used for data storage purposes 1.2
83.
Features of Android Connectivity: Android supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi (no connections through Proxy server and no Ad hoc wireless network) LTE, NFC and WiMAX. Storage: SQLite, a lightweight relational database, is used for data storage purposes 1.2
84.
Features of Android Messaging: SMS and MMS are available forms of messaging, including threaded text messaging and now Android Cloud to Device Messaging Framework is also a part of the Android Messaging service. 1.2
85.
Features of Android MediaSupport: Android supports the following audio/video/still media formats: – H.264 (in 3GP or MP4 container) – MPEG-4 SP – AMR – AAC – HE-AAC (in MP4 or 3GP container) – MP3 – MIDI – WAV – JPEG – PNG – GIF – BMP 1.2
86.
Features of Android Multi-Touch: Android has support for multi-touch which was originally made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to avoid infringing Apple's patents on touch-screen technology at the time). Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch. 1.2
Features of Android Application framework enabling reuse and replacement of components Dalvik virtual machine optimized for mobile devices (register based) Integrated browser based on the open source WebKit engine Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES specification (hardware acceleration optional) 1.2
89.
Features of Android Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) GSM Telephony (hardware dependent) Bluetooth, EDGE, 3G, WiFi, NFC (hardware dependent) Camera, GPS, compass, accelerometer, gyroscope (hardware dependent) Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE 1.2
90.
Features of Android JPEG – Joint Photographic Experts Group GIF – Graphics Interchange Format, PNG – Portable Network Graphics BMP – Windows Bitmap TIFF – Tag Image File Format WAV – Waveform PCM Audio WMA – Windows Media Audio BWF – Broadcast Wave Format DAT – Digital Audio Tape AMR-Adaptive Multi-Rate 1.2
91.
Features of Android MPEG-Moving Picture Experts Group AAC-Advanced Audio Coding AVI-Audio Video Interleave MP3-MPEG Audio Layer III MP4-MPEG-4 AVC (Advanced Video Coding) MKV-Matroska Video DVI-Digital Video Interactive 1.2
92.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: Java JDK: • The Java Development Kit (JDK) is a software development environment used for developing Java applications and applets. 1.3
93.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: Java JDK: • It includes the Java Runtime Environment (JRE), an interpreter/loader (java), a compiler (javac), an archiver (jar), a documentation generator (javadoc) and other tools needed in Java development. 1.3
94.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: Java JDK: JVM ⁃ JVM (Java Virtual Machine) is a specification that provides runtime environment in which java bytecode can be executed. ⁃ JVMs are available for many hardware and software platforms. JVM is a part of Java Run Environment (JRE). 1.3
95.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: Java JDK: JVM ⁃ The JVM performs following operation: • Loads code • Verifies code • Executes code • Provides runtime environment 1.3
96.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: Java JDK: JRE ⁃ The Java Runtime Environment (JRE) is a set of software tools for development of Java applications. ⁃ It combines the Java Virtual Machine (JVM), platform core classes and supporting libraries. 1.3
97.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: Android SDK: • The Android SDK (software development kit) is a set of development tools used to develop applications for Android platform. 1.3
98.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: Android SDK: • The Android SDK includes the following: ⁃ Required libraries ⁃ Debugger ⁃ An Emulator 1.3
99.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: Android SDK: • The Android SDK includes the following: ⁃ Relevant documentation for the Android application program interfaces (APIs) ⁃ Sample source code ⁃ Tutorials for the Android OS 1.3
100.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: IDE: Android Studio • Developed by Google, Android Studio is an all- rounder integrated development environment. • Android has Gradle-base support that has features like visual layout editor, intelligent code editor, real-time profilers and APK analyzer. 1.3
101.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: IDE: Visual Studio – Xamarin • Xamarin was launched in 2011 which is the best free IDE for delivering an enterprise-quality, cross platform approach. • Xamarin supplies add-ins to Microsoft Visual Studio that allows developers to build Android, iOS, and Windows apps within the IDE. 1.3
102.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: IDE: IntelliJ IDEA • Using this IDE, you can do in-depth coding, quick navigation, and error analysis. It supports mobile app development with the help of Java, Scala, Kotlin, Groovy. 1.3
103.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: IDE: Eclipse IDE • It is one of the most popular IDES of Android apps. • The open-source software is free to use. Released under the Eclipse Public License, it holds a large community having plenty of plugins and configurations. 1.3
104.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: IDE: Eclipse IDE • Highly customizable offers full support for Java programming language and XML. 1.3
105.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: App Development Tools : ADB (Android Debug Bridge) • ADB is a command-line communication bridge between the android devices and computer devices on which you are doing the coding. ADB allows the installation and debugging of the android apps on the devices. 1.3
106.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: App Development Tools : AVD Manager (Android Virtual Device) • AVD is an emulator, or you can say the virtual device that allows you to test and debug the android apps. AVD has a range of characteristics, including android phones, tablets, wearOS, androidTV, etc. 1.3
107.
Android Architecture 1.3 Tools& Software Required Software Development IDE and Tools: App Development Tools : Gradle Build Tool • Gradle Build is also a powerful and most widely used tool for android app development. It is primarily used to speed up the android app development process by the developers. The numerous API and plugins available in the Gradle build tool automate the whole procedure and made the deployment faster. 1.3
Android Architecture 1.4 AndroidArchitecture Android architecture or Android software stack is categorized into five parts: Linux kernel Native Libraries (middleware) Android Runtime Application Framework Applications 1.4
110.
• Android OSis built on top – Linux Core functionality of the Linux 2.6 Kernel • • • • Memory management Process management Networking Security settings – Hardware drivers Linux Kernel 1.4
111.
Linux Kernel 1.4 Thebasic Layer is the Linux Kernel. The entire Android OS is built on the top the Linus 2.6 Kernel with the architectural changes made by Google. It is highly trusted for years together for giving better security and networking etc. This layer has 10 major components which are nothing but drivers. Android run time gives .dex file which converted from the .class file. .dex file goes to the Linux Kernel and call the suitable drivers so that it can communicate with the corresponding drivers.
112.
Android’s Native Libraries: • – – – – – – – – – Libc:c standard lib. SSL: Secure Socket Layer SGL(Scalable Graphics Libraries): 2D image engine OpenGL|ES: 3D image engine Media Framework: media codecs SQLite: Database engine WebKit: Kernel of web browser FreeType: Bitmap and Vector SufraceManager: Compose window manager with off-screen buffering. Native Libraries 1.4
113.
Native Libraries 1.4 EachComponent of the frame like button, textfield, image(2D, 3D) is rendered & interacted by the Surface Manager. Open GLIES: This Component is provides mostly 3D graphics libraries which have to implemented by Java application and it is rendered by the application layer when they want some 3D graphics. SQLite: We can use SQLite which is an open source database as our applications are light weight.
114.
Native Libraries 1.4 MediaFramework: Picture Quality Should be good, Multimedia actions should be good which includes Sounds, so to get those activities or application Android API has to call Media Framework Component to play and view the video- audio. SGL(Scalable Graphics Libraries): It is responsible for the implementing low level graphics by using JNI. FreeType: It is responsible for to support the font quality, the image(bitmap images).
115.
Native Libraries 1.4 SSL(SecuredSocket Layer): It is used in internal applications. If we want go through online from mobile then at that time we need some secure socket layer. It is also used in case of Chat & messaging system. WebKit: It is responsible for giving the browser supports. Eg. Google chrome, Apples Safari. Libc: When we want to access some code C libraries headers then this component is useful.
116.
Runtime • Core Libraries: –Provides the functionality of the JAVA ProgrammingLanguage • Dalvik VM: – – – – – A type of Java Virtual Machine Register based (not stack machine like JVM) Optimization for low memory requirements, provides Security Executes .dex (Dalvik-Executable) files instead of .class DX tool converts classes to .dex format Android Runtime 1.4 Each Android application: • runs on its own Process • runs on its own Instance of Dalvik VM • is assigned its own Linux user ID
117.
Android Runtime 1.4 Theandroid runtime provides a key component called Dalvik Virtual Machine which is a kind of java virtual machine. It is specially designed and optimized for android. The Dalvik VM is the process virtual machine in the android operating system. It is software that runs apps on android devices. The Dalvik VM makes use of Linux core features like memory management and multithreading which is in java language. The Dalvik VM enables every Android application to run its own process. The Dalvik VM executes the files in the .dex format.
118.
Application Framework 1.4 Theapplication framework layer provides many higher- level services to applications such as windows manager, view system, package manager, resource manager, etc. The application developers are allowed to make use of these services in their applications.
119.
• The blocksthat our applications directly interact with. • Important blocks: – – – Activity Manager: Manages the activity life cycle of applications Content Providers: Manage the data sharing between applications Telephony Manager: Manages all voice calls. We use telephony manager if we want to access voice calls in our application. Location Manager: Location management, using GPS or cell tower Resource Manager: Manage the various types of resources we use in our Application – – Application Framework 1.4
120.
Applications 1.4 You willfind all the android applications at the top layer and you will write your application and install it on this layer. Examples of such applications are contacts, books, browsers, services, etc. Each application performs a different role in the overall applications. As developers, we are able to write an app which replaces any existing system app.
121.
Details • Design goals – – – – OpenSource High flexibility High data accessibility Rapid development (XML, Java) Java Runtime Libraries C/C++ • Used Languages – – – – App: Java Framework: Java Libraries: C/C++ OS & Drivers: C C Linux Kernel App Framework Apps Android Architecture 1.4
Hardware Abstraction Layer(HAL) 1.4 On top of that kernel is the Hardware Abstraction Layer: an interface to drivers that can programmatically access hardware elements, such as the camera, disk storage, Wifi antenna, etc. These drivers are generally written in C; we won’t interact with them directly in this course.
125.
Hardware Abstraction Layer(HAL) 1.4 The hardware abstraction layer (HAL) defines a standard interface for hardware vendors to implement and allows Android to be agnostic about lower-level driver implementations. The HAL allows you to implement functionality without affecting or modifying the higher level system. HAL implementations are packaged into modules (.so) file and loaded by the Android system at the appropriate time.
126.
Hardware Abstraction Layer(HAL) 1.4 On top of the HAL is the Runtime and Android Framework, which provides a set of abstraction in the Java language which we all know an love. For this course, Android Development will involve writing Java applications that interact with the Android Framework layer, which handles the task of interacting with the device hardware for us.