Open navigation menu
Close suggestions
Search
Search
en
Change Language
Upload
Sign in
Sign in
Download free for days
0 ratings
0% found this document useful (0 votes)
400 views
Android Programming by Hitesh P. Patel
Course Code: 2180715 Covering Syllabus for Gujarat Technological University
Uploaded by
Awais Salman Qazi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
Download now
Download
Save Android Programming by Hitesh P. Patel For Later
Download
Save
Save Android Programming by Hitesh P. Patel For Later
0%
0% found this document useful, undefined
0%
, undefined
Embed
Share
Print
Report
0 ratings
0% found this document useful (0 votes)
400 views
Android Programming by Hitesh P. Patel
Course Code: 2180715 Covering Syllabus for Gujarat Technological University
Uploaded by
Awais Salman Qazi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
Download now
Download
Save Android Programming by Hitesh P. Patel For Later
Carousel Previous
Carousel Next
Save
Save Android Programming by Hitesh P. Patel For Later
0%
0% found this document useful, undefined
0%
, undefined
Embed
Share
Print
Report
Download now
Download
You are on page 1
/ 350
Search
Fullscreen
Android Programming AS PER NEW SYLLABUS OF GUJARAT TECHNOLOGICAL UNIVERSITY SEM VIII (CE/CSE/IT) ELECTIVE-IIt SIMPLIFIED APPROACH SOLVED UNIVERSITY QUESTION PAPERS SUMMER 2017 to SUMMER 2018 TECHNICAL PUBLICATIONS a arANDROID PROGRAMMING Hitesh P. Patel MTech. (Computer Science and Engineering) HOD Information Technology Department, Hosmukh Goswami College of Engineering, Vahelal = TECHNICAL zg PUBLICATIONS ‘Website : www.technicalpublications.org An Up-Thrust for Knowledge ‘Bihttps://www.facebook.com/technicalpublications oANDROID PROGRAMMING Semester - Vill (CE/CSE/ IT) Elective - IIL Fist Elon: February 201 8 Second Revised Editon : January 2019 © Copyright with Author A publishing rights (printed and ebook version) reserved with Technical Publications, No part of this book should be reproduced in any form, Electronic, Mechanical, Photocopy or any information storage and retrieval system without prior permission in writing, from Technical Publications, Pune. ha A ee - TECHNICAL’ hvevtaisstoasy ass stsoeauss PUBLICATIONS." ssseroncapDiensey Moe eieansineeerson Printer : Yossi Piotes & Baden SENS TOA, Gd ndil Ease, Nnded Vile Ros, Tl Hoveh, Det Pane 417041 Price :€270/- ISBN 978-93-982-1778-1 789333 il Come 13 9789333917781 [2] woPREFACE The importance of Android Programming is well known in various engineering fields. Overwhelming response to my books on various subjects inspired us to write this book. ‘The book is structured to cover the key aspects of the subject Android Programming. The book uses plain, fucid language to explain fundamentals of this subject. The book provides logical method of explaining various complicated concepts and stepwise methods to explain the important topics. Each chapter is well supported with necessary illustrations, practical examples and solved problems. All the chapters in the book are arranged in a proper sequence that permits each topic to build upon earlier studies. All care has been taken to make students comfortable in understanding the basic concepts of the subject The book not only covers the entire scope of the subject but explains the philosophy of the subject. This makes the understanding of this subject more clear and makes it more interesting. The book will be very useful not only to the students but also to the subject teachers. The students have to omit nothing and possibly have to cover nothing more. I wish to express our profound thanks to all those who helped in making this book a reality, Much needed moral support and encouragement is provided on numerous occasions by my whole family. I wish to thank the Publisher and the entire team of Technical Publications who have taken immense pain to get this book in time with quality printing Any suggestion for the improvement of the book will be acknowledged and well appreciated, Author Hitesh P. Patel wySYLLABUS Android Programming [2180715] 1. 2. The Basics: ‘+ Hello World : Intro to Android, Why develop apps for Android 2, Flavors of Android operating. systems, Challenges of developing for Android (multiple OS, need backwards compatibility, need to consider performance and offline capability) + Concept : Create Your First Android App : Overview of the development process - Java, Android Studio , Project layout in Android Studio, Target and minimum SDKs, Android Virtual Device (AVD) Monitor, Viewing logs in logeat and AVD, Android manifest file, App Architecture: An app consists of ‘one or more activities, For an activity, write Java code and layout xml, and hook them together, and register the activity in the manifest file. + Concept : Layouts, Views and Resources : Layout elements can be viewed and edited in Layout Editor and XML, Introduction to the range of UI elements, Resources (layouts, strings, styles, themes), Identifying resources with IDs, Programmatically referencing resources using resouree IDs, on Click attribute, Getting user input from a view, Programmatically changing Ul elements, Layout Managers, Defining layouts for activites, inflating the layout. * Concept : Scrolling Views : How to make activities scrollable: compare ScrollView, ListView, RecyclerView , Getting the resource ID fora Ulelementby inflating a layout (needed for RecyclerView), How to implement RecyclerView (requires layout managers and ViewHolders) , Performance impications of different kinds of serolling Ul elements + Concept: Resources to Help You Learn : Resources to help you learn: Samples that ship with the SDK, ‘Templates for projects, developer android, com, Android developer blog , Android developer YouTube channel, Source code and samples in github, Stack overflow, Google search! + Activities and Intents : About activities, Defining, Activ ‘About intents Explicit vs Implicit intents ,Passing info to new activ + The Activity Lifecycle and Managing State : Activity lifecycle , Activity lifecycle callback methods , Activity instance state _ Activity Lifecycle , Activity navigation , Returning data from activity + Starting Activities with Implicit Intents : Starting activities by sending implicit intents, Intent filters and enabling your activities to receive intents, ShareCompat + Testing and Debugging, and Backwards Compatibility : Debugging your apps, Testing your app, Support libraries User Interface : + User Input Controls : Getting user input Spinners, checkboxes, and radio buttons, Gi Changing keyboards tures, Speech recogniti Buttons , Dialogs and piekers , n (not done), Sensors (not done) + Menus : Options menu, contextual menus (floating and action bar), and popup menu, Adding menu items, Handling on Clicks from menus. + Screen Navigation : ‘Terminology, Different ways a user can navigate through an app, Action bar, Settings menu, Navigation drawer, Directed workflow (funnels), Best practices for navigation + Themes and Styles : Best practices for themes and styles, Performance benefits for themes, When and how touse drawables, best practices for drawable, When and how to use nine-patches, best practices for rine-patches, Tools for creating drawables ow‘+ Material Design : What is material design? Material design best practices. Material Design guidelines, Implementing Material Design look and feel, with compatibility with previous versions, Support library for Material Design, Transitions and Animations + Adapt layouts for multiple devices and orientations : Why we need to consider different screen sizes and orientations , Screen density (dip or dp), How to create adaptive layouts using resources folders , Different ways to create images that scale nicely, Images and image formats and how they alfect performance (download speeds) + Accessibility : Why accessibility matters, Accessibility considerations: Color blindness, poor vision, poor hearing, physical limitations, Accessibility guidelines , Testing for accessibility , Sereen readers, Making your app more accessible: Color and Contrast, button size ~> Material Design guidelines, ‘considerate layouts and navigation + Localization : How to prep your app for localization, LTR and RTL (eg Arabic) text. + Testing the User Interface : Automated testing of Uls, User testing your UL with real users, Using the Espresso and UI Automator frameworks for testing UIs 3. Background Tasks + Connect to the Internet : Background Tasks, Synchronous versus async tasks, What is the UI thread and when should you use it? , Example of a background task ~ retrieving data over the intemet, ‘Creating background tasks. (schedule, send data, etc. , Implementing AsyncTask (dolnBackground(), callbacks) , Limitations of AsyncTask , Passing info to background tasks, Initiating background tasks, Scheduling background tasks (intro only, more later) + Connecting to the Internet : Permissions, Building URIs, Opening and closing Internet connections, Parsing JSON in Android. (Because it's common.) , Sending requests and parsing response. + AsyneTaskLoade : Intro to AsyncTaskLoader , loadInBackground() , AsyncTaskLoader callbacks , Benefits of loaders + Broadcast Receivers : What isa Broadcast Receiver and a Broadcast Intent? Broadcast Receiver Security. and Lifecycle + Services : What is.a service? Long running task without a UI, Difference between Activity and Service Start and stop services, Lifecyele methods, Foreground services, IntentService class, App priority (critical, high, low), How to create a new Service. + Notifications : hat is a Notification? , Notification Design Guidelines. + Triggering, Scheduling, and Optimizing Background : AlarmManager + Transferring Data Efficiently : Less data, less often! Cell radio life cycle, Job Scheduler. Why to use Job Scheduler instead of SyncManager/SyncAdapter, Difference between alarms and job schedulers. 4. Data - Saving, Retrieving, Loading + Storing Data in your app : Internal versus external storage, Privacy, sharing, security, encryption of your data, Shared Preferences: Store private primitive data in key-value pairs, SQLite Databases: Store structured data in a private database , Store data on the web with your own network server, Fircbase for storing and sharing data in the cloud, Concept : Preferences , What are Settings and Preferences ? , Settings best practices (harder to take away settings than to add, for usability reasons, Storing and retrieving preferences as key/value pairs using SharedPreference, Different Settings types, Settings menu, Using Activity and PreferenceFragments to allow users to set preferences + Store data using SQLite database : Overview of SQLite, OpenHelper Android class , Querying, (dev) Searching (user) databases, Best practices for using databases in Android , Best practices for testing your database ”+ Using Content Resolvers to access data : Content Providers and Content Resolvers work together, what isa content provider ?, What isa content resolver ?, How do they work together ?, How to implement and use Content Resolvers * Content Providers : When to implement content providers , How to implement content providers (overview), Content URIs , UriMatcher, Content Provider authorities , Required methods on ContentProvider (query, insert, delete, update), MIME types , Contracts, Making content provider data accessible to other apps by modifying manifest, and protecting data with permissions. + Using Loaders to Load and Display Data: Using loaders to asynchronously load data into an activity or fragment, Benefits of Loaders~-why use them 2, Loader states (started, stopped, reset), Loader Manager, Methods and callbacks to implement in Loaders; loadinBackground(, deliverResult() ‘onStartStopLoading), onReset/Cancelled()) Registering listeners, Using CursorLoader with ContentProviders 5. Polish and Publish + Permissions : The permissions model + Libraries : Using libraries + Widgets : What are widgets ? When to use them and how to implement them + Publishing your App : Different ways to monetize your app (overview only) ‘+ Makingand publishing APKs : Guidelines for publishing in Google Play , Make and sign the APK, Beta test your app, Publish your app to Google Play woTABLE OF CONTENTS Chapter - 1 Hello World (1 - 1) to (1 - 58) 1.1. Introduction to Android.. - 1-2 1.2. Concept : Create Your First Android App ....1-8 1.3. Create Android Application... woe b= 22 1.4 Concepts : Layouts, Views and Resources. 1-27 14.1 Layout. 1-27 142 UlElements.. 1-28 143 Recourses.. 1-29 144 1D, 1-32 1.45 Layout Manager. 1-35 1.4.6 Inflating the Layout. 1-36 15. Concept : ScrollingView... 1-36 1.6 Concept : Resources to Help You Learn.....1- 38 1.7. Activity and Intent... 1-39 1.8 Implicit Intent ...-. ever = AS 1.9. Debug Your App. 1-53 1.10 Testing Your App. 1-56 Chapter - 2 User Interface (2-1) to (2 - 102) 2.1. Interaction Design for User Input... 2-2 DAL Using Buttons sD 2.1.2 Checkboxes... 2-12 2.1.3 Spinners... 2-18 2.1.4 Changing Keyboards and Input Behaviors. 2-22 2.1.5 Recognizing Gestures... 12-31 2.2 Menu. sonines 2 34 2.2.1 Options Menu and App Bar 2-34 2.2.2 Popup Menu... : 2-38 2.3. Allowing Your Activity to be Added to Other Menus 2-47 2.3.1 Screen Navigation 2-47 2.3.2. Navigation into Your App via Home Screen Widgets and Notifications ......2-50 2.4 Themes and Styles 2-57 2.5 Material Design. 2-62 2.5.1 Material Design Color Palette ..nsun2- 68 25.2 Design Support Library 2-67 25.3. Activity Transitions. 2-72 2.6 Adapt Layout for Multiple Device and Orientation... 2-74 2.6.1 Orientation... 2-74 2.6.2 Resolution... 2-75 2.6.3 How to Create Adaptive Layout Using Resource Folder... 2-76 2.6.4 Different Ways to Create Images that Scale Nicely. 2-78 2.6.5. Images and Images Formats and How They Affect Performance 2-82 2.7 Accessibility...ssnmnnnanemnennnen 2 = 87 2.8 Localization winnie 2.9. Testing the User Interface .... Chapter - 3 Background Tasks (3-1) to (3 - 38) 3.1. Background Task... 3-2 3.1.1 0020The UI thread 3-2 3.1.2. AsyncTask... sone #2 3.1.3 Implementation of an AsyncTask ven 3-3 3.1.4 Limitations of AsyneTask. 3-4 3.2. Connect to the Internet. 3-5 3.2.1 Including Permissions in the Manifest ..3 - 5 3.2.2 Building your URI... wn 3-6 3.2.3. Opening and Closing the Connection.....3 = 6 3.2.4 Parsing the JSON .. 3.3 AsynTaskLoade 331 Intro to AsyncTaskLoader, (vii)3.3.2 AsyncTaskLoader Callbacks ...nnsmne3 11 3.3.3. Benefits of Loader. 3-11 3.4 Broadcast Receiver. 3-12 3.4.1 Broadcast intents... 3-12 3.4.2 Security Guidelines 3-16 3.5. Services... 3-17 3.5.1 What is a Service ?. 3-17 3.5.2 Start and Stop Services 3-18 35.3. Service Lifecycle. 3-20 3.5.4 Foreground Services. 3-21 3.6 Notification 3-22 3.6.1 What is a notification ?. 3-22 3.6.2 Notification Design Guideline......n03 = 23 3.7. Triggering, Scheduling, and Optimi Background... oe B-27 3.7.1 Alarm Manager.. 3-27 3.8. Transferring Data Efficiently 3-31 3.8.1 Cell Radio Lifecycle 3-31 3.8.2 _JobScheduler. 13-35 Chapter - 4 Data - Saving, Retrieving, Loading (4-1) to (4-24) 4.1. Storing Data in Your App .. 4-2 4.1.1 Shared Preferences. 4-2 4.1.2. SQlite Database... sonnel S 4.2. Store Data using SQLite Database anced “9 4.2.1 SQL Databases 4.9 4.3. Using Content Resolver to Access Data... - 12 4.3.1 What is Content Provider ?. su AD 4.3.2 What isa Content Resolver ? 4-12 4.4 Content Provider... 41d 4.4.1. Implementing a Content Provider... 14 4.4.2 Contract 4-15, 4.43 Using a Content Resolver. 4-18 4.4.4 Permissions in from the Content Provider... 4.4.5 Permissions Client App Requests FFOM USF sonnei se -20 45 Using Loaders to Load and Display Data ...4 - 20 4.5.1 Using Loaders to Asynchronously Load Data into Activity or Fragments 4.22 4.5.2 Using Cursor Loader with Content Provider.... 4-23 Chapter - 5 Polish and Publish (5 - 1) to (5 - 30) 51 5.2 53 54 55 Permissions Libraries .. Widgets enn Publish your Apy Publish your Appl...nesmssnnnnnstnHello World |Syllabus : Hello World, Concept Create Your First Android App, Concept : Layouts, Views and Resources, Concapt : Seraling Views, Concept : Resources to Help You Leam, Activitios and Intents, The Activity Lifecycle and Managing State , Starting Activities with Implicit Intents, Testing and Debugging, and Backwards Compatility Contents 1.1 Introduction to Android 1.2. Concept ; Create Your First Android App. 1.3 Create Android Application qeat 1.4 Concepts : Layouts, Views and Resource: 1-27 1.5 Concept : ScrollingView 1-36 1.6 Concept : Resources to Help You Learn 1-38 1.7 Activity and Intent... 1-39 1.8 Implicit Intent 1-45 1.9 Debug Your App... 1.10 Testing Your App. apAndroid Programming Hello World [4] introduction to Android World is contracting with the growth of mobile phone technology. As the number of users is increasing day by day, facilities are also increasing. Starting with simple regular handsets which were used just for making phone calls, mobiles have changed our lives and have become part of it, Now they are not used just for making, calls but they have innumerable uses and can be used as a Camera , Music player, Tablet PC, T.V. , Web browser etc. And with the new technologies, new software and ‘operating systems are required Operating systems have developed a lot in last 15 years. Starting from black and white phones to recent smart phones or mini computers, mobile OS has come far away. Especially for smart phones, Mobile OS has greatly evolved from Palm OS in 1996 to Windows pocket PC in 2000 then to Blackberry OS and Android ‘One of the most widely used mobile OS these days is, ANDROID. Android is a software bunch comprising not only operating system but also middleware and. key applications. Android Inc was founded in Palo Alto of California, US. by Andy Rubin, Rich miner, Nick sears and Chris White in 2003. Later Android Inc. acquired by Google in 2005. After original release there have been number of updates in the original version of Android. Why Develop Android app ?? There are 7 reason to develop android app. 1) Market Share : (See Fig. 1.1.1) 2) Profitabilit In most app categories, Android apps have been found to be as. profitable (even more profitable in some instances) as iPhone apps, both for initial app purchases and for in-app purchases. Also, with many apps using a free with ads model, as long as the ads are being shown to app users, the app generates income. Blackbery 7" Windows we ios ‘Andtoid Android M103 Windosws. i Blockbery Ill Others Fig. 1.4.4 3) Low Barrier Entry : ‘To develop for 10S devices, a developer must use a Mac. However, Android app development can be done on Windows, Mac and Linux. Also, to register as a developer on the Apple App Store requires a yearly fee of $99, whereas to register as a developer on the Google Play Store requires a one time payment of $25. 4) Google Play Store : Apps deployed to the Google Play store are available for download by users within a few hours, compared to a few weeks for Apple's App Store. Another excellent feature of the Play Store is the ability to release an app as alpha and/or beta releases, which would be available only to members of a selected group of testers, 5) Java: Java is a proven and powerful programming language, used on a wide range of devices and operating systems. Learning Java can open doors for other opportunities, including the al y to develop applications for other operating systems (Windows, Linux) and devices. 6) Android Studi Android studio is an excellent IDE, based on the equally excellent IntelliJ IDE. As the name suggests, Android Studio is an IDE d Android app development. It is blazingly fast and sned and developed specifically for efficient, and you can setup a new Android project for different types of Android apps within seconds. Technical Publications” ~ An up trust for hrowiedvoAndroid Programming 13 Hello World 7) Portability = Native Android apps are developed using the Java programming language, and can easily be ported to other mobile operating systems like Blackberry, Symbian and Ubuntu. In addition, Android apps can also be ported easily to Chrome Os. Flavours of Android Operating System : ‘Android 1.1 Android 1.5 Cupeake Android 1.6 Donut Android 2.0 and 2.1 Eclair Android 2.2 Froyo Android 2.3 Gingerbread Android 3.0 and 3.1 Honeycomb Android 4.0 Tee Cream Sandwich Android 4.1, 4.2 and 4.3 Jellybean 10. Android 4.4 KitKat 11. Android 5.0 Lollipop 12, Android 6.0 Marshmallow 13. Android 7.0 Nougat 1. Andi 11 Android as the OS was born on the T-Mobile G1 which was extremely powerful for its time. This version of Android showcased its potential but it was best suited for early adopters and gadget freaks. While the GI couldn’t beat the iPhone sales in numbers and revenue, it offered some of the features key features of Android which we still find on our phones. Following, are the features that came with it. + The Android Market was used as a single source of delivery for Android apps and contrary to Apple's, tight restrictions on the App Store, the Android Market served apps without any restrictions. + It came with the Android browser which made surfing the web fun. + It was the first version of Android to offer data syncing with Google. ‘+ It came with Google maps which used GPS to point hot location on a map. This was the beginning of never getting lost again. 2. Android 15 Cupcake Cupcake was the Android version which started the tasty treat naming tradition for Android releases. Fig. 14.2 This was the very first major Android update and was released in May 2009. The most noticeable feature with cupcake was the virtual keyboard support which paced the way for buttonless smartphones of the future. Following are the features that came with it. + It came with shortcuts and widgets on the home screen which allowed infinite ways to customize the home sereen, Video recording was added to the camera along with the ability to directly upload videos to Youtube, ‘The browser got a speed improvement along with copy-paste support. 3. Android 1.6 Donut Android 1.6 Donut was released in October of 2009. It offered a few major improvements. The biggest feature addition was the added support for CDMA which brought a whole new crowed to Android CDMA was the technology used by American mobile networks at the time, Following are the features that came with it. ‘+ It came with support for multiple sereen resolutions and paved the way for Android devices of different screen sizes. tT Technical Publications” ~ An up trust for hrowiedvoAndroid Programming 1-4 Hello World Fig.1.1.3 + Google Maps Navigation was added with turn by turn satellite navigation support. + Donut included universal search feature which allowed us to pinpoint apps on the phone or searching the web. 4. Android 2.0 and 2.1 Eclair ‘There wasn’t a long wait after the release of Donut, for Eclair to be released. In fact, it was launched just a month after Donut in November of 2009, Eclair Android 2.C Fig. 1.1.4 Eclair 2.1 however, arrived in January 2010 with bug, fixes and new APIs to play with. There weren't any significant new additions in terms of features for users. Following are the features that came with it + Multi-touch support was added to Android, + Web browser received a visual overhaul with a new address bar and thumbnails for a sneak peek. + Eclair brought a unified inbox to Android. Support for multiple Google accounts was added. + Support for searching within text messages. 5. Android 2.2 Froyo Android Froyo was released in May 2010. Fig. 11.5 ‘The major update that came with Froyo was the addition of Flash. Following are the features that came with it + Phone flash could be used in videos too. ‘+ Settings joined contacts and email in backing up to Google’s servers allowing you to automatically restore everything on a new device. + Enhanced Bluetooth compatibility with docks and car speakers, * Portable WiFi hotspot to. share the device's 3G connection with other gadgets. 6 Android 2.3 Gingerbread Gingerbread was released in 2010 but it wasn’t a release which made a lot of noise. Fig. 11.6 Main features included NFC support, SIP for Internet calling, Following are the features that came with it. Tootnical Publications ‘nu trust or knowlegeAndroid Programming 1-5 Hello World + UI overhaul to avoid screen burn-in and improve battery life + Front facing camera support for video calling, + Download manager for keeping an eye on your downloads + Improved on-screen keyboard with shortcuts and a cursor to help with copy paste. 7. Android 3.0 and 3.1 Honeycomb ‘This version of Android is the most disregarded of all. It was released specifically for tablets and never came to the phon Fig. 1.4.7 ‘Honeycomb was launched in May 2011 and it basically expanded Android to support big screens of tablets. Following are the features that came with it, + Several Ul improvements to make use of the large + Hardware buttons are dropped in favor of on-screen buttons, + Web browser introduced tabbed browsing, + Bigger and bolder widgets. + Apps like Gmail and YouTube were redesigned to make use of the large screen 8, Android 4.0 Ice Cream Sandwich Ice Cream Sandwich (ICS) was the first Android version to be May 2011 nnounced at the Google I/O conference in Although there was a long delay of around 7 months till, anyone could use it because the Samsung Galaxy Nexus started shipping only in December. Following are the features that came with it. + The biggest redesign to Android with the Holo theme. + Faster smoother browsing experience. + Multi storage space for apps. + Face recognition for unlocking the phone. Fig. 1.1.8 9. Android 4.1, 4.2 and 4.3 Jellybean Jellybean was released in June 2012 and while the version number wasn’t a huge one, it added a lot of new features. Fig. 1.1.9 Following are the features that came with it. + Google Now, an assistant tool that displays relevant information based on your search history. + Project Butter to support higher frame rates while swiping through menus and home screens, Tootnical Publications ‘nu trust or knowlegeAndroid Programming 16 + Ability to quickly view photos by swiping from the camera to go to the filmstrip. + Widgets realign themselves on adding new ones. + Richer notifications. + New gestures and accessibility features. 10, Android 4.4 KitKat Android 44 KitKat was the last 4.x release and brought some major improvements both internally and visually to Android. Fig. 1.1.10 Tt was released in November of 2013. Following are the features that came with it. Hello World ‘+ Immersive mode for better content consumption. + Better navigation bar for getting in and out of Immersive mode. ‘+ Lock sereen widgets support + New dialer with Caller ID feature + Fullscreen wallpapers. + Emoji keyboard for emoticons. + Unified Hangouts and messaging app. + Better cloud print support. ‘+ Smarter, hands-free Google Now Integration, IL, Android 5.0 Lollipop Android 5.0 Lollipop was announced at Google I/O in May 2014, and so far it’s been the biggest redesign for Android. ‘The biggest improvement that Lollipop brought was the introduction of Material Design which quickly became the uni jed design language implemented across Google products. Following are the features that came with Fig. 1.1.11 Technical Pbleatons” ~An up trust for hrowiedvoAndroid Programming, 1-7 + Better quick settings support + Enhanced battery life with new Battery Saver mode. + New lock screen. + Smart Lock features via Google Play Services. = Guest mode for device sharing, ‘© App pinning, 12. Android 6.0 Marshmallow While Lollipop was a big feature release, Marshmallow served the purpose of polishing out the rough comers and making the experience of Lollipop even better. It was showcased at Google 1/0 in 2015. Following are the features that came with it = Marshmallow came with Doze for better standby time. ‘+ Official fingerprint support for devices + Support for mobile payments via Android Pay. ‘+ Better permissions model for apps. ‘= Google Now on Tap. + Deep linking of Apps. Fig. 1.1.12 13, Android 7.0 Nougat This brings us to the last and most recent version of Android, and that is Android 7.0 Nougat. Unlike others, Nougat was released way before Google 1/O in the month of March 2016. It brought with it some significant improvements and features. Following are the features that came with it, Hello World Fig. 1.1.13 + Doze on the Go for even better standby time. + Multi Window for using two apps at the same time. + Better Settings app. + Clear all in the recent apps screen. + Direct Reply to notifications. + Bundled notifications + Quick Settings toggles customization Challenges of developing for Android 1. Software fragmentation : There are many Android OS versions which developers find hard to keep up. with when it comes to app development. It is impractical to focus only on the most recent Android version as not all users may have upgraded to the most recent OS, 2. Hardware fragmentation : This becomes a big Android app development challenge since there are nearly 170+ devices running the OS. Each device has different features with respect to keyboard forms, screen size, camera buttons, etc, making it a development nightmare. 3. No software/hardware standardization : The huge number of devices running Android gives rise to another Android app development challenge-lack of Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-8 Hello World software/hardware standardization across the devices. This becomes a nightmare for developers as each device has a different function for a different button, 4. Several carriers : Android app development service providers should know that there are many carriers available for the Android OS, each with the freedom to modify the OS for their purposes. This only ‘multiplies the fragmentation problems for developers, 5. Security : Unlike Apple's strict guidelines for app development, no such governance exists for Android apps. Asa result, many malware problems arise and software/hardware fragmentation only makes fixing the problems more difficult. This gives rise to tremendous amounts of security issues. + One of the biggest Android app development challenges for developers is the 6. Market research cost cost behind market research, Understanding the end user key to Android app development, but can require a lot of research, making it costly for developers: 7. Patent issues : Android violation of patent issues. This can become a big, Android app development challenge for developers, ‘The recent lawsuits indicate that several features may be declared as 8. Android market search engine : One of the major Android app development challenges for developers is the Android marketplace. Android has ‘more than 8 million apps on its marketplace today and getting your app visible amongst them is a challenge. As a result, even with a great android app developed, if you don’t pay attention to its promotion, you may lose out on gaining any traction, [2] Concept : Create Your First Android App Overview of the Development Process : First of all you have to setup the android development environment. And then after going for the further Step 1: Setup Java Development Kit (JDK) You can download the JDK and install it, which is pretty easy. After that, you just have to set PATH and JAVA_HOME variables to the folder where you have java and javac. Note for Windows Users : If you installed the JDK in CAldk1.6.0_15 then you will have to add the following two lines in your C:\autoexec.bat fle sot PATH=CA\dk1.6.0_18\binskPATH set JAVA_HOME=C:\\di.6.0_15 Step 2: Android Studio Download the Android studio from the following Link : hitps://developer.android.com/studio/index html after that install it on your system and configure it, Here Lam giving you a steps for configure the Android studio. Android studio presents a splash screen when it starts running : Android G2 S: Fig. 1.2.1 : Android studio's start sereen Technical Pubheatons ‘Anup trust or irowecoeAndroid Programming, 1-9 Hello World On your first run, you'll be asked to respond to several configuration-oriented dialog boxes. The first dialog box focuses on importing settings from any previously installed version of Android Studio, ‘You can import your settings from 2 prewous version of Stud Inport my settings from a custom k Speaty config folder or instalation home of the previous version of Studio: © 1.40 nt have a previous version of Stusho or Ido not want to enport my setnings Dk Fig. 1.2.2 Import settings If you're like me, and 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 (oO ¢ vol jee Fig. 1.2.3 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, 77 Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-10 Hello World Gag 211 Type Fig. 1.2.4 Choose an installation type Click Next and verify your settings, then click Finish to continue. Gag Verty Serting sre Shmtmenscetatcte 04 compen enn Fig. 1.2.5 Review settings 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, 77 Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-11 Hello World ig. 1.2.6 The wizard downloads and unzips Android Studio components If your computer isn’t Intel based, you might get an unpleasant surprise after the components have completely downloaded and unzipped: m2 ceposivory/com/google/' bs roid SUK ie up to dat 10/ ti cebas ~core-8, an: unable & éngeali Intel Mant a does not support required feat YOUr computer does not support hardy Here are some of your options 1) Uae « phys ting 2) Develop on a Windove/aS% computer ¥ shat supporta Yr-x and ®K = (ere or svt) 1 device on Ine pro 3) Develop on 4 Linux complter ShAL aupporeé YE-R of GYM ARM eystem inage ed Hing Android virtual device Gnable to crea create A Fig. 1.2.7 Intel-based hardware acceleration is unavailable 77 Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-12 Hello World Your options are to either put up with the slow emulator or use an Android device to speed up development. Finally, click Finish to complete the wizard. You should see the Welcome to Android Studio dialog box : Android Studio © Stara new Andrond Studio project E21 0pen an exsting Android Stud project neck ut pryeet rom Version Control + (Ff Impion projet (Eclipse ADT, Grade ere) ©F Import an Andon code sample © configue- GetHetn + Fig. 1.2.8 Welcome to Android Studio You'll use this dialog to start up a new Android Studio project, work with an existing project, and more. You can access it anytime by double-clicking the Android Studio shortcut on your desktop. Your first Android Studio mobile app The quickest way to get to know Android Studio is to use it to develop an app. Well start with a variation, on the "Hello, World” application: alittle mobile app that displays a "Welcome to Android" message. In the steps that follow, you'll start a new Android Studio project and get to know the project workspace, including the project editor that you'll use to code the app in Part 2. Starting a new project From our setup so far, you should still have Android Studio running with the Welcome to Android Studio dialog box. From here, click Start a new Android Studio project. Android Studio will respond with the Create New Project dialog box shown in Fig, 1.2.9. 77 Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-13 Hello World Fig. 1.2.9 Create a new project Enter W2A (Welcome to Android) as the application name and javajeff.ca as the company domain name. ‘You should then see C:\Users\jeffrey\ AndroidStudioProjects\W2A as the project location, Click Next to select your target devices. Fig. 1.2.10 Select your target device categories Android Studio lets you select form factors, or categories of target devices, for every app you create. T would have preferred to keep the default API 1 Android 4.0.3 (IceCreamSandwich) minimum SDK 77 Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-14 Hello World setting (under Phone and Tablet), which is supported by my Amazon Kindle Fire HD tablet. Because Android Studio doesn't currently support this API level (even when you add the 4.0.3 system image via the SDK Manager), I changed this setting to API 14: Android 40 (IceCreamSandwich), which is also supported by my tablet. Click Next, and you will be given the opportunity to choose a template for your app's main activity. For now we'll stick with Empty Activity, Select this template and click Next. Fig, 1.2.11 Specity an activity template Next you'll customize the activity = FAR customize the Activity Fig. 1.2.12 Customize your activity = Technical Publications” An up twust fr RrowiedgeAndroid Programming 1-15 Hello World Enter W2A as the activity name and main as the layout name, and click Finish to complete this step. Android Studio will respond that itis creating the project, then take you to the project workspace, Fig. 1.2.13 Android Studio workspace ‘The project workspace is organized around a menu bar, a tool bar, a work area, additional components that lead to more windows (such as a Gradle Console window), and a status bar. Also note the Tip of the Day dialog box, which you can disable if you like. ‘Accessing AVD Manager or SDK Manager from ‘menu and tool bar To access the traditional AVD Manager or SDK Manager, select Android from the Tools menu followed by AVD Manager or SDK Manager from the resulting Pop-up menu (or click their tool bar icons). AVD- Android Virtual Device About AVDs An AVD contains a hardware profile, system image, storage area, skin, and other properties. Hardware profile ‘The hardware profile defines the characteristics of a device as shipped from the factory. The AVD Manager comes preloaded with certain hardware profiles, such as Nexus phone devices, and you can define and import hardware profiles as needed. You can override some of the settings in your AVD, if needed. To effectively test your app, you should create an AVD that models each device type that your app is designed to support. ‘System image +The AVD Manager helps you choose a system image for your AVD by providing recommendations. It also lets you download system images, some with add-on libraries, like Google APIs, which your app might require. x86 system images run the fastest in the emulator. 77 T Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-16 Hello World + Android Wear and Android TV devices tend to run best (and have the largest installed base) on recent releases, while users of Android phones and tablets tend to use slightly older releases, as shown in the API level dashboards. + We recommend that you create an AVD for each API level that your app could potentially support based on the
setting in your manifest. For example, you might want to test with all API levels that are equal to and higher than the minSdkVersion setting, By testing with API levels higher than required by your app, you ensure app forward-compatibility when users download system updates, Storage area The AVD has a dedicated storage area on your development machine. It stores the device user data, such as installed apps and settings, as well as an emulated SD card. If needed, you can use the AVD Manager to wipe user data, so the device has the same data as if it were new. Skin An emulator skin specifies the appearance of a device. The AVD Manager provicies some predefined skins. ‘You can also define your own, or use skins provided by third parties. AVD and app features Just as with a real device, for apps to use certains features defined in an AVD, such as the camera, it must have the corresponding
setting in the app manifest. See Hardware Profile Properties and AVD Properties for lists of features you can define in your AVDs. ‘Viewing and Managing Your AVDs ‘The AVD Manager lets you manage your AVDs all in one place. ‘To run the AVD Manager, do one of the following : + In Android Studio, select Tools > Android > AVD Manager. + Click AVD Manager in the toolbar. ‘The AVD Manager appears. t me Soweie2] EN 2 pewsouiodid ase Lk bee Dream eT] Ree TS monurvdou onze ana emt 8 TD smn sean om x20) 2k eases SL ee Tl tenn snes toon t2M sry «21 ete 8 bre Fig. 1.2.14 = Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-17 Hello World It displays any AVDs you've already defined. When you first install Android Studio, it creates one AVD. If you defined AVDs for Android Emulator 24.0.x or lower, you need to recreate them. From this page you can : + Define a new AVD ot hardware profile. ‘+ Edit an existing AVD or hardware proiile. + Delete an AVD or hardware profile. ‘+ Import or export hardware profile definitions. + Run an AVD to start the emulator. ‘+ Stop an emulator. + Clear data and start fresh, from the same state as when you first ran the emulator. sk, ‘+ Show the associated AVD .ini and .img files on + View AVD configuration details that you can include in any bug reports to the Android Studio team, ing an AVD You can create a new AVD from the beginning, or duplicate an AVD and change some properties. ‘To create a new AVD 1. From the Your Virtual Devices page of the AVD Manager, click Create Virtual Device. Alternatively, run your app from within Android Studio. In the Select Deployment Target dialog, click Create New Emulator. ‘The Select Hardware page appears. Seay ‘Choore a devs definition comet om any mst - <= Fig. 1.2.15Android Programming, 1-18 Hello World 2. Select a hardware profile, and then click Next. If you don't see the hardware profile you want, you can create or import a hardware profile ‘The System Image page appears. Sac Selecta system image RRR 05 rao citer ses — oe = Serre aah eee gait Se 09 Down mee Andel $1 a" a & PV ovate in tnt tnd cae pe or Cofe A Cust on Ant Fig. 1.2.16 3. 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 downloa The APT level of the target device is important, because your app won't be able to run on a system image specified in the minSdkVers with an API level that's less than that required by your app, For more information about the relationshi the app manifest fi between system API level and minSdkVersion, see Versioning Your Apps, If your app declares a
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. = Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1 19 Hello World Virtual Device (AVD) ‘en Contguraion| TH peuse sao oe amaeoam oO =. Ghee ene | Fig. 1.2.17 ‘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. To create an AVD starting with a copy: 1. From the Your Virtual Devices page of the AVD. ‘Manager, right-click an AVD and select Duplicate. Orclick Menu. and select Duplicate, ‘The verify configuration page appears. 2. Click Change or Previous if you need to make changes on the System Image and Select Hardware pages. 3. Make your changes, and then click Finish. ‘The AVD appears in the Your Virtual Devices page. Creating a Hardware Profile The AVD manager provides predefined hardware profiles for common devices so you can easily add them to your AVD definitions. If you need to define a different device, you can create a new hardware profile, You can define a new hardware profile from the beginning, or copy a hardware profile as a start. The preloaded hardware profiles aren't editable. To create a new hardware profile from the beginning 1. In the Select Hardware page, click New Hardware Profile. 2. In the Configure Hardware Profile page, change the hardware profile properties as needed, 3. Click Finish. Your new hardware profile appears in the Select Hardware page. You can optionally create an AVD that uuses the hardware profile by clicking Next. Or, click T = Technical Pubheatons ‘Anup trust or irowecoeAndroid Programming, 1 Cancel to retum to the Your Virtual Devices page or Select Deployment Target dialog To create a hardware profile starting with a copy : 1. In the Select Hardware page, select a hardware profile and click Clone Device. Or right-click a hardware profile and select Clone. 2. In the Configure Hardware Profile page, change the hardware profile properties as needed. 3. Click Finish, Your new hardware profile appears in the Select Hardware page. You can optionally create an AVD that uses the hardware profile by clicking Next. Or, click Cancel to retum to the Your Virtual Devices page or Select Deployment Target dialog. Working with Existing AVDs From the Your Virtual Devices page, you can perform the following operations on an existing AVD : + To edit an AVD, click Edit 7 changes. + To delete an AVD, right-click an AVD and select Delete. Or click Menu. ¥ and select Delete. and make your + To show the associated AVD Jini and .img files on disk, right-click an AVD and select Show on Disk Or click Menu. ¥ and select Show on Disk. + To view AVD configuration details that you can include in any bug reports to the Android Studio team, right-click an AVD and select View Details. Or click Menu. ¥ and select View Detail ‘Viewing logs in the Logeats and AVD. Android Monitor includes a logeat Monitor that displays debug messages. The logeat Monitor displays system messages, such as when a garbage collection occurs, as well as messages that you can add to your app using the Log class. It displays messages in real 20 Hello World time and also keeps a history so you can view older messages. To display the log messages for a particular app 1. Meet the prerequisites and dependencies. Open an app project. Run the app on a hardware device or emulator. Display Android Monitor. Click the logeat tab. Android Manifest File : Every application must have an AndroidManifest.xml file (with precisely that name) in its root directory. The manifest file provides essential information about your app to the Android system, which the system must have before itcan run any of the app's code. Among other things, the manifest file does the following : + It names the Java package for the application. The package name serves as a unique identifier for the application. + It describes the components of the application, which include the activities, services, broadcast receivers, and content providers that compose the application, It also names the classes that implement each of the components and publishes their capabilities, such as the Intent messages that they can handle. These declarations inform the Android system of the components and the conditions in which they can be launched. + It determines the processes that host the application components. ‘+ It declares the permissions that the application must have in order to access protected parts of the API and interact with other applications. It also declares Technical Pubheatons ‘Anup trust or irowecoeAndroid Programming, 1 the permissions that others are required to have in order to interact with the application's components, ‘+ It lists the Instrumentation classes that provide profiling and other information as the application runs, These declarations are present in the manifest only while the application is being developed and are removed before the application is published «It declares the minimum level of the Android API that the application requires. # It lists the libraries that the application must be linked against. Here is an example of the manifest file
instrumentation />
-
catogory />
21 Hello World
...
...
...
<
-
Create Android Application ‘The first step is to create a simple Android Application using Android studio. When you click on Android studio icon, it will show screen as shown below Technical Pubheatons “ann trust or inawiecgeAndroid Programming, 1-22 Hello World e Welcome to Android Studio a ae ae PR Septet om oninginintopene IF. erencoerspanen SS cha ee se EB error nsec nor, ite ee} Fig. 1.3.1 You can start your application development by calling start a new android studio project. in a new installation frame should ask Application name, package information and location of the project. Peay Fig. 1.3.2 = F Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-23 Hello World After entered application name, it going to be called select the form factors your application runs on, here need to specify Minimum SDK, in this, I have declared as API23: Android 6.0(Mashmallow) tthe et yp tna one Saar Fig. 1.3.3 The next level of installation should contain selecting the activity to mobile, it specifies the default layout for Applications. Ene gon Fig. 1.3.4 At the final stage it going to be open development tool to write the application code. 77 Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-24 Hello World aus Fig. 1.3.5 Anatomy of Android Application Before you run your app, you should be aware of a few directories and files in the Android project ~ y Di manifests 1B AndroidManifestaml a) » Ex comexampletutoriaspoint7 myapplication Ei comexampletutoriaspintZ myapplication(onsioitTet Ei comerampletutoriaspoint7 myapplication |) y Cares 1 deanable ——__________[ + Blayout Bochner EX mipmap © Bic tauncherpng (5) Se 1B colorsxm! » © dimen 1B stings! B stylesam! YB GxadeSenpts buid grate Pees MyAppenion © buitdgrae (Mode opp) {6 proguard-rle pr B settings grade Proje Se [a local propertis 08 Fig. 1.3.6 = F Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1 Sr.No. Folder, File and Description 1 Java ‘This contains the java source files for your project. By default, it includes an MainActivity java source file having an activity class that runs when your app is launched using the app icon. 2 res/drawable-hapi ‘This is a directory for drawable objects that are designed for high-density screens. 3 res/layout This is a directory for files that define your app's user interface, 4 resjvalues ‘This is a directory for other various XML files that contain a collection of resources, such as strings and colours definitions, 5 AndroidManifest.xml his is the manifest file which describes the fandamental characteristics of the app and defines each ofits components, 6 Build gradle ‘This is an auto generated file which contains ‘compileSdkVersion, buildToolsVersion, applicationld, minSdkVersion, targetSdkVersion, versionCode and versionName Following section will give a brief overview few of the important application files. The Main Activity File The main activity code is a Java file MainActivity java This is the actual application file which ultimately gets converted to a Dalvik executable and runs your application. Following is the default code generated by the application wizard for Hello World! application ~ package com.example.helloworld; import android.support.v7.app.AppCompatActivity; import android.os. Bundle; public class MainActivity extonds AppCompatActivity { @override protected void onGreate(Bundle savedInstanceState) { super.onCreate(savedinstanceState); 25 Hello World setContentView(Rlayout.activity_main); } y Here, Rlayout.activity_main refers to the activity_main, xml file located in the res/layout folder. The onCreate() method is one of many methods that are figured when an activity is loaded. The Manifest File Whatever component you develop as a part of your application, you must declare all its components in a which the of the application project directory. This file works as an interface between Android OS and your application, s0 if you do not declare your component in this file, then it manifest.xml resides at root will not be considered by the OS. For example, a default manifest file will look like as following file ~ 1,0" encoding="ut-8"7> om. example Hitesh7.myapplication">
activity android:name="MainActivity"> <
<
Here
..
tags enclosed. the the application. Attribute androidsicon will point to the application icon available components related to under res/drawable-hdpi. The application uses. the image named ic_launcher-png located in the drawable folders Technical Pubheatons ‘Anup trust or IrowedoeAndroid Programming, 1 26 Hello World The
tag is used to specify an activity and android:name attritmte specifies the fully qualified class name of the Activity subclass and the android:label attributes specifies a string to use as the label for the activity. You can specify multiple activities using
tags. ‘The the filter android.intent.aetion. MAIN to indicate that this activity action for intent is named serves as the entry point for the application. The category for the —_intent-filter_ is named android.intent.category.LAUNCHER to indicate that the application can be launched from the device's launcher icon. The @string refers to the strings.xml file explained below. Hence, @string/app_name refers to the app_name string defined in the strings.xml file, which is. "HelloWorld". Similar way, other strings get populated in the application. Following is the list of tags which you will use in your manifest file to specify different Android application components ~ +
elements for activities =
elements for services ‘+
elements for broadcast receivers +
elements for content providers The Strings File ‘The strings.xml file is located in the res/values folder and it contains all the text that your application uses. For example, the names of buttons, labels, default text, and similar types of strings go into this file. This file responsible for their textual content. For example, a default strings file will look like as following file ~ ‘string name="app_name'»HelloWorld string name="hello_world'>Hello world!
MainActivity
The Layout File ‘The activity mainxml is a layout file available in res/layout directory, application when building its interface. You will modify that is referenced by your this file very frequently to change the layout of your application, For your "Hello World!" application, this file will have following content related to default layout,
‘
UI Elements All user interface elements in an Android app are built using View and ViewGroup objects. A View is an object that draws something on the screen that the user can interact with, A ViewGroup is an object that holds other View (and ViewGroup) objects in order to define the layout of the interface. User Interface Layout ‘The user interface for each component of your app is defined using a hierarchy of View and ViewGroup objects, as shown in Fig, 1.4.1. Each view group is an invisible container that organizes child views, while the child views may be input controls or other widgets that draw some part of the UL This hierarchy tree can be as simple or complex as you need it to be (but simplicity is best for performance). View View View View Fig. 1.4.1 Illustration of a view hierarchy, which defines a UI layout = Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1 To declare your layout, you can instantiate View objects in code and start building a tree, but the easiest and most effective way to define your layout is with an XML file. XML offers a human-readable structure for the layout, similar to HTML. ‘The name of an XML element for a view is respective to the Android class it represents. So a
clement creates a TextView widget in your Ul, and a
element creates a LinearLayout view group. 3] Recourses Layouts : There are number of Layouts provided by Android which you will use in almost all the Android applications to provide different view, look and feel. Sr.No Layout and Description 1 Linear Layout LinearLayout isa view group that aligns all ‘children in a single direction, vertically or horizontally. 2 Relative Layout RelativeLayoutis a view group that displays. child views in relative positions. 3 Table Layout TableLayout is a view that groups views into rows and columns, 4 Absolute Layout Absolutelayout enables you fo specify the exact location ofits children. 5 Frame Layout ‘The FrameLayout is a placeholder on screen that you can use to display a single view. 6 List View ListView is a view group that displays alist of scrollable items, 7 Grid View GridView is a ViewGroup that displays items in a two-dimensional, scrollable grid. 29 Hello World Style and Themes : Defining Styles A style is defined in an XML resource that is separate from the XML that specifies the layout. This XML file resides under resivalues/ directory of your project and will have
as the root node which is mandatory for the style file. The name of the XML file is arbitrary, but it must use the xml extension. You can define multiple styles per file using
‘The value for the
can be a keyword string, a hex color, a reference to another resource type, or other value depending on the style property. Using Styles Once your style is defined, you can use it in your XML. Layout file using style attribute as follows. ‘
#0000 In your AndroidManifestxml apply the theme to the activities you want to style
elements to your custom theme. These attributes are defined in your styles.am! file. For example, to apply the custom color to the window background, add the following two
elements to your custom theme, defined in My Android App/res/values/styles.xml file Technical Publications "anu trust for nowiecgeAndroid Programming, 1 coo Foursquare BB sstestorce ra Facebook ced ol Hope you understood the concept of Style, so now let's try to understand what is a Theme. A theme is nothing but an Android style applied to an entire Activity or application, rather than an individual View. Thus, when a style is applied as a theme, every View in the Activity or application will apply each style property that it supports. For example, you can apply the same CustomFontStyle style as a theme for an Activity and then all text inside that Activity will have green monospace font To set a theme for all the activities of your application, open. the file
tag to include the android:theme AndroidManifest.xml and edit the attribute with the style name. For example ~
‘There are number of default themes defined by Android which you can use directly or inherit them using parent attribute as follows ~ Default Styles and Themes ‘The Android platform provides a large collection of styles and themes that you can use in your applications. You can find a reference of all available styles in the R.style class. To use the styles listed here, replace all underscores the style name with a period. For example, you can apply. the ‘Theme_NoTitleBar theme with “android:style/Theme-NoTitleBar". You can see the following source code for Android styles and themes + Android Styles (styles.xml) hUtps://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/s tylesxml + Android Themes (themes.xml) https://android.googlesource.com/platform/frameworks/base/'/refs/heads/master/core/res/res/values/t hhemes.xml 1.4.4] 1D ‘An Android id is an integer commonly used to identify views; this id can be assigned via XML (when possible) and via code (programmatically.) The id is most useful for getting references for XML-defined Views generated by an Inflater (such as by using setContentView.) Assign ID via XML + Add an attribute of android '@+id/somename" to your view. + When your application is built, the android:id will be assigned a unique int for use in code + Reference your android:id’s int value in code using "Rid.somename" (effectively a constant.) ‘+ this int can change from build to build so never copy an id from gen/package.name/R java, just use "Rid.somename’ (Also, an id assigned to a Preference in XML. is not used when the Preference generates its View.) Assign id via code (programmatically) + Manually set ids using someView-setld (int); ‘+The int must be positive, but is otherwise arbitrary- it can be whatever you want (keep reading if this is frightful.) Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-33 Hello World ‘+ For example, if creating and numbering several views representing items, you could use their item number. On click Attribute : To define the click event handler for a button, add the android:onClick attribute to the
element in your XML layout. The value for this attribute must be the name of the method you want to call in response toa click event. The Activity hosting the layout must then implement the corresponding method, For example, here's a layout with a button using android:onClick ‘<‘huml version="1.0" encoding="wtt-8'7> Button xmlns:androi 3ttp://schemas.android.com/apk/res/android™ android ‘@tid/button_send* androié'layout_width="wrap_content* android:layout_ height ="wrap_content" (@string/button_send! android:onCtick: Within the Activity that hosts this layout, the following method handles the click event: 17 called whon the user touches the button */ public void sendMessage(View view) { 11 Bo something in response to button lik } Getting user input from a view + You can enter numbers, letters, symbols et. into the txt fed +The inputType attribute defines the type of data that is expected to be entered into the field. + You can see a full isto input types here + You set the text type in your layout file, using the inputType atrbute sndroidinpurType="tenPersonName text Capwords" Here we specify thatthe input text shouldbe of the text type TTT DEL ELI and that the first letter of each word should automatically be Seognonon capitalized |) I-11 = The text type also determines which keyboard is displayed : A typical text keyboard is displayed for entering a name. The first letter of each word is automatically capitalized Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1 ‘Anumber keyboard is displayed when the inputType is set to phone android:inputType="phone” Programmatically changing Ul element : Here we will discuss the activities, which can hold the views and View Groups. Generally the view is a widget that has a representation on the screen. Common views are buttons, labels, and textboxes ete. A view is originated from the base class android view. In general fone or more views can be grouped together into a ViewGroup system. The ViewGroup (we define the view group as special type of view) provides the layout in which we can define the presence and classification of the views, ‘As per the Illustrations of the ViewGroups we can encompass LinearLayout and FrameLayout. Habitually the ViewGroup, android.view.ViewGroup. Now we are discussing derives from the base clas ViewGroups which is supported by the Android System. + LinearLayout + AbsoluteLayout + TableLayout + RelativeLayout + FrameLayout 34 Hello World + ScrollView to Set Views and LinearLayout User Interface Programmatically Procedure Now here we ate discussing about the LinearLayout, ‘This LinearLayout arranges views in a single column or a single row manner. Basically the Child views can be structured either vertically or horizontally. The file is also written here, Listing 3 : Sample linear layout ‘
Above program is now illustrated through the ‘main.xml file. In the program segment we perceive that the
and root (main segment) of the element is it has a
element present inside it. The
element controls the order in which the views are restricted. In that respect we take an illustration, the width of the
element fills the entire width of its parent Basically the screen adjusts are using the filling_parent constant. Its height is specified by the wraping_contents After that if we do not think about the
view to occupy the entire row, for that constant, circumstance we can set its layout_width attribute to wraping_content, this process is like below. Listing 4 : Sample showing layout
Layout Manager The layout manager decides how the data in the RecyclerView is displayed. The recycler view library provides the following build-in layout managers. + _LinearLayoutManager shows items in a vertical or horizontal serolling list. + GridLayoutManager sho ‘+ StaggeredGridLayoutManager shows items in a staggered grid ‘+ Using Android’s XML vocabulary, you can quickly design UI layouts and the sereen elements they contain, in the same way you create web pages in HTML — with a series of nested elements. tems in a grid. ‘+ Each layout file must contain exactly one root element, which must be a View or ViewGroup object. ‘Once you've defined the root element, you can add additional layout objects or widgets as child elements to gradually build a View hierarchy that defines your layout. For example, here's an XML. layout that uses a vertical LinearLayout to hold a TextView and a Button : wh B'>
@viaren" android:layout_width="wrap_content android:layout_height="wrap_content’ android:text="Hello, Lam a TextView" /> ‘@-+idfbutton" android-layout_width="wrap_content! androidlayout_ height "Hello, Tam a Button’ />
F Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1 [1.46] Inflating the Layout public abstract class Layoutinflater extends Object java.lang.Object \, android view LayoutInflater + Instantiates a layout XML file into its corresponding, View objects, It is never used directly. Instead, use getLayoutinflater() retrieve a standard Layoutinflater instance that is already hooked up to the current context and correctly configured for the device you are running corgetSystemService(Class) to on. + To create a new Layoutinflater with an additional Layoutinflater.Factory for your own views, you can use cloneinContext(Context) to clone an existing then call setFactory(Layoutlnflater-Factory) on it to include ViewFactory, and your Factory. + For performance reasons, view inflation relies heavily on pre-processing of XML files that is done at build time. Therefore, it is not currently possible to use Layoutinflater with an XmlPullParser over a plain XML file at runtime; it only works with an XmiPullParser returned from a compiled resource (Rsomething file.) + Instances of this class must be obtained using Context.getSystemService(Class) with the argument Layoutinflater.class or Context.getSystemService (String) with the argument ContextLAYOUT_ INFLATER_SERVICE. [£5] Concept : ScrollingView Most Android application will likely to have the contents that’s doesn’t fit the screen. Think a bit about displaying the news details, the contents are dynamic and can grow beyond your screen size. If we design our screen layout using standard layout managers like LinearLayout, RelativeLayout, FrameLayout or 36 Hello World TableLayout; when the content grows, and data goes beyond sereen size, and user won't be able scroll and view the content, ScrollView is a special kind of layout, designed to hold view larger than its actual size. When the Views size lly adds goes beyond the ScrollView size, it automati scroll bars and can be scrolled vertically. 1. ScrollView can hold only one direct child. This means that, if you have complex layout with more view controls, you must enclose them inside another standard layout like LinearLayout, TableLayout or RelativeLayout, 2. You can specify layout height and layout width to adjust height and width of screen. 3. Scrollview is ideal for screens where scrolling, is required, bu used to render a larger list of data is an overhead when scroll view is Android provides specialized adapter views like ListView, GridView and Recycler View (Introduced in Android Lollipop) are recommended for long lists. 4. You should never use a ScrollView with a ListView or GridView, because they both takes care of their ‘own vertical scrolling, 5. ScrollView only supports. vertical serolling, Use HorizontalSetollView for horizontal scrolling, 6. ‘The andioid:fllViewpOH property defines whether the scrollview should stretch its content to fill the viewport, You can set the same property by calling se{fillViewport(boolean) method, Android ScrollView Example Let us create an example that displays the layout as shown in the below screenshot. Notice that the blue like indicates the outline of textView2 is gone beyond the Technical Publications” An up twust fr Rrowiedge1-37 Hello World Peer er sowanris GESTURE Scrollbar Layout <
= Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-38 Hello World
‘andtoidstes android:text="@string/description" android-textAppearance="androld:attr/textAppearancesmall! />
1.6 Concept : Resources to Help You Learn 1) Sample that ship with SDK : ‘© https://cleveloper.android.com/samplesfindex.html 2) Templates for Projects : ‘+ __httpsi//developer.android.com/studio/projects/templates.html ‘+ __ttps:/www.sketchappsources.com/tag/androidhtm! ‘+ httpsi//codecanyon.net/category/mobile/android ‘+ https:/Avww-template.net/design-templates/android-app-design-templates/ 3) Android Developer Blog : ‘+ __httpsy//android-developers googleblog.com/ ‘+ httpsy/developers. googleblog.com/ 4) YouTube Channel : ‘+ https:/\sww.youtube.com/watch?y=FknElzswvCOélist-PLS1QuIWoIRIbblcYy2ZpLFCK vd YV_yI-E ‘+ https://thenewboston.com/videos.php2cat=278 + _https://www.udemy.com/courses/development/mobile-development/Android-Video-Tutorials/ 5) Source code and Sample on Github : + httpsy/github.com/android ‘+ htipsi//github.com/googlesamples 6) Stack Overflow Android : ‘+ __https://stackoverflow.com/questions/tagged/android Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-39 Hello World 7) Google Search for Android : © http:/www.google.co.in 1.7] Activity and Intent 1) Activity : ‘+ Amactivity represents a single screen with a user interface just like window or frame of Java. Android activity is the subclass of ContextThemeWrapper class. + Ifyou have worked with C, C+ or Java programming language then you must have seen that your progeam starts from main() function. Very similar way, Android system initiates its program with in an Activity starting with a call on onCreateQ) callback method. There is a sequence of calfback methods that start up an activity and a sequence of callback methods that tear down an activity as shown in the below Activity life cycle diagram: (image courtesy : android.com) onRestart() User navigates te the actnvity ‘Another activity comes Into he foreground User returns tothe activity ‘Apps with higher priority me anes ‘onPausel) The activity is 1 Janger visible User navigates te ine activity ‘enStont) “The activity Is fishing or ‘being destroyed by the system ‘onbestoyi) = Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-40 Hello World ‘The Activity class defines the following call backs i.e, events. You don’t need to implement all the callbacks methods. However, it's important that you understand each one and implement those that ensure your app behaves the way users expect Sr.No Callback and Description 1 onCreates) ‘This is the frst callback and called when the activity is first created. 2 onStart() ‘This callback is called when the activity becomes visible to the user 3 onResume() ‘This is called when the user starts interacting with the application, 4 onPauseg) ‘The paused activity does not receive user input and cannot execute any code and called when the current activity is being paused and the previous activity is being resumed. 5 onStop() ‘This callback is called when the activity is no longer visible. 6 onDestroy() ‘This callback is called before the activity is destroyed by the system. 7 onRestart() ‘This callback is called when the activity restarts after stopping it, Example This example will take you through simple steps to show Android application activity life cycle. Follow the following steps to modify the Android application we created in Hello World Example chapter ~ Step Deseri 1 You will use Android studio to create an Android application and name it as HelloWorld under a package com example helloworld as explained in the Hello World Example chapter. 2 Modify main activity file MainActivity java as explained below. Keep rest of the files unchanged. 3 Run the application to launch Android emulator and verify the result of the changes dane in the application, Following is the content of the modified main activity file sre/com.example.helloworld/MainActivity java. This file includes each of the fundamental life cycle methods. The Log.d() method has been used to generate log messages package com example helloworid; import android os Bundl Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-41 Hello World import android app Activity; import android .util Log: public lass MainActivity extends Activity ( String mag = "Android /** Called when the activity is first crea @Override public void ont (Bundle savedinstanceState) { super onCreate(savedinstancestate), setContent View(R layout activity_main) Log.d(msg, "The onCreate() event"): } /** Called when the activity is about to become visible. @Override protected void onStart() { super onStart(); Log.d(msg, "The onStart() event”); } /** Called when the activity has become visible. */ @Override protoctod void onResumo() { super onResume() Log.d{mag, "The onResume() event"); } /** Called when another activity is taking focus. */ @overriae protected void onPause() { ‘super.onPause() Log.d{mag, “The onPause() event’); } /** Called when the activity is no longer visible. */ @override protected void onStop) { super.onStop\); Log.d{mag, "The onStop() event) } /** Called just before the activity is destroyed. */ @override public void onDestroy() { super.onDestroy(); Log.d(msg, "The onDestroy() event’), Technical Publications” An up twust fr Rrowiedge42 Hello World Android Programming An activity class loads all the UI component using the XML file available in res/layout folder of the project. Following statement loads UI components from res/layout/activity_main.xml file sotContentView(Rlayout.activity_main); An application can have one or mote activities without any restrictions. Every activity you define for your application must be declared in your AndroidManifest.xm! file and the main activity for your app must be declared in the manifest with an
that includes the MAIN action and LAUNCHER category as follows ‘
-
Following will be the content of res/values/strings.xml to define two new constants ~ "1.0" enicoding="ut-8°7> ‘My Applicaiton = F Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-49 Hello World Following is the default content of AndroidManifest.cml — - manifest xmins:android="http://schemas.android, com/apk/res/android” package="com.example.saira_000.myapplication'> application android:allowBackup="teue* ancroicvicon="@mipmapyic_launcher’ anciroic:lebel="@string/app_neme" ancroic:supportsRU="true android:theme="@style/AppTheme"> activity android:namo="MainActivity'>
‘
Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1 Once this activity is defined along with above mentioned filters, other activities will be able to invoke this activity vusing either the android.intentaction.VIEW, or _— using the comexample, My Application.LAUNCH action provided their category is android.intent.category. DEFAULT. ‘The
element specifies the data type expected by the activity to be called and for above example our custom activity expects the data to start with the https)" There may be a situation that an intent can pass through the filters of more than one activity or service, the user may be asked! which component to activate. An exception is raised if no target can be found. ‘There are following test Android checks before invoking an activit ‘+A filter
may list more than one action as shown above but this list cannot be empty; a filter ‘must contain at least one
element, otherwise it will block all mentioned then Android tries to match one of the ‘mentioned actions before invoking the activity. tents. If more than one actions are + A filter
may list zero, one or more than. ‘one categories. if there is no category mentioned then Android always pass this test but if more than ‘one categories are mentioned then for an intent to pass the category test, every category in the Intent object must match a category in the filter. ‘+ Bach
element can specify a URI and a data type (MIME media type). There are separate attributes like scheme, host, port, and path for each part of the URI. An Intent object that contains both a URI and a data type passes the data type part of the test only if its type matches a type listed in the filter. Example Following example is a modification of the above example. Here we will see how Android resolves 50 Hello World conflict if one intent is invoking two activities defined in, next how to invoke a custom activity using a filter and third one is an exception case if Android does not file appropriate activity defined for an intent. Step 1 You will use android studio to create an Android application and name it as My Application under a package com.example.tutorialspoint7.myapplication;. 2 — Modify src/Main/Java/MainActivity java file and add the code to define three listeners corresponding to three buttons defined in layout file. Description 3 Add anew sre/Main/Java/CustomActivity java file tohave one custom activity which will be invoked by different intents, 4 Modify layout XML file res/layout/activity_main.xml to add three buttons in linear layout, 5 Add one layout XML file reg/ayout/custom_view.xml to add a simple
to show the passed data through intent. 6 — Modify AndroidManifest.xml to add
to define rules for your intent to invoke custom activity. 7 Run the application to launch Android emulator and verify the result of the changes done in the application, Following is the content of the modified main activity file sre/Main Activity java. package com example,tutorialspoint7 myapplication; import android content. Intent; import android.not-Ur; import android support.v7-app.AppCompatActivity; import android os Bundle; import android view. View; import android. widget Button; Technical Pubheatons ‘Anup trust or irowecoeAndroid Program 8 public class MainActivity extends AppCompatActivity { Button b1,b2,b3; @Override protected void onCreate(Bundle savedinstanceState) { super.onCreate(savedinstancestate}; setContentView(Rlayout.activity_mai bi =(Button)find ViewByld(R id. button); bi setOnClickListener(new View OnClickListener() { @Override public void onClick(View v) { Intent 1 = new Intent(android content Intent. ACTION_VIEW, ‘Uri.parse(‘http://vrww example.com')); startActivityti); } » bb2 = (Button}findViewByld(R id button2); '2.getOnCiickL.stonor(new View OnClickL.itener() { @overide public void onClicktView v) { Intent now Intent(‘com example. ‘tutorialspoint7.myapplication. LAUNCH" Uri parse("nttp://www-example.com')); startActivity(i); } yy b3 = (Button\finaViewByld(Rid.button3); 1b3.setOnClickListener(new View OnClicktListener() { @Override public void onClick(View v) { Intent i = new Intent(‘com example My Application LAUNCH, Uriparse(’nttps://www.example.com')) startActivity(); + by 1-51 Hello World Following is the content of the modified main activity ile srcicom.example-My Application/CustomAc java. package com example.tutorialspoint? myapplication; import android app Activity: import android. not-Uri; import android.os Bundle; import android widget. TextView; pe * Created by TutorialsPoint? on 8/23/2016, ” public class CustomActivity extends Activity { @override public void onCreate(Bundle savedinstancestate) { super.onCreate(savedinstancestate); seiContentView(RJayout.custom_view); TextView label = (TextView) findViewByld( id. show data); Us unl = gotintont().gotData() label setText(url.tostzing(): } 3: Following will be the content of res/layout/activity_ main.xml file - sans; android ="http://schemas.android.com/apk/res/andro a xmlns:tools="http://schemas.android comytocls" ‘androidilayout_width="match_parent* android:layout_height="match_parent* android:paddingBottom="@dimen/activity_vertical_ margin’ android:paddingLeft=""@dimen/activity_horizontal_margin' android:paddingRight="@dimen/activity_horizontal_margin’ android:paddingTop="@dimen/activity_vertical_ margin" teols:context="com.example.tutorialspoint7.myapplication. MainActivity'>
androidlayout_below='@+id/texView!" android layout_centerHorizontal="true!
Following, ill be the content of res/values/strings.xml to define two new constants ‘ ‘
-
"http" />
Let's try to run your My Application application. I assume you had created your AVD while doing environment setup. To run the app from Android Studio, open one of your project's activity files and click Run Q'icon from the toolbar. Android Studio installs the app on your AVD and stars it and if everything is fine with your setup and application. Debug Your App Android Studio provides a debugger that allows you to do the following and more + Select a device to debug your app on. * Set breakpoints in your Java, Kotlin, and C/C++ code. + Examine variables and evaluate expressions at runtime. ‘This page includes instructions for basic debugger operations. For more documentation, also see the IntelliJ IDEA Debugging docs. Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1-54 Hello World Enable debugging Before you can begin debugging, you need to prepare as follows + Install LLDB ‘+ Ifyour project includes C/C++ code, you need to install LLDB from the SDK Manager. «Enable debugging on your device : If you're using the emulator, this is enabled by default. But for a connected device, you need to enable debugging in the device developer options. «Runa debuggable build variant: Note : If your app depends on a library module that you also want to debug, that library must also be packaged with debuggable true so it retains its debug symbols. To ensure that the debuggable variants of your app project receive the debuggable variant of a library module, be sure that you publish non-defaull versions of your library. Start debugging You can start a debugging session as follows : 1. Set some breakpoints in the app code. 2. Inthe toolbar, click Debug to display the Select Deployment Target window If no devices appear in the Select Deployment Target window after you click Debug, then you need to either connect a device via USB or click Create new virtual device to use the Android Emulator. 1, instead of the Select Deployment Target window, you see a dialog asking if you want to "switch from Run to Debug," that means your app is already running on the device and it will restart in order to begin debugging. If you'd rather keep the same instance of the app running, click Cancel Debug and. instead attach the debugger to a running app. 3. Select a deployment target and click OK. Android Studio builds an APK, signs it with a debug key, installs it on your selected device, and runs it. If you add C and C#+ code to your project, Android Studio also runs the LLDB debugger in the Debug window to debug your native code, 4. If the Debug window is not open, select View > Tool Windows > Debug (or click Debug QE in the tool window bar), and then click the Debugger tab, as shown in Fig, 1.9.1 Sena Aenenien > vwoeoe Econ bin wien a BB rmaire4,370in group "rain RUNNING Jp 4° = this ronson ® e (FrogmentActiity$HastCalbeckst4880 a noni tors ‘Sp thieS0 = (mnopecridhetvtyeed BB) pent neeh el fonchol + SPmactvty = (gecrishetvigy@4as2} pe) vacdataincthctivs 4 aro Bp movestes = aise s arisen) & Wi mreaments = (eamentControll RDM] P1000 vag toyat Arle Polio’ Tenn! pO Nessones Fi |. 1.9.1 The debugger window, showing the current thread and the object tree for a variable Technical Publications” An up twust fr RrowiedgeAndroid Programming, 1 55 Hello World Altach the debugger to a running app If your app is already running on your device, you can start debugging without restarting your app as follows’ 1 Glick Ach debugger to Aid paces Lt 2. In the Choose Process dialog, select the process you want to attach the debugger to. If you're using an emulator or a rooted device, you can check Show all processes to see all processes From the Debugger drop-down menu, you can select a different debug type. By default, Android Studio uses the Auto debug type to select the best debugger option for you, based on whether your project inchides Java or CIC+ code. 3. Click OK ‘The Debug window appears. Note : The Android Studio debugger and garbage collector are loosely guarantees that any object the debugger is aware of is not garbage collected until after the debugger disconnects, This integrated. The Android virtual machine Can result in a buildup of objects over time while the debugger is connected. For example, if the debugger sees a running thread, the associated Thread object is not garbage collected Unt the debugger cisconnects, even it the thread has terminated. Change the debugger type Because different debugger tools are required to debug Java/Kotlin code and C/C+ code, the Android Studio debugger allows you to select which debugger type to By default, Android Studio debugger to use based on which languages it detects in use. decides which your project (with the Autodebugger type). However, you can manually select the debugger in the debug configuration (click Run > Edit Configurations) or in the dialog that appears when you click Run > Attach debugger to Android process. ‘The debug types available include the following : + Auto : Select if you want Android Studio to automatically choose the best option for the code you are debugging. For example, if you have any C or C+ code in your project, Android Studio automatically uses the Dual debug type. Otherwise, Android Studio uses the Java debug type. + Java : Select if you want to debug only code written in Java or Kotlin—the Java debugger ignores any breakpoints or watches you set in your native code. «Native : (Available only with C/CH code.) Select if you want to use only LLDB to debug your code. When using this debug type, the Java debugger session view is not available. By default, LLDB inspects only your native code and ignores breakpoints in your Java code. If you want to also debug your Java code, you should switch to either the Auto or Dual debug type. + Dual : (Available only with C/C+ code.) Select if you want to switch between debugging both Java and native code. Android Studio attaches both the Java debugger and LLDB to your app process, one for the Java debugger and one for LLDB, so you can inspect breakpoints in both your Java and native code without restarting your app or changing your debug configuration. In Fig. 1.9.2, notice the two tabs to the right of the Debug window title, Because the app has both Java and (C+ code, one tab is for debugging the native code, and the other for debugging Java code, as indicated by -java. Technical Pubheatons ‘Anup trust or irowecoe
You might also like
Solution Manual of The 80×86 IBM PC and Compatible Computers - 4th Edition
PDF
60% (5)
Solution Manual of The 80×86 IBM PC and Compatible Computers - 4th Edition
126 pages
Software Engineering by Anuradha A. Puntambekar
PDF
100% (10)
Software Engineering by Anuradha A. Puntambekar
366 pages
Computer Organization and Design by P. Pal Chaudhuri
PDF
69% (13)
Computer Organization and Design by P. Pal Chaudhuri
920 pages
Computer Architecture & Organisation
PDF
75% (4)
Computer Architecture & Organisation
699 pages
Operating Systems by Iresh A. Dhotre
PDF
88% (8)
Operating Systems by Iresh A. Dhotre
259 pages
Programming With Python by Anuradha A. Puntambekar and Yogesh B. Patil
PDF
100% (2)
Programming With Python by Anuradha A. Puntambekar and Yogesh B. Patil
184 pages
A Stranger in My Own Country East Pakistan, 1969-71 - Khadim Hussain Raja
PDF
100% (2)
A Stranger in My Own Country East Pakistan, 1969-71 - Khadim Hussain Raja
162 pages
Information Retrieval Techniques by Iresh Dhotre
PDF
100% (3)
Information Retrieval Techniques by Iresh Dhotre
168 pages
O89n6 T o C
PDF
100% (1)
O89n6 T o C
303 pages
Database Management Systems, A Conceptual Approach by Prof. Seema V. Kedar
PDF
100% (1)
Database Management Systems, A Conceptual Approach by Prof. Seema V. Kedar
521 pages
Machine Learning by Iresh A. Dhotre
PDF
67% (3)
Machine Learning by Iresh A. Dhotre
82 pages
Basic Electrical Engineering by U.A.Bakshi, V.U.Bakshi PDF
PDF
100% (1)
Basic Electrical Engineering by U.A.Bakshi, V.U.Bakshi PDF
625 pages
Theory of Computer Science (Automata, Languages and Computation) Third Edition
PDF
100% (2)
Theory of Computer Science (Automata, Languages and Computation) Third Edition
434 pages
Computer Graphics and Multimedia by Atul P. Godse and Deepali A. Godse
PDF
No ratings yet
Computer Graphics and Multimedia by Atul P. Godse and Deepali A. Godse
493 pages
OEC552 - Soft Computing (Ripped From Amazon Kindle Ebooks by Sai Seena)
PDF
No ratings yet
OEC552 - Soft Computing (Ripped From Amazon Kindle Ebooks by Sai Seena)
156 pages
N3886 Android Programming BCA Science Sem 6
PDF
No ratings yet
N3886 Android Programming BCA Science Sem 6
11 pages
Microprocessors by A. P. Godse and Dr. D. A. Godse, 2018 Edition
PDF
No ratings yet
Microprocessors by A. P. Godse and Dr. D. A. Godse, 2018 Edition
477 pages
FDS 80
PDF
No ratings yet
FDS 80
76 pages
Project: "Sun Rise & Sun Set"
PDF
No ratings yet
Project: "Sun Rise & Sun Set"
18 pages
Laboratory Manual: Silver Oak College of Engineering and Technology
PDF
No ratings yet
Laboratory Manual: Silver Oak College of Engineering and Technology
27 pages
DBMS Technical Publications Chapter 2
PDF
100% (2)
DBMS Technical Publications Chapter 2
33 pages
Final OOAD Lab Manual For 3rd Year CSE by Gopi
PDF
62% (21)
Final OOAD Lab Manual For 3rd Year CSE by Gopi
138 pages
Ooc Notes Svit
PDF
100% (1)
Ooc Notes Svit
229 pages
Machine Learning and Applications by Iresh A. Dhotre
PDF
No ratings yet
Machine Learning and Applications by Iresh A. Dhotre
186 pages
OOP - I - GTU - Study - Material - Lab Manual - Object Oriented Programming - I (3140705) - 08052020070602AM PDF
PDF
100% (1)
OOP - I - GTU - Study - Material - Lab Manual - Object Oriented Programming - I (3140705) - 08052020070602AM PDF
129 pages
BTCS9202 Data Sciences Lab Manual
PDF
No ratings yet
BTCS9202 Data Sciences Lab Manual
39 pages
Module 1 Java Notes
PDF
No ratings yet
Module 1 Java Notes
36 pages
TOC - NOTES - 1 - Compressed
PDF
No ratings yet
TOC - NOTES - 1 - Compressed
122 pages
Microprocessor
PDF
No ratings yet
Microprocessor
332 pages
CS8391 - Data Structures (Ripped From Amazon Kindle Ebooks by Sai Seena)
PDF
No ratings yet
CS8391 - Data Structures (Ripped From Amazon Kindle Ebooks by Sai Seena)
575 pages
DBMS Unit 1
PDF
No ratings yet
DBMS Unit 1
23 pages
Ooad Lab Manual
PDF
No ratings yet
Ooad Lab Manual
83 pages
Ele Ii
PDF
No ratings yet
Ele Ii
145 pages
Vtu 5th Sem Computer Networks Notes
PDF
No ratings yet
Vtu 5th Sem Computer Networks Notes
178 pages
Spos by Dhamdhere
PDF
50% (2)
Spos by Dhamdhere
456 pages
Oop-End-Sem-Full-Oop - Proper Decode
PDF
100% (1)
Oop-End-Sem-Full-Oop - Proper Decode
48 pages
BAD402 Module 1 AI&ML 2022 Scheme
PDF
No ratings yet
BAD402 Module 1 AI&ML 2022 Scheme
16 pages
Object Oriented Programming Using Core Java Nirali
PDF
100% (1)
Object Oriented Programming Using Core Java Nirali
114 pages
OOPS Notes
PDF
No ratings yet
OOPS Notes
142 pages
CS8792 Cryptography & Network Security
PDF
No ratings yet
CS8792 Cryptography & Network Security
331 pages
Artificial Intelligence and Machine Learning - CS3491 - Notes Book
PDF
No ratings yet
Artificial Intelligence and Machine Learning - CS3491 - Notes Book
127 pages
TY BSC Computer Science 25-06-15
PDF
0% (1)
TY BSC Computer Science 25-06-15
41 pages
Scalable Parallel Computing
PDF
No ratings yet
Scalable Parallel Computing
11 pages
Cse Flat Digital Notes Full 2020 21
PDF
No ratings yet
Cse Flat Digital Notes Full 2020 21
195 pages
Computer Organization 5th Edition
PDF
No ratings yet
Computer Organization 5th Edition
818 pages
Operating System Handwritten Notes
PDF
No ratings yet
Operating System Handwritten Notes
44 pages
Daa Notes Complete
PDF
No ratings yet
Daa Notes Complete
203 pages
DBMS LAB Manual Iare
PDF
No ratings yet
DBMS LAB Manual Iare
10 pages
Operating System Notes For MCA
PDF
No ratings yet
Operating System Notes For MCA
83 pages
Recursion Tree Method
PDF
No ratings yet
Recursion Tree Method
17 pages
Operating Systems-Notes
PDF
No ratings yet
Operating Systems-Notes
124 pages
Object Oriented Programming Through Java
PDF
No ratings yet
Object Oriented Programming Through Java
130 pages
Study On Intel 80386 Microprocessor
PDF
No ratings yet
Study On Intel 80386 Microprocessor
3 pages
DAA Unit 1
PDF
No ratings yet
DAA Unit 1
39 pages
21CS53 DBMS Module3 QuestionBank 2023-24
PDF
No ratings yet
21CS53 DBMS Module3 QuestionBank 2023-24
3 pages
@vtucode - in BIS402 Module 2 PDF 2022 Scheme
PDF
No ratings yet
@vtucode - in BIS402 Module 2 PDF 2022 Scheme
47 pages
Updated ML BCS602 Test1 Question Bank
PDF
100% (1)
Updated ML BCS602 Test1 Question Bank
2 pages
Fundamentals of Data Structures: Technical
PDF
No ratings yet
Fundamentals of Data Structures: Technical
404 pages
Php Practicals
PDF
No ratings yet
Php Practicals
36 pages
20mcal16 DS Lab Manual Isem
PDF
No ratings yet
20mcal16 DS Lab Manual Isem
41 pages
(DM) Discrete Mathematics Text Book (2019 Pattern)
PDF
100% (1)
(DM) Discrete Mathematics Text Book (2019 Pattern)
130 pages
Dbms-Module-1 Solutions
PDF
100% (1)
Dbms-Module-1 Solutions
17 pages
Ai & ML Lab Manual
PDF
No ratings yet
Ai & ML Lab Manual
41 pages
J2EE Complete Reference - Ch01
PDF
No ratings yet
J2EE Complete Reference - Ch01
19 pages
Web Technology PDF
PDF
No ratings yet
Web Technology PDF
812 pages
CD3291 Data Structures and Algorithms Lecture Notes 2
PDF
No ratings yet
CD3291 Data Structures and Algorithms Lecture Notes 2
156 pages
Android Programming by Hitesh P. Patel
PDF
No ratings yet
Android Programming by Hitesh P. Patel
350 pages
Gujarat Technological University: Computer Engineering/Information Technology Android Programming B.E. 8 Semester
PDF
No ratings yet
Gujarat Technological University: Computer Engineering/Information Technology Android Programming B.E. 8 Semester
10 pages
Program Android App For Beginners Self-Paced 2019
PDF
No ratings yet
Program Android App For Beginners Self-Paced 2019
11 pages
Android App Development Course
PDF
No ratings yet
Android App Development Course
13 pages
CS8392 - Oops Ebook
PDF
No ratings yet
CS8392 - Oops Ebook
476 pages
Numerical Methods & Optimization by Anup Goel
PDF
No ratings yet
Numerical Methods & Optimization by Anup Goel
577 pages
Assembly Language Primer For The IBM PC and XT by Robert Lafore
PDF
No ratings yet
Assembly Language Primer For The IBM PC and XT by Robert Lafore
515 pages
The Alchemist by Paulo Coehlo
PDF
No ratings yet
The Alchemist by Paulo Coehlo
145 pages