第一部分:开发前的准备-第二章 基础入门

第2章 基础入门

本章是一些基础性的东西,学习Android前我们要了解下自己需要具备些什么知识,还有对目前Android设备的分布,有一个大概的了解。

2.1 学习Android前我们需要具备的知识

(1)java基础:包括语法以及一些常用的API。(必要)

(2)面向对象基础:真的很重要(必要)

(3)C/C++基础:以后底层开发可能需要用到。(可选)

(4)有设计模式基础:用于设计软件的架构,可复用面向对象软件的基础。(可选)

(5)英语。自学(可选)

(6)良好的代码风格(必要)

2.1.1java基础

Android绝对大部分是java语法,所以熟悉java是必要的,最好精通java语法。会对你开发一款好的应用起到至关重要的作用。这里我推荐Core Java和Effective Java两本书都要看,仔细的看。如果你要有选择性的慢读,并要实践过,思考过,那么恭喜你!你的java语言基础已经过关了

举个例子:

 

public class Demo
{
  static
  {
  //expr1
  }
  public Demo()
  {
  //expr2
  }
}
//请说出expr1和expr2的区别与作用,面试时常考。

 

 

2.1.2面向对象基础

你必须确保你有良好的面向对象思想,或者深入点面向接口思想。例如很多公司用的网络聊天协议xmpp,它的java版本使用的是过时的goto语句,这种语法完全是面向过程的跳转,很难维护

2.1.3C/C++基础

C/C++这个一直是广泛讨论的话题,喜欢它的人很喜欢,不喜欢的也很不喜欢。但我建议你最好在有空的时候学一下,对于大型项目(对性能要求比较高),PC游戏,服务端来说,它是至关重要的。
2.1.4有设计模式基础

设计模式你需要了解,但不必非要套进去,好的设计模式是你在长期写项目过程中体会出来的,不是说你用了设计模式就一定是好的架构,要用的好,用的灵活。举个例子:用的很多的状态模式。在游戏中经常会用到此模式,但我们写1个只有2种状态的小例子,你难道也用状态机吗?其实2种状态完全可以if (){}else(){}解决它。虽然说好的设计模式的确让软件架构更清晰易维护,但也不能滥用。推荐大家看一本入门级的书<<大话设计模式>>

2.1.5英语

为什么要学英语?答案很简单,计算机新型的技术都是国外发展到国内的,特别是美国。这些新技术的第一手资料都是面向全世界的语言《英语》。好吧,就算你不想学习最新的技能,但源码和API你总要看一下吧,他会发现都是《英语》。再退一万步说,你写代码的命名总要用英语吧。如果你觉得一个“最大值”的变量名用 zuiDaZhi而不用max更好的话,就当我没说!

2.1.6良好的代码风格(必要)

不要小看它,它很重要,决定你代码的可读性,以及顺畅的团队合作

2.2 Android设备统计查询

本节讲述了Android的一些设备统计,关于系统版本,屏幕大小和密度,OpenGL Es版本。

2.2.1平台版本

1. 当前分布

下面是一个基于Android Market上14天访问的设备统计数据,如图2-1所示:

 

图2-1 Android平台版本统计图(2012年5月的数据,来源于Android Market)

下面描述了每个版本对应的名称,分布和API Level,如表格2-1所示。

平台

版本名

API Level

分布

Android 1.5

Cupcake(纸杯蛋糕)

3

0.3%

Android 1.6

Donut(甜甜圈)

4

0.7%

Android 2.1

Eclair(泡芙)

7

5.5%

Android 2.2

Froyo(冻酸奶)

8

20.9%

Android 2.3-2.3.2

Gingerbread(姜饼)

9

0.5%

Android 2.3.3-2.3.7

10

63.9%

Android 3.0

Honeycomb(蜂巢)

11

0.1%

Android 3.1

12

1.0%

Android 3.2

13

2.2%

Android 4.0-4.0.2

Ice Cream Sandwich(冰激凌三明治)

14

0.5%

Android 4.0.3

15

4.4%

表格2-1 对应的版本名称(2012年5月的数据,来源于Android Market)

2. 历史分布

以下是一个历史分布曲线图,如图2-2所示:

 

图2-2 Android历史版本统计图(2012年5月的数据,来源于Android Market)

上图2-2中Android2.3.3系统版本已经成为主流。很快他的颜色块会覆盖越来越多的区域,这只是Android Market上的数据,用做参考。目前国内主流应该都是2.3了

2.2.2屏幕大小和密度

Android设备中有屏幕大小和密度两个概念

(1)大小(sizes): small, normal, large, xlarge

(2)密度(densities): ldpi (low), mdpi (medium), hdpi (high), xhdpi (extra high)

下图2-3和表格2-2描述了Android设备中关于密度和屏幕大小的分布图,关于这些概念我们还会在后面详细描述

 

图2-3 Android设备密度和屏幕大小分布图(2012年最新数据,来源于Android Market)

 

ldpi

mdpi

hdpi

xhdpi

small

2.3%

 

2.4%

 

normal

0.7%

26.2%

57.8%

0.9%

large

0.3%

2%

 

 

xlarge

 

7.4%

 

 

表格2-2 Android设备密度和屏幕大小分布(2012年5月的数据,来源于Android Market)

看完上面的图表后,我们发现目前占有率最高的密度为 hdpi ,占有率最高的屏幕大小为Normal。具体Normal是多少英寸以后会有一篇专门的文章讲解屏幕大小和密度。但这是只是Market上的结果。并且会经常更新,请参考google官网的最新数据

2.2.3OpenGL ES版本

关于OpenGL ES做3D的方面应用的会经常使用。如果你的应用需要支持OpenGL ES可以使用 <uses-feature> 节点的android:glEsVersion。还能使用<supports-gl-texture>节点来声明OpenGL使用的压缩格式。下图2-4和表格2-3分别描述了他们的分布情况

 

图2-4 Android设备OpenGL ES分布图(2012年5月的数据,来源于Android Market)

 

OpenGL ES 版本

分布

1.1 only

15.1%

2.0 & 1.1

84.9%

表格2-3 Android设备OpenGL ES分布数据(2012年5月的数据,来源于Android Market)

看来目前绝大部分的设备都是同时支持2.0和1.1的。仅支持1.1的设备只占15% 左右。

2.3 本章小结

本章介绍了一些我们需要掌握的知识,还有Android设备分布的一些情况,它能给我们做参考,指引一些方向,让我们开发更具有目的性。笔者建议读者最好能尽量多的掌握这些知识。“对付游戏Boss”就更游刃有余了。

本文来自jy02432443,QQ78117253。转载请保留出处,并保留追究法律责任的权利

posted @ 2013-11-18 19:30  jy02432443  阅读(1744)  评论(0编辑  收藏  举报