OPhone入门讲义.doc

上传人:laozhun 文档编号:2393699 上传时间:2023-02-17 格式:DOC 页数:44 大小:1.79MB
返回 下载 相关 举报
OPhone入门讲义.doc_第1页
第1页 / 共44页
OPhone入门讲义.doc_第2页
第2页 / 共44页
OPhone入门讲义.doc_第3页
第3页 / 共44页
OPhone入门讲义.doc_第4页
第4页 / 共44页
OPhone入门讲义.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《OPhone入门讲义.doc》由会员分享,可在线阅读,更多相关《OPhone入门讲义.doc(44页珍藏版)》请在三一办公上搜索。

1、OPhone 手机软件编程入门(公选课讲义)郑晖 编广州大学 机械与电气工程学院2010.9OPhone 手机软件编程入门(讲义)目录122.12.22.3引言.1OPhone 编程环境.2OPhone 背景知识介绍.2OPhone 开发环境.4创建项目.42.3.1 准备工作.42.3.2 操作步骤.52.3.3 查看项目结构.72.3.4 查看源代码文件.82.3.5 查看界面布局文件.82.3.6 查看配置文件.92.3.7 运行.103 2.4练习. 11Activity .12 3.1基础知识.123.2入门.123.2.1 Activity 初步认知 .123.2.2 步骤.133

2、.2.3 核心代码理解.153.2.4 练习.163.2.5 其它代码理解.173.2.6 API 帮助文件阅读练习 .173.3小进一步.183.3.1 Activity 类进一步理解 .183.3.2 图形控件的使用模式.183.3.3 单 Activity 多界面 .193.444.14.2小结.19图形界面设计入门.20基础知识.20简介.204.2.1 View 对象常用属性 .214.2.2 View 对象常用事件 .234.3图片显示.234.3.1 显示图片的例子.24广州大学 郑晖IOPhone 手机软件编程入门(讲义)4.3.2 简单的切换.264.44.555.15.25

3、.35.4动画显示.28练习.29增加一个 Activity .305.1.1 步骤.31切换 Activity .32子 Activity 返回 .33传递数据给子 Activity .335.4.1 putExtra()和 getStringExtra() .335.4.2 通过 Bundle 传递 .335.5从子 Activity 返回数据给主 Activity .345.5.1 主 Activity 代码 .345.5.2 子 Activity 代码 .355.65.7范例代码.355.6.1 练习.40小结.40Activity 切换 .30广州大学 郑晖IIOPhone 手机软件

4、编程入门(讲义)1引言本教材是专门为广州大学全校性通识课程编写的。该课程的总学时数为 18学时,分 6 次课,每次 3 学时。该课程面向的学生是对基于 OPhone(Android)平台进行手机应用开发感兴趣的理工科学生,不要求一定是计算机类专业的学生,不要求一定掌握 Java 语言,但至少需掌握 C/C+/Java 中的一种,对计算机编程语言的基本概念和术语了解清楚。从该课程的学时数和对学生的要求可以看出,该课程的定位是一门入门课程,而且是快速入门的引导课程,志在引起学生的兴趣,给学生指引学习的方向,使学生掌握进一步学习手机软件编程的自学方法。基于 OPhone(Android)平台进行应用

5、开发(产品设计)按难度和深度可以划分为多个层次,比如应用开发、组件开发、平台移植、硬件驱动设计、硬件设计等。本教材的内容仅涉及最简单的应用开发,涉及到的专题也只是OPhone(Android)平台提供的各种组件中的一小部分。但是,本教材在内容组织上将重点突出学生如何学会使用别人提供的组件来搭建自己的应用这一着眼点。因此,它不是一本工具教材,不会详细教你具体如何使用每种组件,而是一本入门阶段的导读类型的书,指引你在不同状态下查阅、学习其它的教材和网络材料。由于不要求学生预先掌握 Java 语言,因此本书会指出范例代码中的 Java 术语和概念并简单解释,引导学生去找其它的教材进行深入学习。由于是

6、快速入门,本书引导学生采用的学习方法是“模仿”,从现成的基本应用程序入手,先复制,再修改。暂时不理解的先囫囵吞枣照抄,仅改动想变动的部分。先做起来,别问为什么。这种方法的好处是能够迅速看到成果,增强信心和兴趣,缺点是基础不扎实,需要回头补。这是使用本教材的同学需清醒认识的,不是说我照着步骤做编几个程序,能运行起来,画面能动起来我就会编程了,离入门还远着呢!学习方法:练:敲代码,改代码,看运行结果,提出新想法;学会找资料;运行、修改别人的例子程序,对导致程序跑不起来的问题的发现和解决过程本身就是很好的学习;设想一个具体的不大的需求作为目标,实现后不断地增加其功能;广州大学 郑晖1OPhone 手

