首页
会员中心
到顶部
到尾部
文科毕业论文

An Introduction to Android 7.0 Nougat

时间:2020/10/14 14:14:56  作者:  来源:  查看:0  评论:0
内容摘要: e of open source translates directly to more sales of more consumer electronics devices in more areas of your potential customer’s lives...
e of open source translates directly to more sales of more consumer electronics devices in more areas of your potential customer’s lives, and this offers steadily increasing Android market share, and an ever-increasing incentive to develop for the Android 7.1.1 OS over “closed” technologies such as Windows or iOS, and over less popular and less prolific PC OSes, such as OS/X, Open Solaris, and Linux distributions.

 

In addition to being free for commercial use, the Android OS has one of the largest, wealthiest, and most innovative companies in modern-day computing currently behind it: Google. Add in the OHA, and you have more than a trillion dollars of mega-brand companies behind you, supporting your app development efforts. It certainly seems too good to be true; however, it’s a fact: if you’re an Android developer (which you are about to be, in about a dozen or so chapters), then you now have a supreme hardware and software sales and support team behind your new media content development business.

 

Finally, and most important, it’s much easier to get your Android applications published than it is with those other platforms that are similar to Android 7.1.1 (I won’t mention names here, to protect the not-so-innocent). We all know we would rather spend our time on applications development than on trying to get our Android apps approved for sale!

 

We’ve all heard those horror stories regarding major development companies waiting months, and sometimes years, for their apps to be approved for other app marketplaces. These problems are nearly non-existent on the open source Android platform. Publishing an app in the Google Play store is as easy as paying $50, uploading your Android .apk file, and specifying whether you are offering a free or a paid download. Let’s take a look at what we are going to cover during this book, and at what we are not going to be covering. Finally, we’ll look at the new Android 7.0 “Nougat” operating system features, before we finish up with this first chapter.

 

The Scope of This Book

 

This book is an introduction to the core features and attributes of Android, and to the work process for developing applications for Android. The book is intended for absolute

 

beginners; that is, people who have never created an application on the Android platform for a consumer electronic device. If you are already familiar with Android, then this book is not appropriate for you. I do not assume that readers know what Java is; or how XML works;

 

or what styles or themes are; or what a codec, alpha channel, color depth, dithering, or a blending mode algorithm is.


6CHAPTER 1: An Introduction to Android 7.0 Nougat

An Introduction to Android 7.0 Nougat

 

All I know is that by the end of this book, you’re going to appear as if you are speaking a foreign language when you start talking about new media Android application development in front of friends, family, and clientele, which ultimately will get you hired, and hopefully, well paid. Be advised that it will take far more than one book to learn the “ins and outs”

 

of Android, so be sure to check out all of the other Android and Pro Android titles at http://www.apress.com.

 

What Is Covered in This Book

 

This book covers the basic and essential elements of Android application development, including but not limited to the following areas:

 

The open source software development tools required to develop for the Android 7.x platform

 

Where to get this free software development environment, as well as professional new media content creation tools that can be used in conjunction with the Android Studio 2.3 IDE

 

How to properly install and configure the necessary tools for Android 7 application development, as well as for new media content creation tools that can be used with Android Studio 2.3

 

Which third-party tools are useful to use in conjunction with the Android Studio 2.3 IDE

 

Which OSs and platforms currently support development for Android using these tools

 

The concepts and programming constructs for Java and XML, and their practical applications in creating Android applications

 

How Android Studio 2.3 goes about setting up an Android application

 

How Android OS defines Android application user interface (UI) components using the View class

 

How Android OS controls UI component layout on the display screen using the ViewGroup class

 

How Android can communicate with other Android applications using the Intent class

 

How Android apps interface with content providers, datastores, resources, networks, and the Internet

 

How Android alerts users to events that may be taking place, inside or outside of an Android app

 

How Android applications are defined for publishing using the app’s Android manifest XML file

 

How Android applications can use threads for background processing using the Service class


CHAPTER 1: An Introduction to Android 7.0 Nougat

7

An Introduction to Android 7.0 Nougat

 

It is important to know that Android OS has more than 250 Java packages, and that one book cannot introduce you to everything that is available to you in the Android 7.1.1 OS development environment. This Android development environment contains functionality that allows you to do just about anything imaginable, from putting a button on the display screen; to synthesizing speech; creating virtual reality or smart watch faces; leveraging interactive television set or auto dashboard features; or accessing advanced smartphone features, such as the high-resolution camera, Bluetooth communication, NFC, GPS, gyroscope, compass, or accelerometer. If you would like to review each of these Android packages for yourself, you can find them at the following URL for the Android developer website:

 

https://developer.android.com/reference/packages.html

