What is android technology all about

Introducing Android 11.

Meet the OS that’s optimised for how you use your phone. Helping you to manage conversations. And organising your day. With even more tools and privacy controls that put you in charge.

Stay protected and in control.

Google Play Protect, regular security updates and control over how your data is shared. We’re dedicated to securing Android’s 2.5 billion+ active devices every day and keeping information private.

Make the world accessible.

Screen readers, speech-to-text and some of the newest ways to experience the world your way.

Devices for everything and everyone.

Choices for work, gaming, 5G streaming and anything else. There are over 24,000 phones and tablets that run on Android globally. So no matter what you’re looking for, there’s something for you.

Discover Android (Go edition).

A powerful experience for entry-level smartphones. Built with new apps that expand what’s possible.

Drive with Android Auto.

Hands-free navigation and messaging. Just connect your phone and go.

Android for developers.

Find the latest documentation, codelab tutorials and early previews.

Android for business.

Browse recommended devices, explore resources and check out the latest white papers.

Read up on the latest.

The newest OS updates. The biggest announcements. The most recent platform news. If it’s new in the world of Android, you can find it here.

Источник

What is Android: Introduction, Features & Applications

Dec 7, 2017 · 8 min read

Android is an operating system for mobile phones that is based on the modified version of the Li n ux.Originally Android was developed by the Android Inc.In 2005, Google purchased the Android and took its development work and also its development team.Google wished that Android to be free and open source that can run on any kind of devices such as mobile phones, tablets and even televisions.Android is open source software that contains the operation system, middleware, and key applications.Android provides the open source facility means anyone can download the code and can modified that code and can use that code easily.

Why use Android? : When we moved to one new technology from older technology, then one question occur in our mind that why we use it. Now we are using Android to achieve the following objectives:

§ Market sharing: In the current era, there are lots of android users. Using android development, we can develop our own application and we can publish that application on Google Play.

§ Android provides the application programming interface (API) to develop the android application. Using this API, we can develop full featured application and after completion this app, we can publish this app on Google play and can earn some money.

§ Open Platform: Android provides the open platform facility. Android application can be developed using any kind of operating system.

§ Compatibility: Android provides cross-platform means android application can run on any type screen, size and resolutions including mobile phones, tablets etc. Google provides the facility to run the application only on the compatible devices such as mobile phones or tablets.

§ Geo-location and social networking: Using android application, users are able to share their location via social networking such as Facebook or Twitter.

Advantage of Android:

§ Android provides the unified approach to develop the android application. It means developers need to develop only Android and then application can run on different devices powered by Android.

§ Android is open source means anyone can download the code and can customize according to their need.

The biggest advantage of android is that when we want to check email and at this time, there is no laptop or computer but we have android phone then using the android phone, we can check the emails.

Features of Android:

§ Android provides the various features such as live RSS (Really Simple Syndication) feeds, whether details etc.

§ Android provides the facility for push notifications, GPS, storage facility using SQLite.

§ Android provides the connectivity such as Bluetooth, Wi-Fi, GSM, CDMA, LTE, Wi-Max, NFC etc.

§ Android provides the messaging facilities such as SMS, MMS.

§ Android provides the web browser that uses open-source layout web-kit engine and it is coupled with Google Chrome and support HTML5 and CSS3.

Android version 1.0 (API level — 1)

Android version 1.1 Petit Four (API level — 2)

February 9, 2009

Android version 1.5 Cupcake (API level — 3)

Android version 1.6 Donut (API level — 4)

September 15, 2009

Android version 2.0 Éclair (API level — 5)

October 26, 2009

Android version 2.0.1 Éclair (API level — 6)

December 3, 2009

Android version 2.1.7 Éclair (API level — 7)

January 12, 2010

Android version 2.1.7 Éclair (API level — 7)

January 12, 2010

Android version 2.2 Froyo (API level — 8)

Android version 2.2.1 Froyo (API level — 8)

January 18, 2011

Android version 2.2.2 Froyo (API level — 8)

January 22, 2011

Android version 2.2.3 Froyo (API level — 8)

November 21, 2011

Android version 2.3 Gingerbread (API level — 9)

