万本电子书0元读

万本电子书0元读

顶部广告

Android High Performance Programming电子书

售       价:¥

4人正在读 | 0人评论 9.8

作       者:Enrique López Mañas,Diego Grancini,

出  版  社:Packt Publishing

出版时间:2016-08-01

字       数:648.8万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
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 explains techniques for building optimized and efficient systems that do not drain the battery, cause memory leaks, or slow down with time. Style and approach The book follows a tutorial-based approach to take the reader from the basic fundamentals of debugging to advanced performance-improvement concepts.
目录展开

Android High Performance Programming

Table of Contents

Android High Performance Programming

Credits

About the Authors

About the Reviewer

www.PacktPub.com

eBooks, discount offers, and more

Why subscribe?

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Downloading the color images of this book

Errata

Piracy

Questions

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

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

Summary

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

Systrace

Summary

4. Memory

Walkthrough

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

Best practices

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

Static fields

Non-static inner classes

Singletons

Anonymous inner classes

Handlers

Services

Processes

The memory API

Main components and memory management

Debugging tools

LogCat

Dalvik

ART

The ActivityManager API

StrictMode

Dumpsys

Meminfo

ProcStats

Summary

5. Multithreading

Walkthrough

Threading basics

Multicore CPUs

Threads

Multithreaded applications

Thread safety

Android multithreading environment

Processes

Android application thread

The UI thread

Worker threads

The binder thread

Android thread messaging

Best practices

Threads

HandlerThread

When to use

AsyncTask

Methods

Generics parameters

States management

Executor

When to use

Loaders

LoaderManager

LoaderCallbacks<D>

Provided loaders

AsyncTaskLoader

CursorLoader

When to use

Services

Life cycle

Started Service

When to use

Bound Service

When to use

IntentService

When to use

Inter-process communication

Remote Procedure Call

AIDL

Messenger

Advanced techniques

BroadcastReceiver asynchronous techniques

ContentProvider asynchronous techniques

Repeating tasks

Timer

ScheduledExecutorService

AlarmManager

Debugging tools

StrictMode

Summary

6. Networking

Walkthrough

Protocols

Methods

Headers

Timeout

Content

Compression

Response code

Connection types

Best practices

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

Authenticator

SyncAdapter

Android N changes

Data Saver

Background optimization

GcmNetworkManager

The service implementation

Task scheduling

Task features

Task

OneoffTask

PeriodicTask

Debugging tools

Android N Networking ADB tool

Fiddler

Wireshark

Application Resource Optimizer

Network attenuation

Speed and delay emulation

Fiddler

Network Link Conditioner

Network Attenuator

Summary

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

Summary

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

Summary

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

Summary

10. Performance Tips

Bitmaps

Loading

Processing

Caching

Displaying

Managing memory

Image optimization

Resolution

Compression

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

Summary

Index

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部