An Introduction to Android 7.0 NougatAn Introduction to Android 7.0 NougatAn Introduction to Android 7.0 NougatAn Introduction to Android 7.0 Nougat

 

Note  A package in Java is a collection of programming utilities, or functions, that all have related (and interconnected) functionality. For example, the java.io package contains the utilities that deal with input and output (IO) to your program, such as reading the contents of a file, or saving data to a file. A later Java primer chapter describes how to organize your Java code into your own custom Android application packages.

 

 

Unlike this book, most Android books will specialize in a specific area of Android programming. For instance, my Pro Android Wearables (Apress, 2015) title focuses on SmartWatch application development, and my Pro Android Graphics (Apress, 2014) focuses on Android graphics pipeline design. We will be learning about APIs, or Application Programming Interfaces, in the chapter on Java. There is plenty of complexity in each Android API, which ultimately, from the developer’s perspective, translates into incredible creative power. What is the price of this power, you might ask? Your valuable time spent mastering each API is the only price you will pay, as Android 7.x OS is otherwise free for commercial use.

 

What Is Not Covered in This Book

 

So then what is not covered in this book? What cool powerful capabilities do you have to look forward to in the next level book on Android programming? In a nutshell, anything that’s not a core class or feature that Android apps are built upon. On the hardware side, we will not be looking at how to control the camera, access GPS data from the smartphone, or access the accelerometer, or the gyroscope, which allows the user to turn the smartphone around, or have the application react to the smartphone position. We will not be delving into advanced touchscreen concepts, such as gestures; accessing other device hardware, such as a microphone, Bluetooth, NFC, and Wi-Fi connections; or image compositing, which is covered in Pro Android Graphics (Apress, 2013).

 

On the software side, we will not be diving into creating your own Android MySQLite database structure, or real-time 3D rendering system (OpenGL ES 3.2 and Vulkan), although we will take a closer look at these areas in later chapters, so that you know how to utilize them, and how they fit into the overall Android 7.1.1 infrastructure. We will not be exploring speech synthesis and speech recognition, nor the universal language support that allows developers to create applications that display characters correctly in dozens of international languages and foreign character sets. We will not be getting into advanced programming


8CHAPTER 1: An Introduction to Android 7.0 Nougat

An Introduction to Android 7.0 Nougat

 

such as game development, artificial intelligence, image compositing pipelines, blending modes, and physics simulations. We won’t get into advanced user interface design concepts and techniques, such as the topics covered in my Pro Android UI (Apress, 2014) title or my Learn Android App Development (Apress, 2013) title that I wrote previously.

 

What’s New in Android Nougat: Powerful New Features

 

In this section, I will go over some of the new features that will make Android 7 (Nougat) more attractive to both end users and developers alike. Even new end-user features can be considered “wins” for Android developers, because these new features serve to expand the majority market share currently enjoyed by Android OS. One of these new features even allows Android apps to run on Google Chrome OS, which runs on millions of ChromeBook, ChromePhone, and ChromeCast (iTV) products, greatly expanding the market for

 

Android 7.x Nougat applications.

An Introduction to Android 7.0 NougatAn Introduction to Android 7.0 NougatAn Introduction to Android 7.0 NougatAn Introduction to Android 7.0 Nougat

 

Note  Android Version 7.1.1 Nougat is currently in beta development during the writing of this book, and should be released on devices at about the same time that this book is released to the public.

 

Since it expands Android onto netbooks, notebooks, laptops, and PCs, let’s take a look at the Custom Pointer API first. This new API allows pointing devices (mice and cursors) to be used with Android devices such as iTV sets or personal computers, making Android more like a desktop operating system with context-sensitive cursor graphics for the pointer.

 

Android Apps for the Google Chrome OS: Custom Pointer API

 

Recent versions of the Google Chrome OS have a placeholder for an entry point into the Google Play store, which indicates that Google is going to make Android applications run under the Google Chrome OS. Part of this on the Android application development side is the Custom Pointer API, which will allow keyboard and mouse support for Google Chrome OS users, and could also help Android TV users to interface with their iTV Sets as well. Until iTV Set and PC Android support came into view recently, Android OS was primarily a touchscreen environment. However, Android has had some basic support for mice and keyboards for several years now. Mice will become more common with new Android devices such as iTV sets emerging, and Android 7.1.1 moves to support these with the addition of a new Custom Pointer API, which

 

is available as of the developer previews (betas). The cursor can actually change to indicate different user interactions, just like a mouse pointer (cursor) does on your desktop PC or laptop.

 

The Custom Pointer API allows developers to customize the cursor (also called the pointer) visibility, appearance (icon used), and behavior. The capability of controlling the cursor appearance and visibility is especially useful when your users are using their mouse (or trackball or touchpad) to interact with objects in your application such as user interface components or game players or game pieces. The default pointer for the API will use the standard pointer icon for its appearance. The Custom Pointer API includes advanced functions that allow developers to change the pointer icon’s appearance in real time based upon your user’s mouse (or touchpad or trackball) movement. The Custom Pointer API


