Android核心技术与实例详解源码
一:首先是源码部分
基 础 篇
第1章 android开发起步
本章将要介绍的是android开发起步的相关知识,首先对android平台进行简单的介绍,其中包括android的背景及其应用程序的框架。
第2章 android应用程序的构成
本章主要对android的基本组件及android应用程序的构成进行介绍,同时还将对android应用程序的生命周期进行分析,掌握android基本组件的特性及使用方法。
第3章 android布局管理器
本章要介绍的内容为android平台下的布局管理器。android中的布局包括线性布局、表格布局、相对布局、帧布局和绝对布局。下面将分别对每个布局管理器进行详细的介绍。
第4章 android常用基本控件
本章将对进行用户界面开发时常用到的android基本控件进行介绍,主要包括文本框、按钮、单选按钮和复选按钮、状态开关按钮和日期时间控件等。了解这些基本控件的工作方式有助于学习后面要介绍的android中的高级控件。
第5章 android常用高级控件
上一章已经介绍了android中的一些基本控件,本章将继续上一章的思路,对android中常用的高级控件逐一进行介绍。
第6章 菜单与对话框
在前面的章节中介绍了android平台下开发用户界面时常用的基本控件与高级控件,但在实际开发中只运用这些控件是不够的。本章将介绍用户界面中菜单与对话框的开发,同时还会对android平台下的toast和notification进行介绍。
第7章 android事件处理模型
本章将对android平台用户界面的各种事件响应进行详细介绍,以加深读者对android平台的事件处理模型的理解,熟练掌握控件的各种事件处理方法。
android平台的事件处理机制有两种,一种是基于回调机制的,一种是基于监听接口的,接下来会分别对其进行介绍。
高 级 篇
第8章 游戏与3d应用程序开发
android平台下的应用开发,一般来说主要分为商业应用和游戏两种,在开发商业应用时主要会用到本书前面章节曾介绍过的控件和菜单对话框等知识,而开发游戏时就只能自己定义各种控件和界面了。本章将要介绍如何在android平台下使用view和surfaceview开发游戏,在本章的最后还将对android平台下进行3d场景的开发进行简单的介绍。
第9章 消息广播与服务
本章将对android的消息广播机制及服务组件进行详细介绍。在很多应用程序中,都会通过广播形式来发送和接收消息。当应用程序接收到消息后,一般启动一个activity或者一个service进行处理。本章将对之前介绍过的服务组件service进行详细介绍,章末通过对一个单机版的音乐播放盒的介绍帮助读者掌握服务组件的使用方法。
第10章 网络与数据处理
本章要介绍的内容是android平台下进行网络编程及数据处理的相关知识,内容包括网络通信的几种方式(如使用socket、url、socket等)、如何使用webview浏览网页,以及文件的上传和下载。最后介绍访问手机存储卡的方法及如何在程序中使用sqlite数据库。
第11章 手机通信功能开发
本章将对android手机通信功能的开发进行介绍,其中包括短信的收发及状态查询、电话的拨打与接听、来电的过滤和e-mail邮件的收发等,通过本章的学习,读者应该能够对android平台手机通信功能有一定的了解。
第12章 手机特有feature开发
本章将要介绍的是android手机特有feature的开发,主要包括响应系统设置更改事件、设置手机外观和其他的特性。同时还将介绍如何在程序中获取sim卡和电池电量等信息,最后将以手机闹钟为例讲述如何自己开发特定功能的手机应用。
第13章 桌面组件与多媒体数据采集
本章将介绍android中桌面组件及多媒体相关程序的开发,其中包括桌面快捷方式、实时文件夹、桌面控件、声音及图像的采集等。
第14章 传感器应用的开发
android系统的一大亮点之一就是对传感器的应用,利用传感器可以开发出很多新奇有趣的程序,小到水平仪、计步器,大到传感器游戏,本章将详细介绍各种传感器的原理及使用方法,并通过一个水平仪的开发向读者介绍传感器应用的开发方法,以及如何在模拟器中模拟各种传感器。
第15章 google服务
本章将介绍如何在android平台下开发基于google服务的应用程序。google提供了诸如gps定位、google map、天气预报、网络相册和在线翻译等多种服务,将这些服务融合到应用程序中将会带来非常好的用户体验。
案 例 篇
第16章 android游戏开发实践——快乐数独
益智类游戏是一种比较流行的游戏,其画面大都比较简单,很少有很复杂的游戏特效,但是通常用到人工智能的算法来控制游戏的难度。而算法的优化是开发该类游戏的难点。这类游戏主要包括棋牌类游戏和智力测试类游戏,例如麻将、扫雷、五子棋、扑克牌等。
数独就是益智游戏的一种,玩法简单但数字的排列方式千变万化,很多人认为数独是训练头脑的绝佳方式。本章通过讲解数独游戏在android平台上的设计与实现,使读者了解此类游戏的开发过程,掌握实用的开发技巧,学会此类游戏的开发。
第17章 android地图搜索应用——美食天下
第15章已经介绍了google map的简单使用,本章将通过之前介绍过的知识实现一个美食共享软件,其中包括服务端和手机端,希望通过本章的学习,读者能够掌握android系统与tomcat服务器的通信、google地图的使用及各种控件的综合应用。
第18章 android社交分享平台——口袋微博
本章将介绍社交分享平台——口袋微博的实现,该社交分享平台包括web端和android手机端两个部分。在介绍了整个系统的背景及功能架构之后,本书将对该系统在web端和android手机端的实现进行介绍。
Programming.iOS.9.2015.11
好书, epub 格式, 适合手机看,我同时上传了 mobi 格式的, 适合 kindle 看
作者: Matt Neuburg
副标题: Dive Deep into Views, View Controllers, and Frameworks
出版年: 2015-12-3
页数: 1048
定价: USD 54.99
Professional Android 4 Application Development 源代码
Chapter 1: Hello, Android
A Little Background
What Android Isn't
Android: An Open Platform for Mobile Development
Native Android Applications
Android SDK Features
Introducing the Open Handset Alliance
What Does Android Run On?
Why Develop for Mobile?
Why Develop for Android?
Introducing the Development Framework
Chapter 2: Getting Started
Developing for Android
Developing for Mobile and Embedded Devices
Android Development Tools
Chapter 3: Creating Applications and Activities
What Makes an Android Application?
Introducing the Application Manifest File
Using the Manifest Editor
Externalizing Resources
The Android Application Lifecycle
Understanding an Application's Priority and Its Process' States
Introducing the Android Application Class
A Closer Look at Android Activities
Chapter 4: Understanding Fragments
Fundamental Android UI Design
Android User Interface Fundamentals
Introducing Layouts
To-Do List Example
Introducing Fragments
The Android Widget Toolbox
Creating New Views
Introducing Adapters
Chapter 5: Intents and Broadcast Receivers
Introducing Intents
Creating Intent Filters and Broadcast Receivers
Chapter 6: Using Internet Resources
Downloading and Parsing Internet Resources
Using the Download Manager
Using Internet Services
Connecting to Google App Engine
Best Practices for Downloading Data Without Draining the Battery
Chapter 7: Files, Saving State,and Preferences
Saving Simple Application Data
Creating and Saving Shared Preferences
Retrieving Shared Preferences
Creating a Settings Activity for the Earthquake Viewer
Introducing the Preference Framework and the Preference Activity
Creating a Standard Preference Activity for the Earthquake Viewer
Persisting the Application Instance State
Including Static Files as Resources
Working with the File System
Chapter 8: Databases and Content Providers
Introducing Android Databases
Introducing SQLite
Content Values and Cursors
Working with SQLite Databases
Creating Content Providers
Using Content Providers
Adding Search to Your Application
Creating a Searchable Earthquake Content Provider
Native Android Content Providers
Chapter 9: Working in the Background
Introducing Services
Using Background Threads
Using Alarms
Using the Intent Service to Simplify the Earthquake Update Service
Chapter 10: Expanding the User Experience
Introducing the Action Bar
Adding an Action Bar to the Earthquake Monitor
Creating and Using Menus and Action Bar Action Items
Refreshing the Earthquake Monitor
Going Full Screen
Introducing Dialogs
Let's Make a Toast
Introducing Notifications
Adding Notifications and Dialogs to the Earthquake Monitor
Chapter 11: Advanced User Experience
Designing for Every Screen Size and Density
Ensuring Accessibility
Introducing Android Text-to-Speech
Using Speech Recognition
Controlling Device Vibration
Working with Animations
Enhancing Your Views
Advanced Drawable Resources
Copy, Paste, and the Clipboard
Chapter 12: Hardware Sensors
Using Sensors and the Sensor Manager
Monitoring a Device's Movement and Orientation
Introducing the Environmental Sensors
Chapter 13: Maps, Geocoding, and Location-Based Services
Using Location-Based Services
Using the Emulator with Location-Based Services
Selecting a Location Provider
Finding Your Current Location
Best Practice for Location Updates
Using Proximity Alerts
Using the Geocoder
Creating Map-Based Activities
Mapping Earthquakes Example
Chapter 14: Invading the Home Screen
Introducing Home Screen Widgets
Creating App Widgets
Creating an Earthquake Widget
Introducing Collection View Widgets
Introducing Live Folders
Surfacing Application Search Results Using the Quick Search Box
Creating Live Wallpaper
Chapter 15: Audio, Video, and Using the Camera
Playing Audio and Video
Manipulating Raw Audio
Creating a Sound Pool
Using Audio Effects
Using the Camera for Taking Pictures
Recording Video
Using Media Effects
Adding Media to the Media Store
Chapter 16: Bluetooth, NFC, Networks, and Wi-Fi
Using Bluetooth
Managing Network and Internet Connectivity
Managing Wi-Fi
Transferring Data Using Wi-Fi Direct
Near Field Communication
Chapter 17: Telephony and SMS
Hardware Support for Telephony
Using Telephony
Introducing SMS and MMS
Introducing SIP and VOIP
Chapter 18: Advanced Android Development
Paranoid Android
Introducing Cloud to Device Messaging
Implementing Copy Protection Using the License Verification Library
Introducing In-App Billing
Using Wake Locks
Using AIDL to Support Inter-Process Communication for Services
Dealing with Different Hardware and Software Availability
Optimizing UI Performance with Strict Mode
Chapter 19: Monetizing, Promoting, and Distributing Applications
Signing and Publishing Applications
Distributing Applications
An Introduction to Monetizing Your Applications
Application Marketing, Promotion, and Distribution Strategies
Analytics and Referral Tracking
Introduction
Advertisements
Beginning.Android.4.Games.Development 源代码
What you’ll learn
How to set up and use the development tools for developing your first Android 4 or earlier version game app
The fundamentals of game programming in the context of the Android platform
How to use the Android’s APIs for graphics, audio, and user input to reflect those fundamentals
How to develop two 2D games from scratch, based on the Canvas API and OpenGL ES
How to create a full-featured 3D game
How to publish your games, get crash reports, and support your users
How to complete your own playable 2D OpenGL games
Who this book is for
This book is for people with a basic knowledge of Java who want to write games on the Android platform. It also offers information for experienced game developers about the pitfalls and peculiarities of the platform.
Android 3D游戏开发技术宝典-OpenGL ES 2.0 (吴亚峰) 源代码
第1章 新一代的王者——android概览 1
1.1 智能手机市场现状 1
1.1.1 五大智能手机操作系统 1
1.1.2 智能手机市场的新星 2
1.2 android平台的特点及未来的趋势 3
1.2.1 全新理念带来的体验风暴 3
1.2.2 中国手机市场的主导性作用 4
1.2.3 手机3d游戏和应用增长迅速 4
1.3 如何搭建android开发环境 4
1.3.1 sdk的安装及环境配置 5
1.3.2 eclipse集成开发环境的搭建 7
1.3.3 创建并启动模拟器 9
1.4 hello android应用程序的开发 11
1.4.1 第一个android应用程序 12
1.4.2 android应用程序的项目结构 14
1.4.3 android应用程序的调试 16
1.4.4 实际设备的联机调试 18
1.5 android应用程序运行的机制 19
1.5.1 应用程序的系统架构 19
.1.5.2 应用程序框架 20
1.5.3 android运行时 20
1.5.4 系统库 21
1.5.5 底层linux内核 21
1.6 本章小结 22
第2章 游戏开发相关android基础知识 23
2.1 游戏中的音效 23
2.1.1 游戏中的即时音效 23
2.1.2 即时音效的一个案例 24
2.1.3 背景音乐播放技术 27
2.1.4 简易音乐播放器的实现 29
2.2 简单数据的存储——preferences 33
2.2.1 preferences简介 33
2.2.2 preferences实现访问时间的记录 33
2.3 手机自带数据库——sqlite 34
2.3.1 初识sqlite 35
2.3.2 sqlite数据库的基本操作 35
2.3.3 sqlite数据库的简单案例 37
2.3.4 使用contentprovider组件共享数据 40
2.3.5 使用contentresolver获取分享数据 42
2.4 文件i/o 43
2.4.1 访问sd卡中的文件 44
2.4.2 访问手机中的文件夹 46
2.4.3 读取assets文件夹下的内容 48
2.5 2d动画的开发 50
2.5.1 surfaceview用法简介 50
2.5.2 使用surfaceview实现2d动画 50
2.6 socket网络通信 56
2.6.1 socket开发基本知识 56
2.6.2 服务器端 57
2.6.3 客户端 58
2.7 蓝牙通信 59
2.7.1 蓝牙通信的基本知识 60
2.7.2 聊天案例概览 60
2.7.3 聊天案例的开发过程 62
2.8 本章小结 75
第3章 初识opengl es 2.0 77
3.1 opengl es 2.0概览 77
3.1.1 opengl es 2.0简介 77
3.1.2 初识opengl es 2.0应用程序 80
3.2 着色器与渲染管线 89
3.2.1 opengl es 1.x的渲染管线 89
3.2.2 opengl es 2.0的渲染管线 94
3.2.3 opengl es中立体物体的构建 97
3.3 主流android手机gpu大pk 98
3.3.1 手机gpu四大家族对比 99
3.3.2 主流gpu的性能参数比较 103
3.4 本章小结 104
第4章 着色语言shading language 105
4.1 着色语言概述 105
4.2 着色语言基础 106
4.2.1 数据类型概述 106
4.2.2 数据类型的基本使用 110
4.2.3 运算符 112
4.2.4 类型转换 114
4.2.5 限定符 115
4.2.6 流程控制 119
4.2.7 函数的声明与使用 121
4.2.8 片元着色器中浮点变量精度的指定 122
4.2.9 程序的基本结构 123
4.3 特殊的内建变量 123
4.3.1 顶点着色器中的内建变量 124
4.3.2 片元着色器中的内建变量 124
4.4 着色语言的内置函数 125
4.4.1 角度转换与三角函数 126
4.4.2 指数函数 127
4.4.3 常见函数 127
4.4.4 几何函数 130
4.4.5 矩阵函数 132
4.4.6 向量关系函数 133
4.4.7 纹理采样函数 134
4.4.8 微分函数 135
4.5 本章小结 135
第5章 投影及各种变换 136
5.1 摄像机的设置 136
5.2 两种投影方式 137
5.2.1 正交投影 137
5.2.2 透视投影 145
5.3 各种变换 148
5.3.1 基本变换的相关数学知识 148
5.3.2 平移变换 148
5.3.3 旋转变换 152
5.3.4 缩放变换 153
5.3.5 基本变换的实质 155
5.4 绘制方式 156
5.4.1 各种绘制方式概览 156
5.4.2 点与线段绘制方式 157
5.4.3 三角形条带与扇面绘制方式 159
5.4.4 顶点法与索引法 165
5.5 设置合理的视角 167
5.6 卷绕和背面剪裁 173
5.6.1 基本知识 173
5.6.2 一个简单的案例 174
5.7 本章小结 176
第6章 光照 177
6.1 曲面物体的构建 177
6.1.1 球体构建的基本原理 177
6.2.2 案例效果概览 178
6.2.3 开发步骤 179
6.2 基本光照效果 182
6.2.1 光照的基本模型 182
6.2.2 环境光 183
6.2.3 散射光 185
6.2.4 镜面光 190
6.2.5 三种光照通道的合成 194
6.3 定位光与定向光 196
6.4 点法向量和面法向量 199
6.5 光照的每顶点计算与每片元计算 202
6.6 本章小结 204
第7章 纹理映射 205
7.1 初识纹理映射 205
7.1.1 基本原理 205
7.1.2 纹理映射的简单案例 206
7.2 纹理拉伸 212
7.2.1 两种拉伸方式概览 212
7.2.2 不同拉伸方式的案例 214
7.3 纹理采样 217
7.3.1 纹理采样概述 217
7.3.2 最近点采样 218
7.3.3 线性纹理采样 219
7.3.4 min与mag采样 220
7.3.5 不同纹理采样方式的案例 221
7.4 mipmap纹理技术 226
7.5 多重纹理与过程纹理 227
7.5.1 案例概览 227
7.5.2 将2d纹理映射到球面上的策略 228
7.5.3 案例的场景结构 229
7.5.4 开发过程 230
7.6 本章小结 238
第8章 3d基本形状的构建 239
8.1 圆柱体 239
8.1.1 顶点原始位置的生成 239
8.1.2 案例的开发 241
8.2 圆锥体 244
8.2.1 顶点原始位置的生成 244
8.2.2 案例的开发 246
8.3 圆环体 248
8.3.1 顶点原始位置的生成 248
8.3.2 案例的开发 249
8.4 螺旋管 251
8.4.1 顶点原始位置的生成 252
8.4.2 案例的开发 252
8.5 几何球 253
8.5.1 顶点原始位置的生成 254
8.5.2 案例的开发 255
8.6 足球碳分子模型的搭建 262
8.6.1 搭建的基本原理 262
8.6.2 案例的开发 264
8.7 贝塞尔曲线及旋转面 270
8.7.1 三维旋转曲面的生成 270
8.7.2 贝塞尔曲线 270
8.7.3 bezier曲线生成工具 272
8.7.4 印度古典建筑场景的开发 274
8.8 本章小结 276
第9章 3d模型加载 277
9.1 obj模型文件概览 277
9.1.1 obj文件的格式 277
9.1.2 用3dmax设计3d模型 278
9.2 加载obj文件 279
9.2.1 加载仅有顶点坐标与面数据的obj文件 279
9.2.2 加载后自动计算面法向量 283
9.2.3 加载后自动计算平均法向量 286
9.2.4 加载纹理坐标 289
9.3 本章小结 292
第10章 混合与雾 293
10.1 混合技术 293
10.1.1 混合基本知识 293
10.1.2 源因子和目标因子 294
10.1.3 简单混合效果案例 295
10.2 地月系云层效果的实现 297
10.3 雾 300
10.3.1 雾的原理与优势 300
10.3.2 雾的简单实现 301
10.4 本章小结 304
第11章 常用3d开发技巧 305
11.1 标志板 305
11.1.1 案例效果与基本原理 305
11.1.2 开发步骤 306
11.2 灰度图地形 310
11.2.1 基本原理 311
11.2.2 普通灰度图地形 311
11.2.3 过程纹理地形 314
11.2.4 mipmap地形 317
11.3 天空盒与天空穹 318
11.3.1 天空盒 318
11.3.2 天空穹 320
11.3.3 天空盒与天空穹的使用技巧 321
11.4 镜像技术 322
11.4.1 镜像基本原理 322
11.4.2 基本效果案例 322
11.4.3 升级效果案例 325
11.5 动态文本输出 327
11.5.1 案例效果与基本原理 327
11.5.2 具体开发步骤 328
11.6 非真实感绘制 330
11.6.1 案例效果与基本原理 330
11.6.2 具体开发步骤 331
11.7 本章小结 332
第12章 几种剪裁与测试 333
12.1 剪裁测试 333
12.1.1 基本原理与核心代码 333
12.1.2 一个主次视角的简单案例 334
12.2 alpha测试 335
12.2.1 alpha测试基本原理 335
12.2.2 一个椭圆窗口的案例 335
12.3 模板测试 337
12.3.1 基本原理 337
12.3.2 一个简单的案例 340
12.4 任意剪裁平面 341
12.4.1 基本原理 341
12.4.2 茶壶被任意平面剪裁的案例 342
12.5 本章小结 344
第13章 顶点着色器的妙用 345
13.1 飘扬的旗帜 345
13.1.1 基本原理 345
13.1.2 开发步骤 346
13.2 扭动的软糖 349
13.2.1 基本原理 349
13.2.2 开发步骤 350
13.3 风吹椰林场景的开发 351
13.3.1 椰子树随风摇摆的基本原理 351
13.3.2 开发步骤 352
13.4 展翅飞翔的雄鹰 356
13.4.1 基本原理 356
13.4.2 开发步骤 357
13.5 二维扭曲 359
13.5.1 基本原理 359
13.5.2 开发步骤 360
13.6 opengl es 1.x与opengl es 2.0实现方案的对比 363
13.7 本章小结 364
第14章 片元着色器的妙用 365
14.1 程序纹理技术 365
14.1.1 砖块着色器 365
14.1.2 沙滩球着色器 367
14.2 数字图像处理 368
14.2.1 卷积的基本知识 369
14.2.2 平滑过滤 369
14.2.3 边缘检测 371
14.2.4 锐化处理 372
14.2.5 浮雕效果 373
14.2.6 图像渐变 374
14.3 分形着色器 375
14.3.1 曼德布罗集简介 375
14.3.2 曼德布罗集着色器的实现 376
14.3.3 将曼德布罗集纹理应用到实际物体上 378
14.3.4 茱莉亚集着色器的实现 379
14.4 本章小结 380
第15章 真实光学环境的模拟 381
15.1 投影贴图 381
15.1.1 案例效果与基本原理 381
15.1.2 开发步骤 382
15.2 反射环境模拟 385
15.2.1 案例效果与基本原理 385
15.2.2 开发步骤 386
15.3 折射环境模拟 388
15.3.1 案例效果与基本原理 388
15.3.2 开发步骤 390
15.4 色散效果的模拟 391
15.4.1 案例效果与基本原理 391
15.4.2 开发步骤 392
15.5 菲涅尔效果的模拟 393
15.5.1 案例效果与基本原理 393
15.5.2 开发步骤 394
15.6 凹凸映射 395
15.6.1 案例效果与基本原理 395
15.6.2 法向量纹理图的生成 396
15.6.3 案例的开发 399
15.7 平面阴影 404
15.7.1 案例效果与基本原理 405
15.7.2 开发步骤 406
15.8 阴影映射 409
15.8.1 案例效果与基本原理 409
15.8.2 距离纹理图的生成 411
15.8.3 阴影场景的绘制 417
15.9 光线跟踪 419
15.9.1 案例效果与基本原理 419
15.9.2 开发步骤 423
15.10 本章小结 436
第16章 游戏开发中的物理学 437
16.1 碰撞检测基本技术 437
16.1.1 aabb包围盒的基本原理 437
16.1.2 aabb包围盒的计算 438
16.1.3 aabb包围盒的碰撞检测 440
16.1.4 一个aabb包围盒的案例 442
16.1.5 旋转后的aabb包围盒 444
16.1.6 aabb包围盒的使用要点 448
16.1.7 obb包围盒 448
16.2 穿透效应 449
16.2.1 案例的运行效果与基本原理 449
16.2.2 具体开发步骤 450
16.3 粒子系统 450
16.3.1 案例运行效果与基本原理 451
16.3.2 cpu版案例的开发 452
16.3.3 gpu版案例开发步骤 453
16.4 弹簧质点模型 455
16.4.1 案例运行效果与基本原理 455
16.4.2 具体开发步骤 457
16.5 本章小结 462
第17章 游戏的心脏——物理引擎 463
17.1 物理引擎很重要 463
17.1.1 什么是物理引擎 463
17.1.2 常见的物理引擎 463
17.2 jbullet物理引擎 466
17.2.1 基本的物理学概念 466
17.2.2 jbullet中常用类的介绍 468
17.3 箱子相互碰撞的案例 475
17.3.1 案例运行效果及准备工作 476
17.3.2 案例的基本框架结构 476
17.3.3 常量类——constant 477
17.3.4 3d场景渲染类——mysurfaceview 478
17.3.5 水平地面——texfloor类 480
17.3.6 箱子——texcube类 481
17.4 复合碰撞形状的使用 483
17.4.1 案例运行效果 483
17.4.2 立方体圆柱复合形状——cubecylinder类 483
17.5 凹凸地形的案例 486
17.5.1 案例运行效果 486
17.5.2 地形类——landform 486
17.6 任意形状物体的碰撞 488
17.6.1 案例运行效果 488
17.6.2 加载物体类——loadedobjectvertexnormal 488
17.6.3 加载物体刚体类——loadrigidbody 490
17.7 铰链关节 491
17.7.1 铰链关节的基本知识 491
17.7.2 案例的运行效果 492
17.7.3 铰链关节旋转角速度的计算 493
17.7.4 3d界面渲染类——mysurfaceview 494
17.8 滑动关节 496
17.8.1 滑动关节的基本知识 496
17.8.2 案例效果图 497
17.8.3 3d界面渲染类——mysurfaceview 498
17.9 六自由度关节 502
17.9.1 六自由度关节的基本知识 502
17.9.2 案例的运行效果 503
17.9.3 人偶类——doll 503
17.9.4 拾取时采用的点对点关节 505
17.10 本章小结 509
第18章 传感器应用的开发 510
18.1 基本的开发流程 510
18.2 加速度传感器 512
18.2.1 加速度传感器简介 513
18.2.2 案例的开发 514
18.3 磁场传感器 514
18.3.1 磁场传感器简介 514
18.3.2 案例的开发 514
18.4 光传感器 516
18.4.1 光传感器简介 516
18.4.2 案例的开发 516
18.5 温度传感器 518
18.5.1 温度传感器简介 518
18.5.2 案例的开发 518
18.6 接近传感器 519
18.6.1 接近传感器简介 519
18.6.2 案例的开发 520
18.7 姿态传感器 521
18.7.1 姿态传感器简介 521
18.7.2 案例的开发 522
18.8 本章小结 528
第19章 游戏开发小贴士 529
19.1 3d拾取技术 529
19.1.1 案例效果与基本原理 529
19.1.2 开发步骤 531
19.2 多点触控 537
19.2.1 案例效果与基本原理 537
19.2.2 开发步骤 538
19.3 多键监听 541
19.3.1 案例效果与基本原理 541
19.3.2 开发步骤 542
19.4 本章小结 544
第20章 bn赛艇 545
20.1 游戏背景及功能概述 545
20.1.1 背景概述 545
20.1.2 功能介绍 545
20.2 游戏的策划及准备工作 547
20.2.1 游戏的策划 547
20.2.2 android平台下游戏的准备工作 548
20.3 游戏的架构 552
20.3.1 各个类简要介绍 553
20.3.2 游戏框架简介 558
20.4 主控制类myactivity 559
20.5 2d界面相关类 563
20.5.1 欢迎界面类welcomeview 563
20.5.2 2d界面父类mysfview 565
20.5.3 主菜单类menuview 565
20.5.4 2d界面绘制类viewfordraw 566
20.5.5 数据库工具类dbutil 568
20.5.6 android系统版本对话框androidversiondialog 570
20.6 选船界面相关类 570
20.6.1 着色器管理类shadermanager 571
20.6.2 围墙类colorlightrect 571
20.6.3 选船房间类housefordraw 573
20.6.4 展台类displaystation 575
20.6.5 赛艇类boat 576
20.6.6 选船界面xcsurfaceview 576
20.7 游戏界面相关类 582
20.7.1 进度条类process 583
20.7.2 3d物体父类bndrawer 584
20.7.3 3d物体控制类tdobjectforcontrol 584
20.7.4 赛艇类boat 585
20.7.5 可碰撞物体父类kzbjdrawer 586
20.7.6 可碰撞物体控制类kzbjforcontr