7、机软件编程入门(讲义)2OPhone编程环境本章内容:背景介绍;介绍 OPhone SDK、Android Development Tools 及 Eclipse 开发环境;通过一个简单的例子介绍创建项目的方法,项目的目录结构;练习:创建一个 OPhone 项目;本章重点:让学生了解 OPhone 是什么,OPhone 应用编程的定位在哪里,如何学习这门课程,如何自学。2.1OPhone背景知识介绍什么是 OPhone?这个词可以指手机,也可以指一种运行在手机上的软件平台(或者说是操作系统)。OPhone 手机是指按照中国移动的要求定制的运行OPhone 软件平台的手机。在本教材中,OPhon

8、e 是指手机软件平台。OPhone 是由播思通讯基于 Google 的 Android 平台设计的。而 Android 的基础是 Linux 操作系统。我们可以笼统地理解为,Android 是 Linux 上的一个平台式应用(类似于比如 KDE 等 GUI 界面),OPhone 是基于 Android 架构的一个包装和扩展,对驱动、常用组件、风格等进行了增加和修改,增加了贴合中国移动的通信服务的应用。于是我们可以从表面到深入这样理解 OPhone:OPhone 是我们使用手机时看到的操作界面,它上面有很多应用;OPhone 的应用通过 Android 的和 OPhone 的组件(类库)使用 A

9、ndroid的架构提供的服务;Android 架构的底层是基于 Linux 操作系统与手机硬件打交道的;所以学习 OPhone 应用设计基本上等于学习 Android 应用设计,初步的学习仅涉及应用本身,深入的学习则需要涉及 OPhone/Android 架构和 Linux。学习或者参与 OPhone 的设计,我们可以从事哪些方面的工作呢?最容易上手,需求量也最大的是应用设计,就是基于平台提供的组件以及其它应用提供的组件设计自己的应用。设计出来的应用可以给自己用,也可以给别人用,可以发布在移动应用商店供别人下载。广州大学 郑晖2OPhone 手机软件编程入门(讲义)设计不涉及特殊硬件的应用不需

10、要掌握移动通信技术的知识,不需要掌握硬件知识,不需要熟悉 Linux 操作系统,只需要掌握 Java 语法就可以了。更专业的工作则包括组件开发、平台移植、硬件驱动设计、硬件设计等,我们举例说明。例子 1:某手机主板设计公司的手机原来不支持 OPhone 的,现在要支持OPhone,要做哪些工作?(前提:其手机芯片组能支持 Linux 操作系统,内存容量足够)首先是 Linux 操作系统的移植,基于 Linux 对硬件的各功能模块的驱动程序的设计,在 Linux 层面实现对硬件的控制。其次是 OPhone/Android 平台的移植,将 OPhone 平台上的各组件与驱动程序相连,使 OPhon

11、e 组件可以通过驱动程序实现对硬件的控制。涉及平台移植的情形除了硬件更替外,还包括 Linux 版本、Android 版本的变更等情况。我们需注意到软件的版本问题,Linux Kernel 有版本的变化,Android 有Android 的版本,OPhone 有 OPhone 的版本,有的新版本和旧版本还不兼容。例子 2:某手机主板设计公司要在其 OPhone 手机上增加一个新的硬件功能,比如移动电视,那么涉及的工作就包括:硬件设计:怎样将原主板与新硬件模块连接;驱动设计:在 Linux 上对该硬件模块进行控制;OPhone 组件设计:设计一个组件,向应用提供控制接口,通过驱动程序对硬件模块进

12、行控制;例子 3:中国移动打算提供一种新的服务,需要在 OPhone 上提供一个新组件供应用方便地使用该服务。比如说,一个根据 IP 地址和手机号码确认对方身份的服务。假如对方也是通过移动的网络接入互联网的话,可以验证对方的 IP地址和手机号码是否匹配。于是涉及的设计工作包括:在中国移动的服务器上增加一套软件,提供服务接口以验证 IP 地址和手机号码的一致性;在 OPhone 平台上设计一个组件,向应用提供服务接口,通过访问服务器上的服务来完成验证;广州大学 郑晖3OPhone 手机软件编程入门(讲义)2.2OPhone开发环境OPhone 应用采用 Java 语言进行设计,其开发工具使用 E