CHAPTER 1: An Introduction to Android 7.0 Nougat

9

An Introduction to Android 7.0 Nougat

 

allows your Android application cursor to function more like a traditional desktop computing cursor, which will change depending on what the application user is doing. For example, when you hover a cursor over a text field, the pointer icon will become an “insertion bar” text cursor. If you move the cursor over a link, the pointer will change to a pointing finger. If you drag objects the cursor will show an open hand pointer. If you hover over a resizable window border, the cursor will show the appropriate resize direction arrow. Developers can change pointer behavior in their apps by using this API, which is detailed on the Android developer website, which is located at:

 

https://developer.android.com/reference/android/view/PointerIcon.html

 

The implication of this Chrome OS to Android OS “bridge” is also important to Android developers, as it allows both of these rapidly growing platforms to fuel each other’s growth. Chrome OS gives Android applications a new platform, with ChromeBook (laptops); ChromeCast (iTV sets); and possibly a Chrome PC, Chrome Phone, and Chrome SmartWatch in the future. In the other direction, Android applications will give Chrome OS a massive digital library of software that will eventually match up with the number of applications available for desktop OS leader Microsoft and their Windows 10 OS. What this may signify is that now that Google has won the mobile OS market, they’re now going to go after the desktop OS market. Chrome OS is impressive, like most Linux distros, and brand-new ChromeBooks are priced to sell rapidly (in the United States they are $120 to $180, with quad-core CPUs).

 

Power and CPU Optimization: Sustained Performance Mode API

 

Google started focusing on Android device power consumption optimization via CPU and memory performance optimization back in Android 5.0, which I covered in my Android Apps for Absolute Beginners Third Edition (Apress, 2014). An even more advanced API dedicated to power saving and battery life optimization is in Android 7 Nougat. It is called the Sustained Performance Mode API, and gives developers a way to define when their app uses CPU, display and memory resources, which are the things that can potentially drain the device battery life.

 

The power optimization objective of the Sustained Performance Mode API in Android 7.x is to allow developers to identify their applications that need to use memory and processor cycles high rates of speed for long durations. This would include multimedia applications such as virtual reality (VR), augmented reality (AR), or interactive 3D (i3D) real-time rendered games. Using the Sustained Performance Mode API allows developers to specify the performance level that is sustainable for the duration of the application execution without monopolizing the device CPU, memory, and display (and therefore the battery life). According to Google, this new API should allow “OEMs to provide hints about device-performance capabilities for long-running apps. Application developers can use these hints to tune apps, for a predictable, consistent level of device performance, over long periods of time.”

 

Seamless Updates: Background Installation to Secondary Partition


 

Android 7 now features a seamless download, install, and update system for your Android OS. Instead of users being prompted and then required to download Android OS updates, then install them, and finally reboot, starting with Android 7.0, the OS will automatically


10CHAPTER 1: An Introduction to Android 7.0 Nougat

An Introduction to Android 7.0 Nougat

 

download and install its next revision on a secondary disk storage partition. When users subsequently reboot an Android device, the OS will switch partitions once a newer version is completely installed on the second (other) partition, and then you will have the latest Android OS revision. This saves users from having to spend device-use time going through a time-consuming Android OS update process.

 

The idea of automatically downloading Android versions in the background is not new, but with Android 7, it also installs the OS. That means users do not have to reboot their devices and waste device-usage time witnessing a lengthy installing-update dialog screen. With Seamless Update, once everything has been installed and users reboot, things will be

 

ready to use on the next startup. It is important to note that this is the same approach to OS updates that Google Chromebook OS utilizes, so the fusion of Android OS and Chrome OS continues to happen.

 

When an Android update is released by Google, the update is installed to a secondary partition. Once the device is restarted, the secondary partition becomes the primary partition, and the primary partition becomes the secondary. This approach will be supported by Android 7.0 and later hardware devices. This does not require consumer electronics device manufacturers to release updates any faster, unfortunately; it just means Android 7 will install an update in the background while Android end users are doing more important things with the device!

 

Multiple Concurrent Windows: Run Two Android Apps at Once

 

The first Android 7 feature to be officially confirmed was a multiple concurrent window mode, which is another feature addition that makes Android come closer to being used as a desktop computing and iTV set operating system. This is because desktop PCs now use HDTVs and UHDTVs as displays and because interactive TV set devices are one of these HD or UHD screens with a quad-core or octa-core computer inside of it.

 