Читайте также:  Построение натяжных потолков для андроид

December 6, 2010

Android version 2.3.1 Gingerbread (API level — 9)

December 10, 2010

Android version 2.3.2 Gingerbread (API level — 9)

Android version 2.3.3 Gingerbread (API level — 10)

February 9, 2011

Android version 2.3.4 Gingerbread (API level — 10)

Android version 2.3.5 Gingerbread (API level — 10)

Android version 2.3.6 Gingerbread (API level — 10)

September 2, 2011

Android version 2.3.7 Gingerbread (API level — 10)

September 21, 2011

Android version 3.0 Honeycomb(API level — 11)

February 22, 2011

Android version 3.1 Honeycomb(API level — 12)

Android version 3.2 Honeycomb(API level — 13)

Android version 3.2.1 Honeycomb(API level — 13)

September 20, 2011

Android version 3.2.2 Honeycomb(API level — 13)

Android version 4.0 Ice Cream Sandwich(API level — 14)

October 18, 2011

Android version 4.0.1 Ice Cream Sandwich(API level — 14)

November 28, 2011

Android version 4.0.3 Ice Cream Sandwich(API level — 15)

December 16, 2011

Android version 4.0.4 Ice Cream Sandwich(API level — 15)

Android version 4.1 Jelly Bean(API level — 16)

Android version 4.1.1 Jelly Bean(API level — 16)

Android version 4.1.2 Jelly Bean(API level — 16)

Android version 4.2 Jelly Bean(API level — 17)

November 13, 2012

Android version 4.3 Jelly Bean(API level — 18)

Android version 4.4 Kitkat(API level — 19)

October 19, 2013

Android version 4.4.1 Kitkat(API level — 19)

December 5, 2013

Android version 4.4.2 Kitkat(API level — 19)

December 9, 2013

Android version 4.4.3 Kitkat(API level — 19)

Android version 4.4W Kitkat(API level — 20)

Android version 5.0 Lollipop(API level — 21)

November 12, 2014

Android version 5.0.1 Lollipop(API level — 21)

December 2, 2014

Android version 5.0.2 Lollipop(API level — 21)

December 21, 2014

Android version 5.1 Lollipop(API level — 22)

Android version 5.1.1Lollipop(API level — 22)

Android version 6.0 Marshmallow(API level — 23)

Android version 6.0.1 Marshmallow(API level — 23)

December 7, 2015

Android version 7.0 Nougat(API level — 24)

December 7, 2015

Android Framework or Android architecture:Android operating system composed of different software components that are arranged into a stack. The following diagram shows the android architecture:

Android architecture is categorized into following components:

Tools required Android development: Now we are ready to start android application development using the various operating systems such as Windows, Linux, Macs.

Operating System: Android supports following platforms:

· Windows XP or later

· Mac OS X 10.5.8 or later

Computer Hardware: Before we start installing the required software. First we have to check the following hardware requirement:

· A laptop with 1.6GHz processor with at least 1GB RAM

Installing and configuring tools: We have to install the following tools:

· Java JDK 1.5 or later

· Eclipse IDE or Android Studio

Developing and publishing first application in Eclipse:

· Now we are ready to develop our first android application in Eclipse. First we create a simple “Hello Android” application. To develop this project, there is no need of coding.

· Now we create the first android application.

· Now select File => New => Android Application Projectshown in following diagram and click on Android Application Project.

· When we click on this then a dialog box will open and you have to fill all the details and click on Next and click on Finish button then you will show the following window:

To run the application, we need an emulator called AVD.AVD is a virtual Android device which is able to perform such operation like walk, talks, and act like a physical Android device.To configure the AVD to run any version of Android, the SDK must be downloaded and installed.

How to run Android Application: To run the android application, we have to follow some steps:

· Right click on our project in Project explorer.

· Now select Run As => Android Application

· When we click on Android Application then compilation process starts and some processes like building workspace takes place and after some time, AVD launch the application and starts the application and display the main activity of the application.

· If we have more than one activity then we can change the order of activity means we can run any activity when application will launch.

What is Android activity? :