13、clipse,具体安装步骤请参考 安装 Eclipse;安装 OPhone sdk;在 Eclipse 上进行 OPhone 库和 Android Development Tools(ADT)的配置和更新;此外,我们还要准备以下帮助文档:Java API 的帮助文档;Android API 的帮助文档;OPhone API 的帮助文档;另外,推荐一个简单的设计界面的工具:DroidDraw。2.3创建项目“项目”是指 Eclipse 上的设计项目,我们为每一个应用创建一个项目。我们需要掌握的第一个基本技能:创建一个新项目。2.3.1准备工作准备工作:为几个相关对象起名字。对象项目名称描述在 E

14、clipse 中表示一个目列表中。因此项目名称不要重复。在操作系统的文件目录下,表现为工作目录下的一个子目录。PackageJava 术语,用来对多个java 文件分类。用小数点分隔的多个英文单词,全部小写。一般来说,头 1取名规则英文词组,单词之间可以有空设计项目,名字将出现在项 格,单词第 1 个字母大写。在 操 作 系 统 的 文 件 目 个或几个单词用于区分企业或设录下,表现为项目目录下的 计者,后面的单词用来表示代码的src 子目录的一个子目录结 用途。构。Activity类名项目主类的类名。录下,表现为 package 子目录下的名为“.java”的文件。广州大学 郑晖4每个英文单

15、词在文件目录下表现为一个子目录的名称。英文词组,单词之间不要有空在 操 作 系 统 的 文 件 目 格,单词第 1 个字母大写。OPhone 手机软件编程入门(讲义)Java 课外学习:Eclipse 操作、package、类、面向对象。2.3.2操作步骤在 Eclipse 上选择 File/New/Project:出现以下界面:广州大学 郑晖5OPhone 手机软件编程入门(讲义)选择 OPhone,点击 Next,出现以下界面:在该界面的第 1 行“Project name”中输入项目名称,在“Package name”中输入 package,在“Create Activity”中输入 A

16、ctivity 类名。例子中的项目名称为LearningProject1,package 为 hzheng.ophone.entry,Activity 类名为 MyActivity,如下图所示。广州大学 郑晖6OPhone 手机软件编程入门(讲义)点击 Finish,则项目自动创建完毕。2.3.3查看项目结构点开项目 LearningProject0,其目录结构如下图所示:请大家观察以下文件的位置:.java;(本例子是 MyActivity.java)main.xml;AndroidManifest.xml;用 Windows 的资源管理器(explorer)查看硬盘上的文件目录结构,同样观

17、察上述文件的位置。广州大学 郑晖7OPhone 手机软件编程入门(讲义)2.3.4查看源代码文件在 Eclipse 的 项 目 目 录 中 , 双 击 .java ( 本 例 子 是MyActivity.java),在内容框里会出现自动生成的主 Activity 的缺省代码。2.3.5查看界面布局文件缺省的界面布局文件为 res/layout/main.xml,由于 ophone plugin 的原因,xml文件暂时不能双击打开,须通过“右键Open WithText Editor”的方式打开。广州大学 郑晖8OPhone 手机软件编程入门(讲义)2.3.6查看配置文件配置文件在项目的根目录下

18、,名字为 AndroidManifest.xml,同样须通过“右键Open WithText Editor”的方式打开。广州大学 郑晖9OPhone 手机软件编程入门(讲义)2.3.7运行选择项目名称,点击“右键/Run As/OPhone Application”。等待一段时间后,会弹出 OPhone 仿真器。耐心等待,等到 Eclipse 的 Console 窗口出现以下信息: 2010-09-13 21:35:58 - LearningProject0 Installing LearningProject0.apk. 2010-09-13 21:36:13 - LearningProje

19、ct0 Success! 2010-09-13 21:36:13 - LearningProject0 Starting activity hzheng.ophone.entry.MyActivityon device 2010-09-13 21:36:19 - LearningProject0 ActivityManager: Starting: Intent广州大学 郑晖10OPhone 手机软件编程入门(讲义) comp=hzheng.ophone.entry/hzheng.ophone.entry.MyActivity 说明应用已经被安装到仿真器并运行。这时就可以在仿真器上看到运行结果

20、了。2.4练习按照步骤自行拟定相关名称,创建一个项目并运行。修改 main.xml:将 android:text=string/hello一句中双引号中的内容改为其它字符串,比如“1234567”等等,重新运行看看效果。不修改 main.xml,而是修改“res/values/strings.xml”中下面语句的内容,重新运行看看效果。Hello World, MyActivity!广州大学 郑晖11OPhone 手机软件编程入门(讲义)3Activity本章内容:介绍基本界面应用程序的一种设计过程;介绍 Activity 类、Button 类,Button 事件处理函数;练习:创建包含 Bu

