快速上手:Ophone及Android入门教程


  本文标签:Androind入门教程 OPhone

  下文是JavaEye的zhang_xzhi_xjtu总结的OPhone/Androind入门教程,小编感觉不错,在此推荐给大家学习  。由于OPhone本质上和Android几乎没什么两样,所以虽然本教程中所用的是OPhone,但实质上无异于一个Android入门教程  。

  本教程主要参考

  http://code.google.com/p/androidbmi/wiki/DiveIntoAndroid

  这个教程是一个比较好的教程,但是天下没有人人满意的东西  。

  主要而言,对某些读者,该教程有两个小小的不足,1是繁体字,2是作者照顾了很多刚入门的程序员,写的太细致了,比如还要抽空讲一讲java,xml的一些语法  。

  本文的特点就是,1普通话,2面向有java,xml经验的程序员  。主要是从一个小例子阐述一下OPhone/Android的一些重要概念  。

  本文的目标是除去搭建环境外的一个5分钟快速入门  。并提供一个简单的程序代码可以用来修改验证一些OPhone/Android入门时的想法,并对OPhone/Android的重要概念有一个大致的了解  。

  本文提供的code的测试搭建环境为OPhone  。

  1  背景

  Android是什么?

  Android 是Google开发的基于Linux平台的开源手机操作系统  。

  OPhone是什么?

  OPhone是中国移动OMS系统下定制的手机  。OPhone上的程序和Android是兼容的  。

  Emulator是什么?

  方便程序员开发其他设备上的程序,而对其他设备做的一个软件模拟器  。开发的程序可以在模拟器上部署,执行,调试  。

  2 安装开发环境

  Android: http://code.google.com/p/androidbmi/wiki/InstallAndroid

  JDK5+

  Eclipse3.3+

  ADT

  Android SDK(包含Emulator)

  OPhone: http://www.ophonesdn.com/documentation/ophone/gettingstarted/installing_sdk.html

  JDK5+

  Eclipse3.4.2

  ADT

  WDT

  OPhoneSDK(包含Emulator)

  注意安装的最后步骤在Eclipse中设置Android SDK Location  。

  3 创建简单的OPhone程序

  在Eclipse中创建一个Android project  。

  里面有如下选项需要填写:

  Project Name:项目名称  。

  Package name:命名空间  。

  Activity name:先理解为程序的入口类,以后解释  。

  Application name:程序名称  。

  记得加入android.jar和oms.jar  。

  4 OPhone目录结构及意义

  创建好的OPhone项目有如下基本结构  。

  src:java code  。

  res:OPhone的资源  。

  res\drawable:图片  。

  res\layout:布局描述  。

  res\values:字符串定义  。

  AndroidManifest.xml:描述该OPhone程序  。

  5 OPhone关键概念  。

  部署相关:

  虽然我们是用java开发的,但是结果并不是常见的jar,而是dex,或者apk  。

  过程是这样的,我们编写java,编译成class,优化处理成dex(相对来说mobile还是一个受限环境),和资源一起打包成apk文件  。部署后由Dalvik VM执行  。

  一个Ophone的应用是多个Activity的集合  。可以在AndroidManifest.xml中指定该Ophone App的入口Activity.

  一个Activity是一个和用户的基本交互流,有其自身的生命周期  。Activity之间可以通过Intent传递信息  。

  关于Activity的生命周期可以参考

  http://code.google.com/p/androidbmi/wiki/LifeCycle

  一个Activity的实现采用的是MVC,其中code部分负责MC,res\layout中的xml负责View  。

  App中使用的字符串都可以放在res\values下xml中统一维护,方便系统的维护,管理  。

  项目自动生成一个R.java来管理资源相关的引用  。开发者不需要手动修改该文件  。

  6 小例子截图  。

  这个例子的功能是用户输入名字,程序对该用户说hello  。

  用户输入名字 程序对该用户说hello

  7 关键代码解释

  HelloOPhone定义了入口Activity  。

  Echo定义了打招呼的Activity  。

  看看HelloOPhone的View部分是怎么定义的,xml的自描述性真好,都不用解释  。

  Xml代码

  

  1. < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  2.     android:orientation="vertical" android:layout_width="fill_parent"    
  3.     android:layout_height="fill_parent">    
  4.     
  5.     < TextView android:layout_width="fill_parent"    
  6.         android:layout_height="wrap_content" android:text="@string/input_msg" />    
  7.     
  8.     < EditText android:id="@+id/name" android:layout_width="fill_parent"    
  9.         android:layout_height="wrap_content" android:text="" />    
  10.     
  11.     < Button android:id="@+id/ok" android:layout_width="fill_parent"    
  12.         android:layout_height="wrap_content" android:text="@string/ok" />    
  13.     
  14. < /LinearLayout>    

  

  看看一个Activity是怎样和这个xml联系起来的  。通过自动生成的R.java中的定义  。注意定义的xml文件名改变R会自动刷新  。

  Java代码

  

  1. setContentView(R.layout.input);   

  

  再看看一个Activity如何通过xml中的id找到该View.

  Java代码

  

  1. b_ok = (Button) findViewById(R.id.ok);   

  

  再看看Activity怎么通过Intent启动另一个Echo Activity,并且给那个Activity传递信息  。

  Java代码

  

  1. Intent intent = new Intent();    
  2. intent.setClass(HelloOPhone.this, Echo.class);    
  3.     
  4. Bundle bundle = new Bundle();    
  5. bundle.putString("name", name);    
  6. intent.putExtras(bundle);    
  7.     
  8. startActivity(intent);    

  

  再看看Echo如何接收传递来的信息  。

  Java代码

  

  1. Bundle bunde = this.getIntent().getExtras();    
  2. String name = bunde.getString("name");    

  

  最后简单的看看AndroidManifest.xml如何描述该app  。

  其中指明了命名空间,程序的图像等等  。

  同时指出该app由2个Activity组成,并设置了HelloOPhone为入口Activity  。

  Xml代码

  1. < manifest xmlns:android="http://schemas.android.com/apk/res/android"    
  2.     package="allen.oms" android:versionCode="1" android:versionName="1.0.0">    
  3.     < application android:icon="@drawable/icon" android:label="@string/app_name">    
  4.     
  5.         < activity android:name=".HelloOPhone" android:label="@string/app_name">    
  6.             < intent-filter>    
  7.                 < action android:name="android.intent.action.MAIN" />    
  8.                 < category android:name="android.intent.category.LAUNCHER" />    
  9.             < /intent-filter>    
  10.         < /activity>    
  11.     
  12.         < activity android:name=".Echo" android:label="@string/app_name" />    
  13.     
  14.     < /application>    
  15. < /manifest>     

  OPhone/Androind入门教程到此结束,希望对大家有所帮助  。