Android高性能编程

Android高性能编程 pdf epub mobi txt 电子书 下载 2025

图书标签:
  • Android
  • 性能优化
  • 移动开发
  • 编程技巧
  • 系统原理
  • 内存管理
  • CPU优化
  • 电量优化
  • ANR
  • 性能测试
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 电子工业出版社
ISBN:9787121328879
版次:1
商品编码:12307618
品牌:Broadview
包装:平装
开本:16开
出版时间:2018-01-01
用纸:胶版纸
页数:400
字数:485000000

具体描述

内容简介

本书旨在为Android开发者指明提高应用程序性能的方向。第1章就什么是高性能,为什么需要高性能展开讨论。第2章为读者展示了一些用于调试应用程序的工具,方案以及技巧。第3-8章,围绕着布局,内存,多线程,网络,安全,电量消耗,等多个方面,阐述如何打造高性能应用程序。第9章相对独立,介绍的是原生开发。第10章与前面章节的关系也不大,涵盖了一些琐碎,但对性能至关重要的提示,例如,图像处理,序列化,优化APK文件等等。

目录

第1章 引言:为什么需要高性能?
为什么应用程序的性能意味着这么多?
手动测试和自动测试
ANR和软件中的延迟
什么会触发ANR,我该如何避免它们?
Android架构
Dalvik虚拟机
内存管理
电量消耗
Java语言
NDK/在需要时进行原生开发
程序响应相关的3个临界值
软件质量的商业价值
总结

第2章 高效调试
ADB
DDMS
采集和分析线程信息
堆分析和可视化
Allocation Tracker
网络使用
Emulator Control
系统状态
调试UI
使用Hierarchy Viewer
Systrace
Android设备调试选项
Android即时运行
GPU分析器
使用GPU分析器进行调试
ClassyShark
开始使用
总结

第3章 打造布局
预览
渲染性能
屏幕撕裂和垂直同步
多窗口模式
最佳实践
布局概述
布局层次管理
布局复用
ViewStub
AdapterView和视图回收
自定义视图和布局
……

第4章 内存
第5章 多线程
第6章 网络
第7章 安全
第8章 优化电量消耗
第9章 Android中的原生代码
第10章 性能提示

前言/序言

序言

应用程序在移动世界中能否成功,性能是其中一个关键的因素。如果一个应用程序运行缓慢,用户可能会放弃继续使用它。学习如何创建一个应用程序,让程序在速度、性能,以及功能交互之间达到平衡,将会是一个挑战。做到这点比以往任何时候都更重要。

《Android高性能编程》将让你学习到如何让程序能够运行到尽可能多的硬件设备上,使得应用程序覆盖更多用户。这本书首先简要地介绍了Android开发中一些最先进的技术,以及性能对Android应用程序的重要性。接着,介绍了使用Android SDK工具,对Android应用程序进行调试和分析的常规做法。本书将讨论一些先进的主题,例如,打造布局、多线程、网络以及安全。电池电量是应用程序的最大瓶颈之一,本书将通过典型的代码,阐释如何减少电量消耗,以及在不同情形下如何测量电量的消耗。

本书探讨的技术,是为打造一个优化高效的系统。这是一个不会消耗大量电量,或引起内存泄露,随着时间的推移,运行越来越慢的系统。

这本书涵盖了什么

第1章,引言:为什么需要高性能?对主题进行概要介绍,简要分析了Android平台的现状,以及高性能对Android应用程序的重要性。

第2章,高效调试。涵盖了调试和分析Android应用程序常用的一些工具, 不仅限于Android SDK 所提供的,还包括一些第三方的。

第3章,打造布局。展示优化Android程序的相关技术,编写内存高效的应用程序,并介绍内存分配以及垃圾回收的相关概念。

第4章,内存。提供了许多UI设计方面的见解,通过学习这些内容,打造加载迅速,更新高效,不会令用户察觉到延迟的UI界面。

第5章,多线程。介绍了Android应用程序中可供使用的各种线程,以及它们特定的使用场景。一些先进的技术,例如IPC,将会通过代码示例来展示。

第6章,网络。介绍了高效操作网络的相关技术,以及从服务端获取数据的一些技术,例如指数退避算法或避免轮询。

