Samsung Galaxy Tab 10.1 Case Overview
Samsung Galaxy Tab 10.1 Case Overview
Android is a mobile operating system that is based on a modified version of Linux. It was
originally developed by a startup of the same name, Android, Inc. In 2005, as part of its
strategy to enter the mobile space, Google purchased Android and took over its development
work (as well as its development team).
Google wanted Android to be open and free; hence, most of the Android code was released
under the open-source Apache License, which means that anyone who wants to use Android
can do so by downloading the full Android source code. Moreover, vendors (typically
hardware manufacturers) can add their own proprietary extensions to Android and customize
Android to differentiate their products from others. This simple development model makes
Android very attractive and has thus piqued the interest of many vendors.
The main advantage of adopting Android is that it offers a unified approach to application
development. Developers need only develop for Android, and their applications should be
able to run on numerous different devices, as long as the devices are powered using Android.
In the world of smartphones, applications are the most important part of the success chain.
Features of Android
As Android is open source and freely available to manufacturers for customization, there are
no fixed hardware and software configurations. However, Android itself supports the
following features:
Web browser — Based on the open-source WebKit, together with Chrome’s V8 JavaScript
engine supporting HTML5 and CSS3.
Media support — Includes support for the following media: H.263, H.264 (in 3GP or MP4
container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or
3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP
Beautiful UI - Android OS basic screen provides a beautiful and intuitive user interface.
Resizable widgets - Widgets are resizable, so users can expand them to show more content or
shrink them to save space
GCM - Google Cloud Messaging (GCM) is a service that let developers send short message
data to their users on Android devices, without needing a proprietary sync solution.
Wi-Fi Direct - A technology that let apps discover and pair directly, over a high-bandwidth
peer-to-peer connection.
Android Beam - A popular NFC-based technology that let users instantly share, just by
touching two NFC-enabled phones together.
The following names are used for the currently existing Android releases. Note that versions
1.0 and 1.1 were not publicly named. However, Android 1.1 was internally referred to as
"Petit-Four"
These are the two Mobile Operating Systems used primarily in mobile technology, such as
smartphones and tablets. Android, which is Linux-bases and partly open source, is more
PC-like than IOS, in that its interface and basic features are generally more customizable
from top to bottom. However, IOS’ uniform design elements are sometimes seen as being
more user-friendly. Switching from IOS to Android or vice versa will require you to buy apps
again. Android is now the words most commonly used Smartphone platform and is used by
many different phone manufacturers. iOS is only used on Apple devices such as the iPhone.
Android iOS
Available on Many phones and tablets. Major iPod Touch, iPhone, iPad, Apple
manufacturers are Samsung, TV (2nd and 3rd generation)
Motorola, LG, HTC and Sony..
Nexus and Pixel line of devices is
pure Android, others bundle
manufacturer software.
Calls and messaging Google Hangouts. 3rd party apps iMessage, FaceTime (with other
like Facebook Messenger, Apple devices only). 3rd party apps
WhatsApp, Google Duo and like Google Hangouts, Facebook
Skype all work on Android and Messenger, WhatsApp, Google
iOS both. Duo and Skype all work on
Android and iOS both.
App store , Google Play – 1,000,000+ apps. Apple app store – 1,000,000+ apps
Affordability and Other app stores like Amazon
interface and Getjar also distribute
Android apps.
Video chat Google Duo and other 3rd party FaceTime (Apple devices only) and
apps other 3rd party apps
Alternative app stores Several alternative app stores Apple blocks 3rd party app stores.
and side loading other than the official Google The phone needs to be jailbroken if
Play Store. (e.g. Aptoide, Galaxy you want to download apps from
Apps) other stores.
Battery life and Many Android phone Apple batteries are generally not as
management manufacturers equip their devices big as the largest Android batteries.
with large batteries with a longer However, Apple is able to squeeze
life. decent battery life via
hardware/software optimizations.
Open source Kernel, UI, and some standard The iOS kernel is not open source
apps but is based on the open-source
Darwin OS.
Photos & Videos Apps available for automatic Up to 5 GB of photos and videos
backup backup of photos and videos. can be automatically back up with
Google Photos allows unlimited iCloud. All other vendors like
backup of photos. OneDrive, Google, Amazon, Dropbox, Flickr
Amazon Photos and Dropbox are and Microsoft have auto-backup
other alternatives. apps for both iOS and Android.
Security Android software patches are Most people will never encounter a
available soonest to Nexus device problem with malware because they
users. Manufacturers tend to lag don’t go outside the Play Store for
behind in pushing out these apps. Apple's software updates
updates. So at any given time a support older iOS devices also.
vast majority of Android devices
are not running updated fully
patched software.
Rooting, bootloaders, Access and complete control over Complete control over your device
and jailbreaking your device is available and you is not available.
can unlock the bootloader.
Cloud services Native integration with Google Native integration with iCloud.
cloud storage. 15GB free, $2/mo 5GB free, 50GB for $1/mo, 200GB
for 100GB, 1TB for $10. Apps for $3/mo, 1TB for $10/mo. Apps
available for Amazon Photos, available for Google Drive and
OneDrive and Dropbox. Google Photos, Amazon Photos,
OneDrive and Dropbox.
Supported versions Android 5.0 & later (Android 4.4 iOS 8 & later
is also supported but with
patches)
Architecture of Android
Android operating system is a stack of software components which is roughly divided into
five sections and four main layers as shown below in the architecture diagram.
Linux kernel — This is the kernel on which Android is based. This layer contains all the
lowlevel device drivers for the various hardware components of an Android device.
At the bottom of the layers is Linux. This provides basic system functionality like process
management, memory management, device management like camera, keypad, display etc.
Also, the kernel handles all the things that Linux is really good at, such as networking and a
vast array of device drivers, which take the pain out of interfacing to peripheral hardware.
Libraries — On top of Linux kernel there is a set of libraries. These contain all the code that
provides the main features of an Android OS. For example, the SQLite library provides
database support so that an application can use it for data storage. The WebKit library
provides functionalities for web browsing. Libraries to play and record audio and video, SSL
libraries responsible for Internet security etc.
ndroid runtime — At the same layer as the libraries, the Android runtime provides a set
A
of core libraries that enable developers to write Android apps using the Java programming
language. The Android runtime also includes the Dalvik virtual machine, which enables
every Android application to run in its own process; with its own instance of the Dalvik
virtual machine (Android applications are compiled into the Dalvik executables). Dalvik is a
specialized virtual machine designed specifically for Android and optimized for
battery-powered mobile devices with limited memory and CPU.
pplications — At this top layer, you will find applications that ship with the Android
A
device (such as Phone, Contacts, Browser, etc.), as well as applications that you download
and install from the Android Market. Any applications that you write are located at this layer.
Android Applications
Android applications are usually developed in the Java language using the Android Software
Development Kit. Once developed, Android applications can be packaged easily and sold out
either through a store such as Google Play or the Amazon Appstore. Android powers
hundreds of millions of mobile devices in more than 190 countries around the world. It's the
largest installed base of any mobile platform and is growing fast. Every day more than 1
million new Android devices are activated worldwide. This tutorial has been written with an
aim to teach you how to develop and package Android application. We will start from
environment setup for Android application programming and then drill down to look into
various aspects of Android applications.
· Java JDK
· Android SDK
JDK
JDK is the java development kit which contains the libraries, debugger, compiler,
documentations for java language. For android application development we use java language
so JDK is essential.
Eclipse
Eclipse is an integrated development environment (IDE) for Android Application
Development. It is a multi-language software development environment featuring an
extensible plug-in system. It can be used to develop various types of applications, using
languages such as Java, Ada, C, C++, COBOL, Python, etc. For Android development, you
should download the Eclipse IDE for Java EE Developers.
Android SDK
The Android SDK contains a debugger, libraries, an emulator, documentation, sample code,
and tutorials.
Access the tools for accessing your Android emulators and devices.
AVD
AVD stands for Android Virtual Devices. An AVD is an emulator instance that enables you
to model an actual device. Each AVD consists of a hardware profile, a mapping to a system
image, as well as emulated storage, such as a secure digital (SD) card. You can create as
many AVDs as you want in order to test your applications with several different
configurations. This testing is important to confirm the behaviour of your application when it
is run on different devices with varying capabilities.
Download the latest version of Java JDK from Oracle's Java site: Java SE Downloads. You
will find instructions for installing JDK in downloaded files, follow the given instructions to
install and configure the setup. Finally, set PATH and JAVA_HOME environment variables
to refer to the directory that contains java and javac. The methods to setup path and
environment variable is different in different Operating System
Download the latest version of Android SDK from Android’s official website:
[Link] If you are installing SDK on Windows
machine, then you will find ainstaller_rXX-[Link], so just download and run this exe
which will launch Android SDK Tool Setup wizard to guide you throughout the installation,
so just follow the instructions carefully. Finally, you will have Android SDK Tools installed
on your machine. Then launch Android SDK Manager using the option All Programs >
Android SDK Tools > SDK Manager, this will give you following window:
Once you launched SDK manager, it is time to install other required packages. By default it
will list down total 7 packages to be installed, but we will suggest to de-select Documentation
for Android SDK and Samples for SDK packages to reduce installation time. Next click the
Install 7 Packages button to proceed, which will display following dialogue box:
If you agree to install all the packages, select Accept All radio button and proceed by clicking
Install button. Close the SDK Manager.
This step will help you in setting Android Development Tool plugin for Eclipse. Let's start
with launching Eclipse and then, choose Help > Software Updates > Install New Software.
This will display the following dialogue box.
Now use Add button to add ADT Plugin as name and
[Link] as the location. Then click OK to add this location.
As soon as you will click OK button to add this location, Eclipse starts searching for the
plug-in available in the given location and finally lists down the found plugins.
Now select all the listed plug-ins using Select All button and click Next button which will
guide you ahead to install Android Development Tools and other required plugins.
The next step is to create AVD to be used for testing your Android applications. To test your
Android applications you will need a virtual Android device. So before we start writing our
code, let us create an Android virtual device. Launch Android AVD Manager using Eclipse
menu options Window > AVD Manager> which will launch Android AVD Manager. Use
New button to create a new Android Virtual Device and enter the following information,
before clicking Create AVD button.
If your AVD is created successfully it means your environment is ready for Android
application development.
● A unified environment where you can develop for all Android devices.
● Support for building Android TV apps and Android Wear apps.
● Template-based wizards to create common Android designs and components.
● A rich layout editor that lets users drag-and-drop user interface components, and that offers
an option to preview layouts on multiple screen configurations.
● Android-specific refactoring and quick fixes.
● Gradle-based build support.
● Lint tools to catch performance, usability, version compatibility, and other problems.
● ProGuard integration and app-signing capabilities.
● A fast and feature-rich emulator.
● Instant Run to push changes to your running app without building a new APK (Application
PacKage Zip file).
● Built-in support for Google Cloud Platform, enabling integration with Google Cloud
Messaging and App Engine.
● C++ and NDK support.
● Plugin architecture for extending Android Studio via plugins.
Google provides Android Studio for the Windows, Mac OS X, and Linux platforms. You can download
this software from the Android Studio homepage. The system requirement for Android Studio.
● Microsoft Windows 7/8/10 (32-bit or 64-bit) ( for linux GNOME or KDE desktop: Tested on
Ubuntu 12.04, Precise Pangolin, GNU C Library (glibc) 2.11 or later)
● 2 GB RAM minimum, 8 GB RAM recommended
● 2 GB of available disk space minimum, 4 GB Recommended (500 MB for IDE + 1.5 GB for
Android SDK and emulator system image)
● 1280 x 800 minimum screen resolution
● JDK 8
● For accelerated emulator: 64-bit operating system and Intel processor with support for Intel
VT-x, Intel EM64T (Intel 64), and Execute Disable (XD) Bit functionality
Once you've ensured your operating system is compatible with Android Studio, download the
appropriate Android Studio distribution file.
Clicking Next button to the following dialog box, which gives you the option to decline installing the
Android SDK (included with the installer) and an Android Virtual Device (AVD).
You may chose to keep the default settings. After clicking Next, you'll be taken to the license
agreement dialog box. Accept the license to continue the installation.
The next dialog box invites you to change the installation locations for Android Studio and the
Android SDK.
Change the location or accept the default locations and click Next.
The installer defaults to creating a shortcut for launching this program, or you can choose to decline.
Then click the Install button to begin installation.
The resulting dialog box shows the progress of installing Android Studio and the Android SDK.
Clicking the Show Details button will let you view detailed information about the installation
progress.
The dialog box will inform you when installation has finished.
To complete your installation, leave the Start Android Studio box checked and click Finish.
If you don't have a previously installed version, you can just keep the default setting and click OK.
Android Studio will respond with a slightly enhanced version of the splash screen, followed by the
Android Studio Setup Wizard dialog box:
Validate your Android SDK and development environment setup
When you click Next, the setup wizard invites you to select an installation type for your SDK
components. For now I recommend you keep the default standard setting.
Click Next and verify your settings, then click Finish to continue.
The wizard will download and unzip various components. Click Show Details if you want to see more
information about the archives being downloaded and their contents.
Finally, click Finish to complete the wizard. You should see the Welcome to Android Studio dialog
box:
Features of Android Studio
Android Studio is Android's official IDE. It is purpose-built for Android to accelerate your
development and help you build the highest-quality apps for every Android device. Based on Intellij
IDEA, Android Studio provides the fastest possible turnaround on your coding and run ning
workflow.
Instant Run
Android Studio's Instant Run feature pushes code and resource changes to your running app. It
intelligently understands the changes and often delivers them without restarting your app or
rebuilding your APK, so you can see the effects immediately.
Lintelligence
Android Studio provides a robust static analysis framework and includes over 280 different lint
checks across the entirety of your app. Additionally, it provides several quick fixes that help you
address issues in various categories, such as performance, security, and correctness, with a single
click.
Layout Editor
When working with XML layout files, Android Studio provides a drag-and-drop visual editor that
makes it easier than ever to create a new layout. The Layout Editor was built in unison with the
ConstraintLayout API, so you can quickly build a layout that adapts to different screen sizes by
dragging views into place and then adding layout constraints with just a few clicks.
APK Analyzer
You can use the APK Analyzer to easily inspect the contents of your APK. It reveals the size of each
component so you can identify ways to reduce the overall APK size. It also allows you preview
packaged assets, inspect the DEX files to troubleshoot multidex issues, and compare the differences
between two APKs.
Translations Editor
The Translations Editor gives you a single view of all of your translated resources, making it easy to
change or add translations, and to find missing translations without opening each version of the
[Link] file. It even provides a link to order translation services.
Android Studio is a blessing in Android development field earlier the work is done on Eclipse.
Android is an Open Handset Alliance which anyone can learn and give tremendous development to
the IT Industries. Android Studio is a platform, which helps to build advanced and fully developed
applications with latest features. Android is always getting upgraded with the latest technologies
with very frequently new versions. Learning professional android app development course will
boost your career in this vast developing area. Android is a fastest growing and developing language
at present.
The Android Virtual Device (AVD) manager is used to create a virtual device or emulator that
simulates the configuration for a particular type of Android device.
Using the AVD Manager, you define the hardware characteristics of a device and its API level, and
save it as a virtual device configuration.
When you start the Android emulator, it reads a specified configuration and creates an emulated
device that behaves exactly like a physical version of that device , but it resides on your computer .
With virtual devices, you can test your apps on different devices (tablets, phones) with different API
levels to make sure it looks good and works for most users. You do not need to depend on having a
physical device available for app development.
In order to run an emulator on your computer, you have to create a configuration that describes the
virtual device.
1. In Android Studio, select Tools > Android > AVD Manager, or click the AVD Manager icon
in the toolbar.
2. Click the +Create Virtual Device…. If you have created a virtual device before, the window
shows all of your existing devices and the button is at the bottom.
3. The Select Hardware screen appears showing a list of pre configured hardware devices. For
each device, the table shows its diagonal display size (Size), screen resolution in pixels
(Resolution), and pixel density (Density).
4. For the Nexus 5 device, the pixel density is xxhdpi, which means your app uses the launcher
icons in the xxhdpi folder of the mipmap folder. Likewise, your app will use layouts and
drawables from folders defined for that density as well.
5. Choose the Nexus 5 hardware device and click Next.
6. On the System Image screen, from the Recommended tab, choose which version of the
Android system to run on the virtual device. You can select the latest system image.
7. There are many more versions available than shown in the Recommended tab. Look at the
x86 Images and Other Images tabs to see them.
8. If a Download link is visible next to a system image version, it is not installed yet, and you
need to download it. If necessary, click the link to start the download, and click Finish when
it's done.
9. On System Image screen, choose a system image and click Next.
10. Verify your configuration, and click Finish.
The emulator starts and boots just like a physical device. Depending on the speed of your computer,
this may take a while. Your app builds, and once the emulator is ready, Android Studio will upload
the app to the emulator and run it.
You should see the Hello World app as shown in the following screenshot.
If you receive an error or warning message at the top of the dialog, click the link to
correct the problem or get more information.
Some errors you must fix before you can continue, such as certain Hardware
Accelerated Execution Manager (Intel HAXM) errors.
Launch the Android Emulator without first running an app
To start the emulator:
Open the AVD Manager.
Double-click an AVD, or click Run .
The Android Emulator appears.
While the emulator is running, you can run Android Studio projects and choose the emulator
as the target device. You can also drag one or more APKs onto the emulator to install them,
and then run them.
Create and manage virtual devices
To open the AVD Manager, do one of the following:
Select Tools > AVD Manager.
Click AVD Manager AVD Manager icon in the toolbar.
Create an AVD
Click Create Virtual Device, at the bottom of the AVD Manager dialog.
Select the system image for a particular API level, and then click Next.
The Recommended tab lists recommended system images. The other tabs include a
more complete list. The right pane describes the selected system image. x86 images run the
fastest in the emulator.
If you see Download next to the system image, you need to click it to download the system
image. You must be connected to the internet to download it.
The API level of the target device is important, because your app won't be able to run on a
system image with an API level that's less than that required by your app, as specified in the
minSdkVersion attribute of the app manifest file.
If your app declares a <uses-library> element in the manifest file, the app requires a
system image in which that external library is present. If you want to run your app on an
emulator, create an AVD that includes the required library. To do so, you might need to use
an add-on component for the AVD platform; for example, the Google APIs add-on contains
the Google Maps library.
The Verify Configuration page appears.
Change AVD properties as needed, and then click Finish.
Click Show Advanced Settings to show more settings, such as the skin.
The new AVD appears in the Your Virtual Devices page or the Select Deployment Target
dialog
Limitations
The Android Emulator doesn't include virtual hardware for the following:
1. Bluetooth
2. NFC
3. SD card insert/eject
4. Device-attached headphones
5. USB
The watch emulator for Wear OS doesn't provide the Overview (Recent Apps) button, D-pad,
and fingerprint sensor
App Manifest Overview
Every app project must have an [Link] file at the root of the project source set.
The manifest file describes essential information about your app to the Android build tools,
the Android operating system, and Google Play.
Among many other things, the manifest file is required to declare the following:
The app's package name, which usually matches your code's namespace. The Android build
tools use this to determine the location of code entities when building your project.
The components of the app, which include all activities, services, broadcast receivers, and
content providers. Each component must define basic properties such as the name of its Java
class. It can also declare capabilities such as which device configurations it can handle, and
intent filters that describe how the component can be started.
The permissions that the app needs in order to access protected parts of the system or other
apps.
The hardware and software features the app requires, which affects which devices can install
the app from Google Play.
If you're using Android Studio to build your app, the manifest file is created for you, and
most of the essential manifest elements are added as you build your app
The XML below is a simple example [Link] that declares two activities for the
app.
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="[Link]
android:versionCode="1"
android:versionName="1.0"
package="[Link]">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="26" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- This name is resolved to [Link]
based upon the package attribute -->
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="[Link]" />
<category android:name="[Link]" />
</intent-filter>
</activity>
<activity
android:name=".DisplayMessageActivity"
android:parentActivityName=".MainActivity" />
</application>
</manifest>
The following sections describe how some of the most important characteristics of your app
are reflected in the manifest file.
The manifest file's root element requires an attribute for your app's package name.
For example, the following snippet shows the root <manifest> element with the package
name "[Link]":
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="[Link]
package="[Link]"
android:versionCode="1"
android:versionName="1.0" >
...
</manifest>
As such, the name in the manifest's package attribute should always match your project's base
package name where you keep your activities and other app code.
App components
For each app component that you create in your app, you must declare a corresponding XML
element in the manifest file:
<activity> for each subclass of Activity.
<service> for each subclass of Service.
<receiver> for each subclass of BroadcastReceiver.
<provider> for each subclass of ContentProvider.
If you subclass any of these components without declaring it in the manifest file, the system
cannot start it.
The name of your subclass must be specified with the name attribute, using the full package
designation. For example
<manifest ... >
<application ... >
<activity android:name="[Link]" ... >
</activity>
</application>
</manifest>
Intent filters
App activities, services, and broadcast receivers are activated by intents. An intent is a
message defined by an Intent object that describes an action to perform, including the data to
be acted upon, the category of component that should perform the action, and other
instructions.
When an app issues an intent to the system, the system locates an app component that can
handle the intent based on intent filter declarations in each app's manifest file. The system
launches an instance of the matching component and passes the Intent object to that
component. An app component can have any number of intent filters (defined with the
<intent-filter> element), each one describing a different capability of that component.
Icons and labels
A number of manifest elements have icon and label attributes for displaying a small icon and
a text label, respectively, to users for the corresponding app component.
In every case, the icon and label that are set in a parent element become the default icon and
label value for all child elements.
Permissions
Android apps must request permission to access sensitive user data (such as contacts and
SMS) or certain system features (such as the camera and internet access). Each permission is
identified by a unique label. For example, an app that needs to send SMS messages must have
the following line in the manifest:
<manifest ... >
<uses-permission android:name="[Link].SEND_SMS"/>
...
</manifest>
Beginning with Android 6.0 (API level 23), the user can approve or reject some app
permisions at runtime. But no matter which Android version your app supports, you must
declare all permission requests with a <uses-permission> element in the manifest
Device compatibility
The manifest file is also where you can declare what types of hardware or software features
your app requires, and thus, which types of devices your app is compatible with.
The following are just a couple of the most common tags.
<uses-feature>
The <uses-feature> element allows you to declare hardware and software features your app
needs.
<uses-sdk>
Each successive platform version often adds new APIs not available in the previous version.
To indicate the minimum version with which your app is compatible, your manifest must
include the <uses-sdk> tag and its minSdkVersion attribute.