具体描述
《Android 手机/平板电脑开发新挑战(含DVD光盘1张)》全面介绍了Android APP开发所需的大量技巧和范例应用,读者将学习如何通过Android SDK(涵盖4.4版本)实战开发高质量的APP。书中范例综合了Android APP的各类开发经验,适合初学者学习Android APP的开发,也可作为有开发经验人员的参考用书。
《Android 手机/平板电脑开发新挑战(含DVD光盘1张)》主要内容包括基础组件、Activity 切换画面、数据传递、多屏布局设计、触发设计、消息处理、窗口样式、菜单、消息栏处理、状态栏提示、列表组件、自定义样式、动画效果、高级组件、平板电脑的组件与特殊组件、活动栏组件、网络、网页、在线下载、获取网络数据JSON和XML数据、数据库、拨号短信、地图、蓝牙数据传递、聊天室、P2P、NFC、多媒体、视频、流媒体、录音、系统相关功能设定、多国语言、剪贴板、多线程设计、自定义组件、Service、APP上架销售、绘图以及OpenGL ES等。
作者以多年Android教学经验,通过解说和范例演示,为读者呈现了一本实战落地、含金量高的技术开发书籍。
作者简介
目录信息
1.1 Android的诞生 1
1.2 Android是什么 3
1.3 Android操作系统概论 3
第2章开发环境的设定 5
2.1 安装Android开发工具 5
2.1.1 Windows上的安装 6
2.1.2 MAC上的安装 9
2.2 Android SDK相关设定 11
2.2.1 修改Android SDK的路径 11
2.2.2 安装和移除不同版本的Android SDK 13
2.2.3 设定Android模拟器 14
2.3 将项目导入Eclipse 18
2.4 常见的Android项目范例使用问题 22
2.4.1 调整Android项目的版本问题 22
2.4.2 清除编程暂存的记录 23
2.4.3 如何执行Android SDK 1.5以前的程序 24
2.4.4 如何在Eclipse编程中显示中文 25
2.4.5 已开启一个Android模拟器,但是Eclipse还是打开新的Android模拟器 25
2.5 安装Android Studio开发工具 27
第3章开发环境介绍 30
3.1 Eclipse 30
3.1.1 Hello World第一个程序 30
3.1.2 编程项目架构 39
3.1.3 调试模式 41
3.2 Android Studio的介绍与使用 44
3.2.1 使用Android Studio开发工具编写Hello World程序 44
3.2.2 编程项目架构 52
3.2.3 调试模式 53
第4章Android常用的组件 56
4.1 TextView组件——文字显示 56
4.2 EditText组件——文本输入 59
4.3 Button组件——按钮 64
4.3.1 按钮处理事件方法之一 65
4.3.2 按钮处理事件方法之二 67
4.3.3 按钮处理事件方法之三 68
4.4 ImageView组件——显示图片 70
4.5 ImageButton组件——图片式按钮 74
4.6 CheckBox组件——复选框 77
4.7 RadioGroup和RadioButton组件——单选组合/单选按钮 80
4.8 Spinner组件——下拉式选项 83
4.9 NumberPicker组件——选择数字 85
第5章切换画面 89
5.1 startActivity——换页 89
5.2 Bundle——传递数据到下一页 96
5.3 startActivityForResult——回到上一页并把数据传回去 99
第6章界面设计 105
6.1 RelativeLayout——相对布局 105
6.2 LinearLayout——线性布局 107
6.3 AbsoluteLayout——绝对位置布局 109
6.4 FrameLayout——框架布局 110
6.5 TableLayout——表格布局 112
6.6 GridLayout——网格布局 113
6.7 Insert Layout——加入其他布局 115
6.8 动态加入——加入其他布局 117
第7章触发 122
7.1 触发事件方法一——通过class的方式 122
7.2 触发事件方法二——通过implements的方式 126
7.3 触发事件方法三——直接写在setOnTouchListener函数中的方式 128
7.4 触发事件方法四——使用触发变量的方式 129
第8章消息 132
8.1 Log函数——日志 132
8.2 Toast函数——显示消息 134
8.3 AlertDialog——提示对话框 135
8.4 PopupWindow——弹出窗口 146
8.5 ListPopupWindow——列表弹出窗口 150
8.6 ProgressDialog——进度对话框+多线程执行 153
8.7 NotificationManager——消息提示管理器 159
8.8 Menu——菜单 162
8.9 PopupMenu——弹出式菜单 166
8.10 Status bar notifications——状态栏提示 171
第9章列表组件 181
9.1 ListActivity组件——列表方法1 181
9.2 在Activity中ListActivity——列表方法2 184
9.3 ScrollView组件——上下滚动画面 192
9.4 HorizontalScrollView组件——左右滚动画面 195
第10章动画 198
10.1 Tween Animation UI组件 198
10.2 Frame Animation UI组件 206
10.3 换页动画效果——方法一 212
10.4 换页动画效果——方法二 217
第11章高级组件 223
11.1 Tab——选项卡组件 223
11.2 ActionBarTab——活动栏标签 227
11.3 SlidingDrawer——展开、关闭 233
11.4 style换肤功能 243
11.5 Fragment UI组件——画面切换 248
11.6 ActionBar组件——活动栏组件 252
11.7 SearchView搜索框 261
11.8 ActionBar返回上一页 264
11.9 SearchView 266
11.10 StackView组件——图片显示 266
11.11 ExpandableListView组件——展开列表 273
11.12 Content Loaders的范例程序 279
第12章网络 285
12.1 WebKit组件——显示网页 285
12.2 HTTPGet组件的范例程序 289
12.3 HTTPPost组件的范例程序 293
12.4 通过HTTP Download Image下载图片 297
12.5 网络下载限时 301
第13章数据 305
13.1 Preferences的范例程序 305
13.2 File的范例程序 308
13.3 SQLite的范例程序 314
13.4 XML 326
13.5 JSON 337
第14章控制硬件 343
14.1 Android拨打电话的方法 343
14.2 发短信 345
14.3 位置服务GPS 350
14.4 GPS获取经纬度转换为地址范例程序 356
14.5 Map地图 361
14.6 Bluetooth API 366
14.7 蓝牙聊天室 BluetoothChat 372
14.8 WiFi Direct 386
14.9 NFC 401
第15章多媒体 415
15.1 MediaPlayer音乐播放mp3——音乐封装在项目程序中 415
15.2 MediaPlayer音乐播放mp3——音乐文件放在SD卡 422
15.3 VideoView——播放影片 428
15.4 MediaRecorder——录音 432
第16章系统篇 440
16.1 ScreenOrientation——画面翻转 440
16.2 ScreenOrientation——横竖画面的处理 444
16.3 System clipboard系统剪贴板 449
16.4 Widget——桌面组件程序 453
第17章多线程 464
17.1 Timer——计时器 464
17.2 Thread线程程序Runnable 467
17.3 建立自己的implement触发事件 470
17.4 Service常驻程序 475
17.5 Service进阶版 481
第18章Android开发相关技巧 485
18.1 签名和出售应用程序 485
18.1.1 做认证文件keystore 485
18.1.2 在Google Play上销售应用程序 490
18.2 获取设备或模拟器的截图 493
18.3 Android使用第三方jar包的方法 494
18.4 创建与使用Lib 496
18.4.1 如何创建Lib 496
18.4.2 如何使用Lib 500
第19章2D图形图像 504
19.1 精通图形图像——onDraw组件 504
19.2 Drawable多种绘图方法 509
19.2.1 Drawable UI组件的程序范例——绘制一个红色的长方形 510
19.2.2 Drawable UI组件的程序范例——绘制一个绿色的椭圆形 512
19.2.3 Drawable UI组件的程序范例——绘制一个蓝色的圆角长方形 513
19.2.4 Drawable UI组件的程序范例——绘制一个多颜色的手绘空心长方形 513
19.2.5 Drawable UI组件的程序范例——绘制一个多颜色的圆角空心长方形 516
19.2.6 Drawable UI组件的程序范例——绘制一个蓝色条纹的菱形 516
19.2.7 Drawable UI组件的程序范例——绘制有缺口的圆形 518
19.3 DrawableImageView UI组件的程序范例——绘图板 520
19.4 Image Process组件——改变图像颜色 526
19.4.1 Image Process的范例程序 526
19.4.2 ImageProcess的画面设定资源 526
19.4.3 ImageProcess的范例程序——改变图像颜色 527
第20章3D图形图像 531
20.1 OpenGL ES组件 531
20.2 OpenGL ES组件的程序范例一—OpenGL ES的基本架构,设定一个OpenGL ES View 531
20.3 OpenGL ES组件的程序范例二——全画面 535
20.4 OpenGL ES组件的程序范例三——绘制正方形 536
20.5 OpenGL ES组件的程序范例四——物件移动 547
20.5.1 Coordinate System坐标系统 547
20.5.2 移动Translate 547
20.5.3 Translate & Rotate移动和旋转 550
20.5.4 Load Identity, push and pop matrix初始矩阵、放入矩阵和取出矩阵 552
20.5.5 物件转换三个方块移动和旋转的基本架构 552
20.5.6 进阶学习 554
20.6 OpenGL ES组件的程序范例五——物件的画法glDrawElements 555
20.7 OpenGL ES组件的程序范例六——颜色 557
20.7.1 Flat coloring平面颜色 558
20.7.2 基本架构 558
20.8 OpenGL ES组件的程序范例七——Smooth coloring渐变色 559
20.8.1 编程一——渐变色的正方形 561
20.8.2 编程二——用按钮改变正方形的颜色 562
20.9 OpenGL ES组件的程序范例八——Meshes网格 565
20.9.1 Meshes网格——方块 568
20.9.2 Meshes网格——Plane平面class 569
20.9.3 Meshes网格——Group 572
20.10 TextureView纹理视图 574
后记柯博文经验谈 579
· · · · · · (收起)
读后感
用户评价
初翻目录时,我注意到它似乎对底层原理的探讨颇有深度。我手上已经有一些市面上流行的Android开发书籍,它们大多集中于UI构建和常见组件的使用,对于内存管理和垃圾回收机制的讲解往往是浅尝辄止,一笔带过。然而,这本书的某些章节标题暗示了它愿意深入到Android系统的“心脏”地带。我特别留意到关于启动速度优化的章节,这通常是衡量一个应用体验的关键指标。我希望书中不仅会介绍App Startup库的使用,更重要的是,能剖析系统级服务(如ActivityManagerService)在应用启动流程中扮演的角色,并提供一些非常规的、能显著减少冷启动时间的黑科技技巧。比如,是否涉及到对Class加载机制的定制化优化,或者如何利用Profile安装来提前预加载关键代码。如果书中能附带一些性能分析工具(如Systrace或Profiler)的深度使用指南,并结合实际的性能瓶颈案例进行演示,那这本书的价值将呈几何级数增长。我期待它能解答那些困扰了我很久的问题:为什么在某些低端机上,一个看似简单的动画会引起严重的Jank,以及如何通过代码结构来规避这些运行时的问题。
这本书的封面设计着实吸引眼球,那种深邃的蓝色调搭配上充满科技感的字体,让人一眼就能感受到这是一本关于前沿移动开发的硬核之作。我当时正处于一个技术瓶颈期,对于Android开发中那些层出不穷的新特性和框架感到力不从心,尤其是在处理跨平台兼容性和性能优化方面。拿到这本书后,我最先关注的是它封面上提到的“新挑战”这三个字。这不仅仅是简单的API介绍,更像是一种号召,邀请开发者去攻克那些在实际项目中经常遇到的“老大难”问题。我特别期待它能在深层次地剖析JVM与ART之间的底层机制差异,以及如何利用最新的Kotlin协程机制来重构那些冗余的异步回调代码。理想情况下,我希望书中能有一章专门详述模块化架构的最佳实践,比如如何优雅地集成Gradle构建脚本中的多渠道打包配置,同时还能保证代码库的整洁与可维护性。此外,对于那些围绕Material Design 3.0的最新组件,比如动态主题和自适应布局,我希望能看到详尽的实战案例,而不仅仅是官方文档的复述。整体感觉,这本书的定位应该是在中高级开发者之上,旨在帮助我们从“会用”到“精通”迈进,解决那些真正考验架构能力的问题。
从市场定位来看,这本书似乎对标的是那些寻求突破的资深开发者。我注意到其标题中用了“新挑战”这个词,这暗示了其内容可能不局限于官方推荐的Jetpack库。在当前的生态系统中,许多领先的团队都在采用非官方的、但被证明更高效的解决方案。我期望书中能够探讨一些前沿的、甚至带有争议性的技术选型。例如,在数据持久化方面,除了Room,是否会深入探讨使用Realm或者SQLite的定制化封装,并对比它们在读写性能和事务处理上的优劣。再者,对于现代Android应用不可或缺的测试策略,我希望它能提供一个覆盖单元测试、集成测试到UI自动化测试(Espresso/UI Automator)的全面测试金字塔构建指南,特别是针对那些涉及复杂生命周期和系统交互的测试用例,如何进行有效的Mock和隔离。如果书中能引入一些DevOps的概念,比如如何将自动化测试集成到CI/CD流程中,那就更符合当前业界对高标准软件交付的要求了,这会让这本书的实用价值远超一般的技术手册。
对于任何一本与软件开发相关的书籍,配套资源的质量往往决定了学习的效率。虽然我尚未深入到实践部分,但封面上特意标注的“含DVD光盘1张”这一信息,在如今这个时代显得尤为珍贵。这通常意味着作者准备了大量的配套源码、测试数据或者定制的开发环境配置脚本。我非常关注这些资源的完整性和同步性。如果光盘里包含了书中所有示例代码的最终版本,并且这些代码是基于最新的Android SDK和Jetpack库构建的,那么这无疑为学习者省去了大量的环境配置和版本兼容调试时间。我希望这些源码不仅仅是简单的“Hello World”级别,而是能够展示出复杂业务场景下,如何将书中学到的架构思想落地。例如,书中如果提到了一个自定义的依赖注入框架,我希望光盘中能提供一个可以独立运行的Demo项目,清晰地展示其生命周期管理和作用域控制。这种手把手的资源支持,对于那些希望通过“边看边敲”来巩固知识的读者来说,是至关重要的学习催化剂,它能极大地降低学习曲线的陡峭程度。
这本书的装帧和排版给我的第一印象是相当严谨和专业的,这在很多技术书籍中是比较难得的。清晰的图表和代码块的格式化至关重要,尤其是在讲解复杂算法或系统流程图时,如果逻辑箭头指向混乱,读者很容易在理解上产生偏差。我关注的是它在处理异常处理和错误恢复机制方面的论述深度。在实际的大型应用中,健壮性往往比炫酷的功能更重要。我期望书中能详细拆解Android应用在遇到严重运行时异常(如OOM或ANR)时,应用层应该如何设计一个既不影响用户体验又能有效捕获和上报错误日志的机制。这不仅仅是简单的try-catch块,而是涉及到Thread Park机制、Handler的深度应用以及如何与Crashlytics等第三方服务无缝对接。如果书中能提供一套成熟的、可以“复制粘贴”到任何项目中的错误捕获模板,并解释其背后的线程安全考虑,那么这本书就真正实现了从理论到生产环境的无缝对接,真正称得上是一本面向工程实践的宝典。