Android 7.1.1 developers will need to add support for multiple concurrent window modes to their apps. Compatible apps will be able to be opened up side by side in Android 7 or later. Windows can be resized using slider UI elements. Users will be able to drag and drop content between multiple concurrent windows, and windows can be toggled into full-screen mode by dragging a UI slider to the edge of the window. Developers will also be able to specify a minimum initial window size for the app window.

 

Picture in a Picture: Watch Video or TV in an Android TV HD iTV Set

 

There is a new picture-in-a-picture (PIP) mode for Android TV that is similar to this same feature in Apple iOS 9. This works like a minimized video in YouTube, which is not surprising, as Google owns both Android TV and YouTube. The Android 7 picture-in-a-picture mode essentially allows an app to be positioned over the rest of the Android iTV OS user interface using an overlaid window, with no chrome (border). In an Android 7 overview, Google used an example of a video player app to show the picture-in-a-picture mode.


CHAPTER 1: An Introduction to Android 7.0 Nougat

11

An Introduction to Android 7.0 Nougat

 

This picture-in-a-picture capability is clearly targeted at HD and UHD iTV sets running Android TV; however, Google did indicate support for larger devices as well, so this could mean large tablets with HD and UHD (iTV set) capable resolutions should be able to leverage this new feature. It is interesting to see hardware devices conforming their screen resolutions with 16:9 and 16:10 widescreen aspect ratios, to support Blu-ray (1280 by 720), True HD (1920 by 1080) and Ultra HD (4096 or 3840 by 2160) video, television, and film content.

 

The reason for this is to prevent CPU and memory usage for pixel scaling, and most device (smartphone, tablet, iTV set, e-reader, game console and auto dashboard) screens will be one of these three pixel resolutions, going out into the future. Samsung has enabled PIP in the video player on their smartphones already, and Apple has done the same on the iPhone, so there’s no reason for Google to limit this PIP feature only to larger Android device hardware.

 

Change Display Density: Adjusting Pixel Per Inch (PPI) via Slider

 

Android 7 includes an ability to set different display densities, which will serve to zoom all elements on the screen in or out. This helps to help improve device accessibility for users with impaired vision. To access the new feature, go to Settings  Display  Display Size. Android 7.x allows you to change the display size on your device, also known as changing your display’s DPI (dots per inch) or PPI (pixels per inch) setting. Simply go to Settings  Display  Display Size and slide a slider, and this will change the perceived size of the onscreen content.

 

Google claims this feature will not require developers to make changes to the code in their apps; however, in user interface design developers need to select a DPI level (LDPI, MDPI, HDPI, XHDPI, etc.). To make sure there is enough resolution for Android to leverage for this new feature, Android developers should create higher DPI designs (HDPI, XHDPI, or XXHDPI) so that there is more data available to sample for scaling algorithms. This will allow Android OS to “render” the density-altered text and graphics, whether content is zoomed in (large), or zoomed out (small). Developers should test this feature to make sure it works properly within their application.

 

Keyboard Themes: Customize Onscreen Keyboard Using Skins

 

One of the most popular things to do since MP3 players were released decades ago is to “skin” or provide a custom user experience (background graphics and edge detail) for the user interface for a given application. The 5.1 version of Google Keyboard comes with theme (skins) customization features that developers (and users) that custom skin their apps are going to utilize. Now you can have thoroughly customizable keyboards and a selection of preconfigured themes to choose from.

 

After installing Google Keyboard 5.1, if it is not preinstalled already, users are presented with a menu option called “Themes.” Users can choose from several included layouts, but the real advantage here is that Google Keyboard 5.1 puts the pixels in the user’s control, to allow users to “skin” whatever style of keyboard they desire. This includes adding custom images to the background of the keyboard, and developers can access this feature as well to customize the keyboard look and feel to their application look and feel, or UX (User eXperience).


12CHAPTER 1: An Introduction to Android 7.0 Nougat

An Introduction to Android 7.0 Nougat

 

Enhanced Doze Mode: Control Android 7.0 Device Resting

 

States

 

Just like developers can manage power using the Sustained Performance API, so to can Android Users using the Enhanced Doze Mode. One of the favorite Android 6 features (Doze Mode) is vastly improved in Android 7. Android Doze features two levels for its power optimization system. The first level kicks in when the screen has been dark (off) for a while, whether your Android device is motionless (stationary) or not. This means users can enjoy the benefit of Enhanced Doze Mode anytime that the device is not in use, even when it is in your pocket, purse, briefcase, or backpack. Once the device screen has been off for a while, Enhanced Doze Mode will also shut down all network access, except for during certain occasional periods of activity, and will also schedule any processing during those brief windows of time. Note that this behavior will only go into effect if the device is on battery power, and will not kick in if the device is attached to an AC power charging source.

 