第7章,安全。涵盖了确保Android应用程序安全的相关技术,如何利用Android自带的安全加密机制,以及如何获取关于连接的信息,或者只是在连接变化的时候得到通知。

第8章,优化电量消耗。通过典型的代码,演示如何耗尽电池的电量,如何阻止它,以及在各种情形下如何权衡电量的消耗;许多开发者不知道,开发一个拍照或录制视频的应用程序时,任何处理预览以及保存数据。

第9章,Android中的原生代码。这一章节将全部用于介绍Android中的原生代码和C++以及它们的用法。

第10章,性能提示。帮助开发者在平时的开发中,避开影响效率的方案;这是前面章节中未涉及的一个最佳实践指南。

你需要准备什么?

你需要准备以下硬件设备。

? 运行环境为Windows、Linux,或者Mac OS X 的PC/笔记本电脑。

? Android手机。最好是高端一点的,并且系统版本高于Android5.0。

这本书为谁而写?

这本书是为那些已经拥有丰富Android知识,想要进一步巩固和学习技术,来提高应用程序性能的开发者而写的。我假设他们已经熟悉整个Android SDK,且为此工作了多年。他们也熟悉Android框架,比如,能使用NDK编写原生代码,NDK对性能来说至关重要。

约定

本书会涉及几种不同的文本样式,分别代表不同类型的信息。下面展示了其中一些样式及它们代表的意思。

代码文本、数据库表名、文件名、文件扩展名、路径、URLs、用户输入,以及推特账号名的文本样式如下。

“If you go to this folder and call the command adb, you will see on the screen a list of available options.”

代码块的格式如下。

<resources>

<style name=”Theme.NoBackground”parent=”android:Theme”>

<item name=”android:windowBackground”>@null</item>

</style>

</resources>

任何命令行输入输出的格式如下。

adb shell dumbsys gfxinfo <PACKAGE_NAME>

新条款以及重要的词会以黑体展示。屏幕上显示的单词,例如菜单或者对话框内出现的文本格式类似这样:“To debug the overdraw on the device,Android provides a helpful tool that can be enabled inside the Developer options.”


警告或重要提示或出现这样一个框框中。


提示及小技巧会以这样的形式出现。

读者反馈

欢迎读者反馈。你对这本书的看法——喜欢或者不喜欢。读者的反馈对我们来说非常重要,它能最大程度地帮助我们写出读者需要的内容。

发送邮件到feedback@packtpub.com,并在邮件的标题中附上书名,即可给我们反馈。

如果你对某个主题有丰富的经验并且有兴趣写作或者参与对某本书的编写,可以查看我们的作者引导页面www.packtpub.com/authors。

客服支持

很高兴您成为Packt系列丛书的拥有者,为此,我们会为您提供一系列服务。

下载示例代码

可以到http://www.packtpub.com登录账户,下载本书的示例代码文件。如果你从别处购买本书,可以访问http://www.packtpub.com/support并注册,我们会通过邮件直接将文件发送给你。

你可以通过下列步骤下载代码文件。

1.到我们的网站登录或注册。

2.点击网站顶部的SUPPORT tab页面。

3.点击Code Downloads & Errata。

4.在搜索框中输入书本的名字。

5.选中你要下载代码的对应的图书。

6.在下拉菜单中选择图书的购买地。

7.点击Code Download。

可以在Packt 出版社网站对应的书本页面,点击Code Files按钮来下载本书的代码文件。书本页面可以通过搜索框中输入书本名进入。注意,前提是你需要登录你的Packt账户。

文件下载好后,请确使用的解压工具是最新版本。

? Windows使用WinRAR / 7-Zip

? Mac 使用 Zipeg / iZip

? Linux 使用 7-Zip / PeaZip

这本书的代码也存放在GitHub上https://github.com/PacktPublishing/ Android-High-Performance-Programming。

同时,我们也有其他丰富的代码、书本目录、视频等可以提供给你。

https://github.com/PacktPublishing/。

欢迎下载它们!

下载本书的彩图

我们也为你提供了本书所用到的截屏和图表。这些彩图更利于你理解和区别代码结果的变化。你可以在以下网址中下载这些文件

http://www.packtpub.com/sites/default/files/downloads/AndroidHighPerformanceProgramming_ColorImages.pdf。

勘误

