Android开发权威指南

Android开发权威指南 pdf epub mobi txt 电子书 下载 2026

出版者:人民邮电出版社
作者:李宁
出品人:
页数:739
译者:
出版时间:2013-9-1
价格:CNY 99.00
装帧:平装
isbn号码:9787115320339
丛书系列:
图书标签:
  • Android
  • Java
  • 程序人生
  • IOS
  • Design
  • Android开发
  • 编程语言
  • 移动开发
  • Java
  • 软件开发
  • 应用开发
  • 开发指南
  • 技术书籍
  • 编程学习
  • 用户体验
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《Android开发权威指南(第二版)》是畅销书《Android开发权威指南》的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45章精彩内容供读者学习。

《Android开发权威指南(第二版)》全面介绍了Android应用开发的各种技术,主要内容包括Android的四大应用程序组件(Activity、Service、Content Provider和Broadcast Receiver)、布局、菜单、控件、资源和本地化、可视化UI设计、对话框、Toast和通知栏(Notification)、Fragment、ActionBar、拖放技术、数据存储技术、Android支持的各种组件技术、通信技术(蓝牙、NFC、网络等)、异步装载、推送技术、多媒体、2D绘图技术、OpenGL ES、桌面小部件、动态壁纸、短信和彩信、传感器、GPS、谷歌地图、人机交互、输入法开发、Android NDK开发、测试驱动开发、性能优化等。