The second layer of Android 7.0 , Enhanced Doze Mode works like the Android 6 Doze Mode, but with significant improvements. When the device is laying still, the OS will enter a deep hibernation mode, deferring all network and other activity, except for during some wide (spaced-out) maintenance windows before slipping back to sleep. If the device remains stationary, after a while Android OS will place it into a deeper state Enhanced Doze Mode, which has no wake locks, defers alarms as well as data synchronization and processing jobs, and shuts down GPS services and Wi-Fi connection scanning. The deeper the doze mode, the further these windows of intermittent activity will be spaced out, allowing for more battery savings the less you move your device. If you are worried about the device dozing off too much, this is also not a problem, as once you activate the device screen, or plug the device in, the device will exit Enhanced Doze Mode altogether, until its criteria are met again.

 

OpenJDK: Moving Android Java from Oracle Java to OpenJDK

 

Google and Oracle have been in legal contention for several years regarding the use of Java in Android, since Oracle purchased Sun Microsystems to obtain Java (and the Solaris OS) and Google purchased Android, as you learned earlier in this chapter. Java 6 was utilized up until Android 6, which uses Java 7, while Android 7.x will use Java 8. To settle these legal contentions, Google plans to officially make the switch to OpenJDK in Android 7. OpenJDK code still belongs to Oracle, but OpenJDK is, as the name suggests, part of an open source JDK (Java Development Kit). Anticipation of an open source Java 8 development programming language move have been percolating for a quite a while now, as snippets of open source Java code have recently shown up as far back as Android 6.

 

Google confirmed all of these speculations in 2016 with the following statement: “As an open-source platform, Android is built upon the collaboration of the open-source community. In our upcoming release of Android, we plan to move Android’s Java language libraries to an OpenJDK-based approach, creating a common code base for developers to build apps and services. Google has long worked with and contributed to the OpenJDK community, and we look forward to making even more contributions to the OpenJDK project in the future.”

 

– A Google Corporate Spokesperson


CHAPTER 1: An Introduction to Android 7.0 Nougat

13

An Introduction to Android 7.0 Nougat

 

Note that in the next chapter you will still download and install the Oracle Java 8 SE JDK to be able to run IntelliJ IDEA and Android Studio with, but the Android packages we will be learning about in this book will be based upon the OpenJDK. What is the difference in the package code, you may wonder. From the end user’s standpoint, there will likely be little to no noticeable change in the Android OS user experience. It is developers who will likely have to adapt to the new

 

Java standard. Fortunately you will have never coded Android before, so you will start with the OpenJDK Android API and thus you will not be affected by any slight Java 8 API code changes.

 

The Data Plan Saver: Sync Only When Connected to a Wi-Fi Portal

 

Since networks charge you per unit of data transferred, it is important to optimize the data usage for your cellular data plan. Android 7 has a new Data Plan Saver feature that can help users take control of their data usage. When the data saver setting is enabled, it stops background data syncs from occurring, except when connected to Wi-Fi networks. Not only will this Data Plan Saver block data-expensive background activities from using up your data plan allowance, it will limit the amount of data that applications use in the foreground as well.

 

Users can create an “exception list” that highlights specific apps that users want to sync as usual, so that they can still make use of the Data Plan Saver feature. Android users have been able to specify cellular network data limits using their settings menu in previous OS revision, and now in Android 7, there is this additional feature that will let users take their data saving specifications even one step further.

 

The Future of Android: 3D, VR, AR, OpenGL, and Vulkan

 

Interactive 3D, or i3D, has been growing in popularity for over a decade now, due to the advent of 3D gaming consoles like the Nintendo Wii, Sony PlayStation, and Microsoft xBox. Vulkan is an i3D rendering API that manages multi-core GPUs in an efficient, highly optimized fashion, and will eventually replace OpenGL ES 3.2.

 

Khronos Vulkan: i3D Rendering Engine That Replaces OpenGL ES

 

Vulkan is a leading-edge i3D programming API being developed by industry experts for use in Android games and other i3D applications on other platforms such as HTML5 and Linux. Vulkan is being created (coded) by i3D experts from across the gaming and effects industry by working together through Khronos.org, which you can find at http://www.khronos.org, as you may have surmised. The Vulkan API is at: http://www.khronos.org/vulkan/ and was released a year ago, on February 16, 2016. Vulkan will be included in the Android 7.1.1 OS release later this year, and will be powered by the nVidia Tegra Parker chipset.

 

What the Vulkan API does is to provide common, low-level (direct) access to i3D processing (GPU) hardware on a wide range of operating systems and platforms. If you want to explore how to leverage the Vulkan API on Android 7 (and later), and learn all the latest Vulkan techniques, you can research NVIDIA developer information, as well as NVIDIA’s main Vulkan developer hub, at https://developer.nvidia.com/vulkan-android Do this because nVidia manufactures the powerful Tegra 3D processors, including the latest “Parker” chipset, used in more and more i3D and VR capable Android devices such as iTV sets and game consoles.


