Android Dissertation Assignment
Android Dissertation Assignment
COMPUTER COLLEGE OF
SOUTH AFRICA (PTY) LTD
PROGRAMMING 4a- Android
API Level
- 29
Version Name
- Queen Cake
Android 11
- Released 2020 September 8.
API Level
- 30
Version name
- Red Velvet Cake
Android 12
- Released 2021 Q3
API Level
- 31
Version name
- Snow Cone
3. ADVANTAGES
ANDROID
- Android is more Customizable can change almost anything.
- In Android, any new publication can be done easily and without
any review process.
- Use a Different Messaging App for SMS.
- Android offers an open Platform.
- Easy access to the Android App Market.
- Cost Effective.
- Upcoming versions have a support to save RAW images.
- Built in Beta Testing and staged rollout.
- Native integration with Google cloud storage. 15GB free,
$2/mo. for 100GB, 1TB for $10. Apps available for Amazon
Photos, OneDrive and Dropbox.
- Booming Job Prospects.
DISADVANTAGES
- Usually, you need more code on Java than Objective-C.
- Complex layouts and animations are harder to code in Android.
- Applications contains virus also present in Android Market.
- A lot of “process” in the background that led to the battery
quickly drains.
- Advertise, will always be ads on display, either the top or
bottom of the application.
- Low Security and fake apps can be installed to steal your
information from unknown resources.
- High device fragmentation.
4. Android is designed to run on many different types of devices,
from phones to tablets and televisions. As a developer, the
range of devices provides a huge potential audience for your
app. In order for your app to be successful on all these devices,
it should tolerate some feature variability and provide a flexible
user interface that adapts to different screen configurations.
5. Application
- Application is the top layer of android architecture. The pre-
installed application like home, contacts, camera, gallery etc.
And third-party applications downloaded from the play store
like WhatsApp, games etc. Will only be installed in this layer.
Linux Kernel
- At the bottom of the layers in Linux. Linux 3.6 with appropriate
115 patches. This provides a level of abstraction between the
device hardware and it contains all the essential hardware
drivers like camera, keypad, display etc. Also, 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 including open-
source Web browser engine Web Kit, well known library libc,
SQLite database which is a useful repository for storage and
sharing of application data, libraries to play and record audio
and video, SSL libraries responsible for Internet security etc.
Android Libraries
- This category encompasses those Java-based libraries that are
specific to Android development. Examples of libraries in this
category include the application framework libraries in addition
to those that facilitate user interface building, graphics drawing
and database access. A summary of some key core Android
libraries available to the Android developer is as follows:
android. App, android. Content, android. Database, android.
Opengl, android. Os, android. Text, android. View, android.
Widget, android. Web kit.
Application Framework
- The application framework layer provides many higher-level
services to applications in the form of Java classes. Application
developers are allowed to make use of these services in their
applications. Android framework includes the following key
services: Activity Manager, Content Providers, Resources
Manager, Notifications Manager, View System.
Android Runtime
- This is the third section of the architecture and available on the
second layer from the bottom. This section provides a key
component called Dalvik virtual Machine which is a kind of
Java Virtual Machine specially designed and optimized for
Android.
- The Dalvik VM makes use of Linux core features like memory
management and multi-threading, which is intrinsic in the Java
language. The Dalvik VM enables every Android application to
run in its own process, with its own instance of the Dalvik
virtual machine.
- The Android runtime also provides a set of core libraries which
enable Android application developers to write Android
applications using standard Java programming language.
9. JavaScript
- Is used to develop interactive web applications. JavaScript can
power featured like interactive images, carousels, and forms.
The language can to use with back-end frameworks like Node.
Js to power the mechanics behind a web page, such as form
processing and payments. First appeared December 4, 1995; 26
years ago. Designed by Brendan Eich of Netspace initially;
others have also contributed to the ECMAScript standard.
Stable release ECMAScript 2021/ June 2021; 10 months ago.
Kotlin
- Is an open-source statically typed programming language that
targets the JVM, Android, JavaScript and Native. It’s developed
by JetBrains. The project started in 2010 and was open source
from very early on. The first official 1.0 release was February
2016.
React Native
-is an open-source UI software framework created by Meta
Platforms, Inc. It is used to develop applications for Android, Android
TV, iOS, Web, Windows and UWP by enabling developers to use the
React framework along with native platform capabilities. Developed
by Facebook and community. Released march 26, 2015, 7 years ago.
Insecure Apps
- Another security threat to Android devices comes from the
open nature of app submission for Google Play: apps do not
come with malicious code but employ an insecure software
design. When app developers leave security vulnerabilities in
their code, hackers or malware can exploit these vulnerabilities
to compromise your device. The malicious code uses the
permission you gave the insecure app to slip past your device’s
security, similar to the way thieves in movies steal key-cards
from unwitting employees.
Version fragmentation
- While Google incorporates the latest security fixes into the
latest version of Android, not every Android device runs the
latest version of the operating system. Different devices across
different carriers all run different versions of Android, and
individual carriers' control when their customers can upgrade
from version to version, or even install updates from Google for
their current version of Android. This version fragmentation
creates a situation in which wide segments of the Android
ecosystem remain vulnerable to security threats which Android
developers have already closed.
Types of memory
- RAM is the fastest type of memory, but is usually limited in size.
High-end devices typically have the largest amounts RAM.
- ZRAM is a partition of RAM used for swap space. Everything is
compressed when placed into zRAM, and then decompressed
when copied out of zRAM. This portion of RAM grows or
shrinks in size as pages are moved into or taken out of zRAM.
Device manufacturers can set the maximum size.
Memory pages
- RAM is broken up into pages. Typically, each page is 4KB of
memory.
- Pages are considered free or used. Free pages are unused RAM.
Used pages are RAM that the system is actively using, and are
grouped into the following categories:
Cached: Memory backed by a file on storage (for example, code
or memory-mapped files). There are two types of cached
memory:
Private: owned by one process and not shared
Shared: used by multiple processes