《Android开发权威指南(第二版)》并不局限于介绍Android的各种理论知识,而是从“实战”的角度介绍开发技术。《Android开发权威指南(第二版)》的所有示例都是精心设计的,足以使读者对当前讲解的理论知识驾轻就熟。这些示例中的很多例子都源于真实的项目,读者可以对这些示例的源程序稍加改动就可用于自己的项目中。《Android开发权威指南(第二版)》除了为每一个知识点提供完整的示例外,最后还提供了两个完整的项目:笑脸连连看和NFC侠。这两个项目极具参考价值,尤其是NFC侠,是笔者维护的一个开源项目,用于在不支持NFC的手机或Android模拟器上开发和测试NFC应用。读者可以关注我的Blog(http://blog.csdn.net/nokiaguy)来获得NFC侠以及本书的最新信息。

《Android开发权威指南(第二版)》适合有一定Java基础的读者阅读,如果读者已经掌握了Java的基本语法,那么《Android开发权威指南(第二版)》将会成为您的首选和枕边书,您将从书中获得更多有价值的Android开发技术。

《深入理解现代操作系统:从内核到用户空间》 本书是一本面向资深开发者和系统架构师的深度技术著作,旨在全面解析当代主流操作系统的核心机制、设计哲学与前沿发展。它不是一本面向初学者的入门教材,更不是关于特定应用开发框架的指南,而是聚焦于操作系统运行的底层逻辑与复杂交互。 --- 第一部分:操作系统基石与内核架构 本部分深入剖析了操作系统的核心组件和设计范式,为理解后续复杂的系统行为奠定坚实基础。 第1章:处理器架构与操作系统交互模型 本章从硬件层面切入,详细阐述了现代处理器的体系结构(如x86-64、ARMv8)如何影响操作系统的设计。重点讨论了特权级(Rings)的工作原理、系统调用(Syscall)的快速路径实现,以及中断描述符表(IDT)和页表机制在上下文切换中的核心作用。我们还将探讨硬件辅助虚拟化技术(如Intel VT-x/AMD-V)如何被内核用作构建更安全、更隔离环境的基础。 第2章:内存管理单元的精妙艺术 内存管理是操作系统的核心难题之一。本章超越了基础的分页概念,详细讲解了多级页表结构、TLB(Translation Lookaside Buffer)的刷新机制、大页(Huge Pages)的支持与性能影响。此外,我们深入探讨了内核如何实现内存保护、内存映射(mmap)的底层实现,以及现代Linux内核中的NUMA(非一致性内存访问)感知内存分配策略,确保应用程序在高并发、多处理器环境下获得最优性能。 第3章:进程与线程调度机制的演进 本章对进程控制块(PCB)和线程控制块(TCB)的结构进行了细致的解剖,重点分析了现代操作系统中复杂的调度算法。我们将详细解析完全公平调度器(CFS)的设计原理、时间片分配逻辑以及如何通过调度实体(sched_entity)来精确度量权重。对于实时系统,本章也将涵盖SCHED_FIFO和SCHED_RR策略下的抢占机制和优先级继承协议,并分析了I/O密集型任务与CPU密集型任务的调度冲突解决方案。 第4章:内核同步与并发控制原语 理解并发访问共享资源时的正确同步是编写健壮内核模块的关键。本章详尽考察了内核中使用的各种同步工具:自旋锁(Spinlocks)、互斥体(Mutexes)、信号量(Semaphores)的底层实现。特别关注了RCU(Read-Copy-Update)机制如何实现无锁的读操作,以及它在内核链表和数据结构遍历中的关键应用。同时,讨论了死锁的检测与预防在内核层面的特殊挑战。 --- 第二部分:文件系统、I/O与设备驱动 本部分聚焦于操作系统如何与持久化存储和外部硬件进行高效、可靠的交互。 第5章:现代文件系统的核心结构与事务 本章不再停留于VFS(虚拟文件系统)的抽象层,而是深入分析了Ext4、XFS、Btrfs等主流日志文件系统的内部结构。重点剖析了Journaling(日志记录)如何保证文件系统的一致性,块分配策略如何优化磁盘I/O,以及inode/dentry缓存的生命周期管理。对于面向未来的存储,我们探讨了延迟分配(Delayed Allocation)和写入时复制(Copy-on-Write)在现代文件系统中的实现细节。 第6章:块I/O堆栈的性能优化 块设备的I/O路径是系统性能的瓶颈之一。本章完整地描绘了从用户空间`read()`调用到磁盘物理操作的完整路径。我们将深入讲解I/O调度器(如Deadline、CFQ、BFQ)的工作原理,以及I/O合并(merging)和队列深度对性能的决定性影响。此外,本章覆盖了异步I/O(AIO)的实现模型及其与`io_uring`等新型异步机制的对比。 第7章:设备驱动模型与内核模块编程 本章侧重于操作系统与硬件交互的桥梁——设备驱动。我们将分析标准化的字符设备和块设备驱动的注册流程,并详细介绍中断处理程序(ISR)的下半部(Bottom Half)机制,如软中断和Tasklets,以避免中断处理时间过长。更高级的主题包括DMA(直接内存访问)的配置、内存一致性问题以及驱动程序中的并发安全实践。 --- 第三部分:网络协议栈与系统安全模型 本部分探讨了操作系统在网络通信和安全隔离方面的复杂机制。 第8章:TCP/IP协议栈的内核实现深度解析 本书不讲解TCP/IP协议的理论,而是剖析其在内核中的具体实现。我们将详细研究Socket缓冲区的管理、TCP拥塞控制算法(如CUBIC、BBR)在内核中的钩子点和参数调整,以及零拷贝技术(如sendfile)的实现细节如何减少数据在内核和用户空间间的冗余拷贝。同时,对Netfilter/iptables框架的内部数据流向进行透彻分析。 第9章:进程间通信(IPC)与隔离技术 本章系统地回顾了传统的IPC机制(管道、消息队列、共享内存),并侧重于现代更高效和更安全的方法。我们将深入研究Unix域套接字(Unix Domain Sockets)的性能优势,以及System V IPC和POSIX IPC在内核中的资源管理。针对微服务和容器化趋势,本章将分析内存共享和性能开销的最佳实践。 第10章:安全加固与访问控制机制 操作系统安全不再是事后补救,而是设计之初就融入的核心。本章详尽分析了现代内核的安全模型,包括SELinux/AppArmor等强制访问控制(MAC)系统的策略语言和运行时拦截机制。我们将探讨Address Space Layout Randomization (ASLR)的实现、Stack Smashing Protection (SSP)的工作原理,以及内核地址空间隔离如何防御特定的内存破坏攻击。 --- 第四部分:虚拟化、容器与未来趋势 本部分关注当前系统架构的主流趋势,即资源的抽象化与隔离。 第11章:Hypervisor与全虚拟化/半虚拟化 本章深入探讨了Type-1(裸金属)和Type-2(宿主型)Hypervisor的设计差异。对于全虚拟化,重点分析影子页表的维护和VM Exit的性能开销。对于半虚拟化(如Xen),则讲解事件通道(Event Channels)和Grant Tables如何优化Guest OS与Host OS的通信效率。 第12章:Linux容器技术:命名空间与控制组的构建 本书对Docker、Kubernetes等技术背后的操作系统技术进行了“逆向工程”。我们将详尽解析Linux命名空间(Namespaces)如何隔离PID、网络、挂载点等资源,以及控制组(cgroups v2)如何精确地限制和报告CPU、内存、I/O的使用量。对OverlayFS等联合文件系统的读写路径分析,将揭示容器分层存储的本质。 --- 本书的目标读者是那些不满足于仅仅调用API的工程师,而是渴望理解“API调用背后发生了什么”的系统级专家。阅读本书后,您将能够从底层原理出发,诊断复杂的性能瓶颈,设计更健壮、更安全、更高性能的系统软件。

作者简介

李宁,东北大学计算机专业硕士,IT讲师、技术顾问。拥有超过10年的软件开发经验。曾任某知名企业项目经理,国内最早的Android和iOS实践者之一,对Android和iOS有深入的研究。精通Java、C、C++、Objective—C等语言。eoeAndroid论坛版主、中国移动开发者社区Android专家。曾在《程序员》、IT168等媒体上发表150多篇技术文章。曾出版《Android开发权威指南》、《Android深度探索卷1:HAL与驱动开发》等畅销书。

目录信息

第1章 初识Android平台 1
1.1 Android简介 1
1.2 Android的制胜法宝 2
1.3 Android的版本发展历程 3
1.3.1 Android1.5(纸杯蛋糕) 3
1.3.2 Android1.6(甜甜圈) 4
1.3.3 Android2.1(松饼) 4
1.3.4 Android2.2(冻酸奶) 5
1.3.5 Android2.3(姜饼) 5
1.3.6 Android3.0(蜂巢) 6
1.3.7 Android4.0(冰激凌三明治) 6
1.3.8 Android4.1/4.2(果冻豆) 7
1.4 Android的系统架构 8
1.5 小结 9
第2章 搭建Android开发和测试环境 10
2.1 搭建Android开发环境需要些什么 10
2.2 安装Java开发环境 10
2.2.1 安装JDK 11
2.2.2 安装和配置Eclipse 11
2.3 安装Android开发环境 12
2.3.1 下载和安装AndroidSDK 13
2.3.2 下载和安装AndroidNDK 13
2.3.3 安装和配置Eclipse插件:ADT 14
2.4 配置Android测试环境 15
2.4.1 建立Android虚拟设备(AVD) 15
2.4.2 启动Android模拟器 16
2.4.3 安装真机测试环境 17
2.5 小结 18
第3章 第一个Android应用程序 19
3.1 从第一个Android程序中可以学到什么 19
3.2 建立Android工程 19
3.3 Android工程的结构 21
3.4 在窗口上放两个按钮 22
3.5 编写窗口类 23
3.6 修改字符串资源 24
3.7 运行Android应用程序 25
3.8 调试Android应用程序 27
3.9 签名Android应用程序 27
3.10 小结 29
第4章 Android应用程序架构 30
4.1 Android应用程序中的资源 30
4.1.1 资源存放在哪里 30
4.1.2 资源的基本使用方法 30
4.2 Android的应用程序组件 32
4.2.1 窗口(Activity)组件 32
4.2.2 服务(Service)组件 32
4.2.3 广播接收者(Broadcastreceivers)组件 33
4.2.4 内容提供者(ContentProvider)组件 33
4.3 AndroidManifest.xml文件的结构 33
4.4 小结 34
第5章 窗口(Activity)与视图(View) 35
5.1 声明和使用Activity 35
5.1.1 Activity的基本用法 35
5.1.2 同时适合手机和平板电脑的窗口风格 38
5.2 Activity的生命周期 40
5.3 窗口的常用事件 43
5.3.1 设置窗口标题事件(onTitleChanged) 44
5.3.2 键盘按下和抬起事件(onKeyDown和onKeyUp) 45
5.3.3 任意情况下捕捉键盘事件(dispatchKeyEvent) 48
5.3.4 回退事件(onBackPressed) 49
5.3.5 按键长按事件(onKeyLongPress) 50
5.3.6 屏幕触摸事件(onTouchEvent) 50
5.3.7 窗口获得焦点事件(onWindowFocusChanged) 51
5.4 在不同Activity之间传递数据 52
5.4.1 使用Intent传递数据 53
5.4.2 使用静态变量传递数据 54
5.4.3 使用剪贴板传递数据 55
5.4.4 使用全局对象传递数据 57
5.5 从Activity返回数据 59
5.6 视图(View) 61
5.6.1 视图简介 61
5.6.2 使用XML布局文件定义视图 61
5.6.3 在代码中控制视图 62
5.7 显示系统窗口 64
5.7.1 直接拨号 65
5.7.2 将电话号传入拨号程序 65
5.7.3 调用拨号程序 65
5.7.4 浏览网页 65
5.7.5 查看联系人 66
5.7.6 显示系统设置界面(设置主界面、Wi—Fi设置界面) 66
5.7.7 启动处理音频的程序 66
5.7.8 回到Home窗口(相当于按Home键) 66
5.8 与Activity相关的技巧与特效 67
5.8.1 全屏显示(隐藏标题栏和状态栏) 67
5.8.2 定制窗口标题栏 71
5.8.3 为程序添加Splash 75
5.8.4 改变窗口大小、位置和透明度 76
5.8.5 按两次关闭窗口 79
5.8.6 关闭所有的窗口 79
5.8.7 窗口截屏 80
5.9 小结 82
第6章 Intent与IntentFilter 83
6.1 Android系统的信使:Intent 83
6.2 Intent对象 84
6.2.1 Intent对象可以封装和传递哪些信息 84
6.2.2 组件名(Componentname) 84
6.2.3 动作(Action) 85
6.2.4 种类(Category) 86
6.2.5 数据(Data) 87
6.2.6 附加数据(Extra) 88
6.2.7 标志(Flags) 89
6.3 显式和隐式访问窗口 89
6.4 跨应用程序访问窗口 90
6.5 Android系统的过滤机制大揭秘 96
6.5.1 过滤条件的设置 96
6.5.2 过滤器的筛选规则 97
6.5.3 示例:过滤机制应用演示 101
6.6 Android源代码与过滤器 104
6.6.1 系统内置程序有哪些窗口可以利用 104
6.6.2 显示计算器(Calculator) 105
6.6.3 用浏览器(Browser)显示网页 106
6.6.4 拨打电话(Phone)与授权 108
6.7 获取第三方程序中可调用的窗口 109
6.8 传递附加数据(Extra) 111
6.9 解析数据 113
6.10 小结 114
第7章 窗口(Activity)高级技术 115
7.1 ActivityXML属性详解 115
7.1.1 设置Activity的基本信息 115
7.1.2 屏幕方向切换(android:screenOrientation) 117
7.1.3 阻止Activity销毁和重建(android:configChanges) 119
7.1.4 允许Activity被实例化(android:enabled) 123
7.1.5 在最近应用列表中显示(android:excludeFromRecents) 124
7.1.6 允许其他程序访问当前窗口(android:exported) 124
7.1.7 硬件加速(android:hardwareAccelerated) 125
7.1.8 在多进程中创建窗口实例(android:multiprocess) 125
7.1.9 无法返回的Activity(android:noHistory) 125
7.1.10 指定要返回的窗口(android:parentActivityName) 126
7.1.11 使窗口受到权限的保护(android:permission) 126
7.1.12 改变窗口所在的进程(android:process) 127
7.1.13 不保存窗口的状态(android:stateNotNeeded) 129
7.1.14 窗口的主题(android:theme) 129
7.1.15 扩展窗口UI(android:uiOptions) 129
7.1.16 设置输入法显示模式(android:windowSoftInputMode) 130
7.2 深入探索Activity从创建到销毁的过程 130
7.2.1 任务(Task)与回退栈(BackStack) 131
7.2.2 保存窗口(Activity)状态 133
7.2.3 管理任务和回退栈 134
7.2.4 Activity的4种创建模式 135
7.2.5 用Java代码设置窗口创建模式 141
7.2.6 窗口的乾坤大挪移(affinity) 144
7.2.7 销毁不再使用的窗口 147
7.3 Activity的别名 149
7.4 小结 151
第8章 布局 152
8.1 Android的五大布局 152
8.1.1 框架布局(FrameLayout) 152
8.1.2 线性布局(LinearLayout) 154
8.1.3 相对布局(RelativeLayout) 158
8.1.4 表格布局(TableLayout) 159
8.1.5 绝对布局(AbsoluteLayout) 160
8.2 属性资源与Android命名空间 160
8.3 布局属性 162
8.4 布局高级技术 163
8.4.1 布局别名 163
8.4.2 重用布局 164
8.4.3 优化布局 166
8.4.4 动态装载布局 167
8.4.5 动态设置布局属性 169
8.4.6 从右到左布局(RTLLayout) 169
8.5 小结 170
第9章 菜单 171
9.1 菜单的基本用法 171
9.1.1 创建选项菜单(OptionsMenu) 171
9.1.2 关联Activity 173
9.1.3 响应菜单的单击动作 173
9.1.4 动态添加、修改和删除选项菜单 174
9.1.5 带复选框和选项按钮的子菜单 175
9.1.6 上下文菜单 176
9.1.7 菜单事件 177
9.1.8 从菜单资源中装载菜单 177
9.2 菜单特效 177
9.2.1 自定义菜单 178
9.2.2 模拟UCWeb菜单效果 180
9.3 小结 184
第10章 Android的资源详解(一) 185
10.1 创建资源 185
10.1.1 手工创建资源文件 185
10.1.2 用ADT模板创建本地化图标资源 186
10.1.3 用ADT模板创建XML文件资源 188
10.2 使用资源 188
10.2.1 生成资源类文件(R.java) 188
10.2.2 从XML文件中访问资源 190
10.2.3 使用Java代码访问资源 191
10.2.4 Java反射技术与枚举资源 192
10.3 字符串(String)资源 193
10.3.1 普通字符串 193
10.3.2 字符串数组 194
10.3.3 复数字符串 194
10.3.4 在字符串中使用引号 195
10.3.5 用占位符格式化字符串 195
10.3.6 用HTML标签格式化字符串资源 195
10.4 值(values)资源 196
10.4.1 整数(Integer)资源 196
10.4.2 尺寸(Dimension)资源 197
10.4.3 布尔(Boolean)资源 198
10.4.4 颜色(Color)资源 198
10.4.5 ID资源 199
10.4.6 整数数组(Integer—Array)资源 200
10.4.7 类型数组(Typed—Array)资源 200
10.5 菜单(menu)资源 200
10.6 图像(drawable)资源 203
10.6.1 普通图像资源 203
10.6.2 XML图像资源 204
10.6.3 Nine—Patch图像资源 204
10.6.4 XMLNine—Patch图像资源 205
10.6.5 图层(Layer)资源 205
10.6.6 图像状态(State)资源 206
10.6.7 图像级别(Level)资源 207
10.6.8 淡入淡出(Cross—fade)资源 208
10.6.9 嵌入(Inset)图像资源 210
10.6.10 剪切(Clip)图像资源 210
10.6.11 外形(Shape)资源 211
10.7 小结 212
第11章 Android的资源详解(二) 213
11.1 动画资源 213
11.1.1 属性(Property)动画 213
11.1.2 帧(Frame)动画 215
11.1.3 移动补间(TranslateTween)动画 217
11.1.4 循环向右移动的EditText与上下弹跳的球 218
11.1.5 缩放补间(ScaleTween)动画 220
11.1.6 跳动的心 221
11.1.7 旋转补间(RotateTween)动画 222
11.1.8 旋转的星系 222
11.1.9 透明度补间(AlphaTween)动画 223
11.1.10 投掷炸弹 224
11.1.11 震动渲染器(ShakeInterpolator) 226
11.1.12 自定义渲染器(Interpolator) 227
11.2 风格(Style)资源与主题(Theme) 229
11.3 小结 232
第12章 资源的本地化 233
12.1 建立本地化的资源目录 233
12.2 资源目录的命名规则 237
12.3 建立别名资源 237
12.3.1 图像别名资源 237
12.3.2 布局别名资源 238
12.3.3 字符串别名资源 238
12.3.4 其他简单值别名资源 238
12.4 资源目录的优先级 238
12.5屏幕适配 239
12.5.1 屏幕适配要考虑的因素 239
12.5.2 适配不同屏幕可以采用的规则 241
12.5.3 屏幕尺寸和屏幕密度 241
12.5.4 位置、尺寸和字体应使用屏幕密度单位 244
12.5.5 与屏幕适配有关的标识符 244
12.5.6 影响屏幕适配的重要因素:布局和图像 245
12.5.7 典型的屏幕适配案例 246
12.5.8 在GooglePlay上限制屏幕尺寸和屏幕密度 247
12.5.9 在Android模拟器上测试各种屏幕尺寸和密度 248
12.6 小结 248
第13章 Android的控件详解(一) 249
13.1 显示文本的控件(TextView) 249
13.1.1 显示富文本(URL、不同大小、字体、颜色的文本) 250
13.1.2 用标签在TextView控件上显示图像 252
13.1.3 单击链接弹出Activity 254
13.1.4 为指定文本添加背景 256
13.2 编辑文本的控件(EditText) 258
13.2.1 像QQ一样输入表情图像 259
13.2.2 在EditText中输入特定的字符 260
13.2.3 AutoCompleteTextView(自动完成输入内容的控件) 261
13.3 按钮(Button)和复选框(Checkbox)控件 263
13.3.1 Button(普通按钮控件) 263
13.3.2 图文混排的按钮 265
13.3.3 ImageButton(图像按钮控件) 266
13.3.4 RadioButton(选项按钮控件) 267
13.3.5 ToggleButton(开关状态按钮控件) 267
13.3.6 CheckBox(复选框控件) 268
13.4 图像控件(ImageView) 270
13.4.1 ImageView控件的基本用法 270
13.4.2 显示指定区域的图像 270
13.4.3 缩放和旋转图像 272
13.5 时间与日期控件 273
13.5.1 DatePicker(输入日期的控件) 273
13.5.2 TimePicker(输入时间的控件) 274
13.5.3 DatePicker、TimePicker与TextView同步显示日期和时间 274
13.5.4 AnalogClock和DigitalClock(显示时钟的控件) 275
13.6 小结 275
第14章 Android的控件详解(二) 276
14.1 进度条控件 276
14.1.1 ProgressBar(进度条控件) 276
14.1.2 SeekBar(拖动条控件) 278
14.1.3 设置ProgressBar和SeekBar的颜色及背景图 278
14.1.4 RatingBar(评分控件) 281
14.2 列表控件 282
14.2.1 ListView(普通列表控件) 282
14.2.2 为ListView列表项添加复选框和选项按钮 285
14.2.3 对列表项进行增、删、改操作 286
14.2.4 改变列表项的背景色 290
14.2.5 ListActivity(封装ListView的Activity) 290
14.2.6 ExpandableListView(可扩展的列表控件) 291
14.2.7 Spinner(下拉列表控件) 293
14.3 GridView(网格控件) 296
14.4 TabHost(标签控件) 298
14.5 ViewStub(惰性装载控件) 299
14.6 小结 300
第15章 可视化UI设计 301
15.1 拖放控件 301
15.2 设置视图属性 303
15.3 预览各种屏幕尺寸 303
15.4 语言和地区的本地化测试 304
15.5 其他可视化功能 304
15.6 小结 305
第16章 对话框、Toast与通知栏(Notification) 306
16.1 对话框 306
16.1.1 带2个按钮(确认/取消)的对话框 306
16.1.2 带3个按钮(覆盖/忽略/取消)的对话框 307
16.1.3 简单列表对话框 308
16.1.4 单选列表对话框 309
16.1.5 多选列表对话框 311
16.1.6 进度对话框 312
16.1.7 登录对话框 315
16.1.8 使用Activity托管对话框 316
16.2 Toast 318
16.3 通知(Notification) 319
16.3.1 在状态栏上显示通知信息 319
16.3.2 永久存在的Notification 322
16.3.3 自定义Notification 323
16.4 小结 324
第17章 封装UI和代码利器——Fragment 325
17.1 Fragment简介 325
17.2 什么时候使用Fragment 326
17.3 按照Fragment设计原则编写程序 328
17.4 Fragment的生命周期 332
17.5 创建Fragment 341
17.5.1 通过XML布局文件创建Fragment 341
17.5.2 通过Java代码创建Fragment 342
17.5.3 创建无UI的Fragment 344
17.5.4 在低版本Android中使用Fragment(SupportLibrary) 345
17.6 Activity与Fragment之间的交互 346
17.6.1 Fragment与Activity之间的交互 346
17.6.2 Fragment的回调机制 348
17.7 Fragment状态的持久化 351
17.8 Fragment与回退栈(导航) 355
17.9 FragmentManager与FragmentTransaction 357
17.9.1 管理Fragment事务 357
17.9.2 查找Fragment 357
17.9.3 跟踪回退栈状态 358
17.9.4 恢复历史状态 358
17.9.5 管理Fragment的状态 359
17.9.6 添加、删除和替换Fragment 359
17.9.7 分离(Detach)与附加(Attach)Fragment 360
17.9.8 显示和隐藏Fragment 361
17.10 Fragment扩展 361
17.10.1 ListFragment 361
17.10.2 DialogFragment 363
17.10.3 其他Fragment扩展类 366
17.11 Fragment模板源代码分析 366
17.12 小结 368
第18章 动作栏——ActionBar 369
18.1 ActionBar简介 369
18.2 ActionBar基础 370
18.2.1 隐藏/显示ActionBar 370
18.2.2 添加和响应Action按钮 372
18.3可上下两分的ActionBar 374
18.4 应用程序图标导航 376
18.5 收缩和展开ActionView 377
18.6 ActionProvider 380
18.6.1 分享信息(ShareActionProvider) 380
18.6.2 定制ActionProvider 382
18.7 导航标签 384
18.8 下拉导航列表 388
18.9 小结 390
第19章 Android的拖放技术 391
19.1 Android中的拖放操作 391
19.2 拖放状态与拖放处理 391
19.3 拖动阴影 392
19.4 示例:拖动复制图像 393
19.5 小结 395
第20章 数据存储解决方案 396
20.1 读写key—value对:SharedPreferences 396
20.2 文件流操作 397
20.2.1 openFileOutput和openFileInput方法 398
20.2.2 读写SD卡中的文件 399
20.3 读写JSON格式的数据 400
20.4 SQLite数据库 404
20.4.1 SQLite数据库管理工具 404
20.4.2 SQLiteOpenHelper类与自动升级数据库 405
20.4.3 数据绑定与SimpleCursorAdapter类 406
20.4.4 操作SD卡上的数据库 409
20.4.5 将数据库与应用程序一起发布 410
20.4.6 内存数据库 411
20.5 小结 412
第21章 内容提供者(ContentProvider) 413
21.1 ContentProvider的作用 413
21.2 获得系统数据 413
21.2.1 读取联系人信息 414
21.2.2 查看收件箱的短信 415
21.3 自定义ContentProvider 417
21.3.1 查询城市信息 417
21.3.2 为ContentProvider添加访问权限 422
21.4 如何查找系统提供的ContentProvider 423
21.5 小结 425
第22章 广播接收器(BroadcastReceiver) 426
22.1 什么是广播 426
22.2 接收系统广播 427
22.2.1 短信拦截 427
22.2.2 用代码注册广播接收器 429
22.2.3 广播接收器的优先级 429
22.2.4 来去电拦截 430
22.2.5 截获屏幕休眠与唤醒 432
22.2.6 开机自动运行 433
22.2.7 显示手机电池的当前电量 434
22.3 发送广播 434
22.4 小结 435
第23章 服务(Service) 436
23.1 Service基础 436
23.1.1 Service的生命周期 436
23.1.2 开机启动Service 438
23.2 跨进程访问(AIDL服务) 439
23.2.1 什么是AIDL服务 439
23.2.2 建立AIDL服务的步骤 439
23.2.3 创建和调用AIDL服务 440
23.2.4 传递复杂数据的AIDL服务 442
23.2.5 AIDL与来去电自动挂断 445
23.3 小结 447
第24章 Android的组件开发 448
24.1 Android支持哪些组件开发方式 448
24.2 引用jar文件 449
24.3 跨工程引用 450
24.4 引用NDKLibrary 451
24.5 动态引用APK文件 451
24.6 动静结合的组件 453
24.7 脚本类型组件(JavaScript)与WebView控件 453
24.8 如何确定动态组件是否安装 457
24.9 升级动态组件 459
24.10 小结 461
第25章 Android的蓝牙开发技术 462
25.1 蓝牙简介 462
25.2 打开和关闭蓝牙设备 462
25.3 搜索蓝牙设备 463
25.4 蓝牙数据传输 465
25.5 蓝牙通信一定需要UUID吗 467
25.6 小结 467
第26章 近距离天线通信——NFC技术 468
26.1 NFC简介 468
26.2 NFC、蓝牙和红外之间的差异 469
26.3 NFC技术的未来前景 470
26.4 Android中的NFC技术 471
26.4.1 NDEF与非NDEF数据 471
26.4.2 NFC的三重过滤机制 471
26.4.3 开启Android的NFC功能 472
26.4.4 编写NFC程序的基本步骤 473
26.5 测试NFC程序需要的设备 474
26.6 让Android手机自动运行程序 475
26.6.1 向NFC标签写入数据的基本步骤 475
26.6.2 向NFC标签写入启动Android应用程序的消息 476
26.7 让Android手机自动打开网页 483
26.8 读写NFC标签中的文本 485
26.8.1 实现读写文本数据应用的基本思路 485
26.8.2 如何将NFC标签变成NDEF文本格式 485
26.8.3 NDEF文本格式解析 486
26.8.4 实现读写文本数据的Android应用程序 490
26.9 读写NFC标签中的Uri 496
26.9.1 NDEFUri格式解析 496
26.9.2 实现读写Uri的Android应用程序 499
26.10 利用NFC标签支持的数据格式进行过滤 502
26.11 处理任意NFC标签 504
26.12 读写非NDEF格式的数据 505
26.13 AndroidBeam技术与数据交互 507
26.13.1 传递NDEF消息 507
26.13.2 传输文件 511
26.14 小结 513
第27章 Android的网络开发技术 514
27.1 提交HTTPGET和HTTPPOST请求 514
27.2 HttpURLConnection类 516
27.3 上传文件 517
27.4 下载管理(DownloadManager) 519
27.5 Wi—FiDirect 524
27.5.1 Wi—FiDirectAPI的核心部分 524
27.5.2 创建监听Wi—FiDirect动作的广播接收器 524
27.5.3 注册广播接收器 525
27.5.4 发现Wi—FiDirect设备 526
27.5.5 连接Wi—FiDirect设备 526
27.5.6 数据传输 527
27.6 Internet电话(SIP) 528
27.6.1 使用SIP的要求和限制 528
27.6.2 配置Android版SIP电话 528
27.6.3 创建SipManager 529
27.6.4 注册SIP服务器 529
27.6.5 开始打电话 530
27.6.6 接听电话 530
27.7 小结 531
第28章 并发与定时器 532
28.1 Handler 532
28.1.1 更新UI 532
28.1.2 延迟执行 535
28.2 定时器 537
28.2.1 单秒循环的定时器:Chronometer 537
28.2.2 任意时间间隔的定时器:Timer 538
28.2.3 全局定时器:AlarmManager 539
28.3 AsyncTask 541
28.4 小结 543
第29章 异步装载(Loader) 544
29.1 Loader简介 544
29.2 Loader的核心类/接口 544
29.3 如何使用Loader 545
29.3.1 创建/重用Loader 545
29.3.2 遗弃旧的数据 546
29.3.3 LoaderManager与方法回调 546
29.3.4 创建Loader对象(onCreateLoader) 547
29.3.5 完成数据装载(onLoadFinished) 547
29.3.6 Loader被重置(onLoaderReset) 548
29.4 异步装载联系人(CursorLoader的应用) 548
29.5 小结 552
第30章 Android推送技术 553
30.1 IOS的推送方案 553
30.2 WindowsPhone的推送方案 554
30.3 Android的推送方案 554
30.4 第三方推送服务:极光推送 556
30.5 自己搭建推送服务器:AndroidPN 557
30.6 小结 558
第31章 Android的多媒体开发技术 559
31.1 音频 559
31.1.1 音频播放 559
31.1.2 录制音频 561
31.2 视频 563
31.2.1 播放视频 563
31.2.2 录制视频 564
31.3 相机 565
31.3.1 调用系统的拍照功能 565
31.3.2 自定义拍照功能 566
31.4 铃声 570
31.5 小结 572
第32章 Android的2D绘图 573
32.1 绘制基本的图形 573
32.1.1 绘制像素点 573
32.1.2 绘制直线 574
32.1.3 绘制圆形 574
32.1.4 绘制圆弧 574
32.1.5 绘制文本 575
32.1.6 示例:绘制基本的图形和文本 575
32.2 绘制位图 578
32.2.1 绘制Bitmap对象 578
32.2.2 使用Drawable.draw方法绘制位图 579
32.2.3 示例:用两种方式绘制位图 579
32.3 设置图像的透明度 580
32.4 旋转图像 581
32.5 小结 583
第33章 3D绘图之OpenGLES 584
33.1 OpenGLES简介 584
33.2 在3D空间中绘图 585
33.2.1 要绘制3D图形了,第一步要做什么 585
33.2.2 定义顶点 587
33.2.3 绘制三角形 588
33.2.4 三角形合并法绘制矩形 590
33.2.5 顶点法绘制矩形 592
33.2.6 顶点的选取顺序 592
33.2.7 索引法绘制矩形 593
33.2.8 基于OpenGLES的动画原理 594
33.2.9 旋转的矩形 594
33.3 视图 595
33.3.1 有趣的比喻:照相机拍照 596
33.3.2 模型变换:立方体旋转 597
33.3.3 用gluLookAt方法变换视图 599
33.4 颜色 600
33.5 小结 602
第34章 Android的桌面上的“尤物” 603
34.1 窗口小部件(AppWidget) 603
34.1.1 在Android桌面上添加AppWidget 603
34.1.2 开发AppWidget的步骤 603
34.1.3 数字时钟 605
34.1.4 AppWidgetProvider类 607
34.1.5 向AppWidget添加配置窗口 608
34.1.6 可以选择风格的数字时钟 608
34.2 动态壁纸(随机变换的圆圈) 612
34.3 小结 618
第35章 Android中的短信(SMS)与彩信(MMS)开发技术 619
35.1 通过系统程序发短信 619
35.2 直接发送短信 619
35.3 保存短信发送记录 620
35.4 监听短信和彩信 621
35.5 显示视频缩略图 622
35.6 彩信内容与SMIL协议 624
35.7 小结 631
第36章 Android的传感器开发技术 632
36.1 如何使用传感器 632
36.2 加速度传感器(Accelerometer) 635
36.3 重力传感器(Gravity) 635
36.4 光线传感器(Light) 636
36.5 陀螺仪传感器(Gyroscope) 636
36.5 方向传感器(Orientation) 637
36.6 其他传感器 638
36.7 小结 638
第37章 Android的全球定位系统(GPS) 639
37.1 GPS的核心API 639
37.2 获取位置提供者(LocationProvider) 641
37.2.1 获取所有可用的LocationProvider 641
37.2.2 根据名称获取LocationProvider 642
37.2.3 根据条件(Criteria)获取LocationProvider 642
37.3 实时获取GPS定位数据 643
37.4 测量地球上任意两点之间的距离 645
37.5 邻近警告 646
37.6 小结 647
第38章 谷歌地图(GoogleMap)开发应用 648
38.1 GoogleMap的跨平台解决方案:MapsJavaScriptAPIv3 648
38.2 GoogleMap的显示与定位 648
38.3 在GoogleMap上插入图像标志 651
38.4 插入多个图像标志 653
38.5 带阴影的位置坐标信息 653
38.6 地图与Java交互 655
38.7 小结 657
第39章 Android中的人机交互设计 658
39.1 手势(Gesture) 658
39.1.1 创建手势文件 658
39.1.2 通过手势输入字符串 658
39.1.3 通过手势调用程序 660
39.1.4 编写自己的手势创建器 661
39.2 多点触摸与放大/缩小操作 662
39.3 语音识别 664
39.4 让手机说话(TTS) 665
39.5 小结 666
第40章 Android中的输入法开发 667
40.1 Android输入法简介 667
40.2 控制输入法 668
40.3 输入法实战 669
40.3.1 实现输入法的步骤 669
40.3.2 编写输入法程序 669
40.3.3 输入法服务的生命周期 672
40.3.4 预输入文本 672
40.3.5 输入法设置 673
40.4 小结 673
第41章 AndroidNDK开发 674
41.1 AndroidNDK简介 674
41.2 安装、配置和测试NDK开发环境 674
41.2.1 系统和软件要求 675
41.2.2 下载和安装AndroidNDK 675
41.2.3 下载和安装Cygwin 675
41.2.4 配置AndroidNDK的开发环境 677
41.3 利用NDKSamples学习NDK开发 678
41.3.1 编译NDKSamples 678
41.3.2 NDK程序的结构与命名规则 678
41.4 AndroidNDK配置文件详解 679
41.4.1 AndroidNDK定义的变量 680
41.4.2 AndroidNDK定义的函数 680
41.4.3 描述模块的变量 681
41.4.4 配置Application.mk文件 682
41.5 第一个NDK示例:字母的大小写转换 682
41.5.1 编写NDK程序 682
41.5.2 编写调用NDK函数的Java程序 684
41.5.3 在Eclipse中开发和编译NDK程序 684
41.6 NDK程序读取Java字段值 686
41.7 小结 687
第42章 Android的测试驱动开发(TDD) 688
42.1 JUnit测试框架 688
42.2 测试Activity 688
42.3 测试ContentProvider 691
42.4 测试Service 692
42.5 测试普通类 692
42.6 小结 693
第43章 Android应用的性能优化 694
43.1 性能优化的基础知识 694
43.2 编写Java程序的最优化原则 695
43.2.1 用静态工厂方法代替构造方法 695
43.2.2 避免创建重复的对象 695
43.2.3 防止内存泄漏 697
43.2.4 返回零长度的集合而不是null 697
43.2.5 通过接口引用对象 698
43.3 避免ANR 698
43.4 执行时间测试 699
43.5 内存消耗测试 700
43.6 测试性能的工具:traceview 701
43.7 小结 702
第44章 游戏项目实战:笑脸连连看 703
44.1 游戏玩法 703
44.2 准备图像素材 703
44.3 实现主界面 704
44.4 随机生成连连看图像 705
44.5 选中两个相同图像后消失 705
44.6 用定时器限制游戏时间 706
44.7 小结 707
第45章 开源项目实战:NFC侠(NFCMan) 708
45.1 什么是NFCMan 708
45.2 用Android模拟器和非NFC设备测试NFC应用 709
45.3 NFCMan的实现原理 711
45.4 实现服务端程序(NFCMan) 711
45.4.1 可视化SWT开发环境 712
45.4.2 创建NFC标签 712
45.4.3 描述虚拟NFC标签的NFCTag类 714
45.4.4 保证虚拟NFC标签的全局唯一 715
45.4.5 显示与保存虚拟NFC标签 716
45.4.6 装载已经存在的虚拟NFC标签 719
45.4.7 开启服务 720
45.4.8 处理客户端请求 721
45.4.9 保证虚拟Android设备全局唯一 723
45.4.10 描述虚拟Android设备 724
45.4.11 添加虚拟Android设备 725
45.4.12 异常处理机制 727
45.5 客户端与服务端之间的数据管道(NFCManService) 728
45.5.1 与NFCMan交互(Socket方式) 728
45.5.2 与ANFCMan交互(广播方式) 732
45.6 客户端Library(ANFCMan) 733
45.6.1 ANFCMan的数据结构和异常类 733
45.6.2 ANFCMan的入口类 734
45.6.3 模拟检测到NFC标签的广播接收器 734
45.6.4 同时处理物理NFC标签和虚拟NFC标签的窗口 735
45.7 测试ANFCMan(TestANFCMan) 738
45.8 小结 739
· · · · · · (收起)

读后感

评分

买了以后,让我对安卓开发失去了兴趣。谁要买,我这本送你,新书。邮费自出,免得花冤枉钱。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

评分

买了以后,让我对安卓开发失去了兴趣。谁要买,我这本送你,新书。邮费自出,免得花冤枉钱。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

评分

买了以后,让我对安卓开发失去了兴趣。谁要买,我这本送你,新书。邮费自出,免得花冤枉钱。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

评分

买了以后,让我对安卓开发失去了兴趣。谁要买,我这本送你,新书。邮费自出,免得花冤枉钱。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

评分

买了以后,让我对安卓开发失去了兴趣。谁要买,我这本送你,新书。邮费自出,免得花冤枉钱。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

用户评价

评分

这本书的格局非常大,它超越了单纯的“如何做”的层面,上升到了“如何思考”的境界。在我看来,它最宝贵的财富在于对Android生态未来趋势的把握和对软件设计哲学的探讨。书中关于模块化与多模块构建的章节,给我带来了巨大的启发,它指导我如何拆分大型应用,降低耦合度,让团队协作更加顺畅。作者在讨论Android安全实践时,提出的那些关于数据加密和权限管理的最佳实践,非常具有前瞻性,确保了我们现在编写的应用能够在未来的安全标准下依然稳健运行。读完这本书,我感觉自己的技术视野被极大地拓宽了,它不仅仅是一本技术指南,更像是一份指导职业生涯成长的路线图,让我对自己的技术栈规划有了更清晰的方向感和自信心。

评分

我得承认,刚开始我有点担心这本书的内容会过于偏向理论,实操性不强。然而,事实证明我的顾虑完全是多余的。这本书的每一章都配有精心设计的代码示例,而且这些示例绝非那种“Hello World”级别的玩具代码,它们都是具备一定复杂度和实用价值的模块化组件。比如,书中对自定义View的绘制流程讲解得尤为精彩,作者通过一个自定义的图表组件,把Canvas、Path、Paint对象之间的协同工作展现得淋漓尽致,看完之后,我立刻就能着手修改我们产品中那个陈旧的进度条了。更重要的是,作者非常注重代码的可维护性和测试性,他不仅教你怎么写出功能代码,更教你怎么用TDD(测试驱动开发)的理念来保证代码质量,这对于长期维护大型项目来说,是至关重要的技能。

评分

这本书绝对是移动开发领域的“圣经”!我简直不敢相信自己能这么快上手构建复杂的应用。一开始我被那些看似晦涩的生命周期回调函数搞得焦头烂额,但作者的讲解简直是化繁为简的大师。他不像某些教材那样堆砌晦涩的术语,而是用非常贴近实际场景的例子来阐述设计模式,比如如何用MVVM结构优雅地处理数据绑定和UI更新。特别是关于Kotlin协程的部分,写得深入浅出,让我终于理解了异步编程的真正奥义,告别了过去那种混乱的回调地狱。读完后,我感觉自己对Android系统底层的运行机制有了更清晰的认识,不再是那个只会调用API的“码农”,而是真正理解了为什么这样设计会更高效、更稳定。对于那些想要冲击高级职位,或者正在做一个需要处理海量并发请求的项目的人来说,这本书提供的架构思想和性能优化技巧,简直是无价之宝。

评分

这本书的阅读体验非常流畅,它就像一位经验丰富的前辈,耐心地为你解答每一个“为什么”。与其他教材那种公式化、流水账式的罗列不同,作者在介绍每一个新概念时,都会先抛出一个在实际工作中经常遇到的痛点,然后自然而然地引出解决方案,这使得学习过程充满了目标感。例如,在讲解数据库持久化时,作者没有仅仅停留在Room的基本CRUD操作上,而是深入探讨了事务处理的隔离级别以及如何进行高效的后台数据同步策略,这对于开发离线优先的应用至关重要。这本书的章节组织逻辑清晰,我甚至可以把它当作一本随时可以翻阅的参考手册,需要解决某个特定的架构难题时,总能迅速找到对应的深入分析和代码示例。

评分

说实话,我最欣赏这本书的地方在于它对“现代”Android开发的深刻洞察。它没有沉溺于过时的技术细节,而是紧密围绕最新的Jetpack组件和Material Design 3规范进行讲解。当你还在为Fragment的事务管理而头疼时,这本书已经带着你用Compose构建声明式UI了,而且讲解得极其细致,从State的提升到Modifier链的构建,每一步都有理有据。我记得有一次我在处理复杂动画过渡时遇到了性能瓶颈,翻开书中的性能优化章节,作者提供的Profile工具使用指南和内存泄漏排查思路,直接帮我定位了问题所在,效率提升了至少30%。这本书的深度和广度兼具,既有对底层Binder机制的探讨,也有对最佳实践的总结,使得读者在学习新技术的同时,也能保持对平台稳定性的敬畏之心。

评分

还不错,讲的挺细的,我也看的比较仔细,第一本Android入门书籍

评分

Android 全面的基础知识点讲解,对基础知识覆盖学习。

评分

Android 全面的基础知识点讲解,对基础知识覆盖学习。

评分

Android 全面的基础知识点讲解,对基础知识覆盖学习。

评分

还不错,讲的挺细的,我也看的比较仔细,第一本Android入门书籍

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有