《Android高性能编程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(西)Enrique Lopez Manas,(意)Diego Grancini著;叶坤译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121328879
  • 页数:379 页
图书介绍:本书旨在为Android开发者指明提高应用程序性能的方向。第1章就什么是高性能,为什么需要高性能展开讨论。第2章为读者展示了一些用于调试应用程序的工具,方案以及技巧。第3-8章,围绕着布局,内存,多线程,网络,安全,电量消耗,等多个方面,阐述如何打造高性能应用程序。第9章相对独立,介绍的是原生开发。第10章与前面章节的关系也不大,涵盖了一些琐碎,但对性能至关重要的提示,例如,图像处理,序列化,优化APK文件等等。

第1章 引言:为什么需要高性能 1

为什么应用程序的性能意味着这么多 2

手动测试和自动测试 3

ANR和软件中的延迟 3

什么会触发ANR,我该如何避免它们 4

Android架构 4

Dalvik虚拟机 5

内存管理 5

电量消耗 6

Java语言 7

NDK/在需要时进行原生开发 7

程序响应相关的3个临界值 8

软件质量的商业价值 8

总结 9

第2章 高效调试 11

ADB 11

DDMS 12

采集和分析线程信息 14

堆分析和可视化 16

Allocation Tracker 19

网络使用 20

Emulator Control 22

系统状态 23

调试UI 23

使用Hierarchy Viewer 25

Systrace 27

Android设备调试选项 29

Android即时运行 38

GPU分析器 40

使用GPU分析器进行调试 41

ClassyShark 42

开始使用 43

总结 46

第3章 打造布局 47

预览 47

渲染性能 47

屏幕撕裂和垂直同步 50

多窗口模式 57

最佳实践 63

布局概述 64

布局层级管理 64

布局复用 70

ViewStub 73

AdapterView和视图回收 74

自定义视图和布局 78

屏幕缩放 83

调试工具 84

Design窗口 84

Hierarchy Viewer 86

设备上的调试工具 90

Systrace 97

总结 101

第4章 内存 103

预览 103

内存如何工作 104

垃圾回收 104

内存共享 104

运行时 105

Android N即时编译器 106

内存泄漏 107

内存抖动 108

引用 108

内存相关的项目 109

最佳实践 111

数据类型 111

语法 117

常量 123

对象管理 124

内存设计模式 128

Android组件泄漏 137

进程 150

内存API 151

主要组件和内存管理 154

调试工具 156

LogCat 157

Activity Manager API 159

StnctMode 160

Dumpsys 162

总结 168

第5章 多线程 171

预览 171

线程基础 172

Android多线程环境 176

Android应用程序线程 177

Android线程消息 178

最佳实践 181

线程 181

HandlerThread 181

AsyncTask 183

Loader 187

Service 190

进程间通信 199

先进的技术 205

调试工具 212

StnctMode 212

总结 213

第6章 网络 215

预览 215

协议 217

方法 218

头部 218

超时 219

内容 219

响应码 220

连接类型 220

最佳实践 221

延迟测定 221

批量连接 223

对响应进行缓存 224

指数退避算法 228

轮询VS推送 230

所提供的API 231

Android N带来的新变化 236

调试工具 245

Android N网络ADB工具 245

Fiddler 246

Wireshark 247

Application Resource Optimizer 248

网络衰减 250

模拟网络加速和延迟 250

总结 254

第7章 安全 257

WhatsApp-连续出现问题 258

深入代码 260

捕获APK文件 261

从设备上拉取APK文件 261

利用Wireshark捕获APK文件 262

利用外部网站 263

剖析APK文件 264

代码注入 269

操作码 272

注入新代码 272

签名并重新构建应用程序 275

保护应用程序 276

非安全存储 279

SharedPreferences 279

内部存储 280

外部存储 282

删除文件 284

使用外部存储还是内部存储 284

数据库 285

数据库中的性能 286

SQL注入 286

ORM框架 288

OrmLite 288

SugarORM 289

GreenDAO 290

Realm 291

网络 291

通信加密 292

嗅探 292

总结 294

第8章 优化电量消耗 297

分析 297

监测电池电量和充电状态 300

识别充电状态的变化 301

确定及响应电池电量的变化 302

Doze和App Standby 303

理解Doze 303

避免无用的网络请求 304

按需对待BroadcastReceiver 306

网络 307

总结 309

第9章Android中的原生代码 311

入门——在我们的系统中配置NDK 312

JN I 313

基本概念 314

创建首个JNI程序HelloWorld-JNI 315

使用Android NDK创建一个原生Activity 320

调试NDK 323

Android.mk 326

NDK定义的变量 327

TARGET_PLATFORM 327

TARGET_ARCH 327

TARGET_ABI 328

NDK提供的宏 328

Application.mk 329

引入已存在的库 331

导出头文件 332

总结 333

第10章 提高性能的小技巧 335

位图 335

加载 336

处理 342

缓存 343

显示 348

管理内存 350

图像优化 354

分辨率 355

压缩 356

序列化 356

JSON的改进 356

JSON的替代品 358

本地序列化 365

代码改进 365

Getter和Setter 366

内部类 367

Android N中的Java 8 370

设置 370

Jack工具链 374

APK优化 375

移除未使用的代码 376

移除未使用的资源 376

总结 378