14CHAPTER 1: An Introduction to Android 7.0 Nougat

An Introduction to Android 7.0 Nougat

 

Vulkan for Android: Leading-Edge i3D Performance for Android 7.0

 

Vulkan for Android is unlike current Android graphics APIs, such as OpenGL ES 3.x, in that its processing engine does not perform certain application optimizations, such as graphics processing pipeline reuse, for instance. Android applications that use Vulkan must implement pipeline optimizations themselves. If they don’t, it is possible that they could

 

even implement worse performance than apps running OpenGL ES 3.2. For this reason, I am using OpenGL ES 3.x, and optimizing the assets that the engine renders to achieve a similar result to Vulkan.

 

When apps implement scheduling optimizations themselves, they have the potential to do so more successfully than the rendering engine can, because they have access to contextual usage information for any given rendering scenario. As a result, skillfully optimizing an

 

app that uses Vulkan could potentially yield better performance than if the app were using OpenGL ES. It is important to note that properly creating and optimizing the geometry and shader assets that are being rendered can often provide even greater performance enhancements. I cover this in my Android Studio New Media Fundamentals (Apress, 2015) title in greater detail.

 

For instance, one of the key rendering engine optimizations is to minimize the number of rendering “passes” or calls to the rendering engine on each frame of the game (i3D) or animation (3D). In general, the less calls, the less processing overhead is incurred.

 

Additionally, for embedded device GPU architectures starting and ending a rendering pass is a processor intensive undertaking. Android apps improve performance by organizing rendering operations into as few render passes as possible using well-formed Java 8 classes and methods, which we will be learning about in Chapter 5.

 

OpenGL ES for Android: Desktop i3D Performance for Android 7.0

 

OpenGL ES 3.2 was released around the same time as Vulkan and promises to bring more advanced in mobile graphics capabilities and quality by incorporating the Android Extension Pack (AEP) functionality into the core of OpenGL ES. The AEP was announced with the launch of Android 5, and added a set of i3D rendering technologies to Android OS using “extensions” to OpenGL ES 3.1. These have now been added “natively” to Android 7 OpenGL ES 3.2 API.

 

The introduction of OpenGL ES 3.2 builds on a previous release, to add 3D graphics functionality making full use of mobile, iTV set, and automotive dashboard hardware. OpenGL ES 3.2 has a number of improvements over OpenGL ES 3.1. OpenGL ES 3.2 compliant hardware supports Tessellation, which adds 3D geometry detail. It includes new geometry shaders, ASTC texture compression for an optimized memory footprint, floating-point rendering for high-accuracy compute processing, and enhanced debugging features. These high-end features are already found in Khronos Group’s OpenGL 4.0 specification. High-quality special effects are also a part of OpenGL ES 3.2, including deferred rendering, physically based shaders, HDR tone mapping, Global Illumination, and reflections. These features will bring desktop-quality graphics to Android 7 devices running OpenGL ES 3.2.


CHAPTER 1: An Introduction to Android 7.0 Nougat

15

An Introduction to Android 7.0 Nougat

 

Summary

 

In this first chapter, you learned about Android 7, including its history, advantages to developers, and its major new features. I outlined what we will, and will not, be covering during over the course of this absolute beginners title. In the next chapter, you’ll learn exactly how to download, install, and set up an Android 7.1.1 application development workstation, and how to configure it for use for Android 7.x application and content development.

,

An Introduction to Android 7.0 Nougat

 

 

 

These days, you will see Android OS powered devices of every size and shape everywhere you look. They can be worn on your person, thanks to Android WEAR; used in an appliance, thanks to Android TV; and they are a part of your car, thanks to Android AUTO. Android devices will provide you entertainment in your living room taking the form of your iTV set; help you learn at school using a tablet; inform you in bed using an e-book reader; or excite you on the couch using an Android game console, such as the OUYA, the Razer Forge, or the nVidia Shield.

 

In this chapter, we will explore some basic history regarding Google’s Android operating system (OS), to give you a high-level overview of the history of Android. We will look at the benefits of learning Android application development, and which open source programming languages and OSs Android is based upon. We will look at the percentage distribution amongst the different Android versions, and the new features in Android 7.0 Nougat.

 

The History of the Android OS: An Impressive Growth

 

The Android OS was originally created by Andy Rubin to be an OS for mobile phones. This happened around the dawn of the 21st century. In July of 2005, Google acquired Android and made Andy Rubin the Senior Vice President of Mobile Platforms for Google, where he remained until November of 2014. Many feel this acquisition of Android OS by Google was largely in response to the appearance of Apple’s iPhone around that same time. However, there were enough other large players, such as RIM Blackberry, Nokia Symbian, and Microsoft Windows Mobile, that it was deemed to be a savvy business decision for Google to purchase the engineering talent of Android Incorporated along with its Android OS intellectual property. This allowed Google to insert their Internet search engine company into the emerging mobile market, which many now refer to as Internet 2.0.


 

 

 

