Android Development
Android is the versatile mobile operating system from Google for smartphones and tablets. It uses a modified version of the Linux LTS kernel and other open source software stacks. Therefore, it is compatible with a wide variety of devices such as cell phones, televisions, set-top boxes, tablets, and information and entertainment systems for the dashboard of automobiles.
Since the introduction of 3G cellular connectivity in the markets, learning Android application development for the Android platform has given you the ability to address over 3 billion Android devices worldwide. More than half of the world are using Android-based devices which allow Android developers to monetize their applications for a huge number of users. Android developers can focus on creating functions with built-in programming interfaces for Android operating systems. With the help of Google Play Services, Firebase technologies, and a variety of third-party libraries from the Android community, developing for Android devices is getting easier every day.
Course Details
The aim of this course is to provide students with a solid knowledge in the basic concepts of Android application development. The main objective of the course is to help students solve real world problems by providing Android applications as the solution. The course covers the understanding of the architecture and functionality of Android applications in Android Runtime (ART).
It includes a discussion of working with different types of Android widgets and controlling them with Java code. A basic understanding of the various ways to work with data and present it in an application format, with an emphasis on user experience and best code practices.
Course Information
Introduction to Android Platform
- History of Android
- Android versions
- Architecture of Operating System
- Android API levels
- Android Runtime
- Android Manifest
- Android Debug Bridge
- Permissions
2) Your first Android App
- Project set up
- Setting up ADB
- Setting up screen forwarding
- Setting up Android Virtual Devices based on QEMU
- Gradle wrapper and build tool
- Building application
- Launching applications
3) XML layouts
- Various user interface layouts
- Advanced layout attributes
- Designing adaptive screen layouts
4) Android Widgets
- TextViews
- EditText
- ImageView
- Button
- CheckBox
- Radio Buttons
- Spinner
- Toggle Buttons
- Date Picker
- Progress Bar
- Seek Bar
- WebViews
5) Activities and Fragments
- Activity and Intent
- Implicit Intent
- Explicit Intent
- Lifecycle of an activity/ Activity states
- Fragments
6) Menus
- Option menu
- Context menu
- Popup menu
7) User Experience
- Colors
- Styles and Themes
- Adaptive Icons
- App shortcuts
- Toasts
- Dialogs
- Content Providers
- Services
- Notifications
- Broadcast Receivers
- Firebase Cloud Messaging
- Event Handling
8) Media Handling
- Playing Audio
- Playing Video
9) Location
- Fused Location
- Google Maps
10) Telephony Operations
- Sending Email
- Sending SMS
- Phone Calls
11) Data management
- SharedPreferences
- Adapters
- JSON Parsing
- SQLite database
- Firebase Realtime Database
12) Deployment
- Git workflow for version control
- App bundles
- Publishing android applications on Google Play
- Publishing FOSS android applications on F-Droid
Future Opportunity
There are many reasons behind investing your time to learn android application development:
- It is an Open Source Technology
Android is a free and open source mobile operating system (OS). It is a Linux-based mobile operating system that makes its source code publicly available to everyone. The GNU General Public License regulates the Linux kernel that powers Android. When a binary is made available to the public, any updates to the source code must also be made available. Since it allows developers to easily change and edit the programming codes, it gives users a lot of freedom.
- Huge Device Market Share
Android has been the most popular mobile operating system since the turn of the century. However, it is no longer just a mobile operating system. It's the brains behind a number of additional products including Android Wear, e-readers, Google Glass, and Android TV. Since Android supports all of these devices, the development bases are almost identical.
- Easier Entry to Market
Build an APK (Android Package Kit) and submit it to Google's mobile app development platform if you want to build a native Android app. This is a relatively straightforward process.
- Enormous Market Share of Apps
With the growing number of Android apps in the market, large companies are looking for Android developers, which is why Android development is the most popular professional option today. After you get familiar with Android development and start developing apps, your Android apps can reach millions of people around the world.
- Numerous & Variety of Job Opportunities to Choose from
App developers have a lot to do with the rapidly growing Android market. In other words, if you choose to do Android development as a profession, you can make decent money in this field. There are numerous job titles for Android developers. There are numerous in-demand career positions for mobile developers, including Mobile Architect, Mobile Application Developer, and Android Engineer. With your knowledge, you can even qualify as a Mobile Embedded Software Engineer. There has never been a better time to brush up on your Android skills and start your job hunt, regardless of your level of experience.
- Freedom
Working in Android development gives you the freedom to work from anywhere. An Android developer doesn't have to work 9-5. As a freelancer in this field, you have the option of either working for the company you joined or working from home. More and more well-known companies are now allowing their employees to work from home. You just have to make sure that your qualifications and your career are clearly visible in your applications.
- Easy to Learn
To create an Android application, you must be familiar with the Java programming language. Object-oriented design principles are often introduced to new developers through Java, one of the easiest programming languages to learn. If you have a basic knowledge of Java, you can easily develop effective Android applications. Java is not required. Other programming languages such as Kotlin, C ++, Python, and C # can be used to develop Android applications.
Tutor Information
- Programming Languages: HTML, Javascript, C, C++, Core Java, Android, Qt/QML
- Scripting: Bash, Perl and Python
- Experience in Linux kernel development, upstreaming, DKMS, customization, addition and removal of modules, features etc.
- Proficient in operating system attack surface reduction.
- Information Security and Cyber Forensics tools like:
- Android & iOS forensics: Magnet Axiom, UFED
- Android database manipulation: Oxygen SQLite Viewer, SQLite browser, Dbbrowser
- Disk evidence gathering: Autopsy, FTK Imager, Recuva, EnCase
- Memory analysis: Volatility
- Info gathering: Maltego, FOCA, theHarvester
- Host scanners: Nmap, Nikto, OpenVAS, SQLmap, Nessus
- Credential testing: Hashcat, Medusa, THE-Hydra, John the ripper, Cain, Abel
- Reverse engineering: OLLYDBG, Immunity debugger, GNU Debugger, GHex, WinDbg
- Social engineering: SET
- WebApp security testing: BurpSuite
- Investigation of network: Netcat, Ncat, WinDump, TCP Dump
- Host investigation: PE EXE Info, PEStudio, Process Hacker, Process Monitor, Hex dump
- Network analysis: Wireshark, Hping
- Vulnerability: Metasploit
- Incident Response: SIFT Workstation
- Malware scanning and analysis: Virus Total, Regshot
- Virtualization technologies: KVM, QEMU, VMware, Oracle VirtualBox
- Experience in using software focused tools such as:
- Compilers: GCC, Clang
- Linux containers: Docker, LXC, Chroot, Docker
- Collaboration: Git, Bitbucket, Jira
- Continuous Integration & Continuous Deployment: Jenkins, Travis CI, Github Actions, Gitlab
- IBM Design Thinking
Industry Driven projects
Calculator, Tic Tac Toe, Sound Board, News App, Weather App
This is one of the very first projects students can create to learn Java code using Android views made with XML files.
Tic-Tac-Toe
Tic Tac Toe is a fun little game that students can create to learn how to work with grids and images.
Soundboard
Creating a soundboard can teach students how to work with a media player while using background services to ensure that the sound works even when the operating system selects Doze mode.
News app
By creating a news application, students will learn to analyze and present JSON format data and view live news in an application.
Weather app
Students can create a weather app that can regularly connect to the internet to download weather data and notify the user to carry an umbrella before leaving home for their daily chores.