【网学网提醒】:网学会员为您提供3G Android手机开发参考,解决您在3G Android手机开发学习中工作中的难题,参考学习。
3GAndroid手机开发
目录
一、二、三、四、(一)(二)五、六、Android概述.............................................................................................................2Android架构..............................................................................................................4市场前景....................................................................................................................5项目介绍....................................................................................................................7电话拨号程序............................................................................................................7短信发送
程序..........................................................................................................10组员分工..................................................................................................................12项目体会..................................................................................................................13
1
3GAndroid手机开发
一、Android概述
是什么?1.Android是什么?Android是一个平台,主要包括Linux微内核,中间件(SQLite等),关键应用(电话本、邮件、短消息、GoogleMap、浏览器等),提供的Java框架,以及Android中的JVM。2.Android关键类视图,ContentProviders(应用交互管理类)、ResourceManager非编码资源管理类、NotificationManager(通告管理类)、ActivityManager(生命周期管理类)。3.界面开发这一块主要讨论了Android的界面开发机制,可以讲组件的初始化抽取出来放到配置文件中,组件更新用编码方式来处理。4.应用构成Android的应用一般由以下四个关键部分构成Activity、IntentReceiver、Service、ContentProvider。其中Activity是必要部分。应用场合:Activity每个应用都是必须得,Activity代表一个应用的一个具体的界面管理类,其本身并不显示。IntentReceiver可使应用对外部事件做出响应,比如,当应用正在执行,突然有了来电,这个时候可使用IntentReceiver做出处理是应用更健壮。ServiceAndroid应用的生命周期是由Android系统来决定的,不由具体的应用的线程左右。当应用要求在没有界面显示的情况还能正常运行,(要求有后台线程,而后台线程是不会被系统回收,直到线程结束)这个时候就需要用到ServiceContentProvider可以说ContentProvider封装很多Android当中的上下文环境,包括SQLite,这就使得在不同应用之间交互成为可能。5.布局管理FrameLayout:左上角只显示一个组件。LinearLayout:线性布局管理器,分为水平和垂直俩中,只能进行单行布局。TableLayout:任意行和列的表格布局管理器。其
中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。AbsoluteLayout:绝对布局管理器,坐标轴的方式,左上角是(0,0)点,往右x轴递增,往下Y轴递增。RelativeLayout:相对布局管理器,更具最近一个视图组件,或是顶层父组件来确定下一个组件的位置。6.Activity交互Intent方式:Intent其实就是用来在Activity之间做交互用的,需要说明的是Intent有个意图说明,值得用深究,举个简单的例子,有种叫Intent.ACTION_CALL,可直接拨打电话。
2
3GAndroid手机开发SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置。SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,最终是以xml方式来保存,效率不如Intent,但是由于可以共享,所有可以再Acitivity之间交互。但其效率比SQLite要高。SQLite也就是数据库,这种方式不推介,因为其效率问题,如果是在不同应用之间交互,可以考虑SQLite。或是永久存储的情况下。7.Android生命周期理解Android生命周期非常重要,主要有以下几点每一个Android应用都是以一个进程的方式运行的,其生命周期不是有自身控制,而是由系统根据运行的应用的一些特征来决定。所有理解好Android生命周期对你的应用什么时候会被系统回收很重要。理解好生命周期可提高应用的健壮性。比如应用的初始化应该放到onCreate方法中,应用暂停的时候应用重写onPause方法来保存当前应用操作结果。8.SQLiteSQLite是Android中提供的内置数据库,据说比MySql更轻巧。SQLite也是开源产品。数据库的操作方式主要有以下俩中:SQL语句直接操作,插入、更新、删除都可以直接写SQL语句,调用execSQL()就可以,而查询需要使用rawQuery()来完成,
查询结果返回是一个可滚动的结果集,Cursor在对Cursor操作前,需要将其游标移动到第一位,每取一个结果向下移一位。9.Android实际开发经验分享(1)自定义组件的显示
问题,在写自定义View的时候经常要对视图的X、Y调整,以达到预期的理想位置。可以讲每个组件的X、Y坐标值画到组件旁边,这样很直观,一看就知道该怎样调整。(2)使用Log来打印日志和进行调试。(3)使用LogCat视图,在showView中有LogCat视图,LogCat视图会显示一些Android仿真器打印出的堆栈信息,对应用的调试非常有帮助,另外Log打印的日志也在这边显示。(4)使用EmulatorControl视图,EmulatorControl可以完成一些简单的设备操作,比如,模拟来电,短消息。(5)活用tools目录下的工具,该目录在AndroidSDK中都有提供,通
过这些工具可以操作Android仿真器,比如,创建一个虚拟SD卡,将系统中的文件移动到虚拟SD中,Android都有提供相应的工具,相关命令可以上网查阅。10.Android开发环境软件准备:Java1.5+Eclipse3.3+Android1.5r3
3
3GAndroid手机开发AndroidADT开发环境配置1)JDK2)Eclipse3)AndroidSDK4)ADT
二、Android架构
下图给出了Android操作系统的大部分组件。
应用程序Android的配置搭载它的核心应用,包括email客户端,SMS程序,日历,地图,浏览器,contacts以及其它一些应用。所有的应用都是用java语言编写的。应用程序框架开发人员具有和核心应用相同的框架API访问权限。应用
程序的构建模式被设计成简单的可重用的组件。所有应用能够分享他的能力,所有应用都是如此(这是被框架强迫的安全约束)。这样允许用户在相同的机器上替换组件。一套用于支撑应用的服务和系统,包括:一套强大和可扩展的视图,用于构建应用,
4
3GAndroid手机开发包括列表,网格,文本框,按钮,甚至内嵌的Web浏览器。内容提供,用于应用间的数据提供和数据共享。一个资源管理器,提供非代码的资源支持,包括本地字符串,图像文件,和布局文件。一个Notification管理器,用于应用程序在状态栏显示告警信息。一个Activity管理器,用于管理应用的生命周期,以及提供通用的导航辅助。库Android包含一整套C/C++库,用于构建Android系统的大量不同的组件。这些能力通过Android应用
程序框架暴露给开发人员。其中包含:系统C库,媒体库,Surface管理,LibWebCore,SGL,3D库,FreeType,SQLite,SLL。AndroidRunTimeAndroid包含了一整套核心库,它为java语言提供了很多有用的功能。所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。这是被优化过的最小内存依赖的格式,java编译器(dx工具)将
注册了的和运行时用到的类编译成.dex格式。Dalvik虚拟机依赖于底层linux内核提供的功能,如线程机制,和内存管理机制。Linux内核Android依赖Linux版本2.6提供的核心系统服务,如安全,内存管理,进程管理,网络堆栈,和驱动模型。该内核另一个作用是提供一个屏蔽层用于屏蔽硬件和上层软件。linuxkernel:这是android的操作系统核心,是典型的开源系统。其版本是2.6.19。OpenGLES:是个免费开放的3D标准,标准组织没有提供实现,但很多芯片公司都可以提供。JSR239是该标准的java接口。我们在an
droid的SDK中使用的就是该接口。SQLite:是免费的开源的自由数据库,整体代码量很小。WebKit:是个通用浏览器的核。早期是KDE平台的Konqueror浏览器的核。dailvik:是Android的核心。是一个私有的java虚拟机。(此核心google没有开源)adt:是Android在eclipse上的开发插件。eclipse是著名的开源的javaIDE环境。以插件的架构著称。qeum:是个开源虚拟机,用其搭建各开发平台上的Android系统模拟器。sdl:是个开源的多媒体处理库。
三、市场前景
Google手机于08年10月22日正式上市,与运营商捆绑的合约价为179美元(约合人民币1200元),现有的T-Mobile用户可以通过网络订购。10月22日发布当天,在将有22个国家和地区可以买到谷歌手机。在11月,将增至27个国家和地区。谷歌手机将只能在T-Mobile网络内使用,将会有SIM卡锁定限制。T-MobileUSA提供了两种流量和短信包月计划。第一档为25美元,包括不限制的网络流量,以及一定数量的短信;第二档为35美元,包括不限制的网络流量和不限数量的短信。G1支持各种谷歌的服务,包括Gmail、GoogleMaps、YouTube、Google日历和GoogleTalk,
5
3GAndroid手机开发内置ChromeLite浏览器。使用这款手机也需要Gmail账号。“我爱死我的G1了!”谷歌联合创始人拉里·佩奇(LarryPage)憧憬:“对于我来说,谷歌手机最激动人心的一点就是它的未来。它的功能很强,正如几年前的电脑一样。你可以上网,安装软件。”T-MobileUSA为德国电信旗下移动子公司,运营GSM/HSPA网络,拥有用户近3000万。此次发布的谷歌手机采用高通MSM7201A处理器,支持7.2Mbps
下载速率,美国运营商3G网络设定的套餐速率一般可达1Mbps以上。MSM7201A为单芯片、双核,整合硬件加速多媒体功能、支持3D图形,300万像素的摄像功能可以扫描条形码,并且有GPS功能。在美国四大移动运营商中,T-MobileUSA处于相对弱势的地位,不过T-Mobile在欧洲有更为强势的是CDMAEV-DO网络,而T-MobileUSA和苹果iPhone的独家运营商AT&;T为GSM/HSPA网络,后者在2005年12月就推出了全球第一个HSDPA商用服务。T-MobileUSA今年5月方才在纽约推出了3G服务,目前已经在奥斯汀、巴尔的摩、波士顿、达拉斯、休斯敦、拉斯维加斯、迈阿密、明尼阿波利斯、凤凰城、波特兰、圣安东尼奥和圣地亚哥等12个城市增加了3G覆盖,公司计划年底前将3G覆盖的城市从目前的13个增加到27个,能够为其超过2/3的用户提供3G服务。
6
3GAndroid手机开发
四、项目介绍
(一)一电话拨号
程序 1.程序主要功能本
程序主要实现简单的
电话拨打功能。通过【CALL】按钮调用Android电话接口实现电话拨打功能。通过【CLEAR】按钮可以清除文本框中的电话号码,并重新输入。通过【Content】按钮可以调用电话的电话本,选择拨打电话。当输入错误的电话号码,或者未输入电话号码点击【CALL】按钮时,程序下方会提示“您输入的号码不正确,请重新输入!”2.程序界面设计及运行结果
程序界面设计及运行结果
拨号面板
输入错误号码,或输入为空时
调用系统接口实现拨打电话
7
3GAndroid手机开发3.程序主要代码通过Intent类调用拨号
程序 button.setOnClickListener(newButton.OnClickListener(){publicvoidonClick(Viewb){Stringcallee=phoneNumber.getText().toString();if(PhoneNumberUtils.isGlobalPhoneNumber(callee)){Intenti=newIntent(Intent.ACTION_CALL,Uri.parse("tel://"+callee));startActivity(i);}else{Toast.makeText(MyDialPanel.this,R.string.notify_incorrect_phonenumber,Toast.LENGTH_LONG).show();}}});
监听程序入口,调用相应的监听程序(例如:call_button_listener)完成对
程序的操作。
privatevoidfind_and_modify_button(){Buttoncall_button=(Button)findViewById(R.id.btn_call);call_button.setOnClickListener(call_button_listener);Buttonone_button=(Button)findViewById(R.id.one);one_button.setOnClickListener(one_button_listener);……..Buttontwo_button=(Button)findViewById(R.id.two);two_button.setOnClickListener(two_button_listener);Buttonbackspace_button=(Button)findViewById(R.id.btn_back);backspace_button.setOnClickListener(backspace_button_listener);Buttoncontent_button=(Button)findViewById(R.id.btn_content);content_button.setOnClickListener(content_button_listener);}
8
3GAndroid手机开发监听
程序部分代码
//数字1键监听程序privateButton.OnClickListenerone_button_listener=newButton.OnClickListener(){publicvoidonClick(Viewv){Stringnum="";EditTexttelnum_text=(EditText)findViewById(R.id.et_telinput);CharSequence_num=telnum_text.getText();num=_num+"";num+=1;telnum_text.setText(num);}};////CALL键监听
程序privateButton.OnClickListenercall_button_listener=newButton.OnClickListener(){publicvoidonClick(Viewv){EditTexttelnum_text=(EditText)findViewById(R.id.et_telinput);CharSequencetelnum_text_value=telnum_text.getText();setTitle("呼叫对象:"+telnum_text_value);}};
9
3GAndroid手机开发
(二)二
短信发送程序
4.程序主要功能输入要发送的手机号码---号码为空则出现“pleaseinputtelnumber”的错误提示----输入短信内容----通过点击发送按钮调用发送短信方法。5.程序运行界面和结果
程序主界面
输入错误界面,提示“PleaseInputtelnumber”
10
3GAndroid手机开发6.程序主要代码页面布局代码