尽管我们已经非常仔细,以确保书本内容的准确性,但是错误难免还是会发生。如果你在书中遇到一个错误(可能是一个文本错误或者代码错误),如果你能报告给我们,我们不甚感激。这样做能够减少对其他读者的困扰并能帮助我们在后续版本中改进这些问题。如果你遇到任何错误,请访问http://www.packtpub.com/submit-errata,选择你要报告的图书中,点击Errata Submission Form链接,输入你所遇到错误的详细信息,发送给我们。一旦错误被确认,你所提交的内容会被接受,并且更新到我们网站中,或者添加到要报告的图书中已有的相应章节下的勘误表中。

通过访问https://www.packtpub.com/books/content/support并输入图书名进行搜索,可以查看之前已经提交的勘误。相关的信息将会出现在Errata部分中。

版权保护

对互联网上所有的媒体资源来说,版权保护一直以来都是一个问题。Packt出版社十分重视对版权和许可证的保护。如果你在互联网上遇到以任何形式非法盗版我们内容的情况,请立刻为我们提供地址或网站名,以便我们及时补救。

请将涉嫌盗版的材料的链接地址发送到copyright@packtpub.com。

非常感谢您对维护我们作者的权益、打击盗版,并使得我们能为用户带来更好的内容所给予的帮助。

问题

如果有任何关于这本书的问题,可以通过questions@packtpub.com联系我们,我们将会尽可能为你解答。