An activity is a screen in the android application that provides the user interface for the application.An activity provides the user interface to the application.An activity is similar to a GUI form or java swing frame.An activity can present the several user interface components such as label, button, spinner (combo-box), list etc.An activity provides the user interface by which user can perform action to do something such as user wants to select the subject from the spinner, then this work can be easily done.

Creating Android Activity: We have already develop an android project. In that project, we have created an activity called MainActivity. Now we have to open the MainActivity.java file as follows:

public class MainActivity extends Activity

/** Called when the activity is first created. */

public void onCreate(Bundle savedInstanceState)

In our application, the entry point is onCreate() method. When any activity is created then the android system provides the default implementation code to the onCreate() method. Here we can define our own custom code to perform the specific actions. We can write the code below the setContent(R.layout.activity_main); Always remember we have to call the following method inside the onCreate() method.

This line is very important to run the application because this line is responsible to direct the base Activity class to build the work for the MainActivity class. If we don’t use this line then we get runtime error.

Читайте также:  Как дать права суперпользователя андроид

Android Toast: In android, toast is like a notification or like a simple popup message that appears on the screen and disappears automatically after some time.For example, when we send any message to anyone then one message shown to us “Message Sent” and this message disappears after some seconds; it is known as toast.

How to create Toast? :

You can create toast using following syntax:

Context context = getApplicationContext();

CharSequence text = “Hello eitworld”;

Источник

Как работает Android, часть 1

В этой серии статей я расскажу о внутреннем устройстве Android — о процессе загрузки, о содержимом файловой системы, о Binder и Android Runtime, о том, из чего состоят, как устанавливаются, запускаются, работают и взаимодействуют между собой приложения, об Android Framework, и о том, как в Android обеспечивается безопасность.

Немного фактов

Android — самая популярная операционная система и платформа для приложений, насчитывающая больше двух миллиардов активных пользователей. На ней работают совершенно разные устройства, от «интернета вещей» и умных часов до телевизоров, ноутбуков и автомобилей, но чаще всего Android используют на смартфонах и планшетах.

