History & Origin of Android
Android Inc. was founded in Palo Alto, California, in October 2003 by Andy Rubin, Rich Miner, Nick Sears, and Chris White. Rubin described the Android project as having “tremendous potential in developing smarter mobile devices that are more aware of its owner’s location and preferences”. The early intentions of the company were to develop an advanced operating system for digital cameras, and this was the basis of its pitch to investors in April 2004. The company then decided that the market for cameras was not large enough for its goals, and five months later it had diverted its efforts and was pitching Android as a handset operating system that would rival Symbian and Microsoft Windows Mobile.
Minimum requirements would depend on, and will mostly include testing and documentation of the following points:
- API level: Minimum android version supported, it’s mostly known by the developer. There have been many major changes between API in android. support v4 and v7-compact libraries do help a lot, but they don’t cover all aspects.
- Device capabilities: Note down all the features your app uses. (like has a touch screen, has a camera, accelerometer, network connectivity, etc). Luckily, you can declare that in App manifest (uses-feature) and play store will filter out unsupported devices.
- RAM: Use DDMS/Android Studio to see real-time memory usage, on the emulator and on a real device. Try to use as much as ram you can use, by triggering various functions of the App, keep it running for long intervals of time. Take that min and max usage as an estimate. DDMS tools like TraceView etc also let you see object allocations on heap, threads, and do method profiling. Run Monkey Tool for long periods of time to stress out the app.
- CPU Speed: IF the app does Intensive computing, data conversion, etc, you might want to program some time stamp logs in such computing code. Make sure you set the CPU speed such that whatever computing needs to be done, completes insufficient time, without making the device lag too much. Also in the case of visual rendering, (games) good frame rate is the main factor. In this case, you can benchmark real devices for frame rates, and choose high-end Chip-sets. You can also recommend users for multi-core devices.
- CPU/GPU Compatibility: Another important detail is that if an App has C/C++ code, that code might not run on some of the CPU types (MIPS, ARM, or x86). The same is true for Apps using OpenGL ES versions and available extensions. Devices do have different CPU/graphic chip-set.
- Disk: Estimate the size of the app after installation, Note that the minimum disk requirement for App is the space required to store the app itself, so that it can at least start, and does not include caches, databases, or the user content it creates on usage.
- Display Size: While a responsive and flexible UI is always recommended, your app may be only usable with certain screen sizes. So, compatible screen sizes can be taken into account.
- What you can’t control: Remember you have no control over what other Apps user might run, so, its safe to declare that your app requires this much free ram on device, and assuming the best scenario, declare that device has at least that much ram installed. For example you noted that you app takes 200 mb when maxed out, so requirement would be 512mb+ devices only. Also you can’t control what size of sd-card user will have, so App should promptly tell user that it cannot function when disk is full.
What is Android?
Android is an open-source and Linux-based Operating System for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies. Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android. The first beta version of the Android Software Development Kit (SDK) was released by Google in 2007 whereas the first commercial version, Android 1.0, was released in September 2008.
Why use Android
There are so many reasons you should choose the Android platform for mobile application development.
- Zero/negligible development cost
The development tools like Android SDK, JDK, Eclipse IDE, etc. are free to download for the android mobile application development. Also, Google charges a small fee of $25, to distribute your mobile app on the Android Market.
- Open Source
The Android OS is an open-source platform based on the Linux kernel and multiple open-source libraries. In this way, developers are free to contribute or extend the platform as necessary for building mobile apps which run on Android devices.
- Multi-Platform Support
In the market, there is a wide range of hardware devices powered by the Android OS, including many different phones and tablets. Even the development of android mobile apps can occur on Windows, Mac OS, or Linux.
- Multi-Carrier Support
World wide a large number of telecom carriers like Airtel, Vodafone, Idea Cellular, AT&T Mobility, BSNL, etc. are supporting Android-powered phones.
- Open Distribution Model
Android Market place (Google Play store) has very few restrictions on the content or functionality of an android app. So the developer can distribute their app through the Google Play store and as well other distribution channels like Amazon’s app store.
Advantages of Android
- Millions of Apps
- Third-Party Apps Support
- Most Things in Notifications
- Share Internet
- Phone Models
- Multi Tasking
- Multiple Widgets
- Foldable Device
- Language Support
- Community Support
- Add New Features And Remove Unwanted Features
- Cloud Storage
- Android Developers Demand
Disadvantages of an Android
- Many Ads in Apps
- Updates Are Patchy
- You Need a Google Account
- Hardware Quality is Mixed
- They Have Bloatware
Best Android Alternative
- Tizen OS
- Paranoid Android
- Ubuntu Touch
- SIRIN OS
Best resources to learn android
Free Video Tutorials Android
Android Interview Questions and Answers
1 . What is Android?
Ans: Android is an open-source Linux-based mobile operating system . which is designed to create an application for only touch screen devices. Android is not only designed to create Apps for the smartphone. which is used to create various types of applications for SmartWatches, SmartTv, Smart Cars. Android Application runs in its own process.
2. What is the main Component of Android?
Ans: The main component of android are –
Services -> Used for Performing Background Task
Intent -> Passing Data from one Activity to another. Communicating between Activity.
Resources ->String and Graphs
Notification ->Used to send Notification in the form of DialogBox, AlertBox, and Toast
Content Providers->To share the Data Between Applications.
3. What are the Features of the Android OperatingSystem?
Ans: The main features of the Android operating system are –
Android is an Open-source. No need for Licensing. Distribution and development are Free.
Platform Independent which supports all Operating Systems Like Windows, Linux, Mac
It supports various Technologies like Camera, Bluetooth, Wifi, Speech
It uses a highly optimized virtual machine called DVM(Dalvik virtual machine).
Android Training in Pune guide you about Supports languages Like Java, Kotlin, c++
We can develop an App using Android Studio.
4. What is the Core building Block of Android?
Ans: The Core building Block of Android are Activity, View, Intent, Service, content providers, Fragment, Android Manifest file, AVD(Android virtual Machine)
5. What is the Role of AndroidManifest? XML File.
Ans: In the Android studio, every project should contain a Manifest file .which is stored in the root directory of the Android studio. It also defines the structure and metadata of the Application. Android Manifest file contains Information About Activity, content Providers, Permission. Information About Packages, Broadcast Receiver.
6. How many ManifestFiles are in Android?
Ans: We can have one or more Manifest.xml files in the Android studio.
7. What is Activity in Android?
Ans: Activity is a Single Screen of your Smartphone. It represents a Single window or Screen.
8. Which is the Parent class of the Android Application?
Ans: The Application class is the Base of All Android App. Which contains Activities and services. Its instance is created before any class when the process of Application is created.
9. What is the APK file?
Ans: Apk file is compressed with UI’s, Classes Assets, and manifest file. Apk file contains Applications information like Classes and Resources, services and Layout related information. Learn more at Android Course in Pune.
10. Describe Android Architecture?
Ans: Android is an open-source, Linux-based software created for touch screen devices. The main foundation of Android is Linux Kernel. It provides Android Run time (ART), It also provides services like Threading and Low-Level memory management.
Hardware Abstraction Layer(HAL): It provides standard interfaces that expose device hardware to a higher-level java API framework. HAL Consists of Library and Module for Camera, Bluetooth. Android System Loads Library Module for hardware component.
Android Runtime: In android, each App runs in its own process that is its own ART.ART is written to run multiple virtual machines on low memory devices by executing a DEX file.
DEX: IT is a bytecode format specially designed for Android.
Native C/C++ Library: To Provide System component and Service Some of the Libraries are written in c/c++.
Java API Framework: Android building block is JAVA API.
Some of the Main Features of JAVA API are:
View System: The entire UI we are designing in Layout using grid and textbox, etc is given by view System.
Resource Manager: It Provides Access to non-code data like strings, graphics, etc.
Notification Manager: This enables All Apps to display a custom status bar and alert.
Activity Manager: It Controls the Life Cycle of Activity.
Content Providers: For sharing data and one App can Access data of Another App. For working with Local storage and Remote Storage we use Content Providers.
System APP: Apart from JAVA API. A developer can also Access Some of the System App Like email, SMS, Contact, Default keyboards from the System App.
11. What is the view group in Android?
Ans: View Group is a special view that contains other views. View Group is Base for All Layouts. All Layouts Like Linear Layout, Relative Layout, Constrained Layout, Table Layouts. Arranging of Layout, size, Positioning is Available in view groups.
12. What is Permission in Android?
Ans: Every App in android runs on the limited-access sandbox. If App requires information beyond in its own sandbox. then App needs permission. To declare the permission use App manifest file. To Add Permission we declare elements in the manifest file.
13. What is Service?
Ans: Service is a Component that runs Background. The service doesn’t have any user interface. Since Services runs Background user can continue his foreground task. Generally, the user doesn’t know about the service. To implement a service we need to extend our class from Service Class.
14. what is Bundle in Android?
Ans: a Bundle is an object. It is used to pass data between Activities. The values are passed and Mapped to String keys. Which are used to retrieve the values from Key.
- Shell Scripting Tutorials: Looping & Iteration statatement using for loop - December 23, 2022
- Shell Scripting Tutorials: Looping & Iteration statatement using while - December 23, 2022
- How do you curl using powershell? - December 22, 2022