《精通Android应用架构与优化》 简介 在这个移动互联网浪潮席卷全球的时代,Android以其开放的生态和庞大的用户基数,成为了无数开发者施展才华的舞台。一款优秀且高效的Android应用,不仅需要承载丰富的功能,更需要具备流畅的用户体验、稳定可靠的性能表现以及易于维护和扩展的架构。然而,随着应用功能的日益复杂化,以及用户对性能要求的不断提升,开发者们在实际开发过程中,常常会面临各种挑战:性能瓶颈如何定位?内存泄漏如何避免?UI卡顿如何消除?线程安全如何保障?大型应用的架构如何设计才能应对未来的变化? 《精通Android应用架构与优化》正是为了应对这些挑战而生。本书并非停留在Android基础API的简单罗列,而是深入探讨Android应用程序的核心架构设计理念、性能优化的最佳实践以及应对复杂场景下的解决方案。我们将带领读者跳出“写功能”的思维模式,站在更高的维度,审视应用的生命周期、组件间的通信机制、数据存储策略、UI渲染原理,以及资源管理等关键环节。通过本书的学习,您将能够构建出健壮、高效、可维护且易于扩展的Android应用程序,从而在竞争激烈的应用市场中脱颖而出。 本书内容概览 第一部分:深入理解Android核心架构 Android组件化通信模型剖析: 深入解析Intent、Service、Broadcast Receiver、Content Provider等核心组件的交互原理,理解Binder机制在进程间通信中的作用,学习如何设计安全高效的组件通信方案,并探索Service Bound、Messenger、AIDL等不同通信方式的适用场景和实现细节。 Activity生命周期与状态管理精讲: 详细阐述Activity从创建到销毁的完整生命周期,分析不同配置变更(如屏幕旋转、语言切换)对Activity生命周期的影响,并教授如何精确地管理Activity的状态,确保用户数据的持久性和应用的稳定性。 Fragment的最佳实践与通信模式: 探讨Fragment在现代Android开发中的重要性,分析Fragment的生命周期,学习Fragment与Activity、Fragment与Fragment之间的各种通信方式,如接口回调、Fragment Result API等,并掌握Fragment的懒加载、Fragment事务管理等高级技巧。 Android进程与线程模型解析: 深入理解Android的进程管理机制,包括主线程(UI线程)、工作线程、后台服务进程等,剖析线程创建、管理和销毁的原理,学习如何避免ANR(Application Not Responding),并掌握Thread、Handler、AsyncTask、ExecutorService等线程操作工具的使用。 Android四大组件深度解析与应用: 除了Activity和Fragment,本书还将深入探讨Service的启动模式、前台服务、后台服务的应用场景,BroadcastReceiver的注册方式(静态与动态)、广播的生命周期及有序广播、广播过滤机制,以及Content Provider的数据共享、权限控制和URI匹配等关键知识点。 第二部分:性能优化实战与技巧 内存优化:从定位到解决: 内存泄漏的根源与检测: 详细分析内存泄漏的常见原因,如长生命周期组件持有短生命周期对象、静态变量持有Activity实例、内部类持有外部类引用、资源未及时释放等。教授使用Android Studio自带的Memory Profiler、LeakCanary等工具进行内存泄漏的定位和分析,并提供详细的调试步骤。 内存回收机制(GC)原理: 深入理解Java垃圾回收机制在Android中的应用,了解GC的工作原理、不同GC算法的特点,以及如何通过代码逻辑优化,减少GC的频率和开销。 优化内存使用的实践: 学习如何有效地管理Bitmap,如使用LruCache、BitmapFactory.Options进行缩放和采样;如何优化数据结构的选择,如使用SparseArray、ArrayMap替代HashMap;如何减少不必要的对象创建,如使用对象池;如何理解和优化内存对齐。 UI性能优化:流畅体验的保障: 视图层级优化: 分析View的测量(Measure)、布局(Layout)、绘制(Draw)过程,讲解如何通过减少视图层级、使用ConstraintLayout、ViewStub、Merge标签等方式优化布局的复杂度,提升UI渲染效率。 Overdraw(过度绘制)的识别与消除: 讲解Overdraw的概念及其对性能的影响,教授如何使用GPU Overdraw工具定位过度绘制区域,并提供优化策略,如移除不必要的背景,合理利用clipRect等。 自定义View的性能考虑: 指导读者在自定义View时,如何高效地实现onMeasure, onLayout, onDraw方法,避免在绘制过程中进行耗时操作,并介绍硬件加速在UI绘制中的应用。 列表(RecyclerView)优化: 深入讲解RecyclerView的ViewHolder模式、ItemAnimator、DiffUtil等优化机制,如何高效地处理大量数据,实现平滑的滚动效果。 网络性能优化: HTTP通信优化: 讲解HTTP/2、HTTP/3的新特性,TCP连接复用、HTTP缓存策略,并深入探讨OkHttp等主流网络库的内部实现和高级用法,如拦截器、连接池、超时设置等。 数据传输效率: 学习如何选择合适的数据格式(如JSON、Protocol Buffers),如何进行数据压缩(如Gzip),如何优化网络请求的频率和大小。 图片加载优化: 详细介绍Glide、Picasso等主流图片加载库的使用技巧,包括内存缓存、磁盘缓存、图片格式选择、占位图设置、加载过程中的异常处理等,确保图片加载的流畅性和效率。 启动速度优化: 冷启动、温启动、热启动分析: 详细剖析不同启动模式的流程和耗时环节,并提供针对性的优化方法。 减少Application初始化耗时: 讲解如何延迟初始化非核心SDK,如何异步初始化耗时操作。 优化首页加载: 学习如何使用ContentProvider、LazyLoad等技术,异步加载首页数据和UI,提升用户感知到的启动速度。 耗电量优化: 理解Android的电量消耗模型: 分析CPU、屏幕、网络、GPS等因素对电量的影响。 优化后台任务: 学习如何合理使用JobScheduler、WorkManager等API,避免频繁唤醒设备,减少后台不必要的网络请求和计算。 GPS和传感器使用优化: 指导读者在必要时使用,并在不需要时及时关闭,避免不必要的电量消耗。 第三部分:应用架构设计与最佳实践 MVP(Model-View-Presenter)架构模式: 详细讲解MVP模式的理念、优势、适用场景,以及如何在Android项目中落地MVP,通过代码示例展示Presenter如何解耦View和Model,实现代码的可测试性和可维护性。 MVVM(Model-View-ViewModel)架构模式: 深入分析MVVM模式,重点讲解ViewModel在Android Jetpack中的角色,以及LiveData、Data Binding等组件如何配合ViewModel实现数据驱动的UI更新,提升开发效率和代码的可维护性。 MVI(Model-View-Intent)架构模式: 介绍MVI模式的单向数据流思想,探讨其在处理复杂状态管理时的优势,并展示如何在Android中实现MVI,尤其适用于事件驱动和状态复杂的场景。 组件化与模块化开发: 讲解组件化和模块化的优势,如提高代码复用率、降低耦合度、加速开发流程、方便团队协作等。教授如何设计合理的组件划分策略,以及如何实现组件间的通信和依赖管理。 依赖注入(DI)的应用: 深入理解依赖注入的原理,重点介绍Dagger Hilt在Android开发中的应用,学习如何通过DI管理对象的生命周期和依赖关系,简化代码,提高可测试性。 Android Jetpack组件深入解析: 除了LiveData和ViewModel,本书还将深入探讨Navigation、Room、WorkManager、Paging等Jetpack组件的实际应用,以及它们如何帮助开发者构建更现代化、更健壮的Android应用。 代码质量与可维护性: SOLID设计原则在Android中的应用: 讲解单一职责原则、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则,并提供在Android开发中实践这些原则的代码示例。 单元测试与集成测试: 强调测试的重要性,教授如何编写有效的单元测试和集成测试,覆盖关键业务逻辑,保障代码质量。 代码规范与重构: 讨论Android开发中的代码规范,如命名约定、注释规范等,并指导读者如何进行代码重构,持续改进代码质量。 本书适合读者 有一定Android开发经验,希望提升应用性能和稳定性的开发者。 面临应用性能瓶颈、内存泄漏等问题,寻求系统性解决方案的开发者。 对Android应用架构设计感兴趣,希望构建可维护、可扩展应用的开发者。 正在或计划进行大型Android项目开发的团队成员。 希望深入理解Android底层机制,优化开发效率的进阶开发者。 学习本书,您将获得 深刻的理解: 摆脱“知其然,不知其所以然”的局面,深入理解Android内部工作机制。 实用的技能: 掌握一系列行之有效的性能优化技巧和架构设计模式。 高效的开发: 学习如何利用现代化的工具和库,提升开发效率。 健壮的应用: 构建出稳定可靠、用户体验卓越的Android应用。 职业的成长: 成为一名更具竞争力的Android开发者,应对更复杂的挑战。 《精通Android应用架构与优化》是一本集理论深度与实践广度于一体的Android开发进阶指南。它将引导您从“功能实现者”蜕变为“架构设计者”,用更专业、更高效的方式,打造卓越的Android应用。

