开发android手机游戏程序总体结构,有哪些类,类间的关系,哪些控制变量,程序总

开发android手机游戏程序总体结构,有哪些类,类间的关系,哪些控制变量,程序总-苹果手机是什么系统,安卓系统又是什么? _汇潮装饰网
您当前位置:
开发android手机游戏程序总体结构,有哪些类,类间的关系,哪些控制变量,程序总
开发android手机游戏程序总体结构,有哪些类,类间的关系,哪些控制变量,程序总
所有的Activity都会在此进程上运行。那么我们在Application创建的时候初始化全局变量Application和Activity,如果需要创建自己的Application,那也很简单!创建一个类继承Application并在AndroidManifest.xml文件中的application标签中进行注册(只需要给application标签增加name属性,并添加自己的 Application的名字即可),换句话说,我们在某一个Activity中改变了这些全局变量的值,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息。Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例(singleton)模式的一个类。通常我们是不需要指定一个Application的,系统会自动帮我们创建,同一个应用的所有Activity都可以取到这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。启动Application时,系统会创建一个PID,即进程ID
7-03 10:09
随着移动平台的发展和其应用的不断改善,质量成为决定成败的关键。用户要求他们选择安装的应用响应快、性能...)
Android开发,需要掌握以下知识: android以java为基础的,所以前提要学好Java基础...)
分为五个步骤来完成Android开发环境的部署。 第一步:安装JDK。 要下载Oracle公司的JD...)
做Android开发首先会java,先学习java基础,比如面向对象的思想、socket、多线程、网...)
  如果上图所示,就是简单的登录界面了。andord的布局真的是,真的是,哪个。难以掌握的东西,哈,...)
Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2...)
这个问题是个范围问题。android开发是java开发的一个分支。你说的java类库是指标准类库吧。...)
SSH是java web开发的3个框架,貌似跟Android关系不大。Android开发吧,我觉得只...)
myeclipse是集成开发工具,自带很多实用的插件;你说的开发Android应用; 需要java运...)
eclipse集成开发环境,就是支持安卓开发的环境。 如何建立最新的基于eclipse的androi...)用户名:欣颜轩
文章数:22
访问量:11362
注册日期:
阅读量:1297
阅读量:3317
阅读量:450977
阅读量:1135592
[匿名]admin:
51CTO推荐博文
我们把用于完成特定功能的若干属性组织成相对独立的属性集合。这种属性的集合就是接口。
定义接口与定义类非常相似。实际上完全可以把接口理解成为一种特殊的类,接口是由常量和抽象方法组成的特殊类。一个类只能由一个父类,但是它可以同时实现若干个接口。这种情况下如果把接口理解成特殊的类,那么这个类利用接口实际上就获得了多个父类,即实现了多重继承。与类定义相仿,声明接口时也需要给出访问控制符,不同的是接口的访问控制符只有public一个。用public修饰的接口是公共接口,可以被所有的类和接口使用,而没有public修饰符的接口则只能被同一个包中的其他类和接口利用。接口也具有继承性。定义一个接口是可以通过extends关键字声明该新接口是某个已经存在的父接口的派生接口,它将继承父接口的所有属性和方法。与类的继承不同的是一个接口可以有一个以上的父接口,它们之间用逗号分隔,形成父接口列表。新接口将继承所有父接口中的属性和方法。
=======================================================================================
什么是多态?面向对象程序设计为什么要引入多态的特性?使用多态有什么优点
多态是指程序中同名的不同方法共存的情况。多态是面向对象程序设计的又一个特性。我们知道,面向过程的程序设计中,过程或函数各具有一定的功能它们之间是不允许重名的;而面向对象程序设计中,则要利用这种多态来提高程序的抽象性,突出Java语言的继承性。面向对象的程序中多态的情况有多种,可以通过子类对父类方法的覆盖实现多态,也可以利用重载在同一个类中定义多个同名的不同方法。
多态的特点大大提高了程序的抽象程度和简洁性,更重要的是它最大限度地降低了类和程序模块之间的耦合性,提高了类模块的封闭性,使得它们不需了解对方的具体细节,就可以很好地共同工作。这个优点,对程序的设计、开发和维护都有很大的好处。
================================================================================================
什么是继承?什么是父类?什么是子类?继承的特性给面向对象编程带来什么好处
答:继承实际上是存在于面向对象程序设计中的两个类之间的一种关系,是面向对象程序设计方法的一个重要手段,通过继承可以更有效地组织程序结构,明确类间的关系,充分利用已有的类来完成更复杂、更深入的开发。
当一个类拥有另一个类的所有数据和操作时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,继承了父类或超类的所有数据和操作的类称为子类。在Java语言程序设计类头定义中用extends表明子类与父类的继承关系。
在面向对象的程序设计中,采用继承的方式来组织设计系统中的类,可以提高程序的抽象程度,更接近人的思维方式,使程序结构更清晰并降低编码和维护的工作量。
什么是单重继承?什么是多重继承?
&&&&&& 单重继承是指任何一个类都只有一个单一的父类,其结构可以用单纯的树状结构来表示;而多重继承是指一个类可以有一个以上的父类,它的静态的数据属性和操作从所有这些父类中继承,其结构应以复杂的网状结构来表示。Java语言中仅支持单重继承,而多重继承是通过接口来实现的。
& ================================================
什么是类?
在现实世界中,经常有属于同一类的对象。例如,你的自行车
只是世界上很多自行车中的一辆。在面向对象软件中,也有很
多共享相同特征的不同的对象:矩形、雇用记录、视频剪辑
等。可以利用这些对象的相同特征为它们建立一个蓝图。对象
的软件蓝图称为类。
定义:类是定义同一类所有对象的变量和方法的蓝图或原型。
例如,可以建立一个定义包含当前档位等实例变量的自行车
类。这个类也定义和提供了实例方法(变档、刹车)的实现。
实例变量的值由类的每个实例提供。因此,当你创建自行车类
以后,必须在使用之前对它进行实例化。当创建类的实例时,
就建立了这种类型的一个对象,然后系统为类定义的实例变量
分配内存。然后可以调用对象的实例方法实现一些功能。相同
类的实例共享相同的实例方法。
除了实例变量和方法,类也可以定义类变量和类方法。可以从
类的实例中或者直接从类中访问类变量和方法。类方法只能操
作类变量 - 不必访问实例变量或实例方法。
系统在第一次在程序中遇到一个类时为这个类建立它的所有类
变量的拷贝 - 这个类的所有实例共享它的类变量。
你可能会注意到对象和类的说明很相似。实际上,
类和对象之间的差别经常是一些困惑的起源。在现
实世界中很明显,类不是它描述的对象 - 自行车的
蓝图不是自行车。但是在软件中就有点难区分类和
对象。着部分是由于软件对象只是现实世界的电子
模型或抽象概念。但是也由于很多人用&对象&指
类和它们的实例这两者。
对象提供了模型化和信息隐藏的好处。类提供了可
重用性的好处。自行车制造商一遍一遍地重用相同
的蓝图来制造大量的自行车。软件程序员用相同
的类,即相同的代码一遍一遍地建立对象。
了这篇文章
类别:未分类┆阅读(0)┆评论(0) 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
一种基于动态依赖关系的类集成测试方法
下载积分:500
内容提示:一种基于动态依赖关系的类集成测试方法
文档格式:PDF|
浏览次数:16|
上传日期: 12:47:26|
文档星级:
全文阅读已结束,如果下载本文需要使用
 500 积分