© Wallace Jackson 2017

1

W. Jackson, Android Apps for Absolute Beginners, DOI 10.1007/978-1-4842-2268-3_1

 


2CHAPTER 1: An Introduction to Android 7.0 Nougat

An Introduction to Android 7.0 Nougat

 

Internet 2.0, or the Mobile Internet, allows users of consumer electronic products to access content via widely varied data networks, using portable consumer electronic devices. These currently include tablets, smartphones, phablets (a phone-tablet hybrid), game consoles, smartwatches, smartglasses, personal robots, drones, cameras, and e-book e-readers. These days, Android OS–based devices will also include those not-so-portable consumer electronics devices such as iTV sets, home media centers, automobile dashboards, automobile stereos, music players, home appliances, home control installations, and digital signage system set-top boxes.

 

This ever-growing Android phenomenon puts new media content such as games, 3D animation, interactive television, digital video, digital audio, e-books, and high-definition imagery into our lives at every turn. Android is one of those popular open source vehicles (others being HTML5 and JavaFX) that digital artists will increasingly leverage in order to be able to develop new media creations that their end users have never before experienced. Over the past decade, Android has matured and evolved, to become a stable, exceptionally reliable, embedded open source OS. An Android OS that started out with its initial version just a decade ago, once acquired by Google, has released stable OS versions 1.5, 1.6, 2.0, 2.1, 2.2, 2.37, 3.0, 3.1, 3.2, 3.3, 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.1, and 6.0.

 

As of the writing of this book, Android 7.1.1 is in beta, with a projected release in Q1 of 2017. Android 7.1.1 should show up in 64-bit Android devices in 2017 and 2018. If you want to see the latest statistics regarding each of the previous Android OS revisions, directly from the Android developer website, you should visit this URL:

 

http://developer.android.com/about/dashboards/index.html

 

Table 1-1 shows this progression of all the popular versions of Android OS that have been installed on popular embedded OS consumer electronics products over the past decade. I wanted to collect all of this Android OS information together into one single infographic for you, so that you could get a “bird’s eye view” of the current historic progression of the Android OS. As you can see, there are certain Android market share “sweet spots.” In case you’re wondering what an embedded OS is, it’s like having an entire personal computer on

 

a motherboard that’s small enough to fit in a handheld device, and which is powerful enough to run applications, or “apps.”


 

 

CHAPTER 1: An Introduction to Android 7.0 Nougat

3

Table 1-1.  Released Android OS Versions, Their Internal OS Names, API Levels, and Current Market Share

 

 

 

 

 

 

VERSION

CODENAME

API LEVEL

MARKET SHARE

 

 

 

 

 

 

1.5

Cupcake

3

Less than 0.1%

 

1.6

Donut

4

Less than 0.1%

 

2.0, 2.1

Eclair

5, 6, 7

Less than 0.1%

 

2.2

Froyo

8

Less than 0.1%

 

2.3.7

Gingerbread

9, 10

2.0% (Kindle Fire)

 

3.0, 3.1, 3.2

Honeycomb

11, 12, 13

Less than 0.1%

 

4.0, 4.0.4

Ice Cream Sandwich

14, 15

1.0%

 

4.1.2

Jelly Bean

16

6.8%

 

4.2.2

Jelly Bean Plus

17

9.4%

 

4.3.1

Jelly Bean Plus

18

2.7%

 

4.4.4, 4.4W

Kit Kat

19, 20

31.6%

 

5.0

Lollipop

21

15.4%

 

5.1

Lollipop

22

20.0%

 

6.0

Marshmallow

23

10.1%

 

7.0 and 7.1.1

Nougat

24 and 25

Less than 0.1% (so far)

 

 

 

 

 

 

An Introduction to Android 7.0 Nougat

Just like today’s personal computers and laptops, the Internet 2.0 devices, such as smartphones, tablets, e-readers, smartwatches, and iTV sets, now feature quad-core

 

(4 CPU) and even octa-core (8 CPU) computer processing power, as well as two gigabytes of system memory. This is approaching the power of a modern-day PC, such as the workstation you are going to set up during the next chapter of this book, which you can get for $500 at Walmart. Mini-tower PCs feature octa-core 64-bit processors along with 6GB or 8GB of system memory, and a 750GB (or larger) hard disk drive with Windows 10,

 

Fedora 24, or Ubuntu Mate 17.04.

 