用户评价

评分

我是一名Android开发新手,之前一直觉得Android开发很难入门,特别是那些涉及到底层原理的东西,更是让我望而却步。偶然的机会,我听朋友推荐了这本《Android高性能编程》,抱着试试看的心态就买了下来。刚拿到书的时候,我还有点担心自己看不懂,毕竟“高性能编程”听起来就很学术。但是,当我翻开它之后,我发现我的担心是多余的。作者的语言非常通俗易懂,即使是一些复杂的概念,也能用非常形象的比喻来解释。而且,这本书的结构安排也非常合理,从最基础的内存管理讲起,然后循序渐进地深入到多线程、网络通信、UI优化等各个方面。我特别喜欢它在讲解每一个知识点的时候,都会给出相应的代码示例,并且对代码进行详细的解读,这让我可以一边看书,一边跟着敲代码,加深对知识的理解。更重要的是,这本书不仅仅是教你如何实现功能,更注重教你如何写出“好”的代码,如何写出“高性能”的代码。它让我明白,写代码不仅仅是实现需求,更是要考虑效率、考虑用户体验。这本书让我对Android开发有了更深的认识,也更有信心去迎接未来的挑战了。

评分

这本《Android高性能编程》对我来说,不仅仅是一本书,更像是一位经验丰富的导师。我之前在开发中遇到的很多性能问题,都觉得无从下手,只能靠“感觉”或者“试错”。但读了这本书之后,我才意识到,很多时候我们看似棘手的问题,其实都有迹可循,都有其内在的逻辑。作者在书中对Android系统中一些关键的性能瓶颈进行了深入的剖析,比如JVM的内存模型、GC的原理,以及Native内存的管理。这让我对Android应用的内存消耗有了全新的认识。而且,他在讲解多线程并发的时候,不仅仅是介绍了Thread、Handler、AsyncTask这些基础的API,还深入探讨了Lock、Semaphore、Volatile等并发控制原语的作用和适用场景,这让我在编写复杂的并发逻辑时,心里更有底了。此外,书中对于Android应用的启动速度优化、网络请求的效率提升、以及UI的流畅度保证,都有非常详尽的讲解和实践建议。我发现,很多之前觉得是“黑魔法”的优化技巧,在这本书里都能找到其背后的科学原理。这本书真的让我从“知其然”上升到了“知其所以然”的层面,对我今后的开发工作有着深远的指导意义。

