Android
Android平台开发概述
Dec 12th
如何从一个Java EE开发人员,转向到Android平台开发呢?其实很容易,这一点从我身上得到了验证,但是要做好,还是有一定难度的。
首先是下载Android SDK,地址是:http://developer.android.com/sdk/ (可能需要通过特殊方式访问),再启动我们的利器Eclipse,然后安装插件,在线安装的地址是:https://dl-ssl.google.com/android/eclipse/,配置好Android SDK的路径。
我只是简单的带过了配置过程,如果还有不明白的,需要详细的配置过程可以参考这个网址:http://news.congci.com/news/windows7-android-eclipse-adt
接下来的就可以创建一个Hello的工程,启动模拟器,开始我们快乐而苦闷的Android开发之旅了。我们先来了解几个概念。
1、Dalvik Virtual Machine
Dalvik虚拟机可以说是对应于Java虚拟机,但是二者之间是不同的。“JVM是一种堆栈机器,而Dalvik虚拟机则是基于寄存器的,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。”
2、Intent
这个对刚接触这个概念的人来说,有点抽象。不过我们可以做个设想,就是所有的程序都可以通过URL(Uniform Resource Locator,统一资源定位符)或者URI(Uniform Resource Identifier,统一资源表识符)来访问,对,在Android平台就是这样来实现了,当然现在有些其它平台也是这样设计的。
thunder://QUFodHRwOi8vd3d3LjE1My54ZG93(迅雷的下载地址)
qqdl://aHR0cDovL3d3dy4xNTMueGRvd25zLmN(QQ下载)
flashget://W0ZMQVNIR0VUXWh0dHA6Ly93d3c(Flashget下载)
http://www.herbertyang.com(网址)
我想此刻你可以理解到这样的请求已经在我们周围发生了,我们在大胆的想下云操作系统是否也可以这样实现呢?如果没错的话,以后就是浏览器的时代,当然浏览器的理解只是这个时代的范畴。
3、Activity
这个概念还好理解,Android的Activity与用户界面屏幕之间多为一对一的关系,Android应用程序包括多个Activity,Activity之间可以相互携带数据切换。
4、View
View可以理解成控件,常用的控件有:TextView, EditView, ListView, ImageView, TabHost, ViewGroup 等等。
当然还包括控件的布局View
- RelativeLayout:相对布局
- LinearLayout:线性布局
- FrameLayout:框架布局
- AbsoluteLayout: 绝对布局
学过Java SE的界面设计的话,这些应该比较好理解,只不过现在是把布局的Code写到了XML里面。
如何协作开发?
虽然到此还不能熟练的进行开发,不过这只是一个时间问题了。下面我们来讲解下如何进行协作开发,这个也是探索的最宝贵的经验。
我们还得讨论到三层架构,这个是我们分工协作的关键,也是我们能够井然有序的基本前提:
- 表现层:1、用户界面,2、交互
- 业务层:逻辑
- 数据层:1、访问SQLite/XML 2、Contacts 3、Web API 4、LBS
是的,和传统的Web开发模式是一样的。
参考文献
Android 屏幕尺寸
Nov 19th
你也许刚好在找这个:
* QVGA — 240 x 320, low density (120 dpi)
* HVGA — 320 x 480, medium density (160 dpi)
* WVGA800 — 480 x 800, high density (240 dpi)
* WVGA854 — 480 x 854, high density (240 dpi)
在eclipse中查看Android SDK源代码
Sep 23rd
首先是下载你使用的Android SDK相对应的源代码
下面这个网站有各种版本的源代码:
http://rgruet.free.fr/public/
android-1.5-cupcake-src.zip 04-Oct-2009 03:07 21.6M
android-1.6_r1-donut-src.zip 04-Oct-2009 03:02 22.9M
android-2.0-eclair-src.zip 21-Nov-2009 01:21 24.4M
android-2.1-eclair-src.zip 06-Jul-2010 13:08 30.2M
android-2.2-froyo-src.zip 06-Jul-2010 12:59 33.4M
然后在对应的SDK版本下目录下建立sources目录,在把代码解压到sources目录下,这样Eclipse就可以直接识别源代码了。
为什么是这个目录呢?
查看 Windows –> Preferences –> Java Build Path –> Libraries –> Android 2.X – > android.jar –> Source attachment
我的步骤:
下载:
http://rgruet.free.fr/public/android-2.1-eclair-src.zip
我的SDK_HOME 是:/home/app/android-sdk/
建立source目录:/home/app/android-sdk/platforms/android-2.1_r01-linux/sources
下面是我的目录结构:
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/android
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/com
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/dalvik
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/dasm
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/data
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/dex
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/dot
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/dxc
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/dxconvext
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/jar
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/java
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/java_cup
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/javax
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/jdiff
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/jp
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/junit
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/mock_android
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/org
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/other
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/otherpackage
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/otherpkg
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/proguard
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/signature
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/spechelper
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/SQLite
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/src
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/sun
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/targets
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/testprogress2
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/tests
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/util
/home/app/android-sdk/platforms/android-2.1_r01-linux/sources/LICENSE