The Android OS contains the power of a complete computer OS. It is based on the Linux Kernel open source platform, and Oracle (formerly Sun Microsystems) Java 8 Standard Edition, one of the world’s most popular programming languages. Android 5 and 6 also use a 64-bit Linux Kernel, along with the Java 7 Standard Edition.

An Introduction to Android 7.0 NougatAn Introduction to Android 7.0 NougatAn Introduction to Android 7.0 NougatAn Introduction to Android 7.0 Nougat

 

Note  This term open source refers to software that has been developed collaboratively, usually by an open community of individuals, and is freely available for commercial use (or non-commercial use). Open source software also comes with all the source code, so that it can be further modified, if necessary. The Android OS is open source, though Google develops it internally before releasing the source code. From that point on, the source code is freely available for commercial use by software developers.


4CHAPTER 1: An Introduction to Android 7.0 Nougat

An Introduction to Android 7.0 Nougat

 

It’s not uncommon for an Android device to have a 2.4GHz processor and 2GB of fast, computer-grade DDR3 memory. This rivals desktop computers of just a few years ago, and notebooks that are still currently available. You will continue to see this convergence of Internet 2.0 (mobile device) OSs with desktop OSs, such as we are seeing with Windows 10 and Windows Mobile, and with Chrome OS and Opera OS currently, as time goes on.

 

Once it became evident that Java, the Android OS, and open source software platforms were vanguard forces to be reckoned with, a bunch of the popular consumer electronics manufacturers, including Philips, Sony, HTC, Samsung, LG Electronics, and others, formed and then joined the Open Handset Alliance (OHA). This was all done in order to put the momentum behind Google’s open source Android platform, and it worked! Today, hundreds of leading branded consumer electronics manufacturers leverage Android as an OS on their consumer electronic devices. In fact, Android OS is used more than any other OS that has ever existed on the planet.

 

This development of the OHA is a significant benefit to Android developers. Android allows developers to create their applications using a single IDE, or integrated development environment, and now this support by the OHA enables developers to deliver their content across dozens of major branded manufacturers’ hardware products, as well as across several different types of consumer electronic devices, including smartphones, iTV sets, e-book readers, smartwatches, game consoles, home media centers, set-top boxes, and touchscreen tablets. The Android OS affords developers a plethora of powerful content delivery tools and device playback possibilities, to say the least! You have realized this, as you are reading this book right now, so you can get in on all this power!

 

In summary, Android is a seasoned OS that has become one of the biggest players in computing today, and with Google behind it. Android uses freely available open source technologies, such as the Linux Kernel, Java SE 8, and open standards such as XML, CSS3, MPEG-4, JPEG, PNG, MP3, OGG Vorbis, FLAC, SVG, WebM, WebP, OpenGL 3.2, WebKit, Vulkan, and HTML5. Android incorporates all of these open source resources, so that it can provide the free new media content and application delivery platform to Android developers, and an OS platform to consumer electronics manufacturers. Can you spell OPPORTUNITY? I sure can! It’s spelled: A-N-D-R-O-I-D!

 

Advantage Android 7.0: How Can Android Benefit Me?

 

There are simply too many benefits for the Android OS development platform to ignore your Android applications development workflow, and environment, for even one minute longer. We are going to get you set up with all of the latest IDE’s, new media apps, programming languages, and Android OS SDKs and components during the next chapter, so that you will have an extremely valuable Android 7.1.1 multimedia content development workstation.

 

That’s great, but how can Android benefit me, you might be thinking? First of all, Android is based upon open source technology, and it’s free for commercial development use, with no up-front costs and no on-going royalties. Android, at its inception, was not as refined as expensive paid technologies from Apple, Adobe, and Microsoft.

 

During the past several decades, open source software technology has become equally as sophisticated as conventional paid software technologies. You will see this during this book as you work with your professional-level Android Studio 2.3 (IntelliJ) IDEA and the new media


CHAPTER 1: An Introduction to Android 7.0 Nougat

5

An Introduction to Android 7.0 Nougat

 

content software that you’ll be acquiring (for free) during the next chapter, when we put together an Android Studio content development workstation, 100% from scratch.

 

The increasing adoption of open source technology over paid software is clearly evident with Internet 2.0, as the majority of the consumer electronics manufacturers have chosen Android and HTML5, based on a Linux Kernel and using Java, JavaFX, and JavaScript, over Windows 10, Windows Mobile, iOS, and Macintosh OS/X OSes.

 

For this key reason, Android developers can develop applications not only for their smartphones, but also for new and emerging consumer electronics device ecosystems, which include never-before-seen products such as smartglasses and smartwatches, or UHD (4K, or IMAX) iTV sets, which are network compatible and available to connect to the Google Android (Play) Marketplace. The Android App Marketplace was rebranded by Google as Google Play, due to legal action brought by Apple Computer over what Google calls their Android application storefront.

 

The free natur   



相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号