评分

我是一名有几年Android开发经验的开发者,一直以来都觉得自己在性能优化方面做得不够好,很多时候只是停留在表面,用一些通用的优化方法,但效果并不理想。偶然看到这本书的介绍,感觉内容很吸引我,就入手了。拿到书之后,翻了一下,发现内容确实很扎实,不是那种泛泛而谈的书。它深入到了Android应用的各个层面,从JVM到Native层,从UI渲染到后台服务,都有非常详细的介绍。我特别喜欢书中关于内存泄漏检测和优化的部分,作者不仅介绍了各种检测工具的使用,还深入分析了内存泄漏产生的常见原因和解决方案,这让我之前很多模糊不清的内存问题,一下子茅塞顿开。而且,书中对于多线程和并发编程的讲解,也让我受益匪浅。之前很多时候,我对于多线程的使用都比较谨慎,担心出现线程安全问题。但读了这本书之后,我对各种并发工具的使用有了更清晰的认识,也敢于在合适的场景下使用它们来提升应用的效率。这本书让我对Android性能优化的理解上升了一个新的台阶,也让我对自己今后的开发方向有了更明确的规划。

评分

老实说,我一开始对这本书是抱着一种试试看的心态去购买的,因为市面上关于Android性能优化的书太多了,质量参差不齐,很多都雷同。但是,当我真正开始阅读这本书的时候,我被它的深度和广度所震撼了。它不仅仅是教你如何写出“快”的代码,更是让你理解“为什么”快。它从Android系统的架构入手,一点点地剖析了各个组件是如何协同工作的,以及在哪些环节可能出现性能瓶颈。我印象最深的是关于UI渲染那一章节,作者花了大量的篇幅去讲解View的绘制流程,包括Measure、Layout、Draw的每一个细节,还穿插了硬件加速、GPU渲染这些高级概念。这让我之前那些模糊的认知一下子变得清晰起来。而且,作者在讲解一些疑难杂症的时候,会给出非常具体的排查思路和工具使用方法,比如如何利用Systrace、Profiler来定位问题,这对于我们在实际开发中遇到性能问题时,提供了非常有效的指导。这本书让我明白了,性能优化不是一蹴而就的,而是一个系统性的工程,需要从架构设计到代码实现,再到工具的运用,都有深入的理解。我感觉这本会是我未来相当长一段时间的案头必备书。

评分

这本书,我真的是拿到手里就爱不释手。封面设计就很扎实,不像有些书花里胡哨的,一看就感觉内容很实在。拿到手的时候,沉甸甸的,厚度也适中,拿在手里有分量感,这让我对它充满了期待。我刚翻开几页,就被它排版和字体所吸引,读起来非常舒服,不会出现那种密密麻麻的文字带来的压迫感。而且,我发现它在一些关键概念的解释上,用了很多图示和流程图,这对于我这种需要通过视觉来加深理解的人来说,简直是福音。我之前也看过一些关于Android的书,但很多都停留在表面,讲的都是一些基础控件的使用,或者一些简单的API调用。这本书不一样,它深入到了一些底层的机制,比如内存管理、多线程、渲染流程等等。我特别喜欢它在讲到性能优化的时候,不是简单地罗列一些技巧,而是从原理出发,让你明白为什么这样做能提升性能,这样做又可能带来什么问题。这种循序渐进、由浅入深的学习方式,让我觉得非常有成就感。即使遇到一些比较晦涩的概念,作者也能用相对形象的比喻来解释,让我这种非科班出身的开发者也能理解。我已经迫不及待地想把我遇到的实际问题,结合书中的知识来解决了。

评分

超级棒的书,先屯着,慢慢研究。

评分

买了,还没空看,有空要看看

评分

还不错,书的质量还是可以的

评分

这是本翻译过来的“说明书”,很多地方只提了个名词没有像进阶之光讲的那么透彻,后悔买了

评分

Android工程师开发,进阶的参考,内容不错

评分

一如既往支持京东,好评

评分

很好的一本高级工程师进阶书,学习了

评分

还不错,书的质量还是可以的

评分

超级棒的书,先屯着,慢慢研究。

相关图书

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

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有