作 者:李刚 编著 定 价:108 出 版 社:电子工业出版社 出版日期:2015年06月01日 页 数:765 装 帧:平装 ISBN:9787121259586 基于Android 5全新升级《疯狂Android讲义》
自面市以来重印20+次,发行量超10万册,并屡获殊荣!
开卷数据显示2014年度Android图书排行榜靠前
曾获评CSDN年度拥有技术影响力十大原创图书
多次荣获年度很畅销图书及长销图书大奖
●第1章 Android应用和开发环境 1
●1.1 Android的发展和历史 2
●1.1.1 Android的发展和简介 2
●1.1.2 Android 5.x平台架构及特性 3
●1.2 搭建Android开发环境 5
●1.2.1 安装Android Studio 5
●1.2.2 下载和安装Android SDK 8
●1.2.3 安装运行、调试环境 11
●1.3 Android常用开发工具的用法 16
●1.3.1 在命令行创建、删除和浏览AVD 16
●1.3.2 使用Android模拟器(Emulator) 17
●1.3.3 使用Monitor进行调试 18
●1.3.4 Android Debug Bridge(ADB)的用法 19
●1.3.5 使用mksdcard管理虚拟SD卡 20
●1.4 开始个Android应用 21
●1.4.1 使用Android Studio开发个Android应用 21
●1.4.2 通过Andorid Studio运行Android应用 24
●1.5 Android应用结构分析 25
●1.5.1 创建一个Android应用 25
●1.5.2 自动生成的R.java 28
●部分目录
内容简介
移动互联网已经成为当今世界发展很快、市场潜力优选、前景很诱人的业务,而Android则是移动互联网上市场占有率优选的平台。
本书是《疯狂Android讲义》的第3版,本书基于近期新的Android 5,并采用了Google推荐的IDE:Android Studio作为开发工具,书中每个案例、每个截图都全面升级到Android 5。本书全面介绍了Android应用开发的相关知识,全书内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入/输出处理、音频/视频多媒体应用开发、OpenGL与3D应用开发、网络通信编程、Android平台的Web Service、传感器应用开发、GPS应用开发、整合第三方Map服务等。
本书并不局限于介绍Android编程的各种理等 李刚 编著 李刚,十多年软件行业开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系原创图书作者。广东技术师范学院计算机科学系兼职副教授,51cto专家门诊特邀嘉宾。培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。靠前有名高端IT技术作家,已出版《疯狂Java讲义》《疯狂Android讲义》《轻量级JavaEE企业应用实战》《疯狂iOS讲义(上)(下)》《疯狂Ajax讲义》《疯狂XML讲义》《经典JavaEE企业应用实战》《疯狂HTML5/CSS3/讲义》《Struts2。x指南》等著作。其中疯狂Java体系图书经多年沉淀,赢得极高的市场认等
《Android开发实战指南:从入门到精通》 内容简介: 本书旨在为渴望掌握Android开发核心技能,并希望深入理解其内部机制的开发者提供一份全面、系统的学习路径。我们将从最基础的概念入手,循序渐进地引导读者构建坚实的Android开发基础,并逐步深入到高级主题和实战应用,最终帮助您成为一名能够独立解决复杂开发问题的Android工程师。 第一部分:Android开发基石 初识Android: Android生态系统概览: 深入了解Android的版本演进、开源特性、碎片化挑战以及其在移动互联网领域的统治地位。我们将探讨Android操作系统的架构,包括Linux内核、HAL层、Android运行时(ART)、原生C/C++库、Java API框架以及应用层。 开发环境搭建: 手把手指导读者完成Android Studio的安装与配置,包括JDK、SDK的设置,以及模拟器和真机的连接与调试。重点讲解Gradle构建系统的基础,使其能够理解项目依赖、构建流程和打包机制。 第一个Android应用: 从“Hello, World!”出发,详细剖析Android应用的结构,包括`AndroidManifest.xml`文件的作用(声明组件、权限、硬件特性等)、`res`目录下资源文件的管理(布局、字符串、颜色、样式、图标等)、以及Activity的生命周期。我们将解释Activity如何启动,并介绍Intent的基本用法,包括显式Intent和隐式Intent,以及它们在组件间通信中的作用。 用户界面设计与交互: 布局系统详解: 深入讲解Android的各种布局容器,包括`LinearLayout`(线性布局)、`RelativeLayout`(相对布局)、`FrameLayout`(帧布局)、`ConstraintLayout`(约束布局)等。分析各种布局的优缺点及其适用场景,并提供大量的实战案例,展示如何利用这些布局构建复杂且响应式的用户界面。我们将重点关注`ConstraintLayout`,剖析其强大的约束机制,以及如何通过可视化编辑器和XML代码进行高效布局。 常用UI控件: 全面介绍Android中丰富的UI控件,包括`TextView`(文本视图)、`EditText`(编辑框)、`Button`(按钮)、`ImageView`(图像视图)、`CheckBox`(复选框)、`RadioButton`(单选按钮)、`Spinner`(下拉列表)、`ProgressBar`(进度条)等。讲解每个控件的常用属性、事件监听机制(如点击事件、文本改变事件)以及如何通过代码动态修改控件属性。 列表与网格: 掌握`ListView`(列表视图)和`GridView`(网格视图)的构建与优化。深入理解`Adapter`(适配器)的设计模式,包括`ArrayAdapter`、`BaseAdapter`的实现,以及如何利用ViewHolder模式提升列表的滚动性能,避免卡顿。我们将详细讲解`RecyclerView`,这是目前Android开发中最推荐使用的列表控件,其强大的性能和灵活性将是重点。 Fragment: 深入理解Fragment的概念、生命周期及其在构建复杂UI、实现响应式布局中的作用。讲解Fragment的静态加载和动态加载方式,Fragment之间的通信(通过`FragmentManager`、`Bundle`、接口回调等),以及Fragment与Activity的交互。 Material Design: 介绍Google推出的Material Design设计语言,以及如何在Android应用中遵循Material Design规范。讲解`CoordinatorLayout`(协调布局)、`AppBarLayout`(App Bar Layout)、`TabLayout`(标签页)、`NavigationView`(导航视图)、`FloatingActionButton`(浮动操作按钮)等Material Design组件的使用,以及如何实现流畅的动画和转场效果。 数据存储与管理: SharedPreferences: 讲解`SharedPreferences`的使用,适用于存储少量键值对的配置信息,如用户设置、登录状态等。 文件存储: 介绍内部存储(`getFilesDir()`)、外部存储(`getExternalFilesDir()`)的应用,讲解如何进行文件的读写操作,以及文件权限的申请与管理。 SQLite数据库: 深入讲解Android内置的SQLite数据库。讲解`SQLiteOpenHelper`的用法,数据库的创建、升级(版本管理)、数据的增删改查操作。我们将详细介绍`ContentProvider`(内容提供者)的作用,如何创建和使用ContentProvider来暴露和管理数据,实现跨应用数据共享。 Room Persistence Library: 重点介绍Google推荐的Room持久化库,它是SQLite的抽象层,简化了数据库的开发和维护,提供了编译时验证、代码生成等功能,极大地提高了开发效率和代码质量。 第二部分:Android高级特性与实践 网络通信: HTTP协议基础: 回顾HTTP协议的基本概念,包括请求方法(GET, POST等)、状态码、请求头、响应体等。 HttpClient与HttpURLConnection: 介绍Android早期使用的网络请求方式,并分析其局限性。 Retrofit: 重点讲解Retrofit,一个非常流行的类型安全的HTTP客户端,能将HTTP API转化为Java接口。讲解其注解机制,如何配置OKHttp作为底层HTTP客户端,如何进行GET, POST请求,上传文件,处理JSON数据等。 OKHttp: 详细讲解OKHttp,一个高效的HTTP客户端,它提供了连接池、请求/响应拦截器、DNS解析等高级功能,是许多Android网络库(包括Retrofit)的首选底层实现。 JSON解析: 介绍JSON数据格式,以及在Android中常用的JSON解析库,如Gson、Jackson,讲解如何将JSON字符串转换为Java对象,以及将Java对象序列化为JSON字符串。 图片加载库: 介绍Glide、Picasso等高效的图片加载库,讲解它们如何实现图片的异步加载、缓存(内存缓存、磁盘缓存)、占位符、错误图、缩放、圆角等常用功能,以及如何优化图片加载性能。 后台服务与多线程: Threads与Runnables: 介绍Java基础的多线程概念,以及如何在Android中使用`Thread`和`Runnable`在后台执行耗时操作。 AsyncTask: 讲解`AsyncTask`,一个用于在UI线程和后台线程之间轻松通信的辅助类。分析其生命周期和方法,并提醒其不适合执行长时间运行的任务。 Handler与Looper: 深入理解`Handler`、`Looper`、`MessageQueue`和`Thread`之间的配合机制,这是Android异步消息处理的核心。讲解如何创建自定义的Looper线程,并通过Handler在后台线程向UI线程发送消息。 Service: 详解`Service`(服务)的概念,它可以在后台执行长时间运行的操作,不提供用户界面。讲解Service的生命周期、启动方式(`startService()`、`bindService()`),以及Service与Activity之间的通信。重点讲解Foreground Service,用于需要用户可见通知的应用场景。 IntentService: 介绍`IntentService`,一个基于Service的类,用于处理一系列的后台任务,任务完成后会自动停止。 消息通知与广播: Notification: 详细讲解Android的通知(Notification)机制,包括如何创建不同类型的通知(普通通知、大文本通知、图片通知等),设置通知的标题、内容、图标、声音、振动等。讲解NotificationChannel(Android 8.0+)的引入及其重要性,以及如何管理通知渠道。 BroadcastReceiver: 深入理解`BroadcastReceiver`(广播接收器),用于接收系统广播和应用间广播。讲解如何注册静态广播和动态广播,以及广播的广播类型(有序广播、粘性广播)。 并发与异步编程: ExecutorService与ThreadPoolExecutor: 讲解Java并发包中的`ExecutorService`和`ThreadPoolExecutor`,如何创建和管理线程池,以更有效地控制线程的创建和销毁。 RxJava/RxAndroid: 强烈推荐并深入讲解ReactiveX(响应式编程)的Android实现——RxJava和RxAndroid。解析Observable、Observer、Subscriber、Operator等核心概念,以及如何使用它们来处理异步数据流,简化复杂的回调嵌套,实现链式调用,提升代码的可读性和可维护性。 第三部分:高级话题与实战应用 线程安全与并发控制: 同步与锁: 深入讲解Java的`synchronized`关键字,`Lock`接口及其实现(如`ReentrantLock`),以及`volatile`关键字的作用,如何保证多线程环境下的数据一致性。 并发集合: 介绍`java.util.concurrent`包中的线程安全集合类,如`ConcurrentHashMap`、`CopyOnWriteArrayList`等。 内存管理与性能优化: 内存泄漏检测: 讲解常见的内存泄漏原因(如静态持有Context、未解绑的监听器、未关闭的资源等),以及如何使用Android Studio的Memory Profiler、LeakCanary等工具来检测和定位内存泄漏。 性能分析: 介绍如何使用Android Studio的CPU Profiler、Network Profiler、Layout Inspector等工具来分析应用的性能瓶颈,如UI渲染缓慢、网络请求耗时、CPU占用过高等。 UI优化: 讲解如何优化布局层级、避免过度绘制(Overdraw)、使用`RecyclerView`的ViewHolder模式、图片加载优化等。 代码优化: 介绍代码级别的优化技巧,如避免频繁的对象创建、使用高效的数据结构、优化算法等。 Jetpack组件: Jetpack概览: 介绍Google推出的Android Jetpack,一套可以帮助开发者更轻松地构建健壮、可测试、可维护的应用的工具集。 Architecture Components: 深入讲解Jetpack中的核心架构组件,包括`ViewModel`(管理UI相关数据,并在配置更改后保留数据)、`LiveData`(可观察的数据持有者,生命周期感知)、`Room`(持久化库)、`Navigation`(统一处理应用内的导航)。 其他Jetpack组件: 简要介绍其他重要的Jetpack组件,如`WorkManager`(用于可延迟、保证执行的后台任务)、`DataBinding`(用于将UI组件绑定到数据源)、`Compose`(声明式UI框架)的初步认识。 Android架构模式: MVC, MVP, MVVM: 详细讲解Model-View-Controller (MVC),Model-View-Presenter (MVP) 和 Model-View-ViewModel (MVVM) 等主流的Android架构模式。分析它们的优缺点,以及在实际项目中的应用。重点深入讲解MVVM结合Jetpack组件的实践。 Dagger/Hilt: 介绍依赖注入(Dependency Injection)的概念,以及在Android中如何使用Dagger或Hilt(Jetpack推荐的Dagger的简化版本)来管理类之间的依赖关系,提高代码的可测试性和可维护性。 第三方库与框架: 网络请求库: 除了Retrofit和OKHttp,还会提及其他常用的网络库。 图片加载库: 再次强调Glide和Picasso的灵活运用。 UI框架: 介绍一些流行的第三方UI库,如AndroidX Preference Library、Material Components for Android等。 事件总线: 简单介绍EventBus等事件总线库,用于简化组件间的通信。 实战项目案例: 本书将贯穿多个实战项目,从简单的待办事项列表应用,到功能更复杂的社交分享应用,再到涉及网络请求和数据持久化的电商客户端。通过这些案例,读者可以亲手实践所学知识,将理论与实践相结合,理解真实世界中的开发流程和问题解决思路。 学习方法建议: 本书内容丰富,覆盖面广。建议读者在阅读过程中,结合Android Studio的实践操作,动手编写代码,并尝试修改和扩展示例程序。遇到问题时,积极查阅官方文档和社区资源,与开发者同行交流。理解每一个概念的底层原理,而不是仅仅停留在API的使用层面,将有助于您打下坚实的Android开发基础,并能应对未来技术的不断演进。 目标读者: 对Android开发有浓厚兴趣的初学者。 希望系统学习Android开发,从入门到精通的开发者。 希望深入理解Android底层机制和高级特性的中级开发者。 希望提升Android开发技能,掌握最新技术和架构模式的开发者。 希望构建高性能、可维护Android应用的开发者。 通过本书的学习,您将能够自信地设计、开发和优化各种类型的Android应用程序,为您的移动开发职业生涯奠定坚实的基础。