Android — свободный и открытый проект. Большинство исходного кода (который можно найти на https://source.android.com) распространяется под свободной лицензией Apache 2.0.

Компания Android Inc. была основана в 2003 году и в 2005 году куплена Google. Публичная бета Android вышла в 2007 году, а первая стабильная версия — в 2008, с тех пор мажорные релизы выходят примерно раз в год. Последняя на момент написания стабильная версия Android — 7.1.2 Nougat.

Android is Linux

По поводу такой формулировки было много споров, так что сразу поясню, что именно я имею в виду под этой фразой: Android основан на ядре Linux, но значительно отличается от большинства других Linux-систем.

Среди исходной команды разработчиков Android был Robert Love, один из самых известных разработчиков ядра Linux, да и сейчас компания Google остаётся одним из самых активных контрибьюторов в ядро, поэтому неудивительно, что Android построен на основе Linux.

Как и в других Linux-системах, ядро Linux обеспечивает такие низкоуровневые вещи, как управление памятью, защиту данных, поддержку мультипроцессности и многопоточности. Но — за несколькими исключениями — вы не найдёте в Android других привычных компонентов GNU/Linux-систем: здесь нет ничего от проекта GNU, не используется X.Org, ни даже systemd. Все эти компоненты заменены аналогами, более приспособленными для использования в условиях ограниченной памяти, низкой скорости процессора и минимального потребления энергии — таким образом, Android больше похож на встраиваемую (embedded) Linux-систему, чем на GNU/Linux.

Другая причина того, что в Android не используется софт от GNU — известная политика «no GPL in userspace»:

We are sometimes asked why Apache Software License 2.0 is the preferred license for Android. For userspace (that is, non-kernel) software, we do in fact prefer ASL 2.0 (and similar licenses like BSD, MIT, etc.) over other licenses such as LGPL.

Android is about freedom and choice. The purpose of Android is promote openness in the mobile world, and we don’t believe it’s possible to predict or dictate all the uses to which people will want to put our software. So, while we encourage everyone to make devices that are open and modifiable, we don’t believe it is our place to force them to do so. Using LGPL libraries would often force them to do just that.

Само ядро Linux в Android тоже немного модифицировано: было добавлено несколько небольших компонентов, в том числе ashmem (anonymous shared memory), Binder driver (часть большого и важного фреймворка Binder, о котором я расскажу ниже), wakelocks (управление спящим режимом) и low memory killer. Исходно они представляли собой патчи к ядру, но их код был довольно быстро добавлен назад в upstream-ядро. Тем не менее, вы не найдёте их в «обычном линуксе»: большинство других дистрибутивов отключают эти компоненты при сборке.

В качестве libc (стандартной библиотеки языка C) в Android используется не GNU C library (glibc), а собственная минималистичная реализация под названием bionic, оптимизированная для встраиваемых (embedded) систем — она значительно быстрее, меньше и менее требовательна к памяти, чем glibc, которая обросла множеством слоёв совместимости.

В Android есть оболочка командной строки (shell) и множество стандартных для Unix-подобных систем команд/программ. Во встраиваемых системах для этого обычно используется пакет Busybox, реализующий функциональность многих команд в одном исполняемом файле; в Android используется его аналог под названием Toybox. Как и в «обычных» дистрибутивах Linux (и в отличие от встраиваемых систем), основным способом взаимодействия с системой является графический интерфейс, а не командная строка. Тем не менее, «добраться» до командной строки очень просто — достаточно запустить приложение-эмулятор терминала. По умолчанию он обычно не установлен, но его легко, например, скачать из Play Store (Terminal Emulator for Android, Material Terminal, Termux). Во многих «продвинутых» дистрибутивах Android — таких, как LineageOS (бывший CyanogenMod) — эмулятор терминала предустановлен.

Второй вариант — подключиться к Android-устройству с компьютера через Android Debug Bridge (adb). Это очень похоже на подключение через SSH:

Из других знакомых компонентов в Android используются библиотека FreeType (для отображения текста), графические API OpenGL ES, EGL и Vulkan, а также легковесная СУБД SQLite.

Кроме того, раньше для реализации WebView использовался браузерный движок WebKit, но начиная с версии 7.0 вместо этого используется установленное приложение Chrome (или другое; список приложений, которым разрешено выступать в качестве WebView provider, конфигурируется на этапе компиляции системы). Внутри себя Chrome тоже использует основанный на WebKit движок Blink, но в отличие от системной библиотеки, Chrome обновляется через Play Store — таким образом, все приложения, использующие WebView, автоматически получают последние улучшения и исправления уязвимостей.

Читайте также:  Значки андроид вверху справа

It’s all about apps

Как легко заметить, использование Android принципиально отличается от использования «обычного Linux» — вам не нужно открывать и закрывать приложения, вы просто переключаетесь между ними, как будто все приложения запущены всегда. Действительно, одна из уникальных особенностей Android — в том, что приложения не контролируют напрямую процесс, в котором они запущены. Давайте поговорим об этом подробнее.

Основная единица в Unix-подобных системах — процесс. И низкоуровневые системные сервисы, и отдельные команды в shell’е, и графические приложения — это процессы. В большинстве случаев процесс представляет собой чёрный ящик для остальной системы — другие компоненты системы не знают и не заботятся о его состоянии. Процесс начинает выполняться с вызова функции main() (на самом деле _start ), и дальше реализует какую-то свою логику, взаимодействуя с остальной системой через системные вызовы и простейшее межпроцессное общение (IPC).

Поскольку Android тоже Unix-подобен, всё это верно и для него, но в то время как низкоуровневые части — на уровне Unix — оперируют понятием процесса, на более высоком уровне — уровне Android Framework — основной единицей является приложение. Приложение — не чёрный ящик: оно состоит из отдельных компонентов, хорошо известных остальной системе.

У приложений Android нет функции main() , нет одной точки входа. Вообще, Android максимально абстрагирует понятие приложение запущено как от пользователя, так и от разработчика. Конечно, процесс приложения нужно запускать и останавливать, но Android делает это автоматически (подробнее я расскажу об этом в следующих статьях). Разработчику предлагается реализовать несколько отдельных компонентов, каждый из которых обладает своим собственным жизненным циклом.

In Android, however, we explicitly decided we were not going to have a main() function, because we needed to give the platform more control over how an app runs. In particular, we wanted to build a system where the user never needed to think about starting and stopping apps, but rather the system took care of this for them… so the system had to have some more information about what is going on inside of each app, and be able to launch apps in various well-defined ways whenever it is needed even if it currently isn’t running.

Для реализации такой системы нужно, чтобы приложения имели возможность общатся друг с другом и с системными сервисами — другими словами, нужен очень продвинутый и быстрый механизм IPC.

Этот механизм — Binder.

Binder

Binder — это платформа для быстрого, удобного и объектно-ориентированного межпроцессного взаимодействия.

Разработка Binder началась в Be Inc. (для BeOS), затем он был портирован на Linux и открыт. Основной разработчик Binder, Dianne Hackborn, была и остаётся одним из основных разработчиков Android. За время разработки Android Binder был полностью переписан.

Binder работает не поверх System V IPC (которое даже не поддерживается в bionic), а использует свой небольшой модуль ядра, взаимодействие с которым из userspace происходит через системные вызовы (в основном ioctl ) на «виртуальном устройстве» /dev/binder . Со стороны userspace низкоуровневая работа с Binder, в том числе взаимодействие с /dev/binder и marshalling/unmarshalling данных, реализована в библиотеке libbinder.

Низкоуровневые части Binder оперируют в терминах объектов, которые могут пересылаться между процессами. При этом используется подсчёт ссылок (reference-counting) для автоматического освобождения неиспользуемых общих ресурсов и уведомление о завершении удалённого процесса (link-to-death) для освобождения ресурсов внутри процесса.

Высокоуровневые части Binder работают в терминах интерфейсов, сервисов и прокси-объектов. Описание интерфейса, предоставляемого программой другим программам, записывается на специальном языке AIDL (Android Interface Definition Language), внешне очень похожем на объявление интерфейсов в Java. По этому описанию автоматически генерируется настоящий Java-интерфейс, который потом может использоваться и клиентами, и самим сервисом. Кроме того, по .aidl -файлу автоматически генерируются два специальных класса: Proxy (для использования со стороны клиента) и Stub (со стороны сервиса), реализующие этот интерфейс.

Для Java-кода в процессе-клиенте прокси-объект выглядит как обычный Java-объект, который реализует наш интерфейс, и этот код может просто вызывать его методы. При этом сгенерированная реализация прокси-объекта автоматически сериализует переданные аргументы, общается с процессом-сервисом через libbinder, десериализует переданный назад результат вызова и возвращает его из Java-метода.

Stub работает наоборот: он принимает входящие вызовы через libbinder, десериализует аргументы, вызывает абстрактную реализацию метода, сериализует возвращаемое значение и передаёт его процессу-клиенту. Соответственно, для реализации сервиса программисту достаточно реализовать абстрактные методы в унаследованном от Stub классе.

Такая реализация Binder на уровне Java позволяет большинству кода использовать прокси-объект, вообще не задумываясь о том, что его функциональность реализована в другом процессе. Для обеспечения полной прозрачности Binder поддерживает вложенные и рекурсивные межпроцессные вызовы. Более того, использование Binder со стороны клиента выглядит совершенно одинаково, независимо от того, расположена ли реализация используемого сервиса в том же или в отдельном процессе.

Для того, чтобы разные процессы могли «найти» сервисы друг друга, в Android есть специальный сервис ServiceManager, который хранит, регистрирует и выдаёт токены всех остальных сервисов.

Binder широко используется в Android для реализации системных сервисов (например, пакетного менеджера и буфера обмена), но детали этого скрыты от разработчика приложений высокоуровневыми классами в Android Framework, такими как Activity, Intent и Context. Приложения могут также использовать Binder для предоставления друг другу собственных сервисов — например, приложение Google Play Services вообще не имеет собственного графического интерфейса для пользователя, но предоставляет разработчикам других приложений возможность пользоваться сервисами Google Play.

Подробнее про Binder можно узнать по этим ссылкам:

В следующей статье я расскажу о некоторых идеях, на которых построены высокоуровневые части Android, о нескольких его предшественниках и о базовых механизмах обеспечения безопасности.

Источник

Оцените статью