ebook img

Learn Android Studio 4: Efficient Java-Based Android Apps Development PDF

334 Pages·2020·10.267 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Learn Android Studio 4: Efficient Java-Based Android Apps Development

Learn Android Studio 4 Efficient Java-Based Android Apps Development — Second Edition — Ted Hagos Learn Android Studio 4 Efficient Java-Based Android Apps Development Second Edition Ted Hagos Learn Android Studio 4: Efficient Java-Based Android Apps Development Ted Hagos Manila, National Capital Region, Philippines ISBN-13 (pbk): 978-1-4842-5936-8 ISBN-13 (electronic): 978-1-4842-5937-5 https://doi.org/10.1007/978-1-4842-5937-5 Copyright © 2020 by Ted Hagos This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image, we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Steve Anglin Development Editor: Matthew Moodie Coordinating Editor: Mark Powers Cover designed by eStudioCalamar Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY 10004, U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www. springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected]; for reprint, paperback, or audio rights, please e-mail [email protected]. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/9781484259368. For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper For Adrianne and Stephanie. Table of Contents About the Author �����������������������������������������������������������������������������������������������������xi About the Technical Reviewer �������������������������������������������������������������������������������xiii Acknowledgments ���������������������������������������������������������������������������������������������������xv Introduction �����������������������������������������������������������������������������������������������������������xvii Chapter 1: Android Overview ������������������������������������������������������������������������������������1 History �������������������������������������������������������������������������������������������������������������������������������������������1 The Operating System �������������������������������������������������������������������������������������������������������������������3 Summary���������������������������������������������������������������������������������������������������������������������������������������5 Chapter 2: Android Studio ����������������������������������������������������������������������������������������7 Setup ���������������������������������������������������������������������������������������������������������������������������������������������7 Configuring Android Studio ���������������������������������������������������������������������������������������������������������10 Hardware Acceleration ����������������������������������������������������������������������������������������������������������������14 Summary�������������������������������������������������������������������������������������������������������������������������������������15 Chapter 3: Project Basics ���������������������������������������������������������������������������������������17 Create a Project ��������������������������������������������������������������������������������������������������������������������������17 Create an AVD �����������������������������������������������������������������������������������������������������������������������������22 Summary�������������������������������������������������������������������������������������������������������������������������������������29 Chapter 4: Android Studio IDE ��������������������������������������������������������������������������������31 The IDE ����������������������������������������������������������������������������������������������������������������������������������������31 Main Editor ����������������������������������������������������������������������������������������������������������������������������������34 Editing Layout Files ���������������������������������������������������������������������������������������������������������������������35 TODO Items ���������������������������������������������������������������������������������������������������������������������������������38 v Table of ConTenTs How to Get More Screen Space for Codes ����������������������������������������������������������������������������������39 Project Tool Window ��������������������������������������������������������������������������������������������������������������������41 Preferences/Settings ������������������������������������������������������������������������������������������������������������������43 Summary�������������������������������������������������������������������������������������������������������������������������������������45 Chapter 5: Android Application Overview ���������������������������������������������������������������47 What Makes Up an Android Project ���������������������������������������������������������������������������������������������47 Application Entry Point ����������������������������������������������������������������������������������������������������������������50 Activities �������������������������������������������������������������������������������������������������������������������������������������51 Intents �����������������������������������������������������������������������������������������������������������������������������������������53 Summary�������������������������������������������������������������������������������������������������������������������������������������54 Chapter 6: Activities and Layouts ���������������������������������������������������������������������������55 Activity ����������������������������������������������������������������������������������������������������������������������������������������55 Layout File �����������������������������������������������������������������������������������������������������������������������������55 Activity Class �������������������������������������������������������������������������������������������������������������������������60 Hello World ����������������������������������������������������������������������������������������������������������������������������������61 Modifying Hello World �����������������������������������������������������������������������������������������������������������������64 Summary�������������������������������������������������������������������������������������������������������������������������������������74 Chapter 7: Event Handling ��������������������������������������������������������������������������������������75 Intro to Event Handling� ���������������������������������������������������������������������������������������������������������������75 Handling Long Clicks ������������������������������������������������������������������������������������������������������������������81 Summary�������������������������������������������������������������������������������������������������������������������������������������87 Chapter 8: Intents ���������������������������������������������������������������������������������������������������89 What Intents Are ��������������������������������������������������������������������������������������������������������������������������89 Implicit Intents ����������������������������������������������������������������������������������������������������������������������������94 Summary�������������������������������������������������������������������������������������������������������������������������������������99 Chapter 9: Fragments �������������������������������������������������������������������������������������������101 Introduction to Fragments ���������������������������������������������������������������������������������������������������������101 Summary�����������������������������������������������������������������������������������������������������������������������������������110 vi Table of ConTenTs Chapter 10: Navigation �����������������������������������������������������������������������������������������111 Navigation Before Architecture Components ����������������������������������������������������������������������������111 Navigation Components ������������������������������������������������������������������������������������������������������������114 Working with Jetpack Navigation ���������������������������������������������������������������������������������������������116 Summary�����������������������������������������������������������������������������������������������������������������������������������129 Chapter 11: Running in the Background ���������������������������������������������������������������131 Basic Concepts �������������������������������������������������������������������������������������������������������������������������131 The UI Thread ����������������������������������������������������������������������������������������������������������������������������132 Threads and Runnables ������������������������������������������������������������������������������������������������������������136 Summary�����������������������������������������������������������������������������������������������������������������������������������146 Chapter 12: Debugging �����������������������������������������������������������������������������������������147 Types of Errors ��������������������������������������������������������������������������������������������������������������������������147 Syntax Errors �����������������������������������������������������������������������������������������������������������������������147 Runtime Errors ��������������������������������������������������������������������������������������������������������������������148 Logic Errors �������������������������������������������������������������������������������������������������������������������������150 Debugger ����������������������������������������������������������������������������������������������������������������������������������153 Single Stepping �������������������������������������������������������������������������������������������������������������������154 Summary�����������������������������������������������������������������������������������������������������������������������������������156 Chapter 13: Testing �����������������������������������������������������������������������������������������������157 Types of Testing ������������������������������������������������������������������������������������������������������������������������157 Unit Testing �������������������������������������������������������������������������������������������������������������������������������159 JVM Test vs� Instrumented Test �������������������������������������������������������������������������������������������160 A Simple Demo ��������������������������������������������������������������������������������������������������������������������161 Implementing the Test ���������������������������������������������������������������������������������������������������������165 Running a Unit Test ��������������������������������������������������������������������������������������������������������������167 Instrumented Testing ����������������������������������������������������������������������������������������������������������������170 Setting Up a Simple Test ������������������������������������������������������������������������������������������������������171 Recording Espresso Tests ����������������������������������������������������������������������������������������������������175 More on Espresso Matchers ������������������������������������������������������������������������������������������������178 Espresso Actions �����������������������������������������������������������������������������������������������������������������179 Summary�����������������������������������������������������������������������������������������������������������������������������������180 vii Table of ConTenTs Chapter 14: Working with Files ����������������������������������������������������������������������������181 Internal and External Storage ���������������������������������������������������������������������������������������������������181 Cache Directory�������������������������������������������������������������������������������������������������������������������������182 How to Work with Internal Storage �������������������������������������������������������������������������������������������183 Summary�����������������������������������������������������������������������������������������������������������������������������������191 Chapter 15: BroadcastReceivers ��������������������������������������������������������������������������193 Introduction to BroadcastReceivers ������������������������������������������������������������������������������������������193 System Broadcast vs� Custom Broadcast ����������������������������������������������������������������������������194 Two Ways to Register for Broadcast ������������������������������������������������������������������������������������194 Summary�����������������������������������������������������������������������������������������������������������������������������������202 Chapter 16: Jetpack, LiveData, ViewModel, and Room ����������������������������������������203 Lifecycle Aware Components ����������������������������������������������������������������������������������������������������203 ViewModel ��������������������������������������������������������������������������������������������������������������������������������207 LiveData ������������������������������������������������������������������������������������������������������������������������������������212 Room �����������������������������������������������������������������������������������������������������������������������������������������217 Summary�����������������������������������������������������������������������������������������������������������������������������������224 Chapter 17: Distributing Apps ������������������������������������������������������������������������������225 Prepare the App for Release �����������������������������������������������������������������������������������������������������225 Prepare Material and Assets for Release ����������������������������������������������������������������������������226 Configure the App for Release ���������������������������������������������������������������������������������������������226 Build a Release-Ready Application �������������������������������������������������������������������������������������������227 Releasing the App ���������������������������������������������������������������������������������������������������������������������232 Summary�����������������������������������������������������������������������������������������������������������������������������������237 Chapter 18: Short Takes ���������������������������������������������������������������������������������������239 Productivity Features ����������������������������������������������������������������������������������������������������������������239 Importing Samples ��������������������������������������������������������������������������������������������������������������239 Refactoring ��������������������������������������������������������������������������������������������������������������������������241 Generate ������������������������������������������������������������������������������������������������������������������������������243 Coding Styles �����������������������������������������������������������������������������������������������������������������������248 viii Table of ConTenTs Live Templates ��������������������������������������������������������������������������������������������������������������������������250 Important Keyboard Shortcuts ��������������������������������������������������������������������������������������������������251 Summary�����������������������������������������������������������������������������������������������������������������������������������252 Appendix A: Java Refresher ���������������������������������������������������������������������������������253 A Brief History ���������������������������������������������������������������������������������������������������������������������������253 Editions �������������������������������������������������������������������������������������������������������������������������������������254 Setup �����������������������������������������������������������������������������������������������������������������������������������������255 Writing, Compiling, and Running �����������������������������������������������������������������������������������������������256 Syntax ���������������������������������������������������������������������������������������������������������������������������������������257 A Typical Java Program �������������������������������������������������������������������������������������������������������258 Compilation Unit ������������������������������������������������������������������������������������������������������������������260 Comments ���������������������������������������������������������������������������������������������������������������������������260 Statements ��������������������������������������������������������������������������������������������������������������������������261 Keywords �����������������������������������������������������������������������������������������������������������������������������261 Identifiers ����������������������������������������������������������������������������������������������������������������������������262 Methods �������������������������������������������������������������������������������������������������������������������������������263 Packages and Imports ���������������������������������������������������������������������������������������������������������265 Program Entry Point ������������������������������������������������������������������������������������������������������������266 Data Types ���������������������������������������������������������������������������������������������������������������������������������267 Overflow ������������������������������������������������������������������������������������������������������������������������������271 Casting ��������������������������������������������������������������������������������������������������������������������������������271 Strongly and Statically Typed ����������������������������������������������������������������������������������������������272 Reference Types ������������������������������������������������������������������������������������������������������������������273 Stack and Heap �������������������������������������������������������������������������������������������������������������������274 Constants �����������������������������������������������������������������������������������������������������������������������������275 Operators ����������������������������������������������������������������������������������������������������������������������������������276 Assignment ��������������������������������������������������������������������������������������������������������������������������276 Arithmetic ����������������������������������������������������������������������������������������������������������������������������276 Unary �����������������������������������������������������������������������������������������������������������������������������������278 Equality and Relational ��������������������������������������������������������������������������������������������������������279 Logical Operators ����������������������������������������������������������������������������������������������������������������281 ix Table of ConTenTs Loops and Branches������������������������������������������������������������������������������������������������������������������282 If and Switch Statements ����������������������������������������������������������������������������������������������������282 Switch Statement ����������������������������������������������������������������������������������������������������������������284 While Loop ���������������������������������������������������������������������������������������������������������������������������287 For-Loop ������������������������������������������������������������������������������������������������������������������������������288 Simple Application of Control Structures �����������������������������������������������������������������������������289 Arrays ����������������������������������������������������������������������������������������������������������������������������������������291 Array Creation ����������������������������������������������������������������������������������������������������������������������292 Managing Arrays ������������������������������������������������������������������������������������������������������������������293 Using the Enhanced for-loop �����������������������������������������������������������������������������������������������295 More on Arrays ��������������������������������������������������������������������������������������������������������������������297 Reference Types ������������������������������������������������������������������������������������������������������������������������299 Classes ��������������������������������������������������������������������������������������������������������������������������������������301 Inheritance ��������������������������������������������������������������������������������������������������������������������������301 Constructors ������������������������������������������������������������������������������������������������������������������������303 Overloading �������������������������������������������������������������������������������������������������������������������������305 Overriding ����������������������������������������������������������������������������������������������������������������������������306 Strings ���������������������������������������������������������������������������������������������������������������������������������������308 String Creation ���������������������������������������������������������������������������������������������������������������������308 Strings Are Immutable ���������������������������������������������������������������������������������������������������������309 Why Can’t We Modify Strings ����������������������������������������������������������������������������������������������311 Comparing Strings ���������������������������������������������������������������������������������������������������������������312 Common Usage �������������������������������������������������������������������������������������������������������������������314 Exceptions ���������������������������������������������������������������������������������������������������������������������������������316 Index ���������������������������������������������������������������������������������������������������������������������319 x

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.