简明OPhone/Android入门体验(有图有源码)

本文提供了一个5分钟快速入门OPhone/Android的指南,适用于有Java和XML经验的程序员。文章通过一个小例子介绍了OPhone的关键概念,如Activity、Intent和Dalvik虚拟机,并提供了源代码用于实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要参考
[url]http://code.google.com/p/androidbmi/wiki/DiveIntoAndroid[/url]
这个教程是一个比较好的教程,但是天下没有人人满意的东西。
主要而言,对某些读者,该教程有两个小小的不足,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:
[url]http://code.google.com/p/androidbmi/wiki/InstallAndroid[/url]
JDK5+
Eclipse3.3+
ADT
Android SDK(包含Emulator)

OPhone:
[url]http://www.ophonesdn.com/documentation/ophone/gettingstarted/installing_sdk.html[/url]
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的生命周期可以参考
[url]http://code.google.com/p/androidbmi/wiki/LifeCycle[/url]
一个Activity的实现采用的是MVC,其中code部分负责MC,res\layout中的xml负责View。
App中使用的字符串都可以放在res\values下xml中统一维护,方便系统的维护,管理。
项目自动生成一个R.java来管理资源相关的引用。开发者不需要手动修改该文件。

6 小例子截图。
这个例子的功能是用户输入名字,程序对该用户说hello。
[img]/upload/attachment/150456/630f7b28-ca33-38b3-b187-f9e60be2baa2.jpg[/img]

7 关键代码解释
HelloOPhone定义了入口Activity。
Echo定义了打招呼的Activity。

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/input_msg" />

<EditText android:id="@+id/name" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="" />

<Button android:id="@+id/ok" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/ok" />

</LinearLayout>


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


再看看一个Activity如何通过xml中的id找到该View.
b_ok = (Button) findViewById(R.id.ok);


再看看Activity怎么通过Intent启动另一个Echo Activity,并且给那个Activity传递信息。
				Intent intent = new Intent();
intent.setClass(HelloOPhone.this, Echo.class);

Bundle bundle = new Bundle();
bundle.putString("name", name);
intent.putExtras(bundle);

startActivity(intent);


再看看Echo如何接收传递来的信息。
		Bundle bunde = this.getIntent().getExtras();
String name = bunde.getString("name");


最后简单的看看AndroidManifest.xml如何描述该app。
其中指明了命名空间,程序的图像等等。
同时指出该app由2个Activity组成,并设置了HelloOPhone为入口Activity。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="allen.oms" android:versionCode="1" android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".HelloOPhone" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".Echo" android:label="@string/app_name" />

</application>
</manifest>
内容概要:本文介绍了奕斯伟科技集团基于RISC-V架构开发的EAM2011芯片及其应用研究。EAM2011是一款高性能实时控制芯片,支持160MHz主频和AI算法,符合汽车电子AEC-Q100 Grade 2和ASIL-B安全标准。文章详细描述了芯片的关键特性、配套软件开发套件(SDK)和集成开发环境(IDE),以及基于该芯片的ESWINEBP3901开发板的硬件资源和接口配置。文中提供了详细的代码示例,涵盖时钟配置、GPIO控制、ADC采样、CAN通信、PWM输出及RTOS任务创建等功能实现。此外,还介绍了硬件申领流程、技术资料获取渠道及开发建议,帮助开发者高效启动基于EAM2011芯片的开发工作。 适合人群:具备嵌入式系统开发经验的研发人员,特别是对RISC-V架构感兴趣的工程师和技术爱好者。 使用场景及目标:①了解EAM2011芯片的特性和应用场景,如智能汽车、智能家居和工业控制;②掌握基于EAM2011芯片的开发板和芯片的硬件资源和接口配置;③学习如何实现基本的外设驱动,如GPIO、ADC、CAN、PWM等;④通过RTOS任务创建示例,理解多任务处理和实时系统的实现。 其他说明:开发者可以根据实际需求扩展这些基础功能。建议优先掌握《EAM2011参考手册》中的关键外设寄存器配置方法,这对底层驱动开发至关重要。同时,注意硬件申领的时效性和替代方案,确保开发工作的顺利进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值