下载此文档
该用户还上传了这些文档
一种基于动态依赖关系的类集成测试方法
官方公共微信2171人阅读
android开发(2)
Android提供了一系列强大的测试工具,它针对Android的环境,扩展了业内标准的JUnit测试框架。尽管你可以使用JUnit测试Android工程,但Android工具允许你为应用程序的各个方面进行更为复杂的测试,包括单元层面及框架层面。&
Android测试环境的主要特征有:&
l&& 可以访问Android系统对象。&
l&& Instrumentation框架可以控制和测试应用程序。&
l&& Android系统常用对象的模拟版本。&
l&& 运行单个test或test suite的工具,带或不带Instrumentation。&
l&& 支持以Eclipse的ADT插件和命令行方式管理Test和Test工程。&
这篇文章是对Android测试环境和测试方法的简要介绍,并假设你已经拥有一定的Android应用程序编程及JUnit测试的经验。&
Android测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用Instrumentation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。&
通过在测试工程的manifest文件中添加&instrumentation&元素来指定要测试的应用程序。这个元素的特性指明了要测试的应用程序包名,以及告诉Android如何运行测试程序。在Inustrumentation TestRunner章节有更多的细节描述。&
下面的图片概要的描述了Android的测试环境:&
在Android中,测试程序也是Android程序,因此,它和被测试程序的书写方式有很多相同的地方。SDK工具能帮助你同时创建主程序工程及它的测试工程。你可以通过Eclipse的ADT插件或者命令行来运行Android测试。Eclipse的ADT提供了大量的工具来创建测试用例,运行以及查看结果。&
Testing API&
Android提供了基于JUnit测试框架的测试API来书写测试用例和测试程序。另外,Android还提供了强大的Instrumentation框架,允许测试用例访问程序的状态及运行时对象。&
下面的章节描述了Android中可利用的主要测试API。&
JUnit TestCase类&
继承自JUnit的TestCase,不能使用Instrumentation框架。但这些类包含访问系统对象(如Context)的方法。使用Context,你可以浏览资源,文件,数据库等等。基类是AndroidTestCase,一般常见的是它的子类,和特定组件关联。&
l&& ApplicationTestCase——测试整个应用程序的类。它允许你注入一个模拟的Context到应用程序中,在应用程序启动之前初始化测试参数,并在应用程序结束之后销毁之前检查应用程序。&
l&& ProviderTestCase2——测试单个ContentProvider的类。因为它要求使用MockContentResolver,并注入一个IsolatedContext,因此Provider的测试是与OS孤立的。&
l&& ServiceTestCase——测试单个Service的类。你可以注入一个模拟的Context或模拟的Application(或者两者),或者让Android为你提供Context和MockApplication。&
Instrumentation TestCase类&
继承自JUnit TestCase类,并可以使用Instrumentation框架,用于测试Activity。使用Instrumentation,Android可以向程序发送事件来自动进行UI测试,并可以精确控制Activity的启动,监测Activity生命周期的状态。&
基类是InstrumentationTestCase。它的所有子类都能发送按键或触摸事件给UI。子类还可以注入一个模拟的Intent。&
l&& ActivityTestCase——Activity测试类的基类。&
l&& SingleLaunchActivityTestCase——测试单个Activity的类。它能触发一次setup()和tearDown(),而不是每个方法调用时都触发。如果你的测试方法都是针对同一个Activity的话,那就使用它吧。&
l&& SyncBaseInstrumentation——测试Content Provider同步性的类。它使用Instrumentation在启动测试同步性之前取消已经存在的同步对象。&
l&& ActivityUnitTestCase——对单个Activity进行单一测试的类。使用它,你可以注入模拟的Context或Application,或者两者。它用于对Activity进行单元测试。&
不同于其它的Instrumentation类,这个测试类不能注入模拟的Intent。&
l&& ActivityInstrumentationTestCase2——在正常的系统环境中测试单个Activity的类。你不能注入一个模拟的Context,但你可以注入一个模拟的Intent。另外,你还可以在UI线程(应用程序的主线程)运行测试方法,并且可以给应用程序UI发送按键及触摸事件。&
Android还继承了JUnit的Assert类,其中,有两个子类,MoreAsserts和ViewAsserts:&
l&& MoreAsserts类包含更多强大的断言方法,如assertContainsRegex(String, String),可以作正则表达式的匹配。
l&& ViewAsserts类包含关于Android View的有用断言方法,如assertHasScreenCoordinates(View, View, int, int),可以测试View在可视区域的特定X、Y位置。这些Assert简化了UI中几何图形和对齐方式的测试。&
Mock对象类&
Android有一些类可以方便的创建模拟的系统对象,如Application,Context,Content Resolver和Resource。Android还在一些测试类中提供了一些方法来创建模拟的Intent。因为这些模拟的对象比实际对象更容易使用,因此,使用它们能简化依赖注入。你可以在android.test和android.test.mock中找到这些类。&
l&& IsolatedContext——模拟一个Context,这样应用程序可以孤立运行。与此同时,还有大量的代码帮助我们完成与Context的通信。这个类在单元测试时很有用。&
l&& RenamingDelegatingContext——当修改默认的文件和数据库名时,可以委托大多数的函数到一个存在的、常规的Context上。使用这个类来测试文件和数据库与正常的系统Context之间的操作。&
l&& MockApplication,MockContentResolver,MockContext,MockDialogInterface,MockPackageManager,MockResources——创建模拟的系统对象的类。它们只暴露那些对对象的管理有用的方法。这些方法的默认实现只是抛出异常。你需要继承这些类并重写这些方法。&
Instrumentation TestRunner&
Android提供了自定义的运行测试用例的类,叫做InstrumentationTestRunner。这个类控制应用程序处于测试环境中,在同一个进程中运行测试程序和主程序,并且将测试结果输出到合适的地方。IntrumentationTestRunner在运行时对整个测试环境的控制能力的关键是使用Instrumentation。注意,如果你的测试类不使用Instrumentation的话,你也可以使用这个TestRunner。&
当你运行一个测试程序时,首先会运行一个系统工具叫做Activity Manager。Activity Manager使用Instrumentation框架来启动和控制TestRunner,这个TestRunner反过来又使用Intrumentation来关闭任何主程序的实例,然后启动测试程序及主程序(同一个进程中)。这就能确保测试程序与主程序间的直接交互。&
在测试环境中工作&
对Android程序的测试都包含在一个测试程序里,它本身也是一个Android应用程序。测试程序以单独的Android工程存在,与正常的Android程序有着相同的文件和文件夹。测试工程通过在manifest文件中指定要测试的应用程序。&
每个测试程序包含一个或多个针对特定类型组件的测试用例。测试用例里定义了测试应用程序某些部分的测试方法。当你运行测试程序,Android会在相同进程里加载主程序,然后触发每个测试用例里的测试方法。&
为了开始对一个Android程序测试,你需要使用Android工具创建一个测试工程。工具会创建工程文件夹、文件和所需的子文件夹。工具还会创建一个manifest文件,指定被测试的应用程序。&
一个测试程序包含一个或多个测试用例,它们都继承自Android TestCase类。选择一个测试用例类取决于你要测试的Android组件的类型以及你要做什么样的测试。一个测试程序可以测试不同的组件,但每个测试用例类设计时只能测试单一类型的组件。&
一些Android组件有多个关联的测试用例类。在这种情况下,在可选择的类间,你需要判断你要进行的测试类型。例如,对于Activity来说,你有两个选择,ActivityInstrumentationTestCase2和ActivityUnitTestCase。&
ActivityInstrumentationTestCase2设计用于进行一些功能性的测试,因此,它在一个正常的系统环境中测试Activity。你可以注入模拟的Intent,但不能是模拟的Context。一般来说,你不能模拟Activity间的依赖关系。&
相比而言,ActivityUnitTestCase设计用于单元测试,因此,它在一个孤立的系统环境中测试Activity。换句话说,当你使用这个测试类时,Activity不能与其它Activity交互。&
作为一个经验法则,如果你想测试Activity与Android的交互的话,使用ActivityInstrumentationTestCase2。如果你想对一个Activity做回归测试的话,使用ActivityUnitTestCase。&
每个测试用例类提供了可以建立测试环境和控制应用程序的方法。例如,所有的测试用例类都提供了JUnit的setUp()方法来搭建测试环境。另外,你可以添加方法来定义单独的测试。当你运行测试程序时,每个添加的方法都会运行一次。如果你重写了setUp()方法,它会在每个方法运行前运行。相似的,tearDown()方法会在每个方法之后运行。&
测试用例类提供了大量的对组件启动和停止控制的方法。由于这个原因,在运行测试之前,你需要明确告诉Android启动一个组件。例如,你可以使用getActivity()来启动一个Activity。在整个测试用例期间,你只能调用这个方法一次,或者每个测试方法一次。甚至你可以在单个测试方法中,调用它的finishing()来销毁Activity,然后再调用getActivity()重新启动一个。&
运行测试并查看结果&
编译完测试工程后,你就可以使用系统工具Activity Manager来运行测试程序。你给Activity Manager提供了TestRunner的名(一般是InstrumentationTestRunner,在程序中指定);名包括被测试程序的包名和TestRunner的名。Activity
Manager加载并启动你的测试程序,杀死主程序的任何实例,然后在测试程序的同一个进程里加载主程序,然后传递测试程序的第一个测试用例。这个时候,TestRunner会接管这些测试用例,运行里面的每个测试方法,直到所有的方法运行结束。&
如果你使用Eclipse,结果会在JUnit的面板中显示。如果你使用命令行,将输出到STDOUT上。&
测试什么?&
除了一些功能测试外,这里还有一些你应该考虑测试的内容:&
l&& Activity生命周期事件:你应该测试Activity处理生命周期事件的正确性。例如,一个Activity应该在pause或destroy事件时保存它的状态。记住一点的是屏幕方向的改变也会引发当前Activity销毁,因此,你需要测试这种偶然情况确保不会丢失应用程序状态。&
l&& 数据库操作:你应该确保数据库操作能正确处理应用程序状态的变化。使用android.test.mock中的模拟对象。&
l&& 屏幕大小和分辨率:在发布程序之前,确保在所有要运行的屏幕大小和分辨率上测试通过。你可以使用AVD来测试,或者使用真实的目标设备进行测试。&
附加:UI测试&
接下来的章节为应用程序UI的测试提供了一些提示,特别是帮助你在UI线程里处理动作,触屏和按键事件,和锁屏。&
UI线程中测试&
Activity运行在程序的UI线程里。一旦UI初始化后,例如在Activity的onCreate()方法后,所有与UI的交互都必须运行在UI线程里。当你正常运行程序时,它有权限可以访问这个线程,并且不会出现什么特别的事情。&
当你运行测试程序时,这一点发生了变化。在带有instrumentation的类里,你可以触发方法在UI线程里运行。其它的测试用例类不允许这么做。为了一个完整的测试方法都在UI线程里运行,你可以使用@UIThreadTest来声明线程。注意,这将会在UI线程里运行方法里所有的语句。不与UI交互的方法不允许这么做;例如,你不能触发Instrumentation.waitForIdleSync()。&
如果让方法中的一部分代码运行在UI线程的话,创建一个匿名的Runnable对象,把代码放到run()方法中,然后把这个对象传递给appActivity.runOnUiThread(),在这里,appActivity就是你要测试的app对象。&
例如,下面的代码实例化了一个要测试的Activity,为Spinner请求焦点,然后发送一个按键给它。注意:waitForIdleSync和sendKeys不允许在UI线程里运行:&
& private MyActivity mA // MyActivity is the class name of the app under test&
& private Spinner mS&
& protected void setUp() throws Exception {&
&&&&& super.setUp();&
&&&&& mInstrumentation = getInstrumentation();&
&&&&& mActivity = getActivity(); // get a references to the app under test&
&&&&&& * Get a reference to the main widget of the app under test, a Spinner&
&&&&&& */&
&&&&& mSpinner = (Spinner) mActivity.findViewById(com.android.demo.myactivity.R.id.Spinner01);&
& public void aTest() {&
&&&&&& * request focus for the Spinner, so that the test can send key events to it&
&&&&&& * This request must be run on the UI thread. To do this, use the runOnUiThread method&
&&&&&& * and pass it a Runnable that contains a call to requestFocus on the Spinner.&
&&&&&& */&
&&&&& mActivity.runOnUiThread(new Runnable() {&
&&&&&&&&& public void run() {&
&&&&&&&&&&&&& mSpinner.requestFocus();&
&&&&&&&&& }&
&&&&& });&
&&&&& mInstrumentation.waitForIdleSync();&
&&&&& this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);&
关闭触屏模式&
为了控制从测试程序中发送给模拟器或设备的按键事件,你必须关闭触屏模式。如果你不这么做,按键事件将被忽略。&
关闭触摸模式,你需要在调用getActivity()启动Activity之前调用ActivityInstrumentationTestCase2.setActivityTouchMode(false)。你必须在非UI线程中运行这个调用。基于这个原因,你不能在声明有@UIThread的测试方法调用。可以在setUp()中调用。&
模拟器或设备的解锁&
你可能已经发现,如果模拟器或设备的键盘保护模式使得HOME画面不可用时,UI测试不能正常工作。这是因为应用程序不能接收sendKeys()的事件。避免这种情况最好的方式是在启动模拟器或设备时关闭键盘保护模式。&
你还可以显式地关闭键盘保护。这需要在manifest文件中添加一个权限,然后就能在程序中关闭键盘保护。注意,你必须在发布程序之前移除这个,或者在发布的程序中禁用这个功能。&
在&manifest&元素下添加&uses-permission android:name=”androd.permission.DISABLE_KEYGUARD”/&。为了关闭键盘保护,在你测试的Activity的onCreate()方法中添加以下代码:&
& mKeyGuardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);&
& mLock = mKeyGuardManager.newKeyguardLock(&activity_classname&);&
& mLock.disableKeyguard();&
这里,activity_classname是Activity的类名。&
本文转至&&感谢原文作者的分享
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5545次
排名:千里之外
(1)(2)(1)(1)Android 3D游戏开发技术宝典(PDF教程下载)-百度网盘 Android 3D游戏开发技术宝典(PDF教程下载)-百度网盘
围观1694次
编辑日期: 字体:
图书描述 《Android 3D游戏开发技术宝典:OpenGL ES 2.0》内容简介:随着智能手机移动嵌入式平台硬件性能的不断提升,3D游戏应用也逐渐普及开来。《Android 3D游戏开发技术宝典:OpenGL ES 2.0》结合作者多年从事3D游戏应用开发的宝贵经验,全面介绍了与Android平台相关的必知必会的基础知识及大型完整3D案例,讲解上由浅入深,循序渐进,起点低、终点高,既适合初学者学习,也适合有一定基础的读者进一步提升之用。另外,由于OpenGL ES2.0的着色语言通用于各种移动嵌入式平台,因此,《Android 3D游戏开发技术宝典:OpenGL ES 2.0》中与着色器开发相关的60%左右的内容还可供iPhone、Windows Mobile、MeeGoo等平台的开发人员参考。全书共22章,其中第1章与第2章为Android平台相关的一些基础知识;第3章~第10章介绍了基于OpenGL ES2.0进行3D应用开发的一些必知必会的基本知识;第11章~第15章介绍了一些高级特效的实现方法;第16章~第17章介绍了3D游戏开发中相关的一些物理、碰撞检测知识以及常用的3D物理引擎JBullet:第19章介绍了3种人机交互的高级技术;第20章~第22章给出了3个完整的大型3D游戏案例,总代码量接近6万行。同时为了便于读者的学习,《Android 3D游戏开发技术宝典:OpenGL ES 2.0》附赠的光盘中包含了书中所有案例的完整源代码,同时给出了最后3个完整大型3D游戏案例的讲解视频,最大限度地帮助读者快速掌握相应的开发技术。编辑推荐 《Android 3D游戏开发技术宝典:OpenGL ES 2.0》适合Android程序员、游戏开发者及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。 《Android 3D游戏开发技术宝典:OpenGL ES 2.0》组织上本着“起点低,终点高”的原则,内容覆盖了从学习OpenGL ES 2.0必知必会的基础知识到基于OpenGL ES 2.0实现高级特效,最后还给出了3个完整的大型3D游戏案例。这3个案例均是笔者带领学员参加谷歌(Google)2011第二届Android应用开发中国大学生挑战赛的获奖作品,第22章的夜鹰行动更是获全国总决赛前5名大奖的作品。 《Android 3D游戏开发技术宝典:OpenGL ES 2.0》中配合每个需要讲解的知识点都给出了丰富的插图与完整的案例,使得初学者易于上手,有一定基础的读者便于深入。书中所有的案例均是根据笔者多年的开发心得进行设计的,结构清晰明朗,便于读者进行学习。同时书中还给出了很多笔者多年来积累的编程技巧与心得,具有很高的参考价值。作者简介 吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有10多年的.1ava开发与培训经验。主要的研究方向为OpenGLES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java EE独立软件开发工程师,并兼任百纳科技Java培训中心首席培训师。近十年来为数十家著名企业培养了上千名高级软件开发人员,曾编写过《JavaSE 6.0编程指南》、《菜鸟成长之路——Java程序员职场全攻略》、《Android 2.0游戏开发实战宝典》、《Android核心技术与实例详解》、《Android应用案例开发大全》、《Android游戏开发大全》、《Android应用开发完全自学手册——核心技术、传感器、2D/3D、多媒体与典型案例》等多本畅销技术书籍。2008年年初开始关注Android平台下的应用开发,并开发出一系列优秀的Android应用程序与游戏。 目录第1章 新一代的王者——Android概览 1.1 智能手机市场现状 1.1.1 五大智能手机操作系统 1.1.2 智能手机市场的新星 1.2 Android 平台的特点及未来的趋势 1.2.1 全新理念带来的体验风暴 1.2.2 中国手机市场的主导性作用 1.2.3 手机3D游戏和应用增长迅速 1.3 如何搭建Android开发环境 1.3.1 SDK的安装及环境配置 1.3.2 Eclipse集成开发环境的搭建 1.3.3 创建并启动模拟器 1.4 Hello Android应用程序的开发 1.4.1 第一个Android应用程序 1.4.2 Android应用程序的项目结构 1.4.3 Android应用程序的调试 1.4.4 实际设备的联机调试 1.5 Android 应用程序运行的机制 1.5.1应用程序的系统架构 1.5.2 应用程序框架 1.5.3 Android运行时 1.5.4 系统库 1.5.5底层Linux内核 1.6 本章小结 第2章 游戏开发相关Android基础知识 2.1 游戏中的音效 2.1.1 游戏中的即时音效 2.1.2 即时音效的一个案例 2.1.3 背景音乐播放技术 2.1.4 简易音乐播放器的实现 2.2 简单数据的存储——Preferences 2.2.1 Preferences简介33 2.2.2 Preferences实现访问时间的记录 2.3 手机自带数据库——SOLite 2.3.1 初识SOLite 2.3.2 SQLite数据库的基本操作 2.3.3 SQLite数据库的简单案例 2.3.4 使用ContentProvider组件共享数据 2.3.5 使用ContentResolver获取分享数据 2.4.文件I/O 2.4.1 访问SD卡中的文件 2.4.2 访问手机中的文件夹 2.4.3 读取assets文件夹下的内容 2.5 2D动画的开发 2.5.1 SurflaceView用法简介 2.5.2 使用SurfaceView实现2D动画 2.6 Socket网络通信 2.6.1 Socket开发基本知识 2.6.2 服务器端 2.6.3 客户端 2.7蓝牙通信 2.7.1 蓝牙通信的基本知识 2.7.2 聊天案例概览 2.7.3 聊天案例的开发过程 2.8 本章小结 第3章 初识OpenGL ES 2.0 3.1 OpenGL ES 2.0概览 3.1.1 OpenGL ES 2.0简介 3.1.2 初识 OpenGL ES 2.0 应用程序 3.2 着色器与渲染管线 3.2.1 OpenGL ES 1.x的渲染管线 3.2.2 OpenGL ES 2.0的渲染管线 3.2.3 OpenGL ES中立体物体的构建 3.3 主流Android手机GPU大PK 3.3.1 手机GPU大家族对比 3.3.2 主流GPU的性能参数比较 3.4 本章小结 第4章 着色语言Shading Language 4.1 着色语言概述 4.2 着色语言基础 4.2.1 数据类型概述 4.2.2 数据类型的基本使用 4.2.3 运算符 4.2.4 类型转换 4.2.5 限定符 4.2.6 流程控制 4.2.7 函数的声明与使用 4.2.8 片元着色器中浮点变量精度的指定 4.2.9 程序的基本结构 4.3 特殊的内建变量 4.3.1 顶点着色器中的内建变量 4.3.2 片元着色器中的内建变量 4.4 着色语言的内置函数 4.4.1 角度转换与三角函数 4.4.2 指数函数 4.4.3 常见函数 4.4.4 几何函数 4.4.5 矩阵函数 4.4.6 向量关系函数 4.4.7 纹理采样函数 4.4.8 微分函数 4.5 本章小结 第5章 投影及各种变换 5.1 摄像机的设置 5.2 两种投影方式 5.2.1 正交投影 5.2.2 透视投影 5.3 各种变换 5.3.1 基本变换的相关数学知识 5.3.2 平移变换 5.3.3 旋转变换 5.3.4 缩放变换 5.3.5 基本变换的实质 5.4 绘制方式 5.4.1 各种绘制方式概览 5.4.2 点与线段绘制方式 5.4.3 三角形条带与扇面绘制方式 5.4.4.顶点法与索引法 5.5 设置合理的视角 5.6 卷绕和背面剪裁 5.6.1 基本知识 5.6.2 一个简单的案例 5.7 本章小结 …… 第6章 光照 第7章 纹理映射 第8章 3D基本形状的构建 第9章 3D模型加载 第10章 混合与雾 第11章 常用3D开发技巧 第12章 几种剪裁与测试 第13章 顶点着色器的妙用 第14章 片元着色器的妙用 第15章 真实光学环境的模拟 第16章 游戏开发中的物理学 第17章 游戏的心脏——物理引擎 第18章 传感器应用的开发 第19章 游戏开发小贴士 第20章 BN赛艇 第21章 火力篮球 第22章 夜鹰行动百度网盘:本文固定链接: 转载请注明:
作者:leehom本博客主要是把自己的经验记录于此,方便自己以后查阅及其他遇到类似问题的朋友参考。如果你有觉得不错的文章,可以注册会员发布文章或者邮箱发给我文章地址,谢谢!
如果觉得文章还不错,请麻烦点下广告,算是赞助下本站服务器费用,谢谢! ,,
您可能还会对这些文章感兴趣!

我要回帖

 

随机推荐