21、tton 和 TextView 的项目;本章重点:了解 Activity 类型的应用程序的基本结构。3.1基础知识自学 Java 基础知识:类、实例(对象)、方法、属性、类的派生。3.2入门通过上一章的学习,我们了解到,Android/OPhone 开发平台将一个项目的内容划分为三个主要部分:代码、资源和配置文件。界面的静态布局由 res/layout 子目录下的布局文件(xml 格式)定义,配合相应的代码,我们可以在界面上显示相应的布局,获取 GUI 控件的引用。界面布局中和代码中用到的常量(字符串、控件大小、文本大小、文本字体等)建议在 res/values 子目录下的相关文件中定义。还可

22、以在相关文件中定义界面风格,以减少代码和布局的工作量。界面布局中和代码中用到的图片放在 res/drawable 目录下,png、gif、jpg 等格式都可以。配置文件的作用以后再介绍,本章的主要目的是引导大家掌握编写一个单界面模块应用的基本方法。本章基于一个例子进行讲解,其界面是在自动创建的项目的界面上,增加一个文本框和一个按钮。文本框中显示一个数字,当按动按钮时,显示的数字增加。3.2.1Activity初步认知Android 的应用由两种类型的模块组成:Activity 和 Service。Activity 是带界面的模块,Service 是运行在后台的模块。广州大学 郑晖12OPhon

23、e 手机软件编程入门(讲义)一个 Android 应用可以包含若干个 Activity 模块和若干个 Service 模块。初学时,我们从带界面的应用入手。先学习一个界面的应用,再学习多个界面的应用。怎么写自己的应用?创建一个从 Activity 派生的类,重写其主要方法。(初入门时一般仅需重写 onCreate()方法)3.2.2步骤准备工作:按照前一章的方法,创建一个 package 为 hzheng.ophone.entry,类名为 MyActivity 的应用。运行 droiddraw,从右上角的控件面板中拖动一个 TextView 和一个 Button 到左边的界面中任意位置,点击右

24、下角的“Generate”,可以看到在右下的文本框中出现了对应界面的 xml 布局定义文本。修改 main.xml,以 droiddraw 生成的文本替换原有文本,然后按照下文中的黑体字进行修改:广州大学 郑晖13OPhone 手机软件编程入门(讲义)修改 MyActivity.java,修改 onCreate()的代码(在原有代码中增加下文中黑体显示的代码):package hzheng.ophone.entry;importimportimportimportimportimportandroid.app.Activity;android.os.Bundle;android.view.Vi

25、ew;android.view.View.OnClickListener;android.widget.Button;android.widget.TextView;public class MyActivity extends Activity int mCount =1;TextView mTextView; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);

26、setContentView(R.layout.main);广州大学 郑晖14OPhone 手机软件编程入门(讲义)mTextView = (TextView)findViewById(R.id.textview1);Button pButton = (Button)findViewById(R.id.button1);pButton.setOnClickListener( new OnClickListener() public void onClick(View v) mCount +; mTextView.setText(Integer.toString(mCount); );3.2.3

27、核心代码理解在界面中增添文本框和按钮等图形组件的方法有多种,最基本的一种是在界面布局文件中配置。缺省的 Activity 对应的界面配置文件是 main.xml,开发者可以增加多个界面布局文件。界面布局文件的文件名称可以自由更改,但是必须和代码中的“setContentView()”语句的输入参数“R.layout.”相配合。布局文件名称代码main.xmlsetContentView(R.layout.main)我们在 main.xml 中增加了以下对应文本框的文本,其中我们给文本框起了一个名字,就是 id 对应的字符串,这个名字需要与主代码中 findViewById()方法的输入参数相配

28、合。其它的内容是有关文本框的属性的。布 局 文件内容mTextView = (TextView)findViewById(R.id.textview1);代码对应按钮的文本如下,同样给这个按钮起一个名字。布 局 文件内容Button pButton = (Button)findViewById(R.id.button1);如果仅仅是在界面上显示一个文本框和一个按钮,仅修改 main.xml 也可以了,我们可以运行一下看看效果。然而我们需要在点击按钮的时候做一些操作,于是我们增加一个对应点击按钮这个事件的事件处理方法。(读者可进一步自学有关事件处理机制的话题)这个设计包括 3 个步骤:获得按钮的实例;向按钮实例设置事件处理实例(OnClickListener 类的一个实例);编写事件处理代码(OnClickListener 类的 onClick()方法);Button pButton = (Button)findViewById(R.id.button1);pButton.setOnClickListener( new OnClickListener() pub

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号