My Account Log in

3 options

Android high performance programming : build fast and efficient Android apps that run as reliably as clockwork in a multi-device world / Enrique López Mañas, Diego Grancini.

EBSCOhost Academic eBook Collection (North America) Available online

View online

Ebook Central Academic Complete Available online

View online

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Mañas, Enrique López, author.
Grancini, Diego, author.
Series:
Community experience distilled.
Community experience distilled
Language:
English
Subjects (All):
Android (Electronic resource).
Physical Description:
1 online resource (412 pages) : color illustrations.
Edition:
1st edition
Place of Publication:
Birmingham : Packt Publishing, 2016.
System Details:
Mode of access: World Wide Web.
text file
Biography/History:
Lopez Manas Enrique: Enrique Lpez Maas is a Google Developer Expert and independent IT consultant. He has been working with mobile technologies and learning from them since 2007. He is an avid contributor to the open source community and a FLOSS (Free Libre Open Source Software) kind of guy, being among the top 10 open source Java contributors in Germany. He is a part of the Google LaunchPad accelerator, where he participates in Google global initiatives to influence hundreds of the best startups from all around the globe. He is also a big data and machine learning aficionado. In his free time he rides his bike, take pictures, and travels until exhaustion. He also writes literature and enjoys all kinds of arts. He likes to write about himself in third person. You can follow him on Twitter (@eenriquelopez) to stay updated on his latest movements. Grancini Diego: Diego Grancini has a degree in telecommunications and IT engineering from Perugia University. He has developed his skills on Android development for more than six years leading and contributed to several projects, teaching and sharing his skills during his career. He joined Engineering Ingegneria Informatica S. P. A. after his degree, defining his own knowledge about Java and Android development working as the lead Android developer for years. Then he joined J. P. Morgan & Chase, strengthening his skills about security and performance in software development and Android platform in particular.
Summary:
Build fast and efficient Android apps that run as reliably as clockwork in a multi-device world About This Book Wide coverage of various topics that help in developing optimal applications Explore the concepts of Advanced Native Coding in depth A must-have for professional-standard Android developers for whom performance failures and the sloppy use of resources are simply unacceptable Who This Book Is For This book is aimed at developers with an advanced knowledge of Android and who want to test their skills and learn new techniques to increase the performance of their applications. We assume they are comfortable working with the entire Android SDK, and have been doing it for a few years. They need to be familiar with frameworks such as NDK to use native code, which is crucial for app performance What You Will Learn Create Android applications that squeeze the most from the limited resource capacity of devices Swap code that isn't performing Efficient memory management by identifying problems such as leaks Reap the benefits of multithreaded and asynchronous programming Maximize the security and encryption mechanisms natively provided by Android Perform efficient network operations and techniques to retrieve data from servers Master the NDK to write native code that can perform faster operations In Detail Performant applications are one of the key drivers of success in the mobile world. Users may abandon an app if it runs slowly. Learning how to build applications that balance speed and performance with functionality and UX can be a challenge; however, it's now more important than ever to get that balance right. Android High Performance will start you thinking about how to wring the most from any hardware your app is installed on, so you can increase your reach and engagement. The book begins by providing an introduction to state?of-the-art Android techniques and the importance of performance in an Android application. Then, we will explain the Android SDK tools regularly used to debug and profile Android applications. We will also learn about some advanced topics such as building layouts, multithreading, networking, and security. Battery life is one of the biggest bottlenecks in applications; and this book will show typical examples of code that exhausts battery life, how to prevent this, and how to measure battery consumption from an application in every kind of situation to ensure your apps don't drain more than they should. This book explai...
Contents:
Cover
Copyright
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Table of Contents
Preface
Chapter 1: Introduction: Why High Performance?
Why does the performance of an application mean so much to so many?
Manual testing and automatic testing
ANR and delays in software
What triggers ANRs and how can I avoid them?
Android architecture
Dalvik Virtual Machine
Memory management
Energy consumption
Java language
Native Development Kit or how to develop with native code when needed
Three limits in application responsiveness
Business value of software quality
Summary
Chapter 2: Efficient Debugging
Android Debug Bridge
Dalvik Debug Monitor Server
Capturing and analyzing thread information
Heap analysis and visualization
Allocation tracker
Network usage
Emulator Control
System status
Debugging the UI
Profiling with Hierarchy Viewer
Systrace
Android device debug options
Android Instant Run
GPU profiler
Running a trace
ClassyShark
Getting started
Chapter 3: Building Layouts
Walkthrough
Rendering performance
Screen tearing and VSYNC
Hardware acceleration
Overdraw
Multi-window mode
Overview
Configuration
Management
Drag and drop
Performance impact
Best practices
Provided layout overview
Hierarchical layout management
Reusing layouts
ViewStub
AdapterViews and view recycling
The ViewHolder pattern
Custom views and layouts
Screen zoom
Debugging tools
The Design view
Hierarchy Viewer
Tree View
View properties
Tree overview
Layout View
On device tools
Debugging GPU overdraw
Profile GPU rendering
Chapter 4: Memory
How memory works
Garbage collection
Shared memory
Runtime.
Android N JIT compiler
Memory leak
Memory churn
References
Memory-side projects
Project Svelte and Android N
Data types
Autoboxing
Sparse array family
ArrayMap
Syntax
Collections
Enumerations
Constants
Object management
Strings
String concatenation
Local variables
Arrays versus collections
Streams
Memory patterns
The object pool pattern
The FlyWeight pattern
Android component leaks
Activities
Services
Processes
The memory API
Main components and memory management
LogCat
Dalvik
ART
The ActivityManager API
StrictMode
Dumpsys
Meminfo
ProcStats
Chapter 5: Multithreading
Threading basics
Multicore CPUs
Threads
Multithreaded applications
Thread safety
Android multithreading environment
Android application thread
The UI thread
Worker threads
The binder thread
Android thread messaging
HandlerThread
When to use
AsyncTask
Methods
Generics parameters
States management
Executor
Loaders
LoaderManager
LoaderCallbacks&lt
D&gt
Provided loaders
Life cycle
Started Service
Bound Service
IntentService
Inter-process communication
Remote Procedure Call
AIDL
Messenger
Advanced techniques
BroadcastReceiver asynchronous techniques
ContentProvider asynchronous techniques
Repeating tasks
Chapter 6: Networking
Protocols
Headers
Timeout
Content
Compression
Response code
Connection types
Latency gauging
Batching connections
Prefetching
Queuing connections
Caching responses
Cache control.
Last-Modified
If-Modified-Since
Exponential back-off
Polling versus pushing
Provided APIs
SyncManager
Android N changes
Data Saver
Background optimization
GcmNetworkManager
Android N Networking ADB tool
Fiddler
Wireshark
Application Resource Optimizer
Network attenuation
Speed and delay emulation
Network Link Conditioner
Network Attenuator
Chapter 7: Security
WhatsApp - the eternal showcase of "no-gos
Going deeper into the code
Capturing an APK file
Pulling a file from the device
Capturing an APK using Wireshark
Using external websites
Autopsy of an APK file
Code injection
Opcodes
Injecting new code
Signing and rebuilding the application
Protecting our application
Insecure storage
SharedPreferences
InternalStorage
ExternalStorage
Deleting files
Using external or internal storage
Databases
Performance in databases
SQL injections
ORM frameworks
OrmLite
SugarORM
GreenDAO
Realm
Network
Encrypted communication
Sniffing
Chapter 8: Optimizing Battery Consumption
Analysis
Monitoring battery level and charging status
How to identify changes in the charging status
Determining and reacting to changes in the battery level
Doze feature and App Standby
Understanding Doze
Avoiding useless network requests
Dealing with BroadcastReceivers on demand
Networking
Chapter 9: Native Coding in Android
Getting started - setting up NDK in our system
JNI
Initial concepts
Creating our first HelloWorld-JNI
Creating a native activity with Android NDK
Debugging NDK
Android.mk
More variables in NDK
TARGET_PLATFORM
TARGET_ARCH
TARGET_ABI
NDK macros
Application.mk
Including existing libraries.
Exporting header files
Chapter 10: Performance Tips
Bitmaps
Loading
Processing
Caching
Displaying
Managing memory
Image optimization
Resolution
Serialization
JSON improvements
JSON alternatives
Protocol buffers
Flat buffers
Local serialization
Code improvements
Getters and setters
Inner classes
Java 8 in Android N
Setup
Features
Default interface methods
Static interface methods
Lambda expression
Repeating annotations
Jack toolchain
APK optimizations
Removing unused code
Removing unused resources
Index.
Notes:
Includes index.
Includes bibliographical references and index.
Description based on online resource; title from PDF title page (ebrary, viewed March 8, 2017).
ISBN:
9781785283383
1785283383
OCLC:
957655331

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Library Catalog Using Articles+ Library Account