电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

android的学习总结

来源:盘古文库作者:漫步者2025-09-131

android的学习总结(精选8篇)

android的学习总结 第1篇

Android学习总结

Android的学习总结

现在对于Android的学习已有斗个学期了,但它对我来说其实还是一个大大的谜,还有待我去对它一一揭晓。

在还没有学习Android这门课之前,当听到别人谈到它时,知道它离我们很近,但是它给我的感觉却是那么的神奇,一直就是在听说着关于Android系统怎么怎么的新闻,知道它就在我的生活中,离我很近,我也在用它,但还是总有一种很遥不可及的感觉,觉得它不在我的思想里,所以呢,对于这门课《Android系统开发与实践》的学习很是期待的。

在上一个学期快要结束的时候,就听到老师说了一下,说下一个学期我们可能会学习Android系统的开发,他还说这个Android系统的开发很值得学习,很值得我们去探索,说这个Android还一直在开发中,是一项很好玩的系统,当时就很是兴奋了,总是会在想Android系统到底是怎样的,它是如何的深入我们的生活,又是如何的到我们所用的这些设备当中的,这一切都让我感到很好奇。就这样带着一系列的问题走进了 这个学期,终于就要与它见面了,这门课也就在这样的背景下,这样的一种环境下走进了我的课堂,它给了我一种兴奋感,对于它的出现,我很是期待的,一开始老师就给我们讲解了一些关于Android的知识,也给我们展示了Android系统开发的平台,真的给了我一种奇妙的感觉,它不仅有编译,它还有一个模拟器,就和我们用的手机一模一样,上面也有简单的几个图标:电话、短信等等,真的感觉到了不可思议,感觉到一种神秘,Android系统的开发就是在这样的一个平台上完成的,你可以对它进行你想要的修改,只要是你想到的,你都可以支尽情的尝试,这让人兴奋。

这门课的学习从这里就这样开始了,《Android系统开发与实践》这本课本它是以讨论Android系统平台为基础,并结合实例讲解教程和实践指导类教材。本书中全方位的讲解了Google开放移动应用平台Android的各种特性,深入探讨了应用程序的基本组件、界面布局的基础,结合Internet实现通讯录的设计和发送短信实例详细介绍了Android系统平台开发 1

Android学习总结 的步骤和方法,从而实现对Android系统的平台开发的深入了解。

基于嵌入式技术的Android是目前增长速度最快的智能3G手机操作系统,其底层系统是以Linux内核为基础,用C语言开发;中间层包括函数库library和虚拟机Dalvik,用C++语言开发;上层应用软件,包括通话程序,短信程序等,用Java语言开发。所以,要想好好的学习Android系统的开发,那就必须掌握C++和Java语言,它们都是基础。

Android学习并不是那么的容易,你得很努力很认真的去学习,但如果只是浅浅的了解,那就简单得多,但并不是这样的,你得更加深入的去学习,你才算是懂一点。

Linux是Android开发的基础,Linux是一套免费使用和自由传授的类UNIX操作系统,它速度快,运行稳定,对硬件的配置要求低,兼具了其他系统的优点,最关键是可以免费使用,所以Linux得到了迅猛的发展,我们学习Android的开发就得了解Linux,它常用的一些操作命令是我们必须要理解和掌握的,比如说:su命令,它是最基本的命令之一,常用于不同用户间切换。例如,如果登录用户为user1,要切换为user2,则用如下命令——$su user2 就行了;pwd命令,用于显示用户当前所在的目录;cd命令,不仅显示当前状态,还改变当前状态,它的用法跟DOS下的cd命令基本一致;ls命令,它跟DOS下的dir命令一样,用于建立磁带备份系统,目前广泛用于建立文件发布档案;gzip命令,用于压缩文件;mkdir命令,用于建立目录,跟DOS下的md命令用法几乎一样的;cp命令,用于复制文件或目录;rm命令,用于删除文件或目录;mv命令,用于移动文件和更多文件;reboot命令,重启命令;halt命令,关闭命令。这些都是我们学习Android系统所必须掌握的。

Android系统的开发更离不开Java,Java是一种简单的,面向对象的,分布式的,解释执行的,健壮的,安全的,结构中立的,可移植的,高效率的,多线程的和动态的语言,Java在Android平台开发中的应用起到了很关键的作用,Android的开发需要Java的上引动开发工具,Eclipse开发工具就是目前最主流的Java开发工具,Eclipse本身只是一个框架平台,2

Android学习总结

但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性,许多软件开发商以Eclipse为框架开发自己的IDE。

Android的学习真的不是那么容易的,就一个平台的搭建就已经难到了我,就这样一个开发平台它得有一个Java的环境,还要有IDE等等,花了一大半的时间终于搭建了一个框架,它的一些插件必须要在线的升级,就是说必须要有网才行,这是一件很难熬的事,但等到搭建好后,那是一种成就感,通过学习让我知道了Android系统也有它的不足之处:安全和隐私,由于手机与互联网的紧密联系,个人隐私很难得到保护,互联网的深入发展也将会带来新一轮的隐私危机;运营商仍然能够影响到Android手机;同类机型用户减少:在不少手机论坛都会有针对某一型号的资源,而对于Android平台手机,由于厂商丰富,产品类型多样,这样使用同一款机型的用户越来越少,缺少统一机型的程序强化;过分依赖开发商,缺少标准的配置等等的,这些的不足都在等待我们去探索。

Android系统平台的结构有:应用程序层,应用程序框架层,运行库层,Linux内核层。只有了解了这些才能助我们更好的学习Android系统,Android系统开发的相关环境必须安装并配置好,这是一个细活:第一得安装Java环境,然后还得修改Javadoc的link。第二设置环境变量,第三就安装repo,第四得在线下载Android源码并更新,第五是编译Android源码并得到~/project/Android/cupcake/out目录,第六在模拟器上运行编译好的Android源码,第七编译linux kernel,第八是编译模块,第九编译SDK。这个安装步骤我们得一步一步的做好,如果有哪一步做错了,就会影响到最终的结果。当你把所有的准备工作做好后,创建一个新的Android项目,你就会有一点点的兴奋与成就感,那是一种很自豪的一种享受。

在Android系统的开发过程当中我们要了解和熟悉源码的获得,源码树结构分析、Android源码简要分析、还有Android的移植,作为一个Android开发者,必要的时候阅读下Android源码可以拓宽一下自己的视野和对Android的认知程度,Google的Android的源 3

Android学习总结

码管理仓库用的是Git。Android是一个开源手机终端系统,基于Linux内核,我们可以下载一个Git客户端,在Windows下安装Git的客户端软件很方便的,安装完成后,我们建立一个文件夹,就可用于存放将要下载的源码,主机编译工具和仿真环境,对于这些目录和文件我们还要求会背下来,但得了解,了解它们是我们学习Android系统开发更加的轻松了。

要想学习好Android系统的开发,我们光学一些理论性的知识,那是远远不够的,我们得把理论与实践结合起来,才能起到事半功倍的效果,本来对于Android系统开发的学习就应该从实践当中去深入的,在学习的过程中,我们要有足够的耐心和足够的时候,去练习,去实践。在这门课当中的实例,比如,打电话,就让我们眼前一亮了,我们一直以来每天在做的打电话就是这样来的,这个实例提起了我们对Android系统的又一兴趣,Android系统的开发不仅给我们的生活带来了便利,也给我们带来了欢乐。

这以上就是这一段时间来我对Android系统开发的学习的一个总结与一个体会,Android系统的开发真的让我长了不少的知识,也带来了不少的见识,虽然我对于它的掌握还不那么的深,学习的也还不足,但我还是会一直坚持的学习下去,因为它的奇妙,因为我们的生活需要它,它的开发是永无止境的,它的学习也将是永无止境的。

android的学习总结 第2篇

零零碎碎的总结:

1.客户端的功能逻辑不难,UI界面也不难,但写UI花的时间是写功能逻辑的两倍.2.写代码前的思考过程非常重要,即使在简单的功能,也需要在本子上把该功能的运行过程写出来.3.要有自己的知识库,可以是一个工具类,把写过的,看过的好的代码放进去,也可以是一个笔记本软件.因为只有放在知识库里的东西,才是你最重要的财富.4.如果你想做自由职业者,你需要学英语,因为在国外的盈利比国内多很多.如果你想进大公司,好公司,你需要学英语.你想深入学习android,但中文的android文章太少了,你查查百度,到处都是copy来copy去的hellword,所以,你需要学英语.如果你想出国,你需要学英语.5.Http协议要研究透彻.http的信息头有什么信息,分别代表什么,信息体有什么信息,代表什么,都要搞的明明白白.scoket也是一样.6.在eclipse里的layout文件都有graphical Layout.通过这个好好的把UI调整好.7.Android里的junit每次运行都会打包新的apk到设备上跑.效率非常慢.如果是跟android无关的测试,最好自己建立一个单纯的java项目做测试.8.面试的时候不要觉得自己提的薪水太高,物以稀为贵明白吗?不管你的期望薪资多少,都有可能实现,这只是时间问题.9.如果一家小公司通过猎头找到你,即使公司在小,也比外面那些40,50人的公司还要好.不要觉得公司不行,担心会倒闭.放心吧,至少活1年是没问题的.10.不要把自己绑在android上,有空也研究下IOS(最近小弟就准备研究ios,刚买了6本书...).11.移动互联网最少还有10年的快速增长.android最少还有两年的快速增长.走android这条路是不会错的.12.有空多学点开放平台的SDK.比如新浪微博,腾讯微博,淘宝平台,支付宝移动支付平台,快钱移动支付平台等等..这些都是不愁没市场的.13.即使技术再差,也要发布一个应用到market上去.因为这样你才了解做一个应用的逻辑.14.每个月拿到薪水省500-1000元出来.这些钱投在买学习资料,去培训班上课...在培训班,花再多的钱也是值得的.15.你真正的价值在项目经验和对底层的认识上.不要忽略基础知识.16.如果有空把Android的源代码看一下.底层的东西很枯燥,但这些很值得学.17..程序员其实是艺术家.代码重构和设计模式,是非常非常重要的东西,必须要学

18.不要去维护一个项目,要去做一个项目.19.一开始不要轻易去大公司,虽然大公司是可以让你呆一辈子的.但你的起点低,以后成就也低.20:每天早上提前20分钟上班,5分钟把今天的工作计划写好.15分钟用来看各大It论坛的新闻.21:如果以前没做过java,那就把SSH看下,自己搭建一个小服务器.这是为了接私活用.22:PS一定要学,接私活用.23:多下载市面上好的应用,每天都用,只有这样你才能了解市场.现在所有的APK都可以反编译,看源代码麻烦,但看layout和图片很容易,所以....你懂的.24.要有羞耻心.25.老板仅仅要求你把东西做完,需求完成.但你必须对自己要更严格一点.写一段代码,从网上复制一份代码,并不是可以用就行了,你还必须明白他的原理,为什么这样就可以?这才是对你最有用的地方,这也是你今后薪资增长的保证.26.要懂得舍得.移动领域发展太快,必要时必须要用钱换时间.不然你会远远落后别人(我之前花了4000大洋去培训班学IOS三天).27.要明白自己想要什么,什么才能最大性价比提高你的能力.对我来说,能让我提高最大的,就是Android和IOS同时会,并且自己可以做架构设计.28.看android技术书籍最快的学习方法,先通读一次.然后把书本上的demo一个一个写出来.不要觉得太容易不去写.很多东西都是这样,看起来简单,但做起来难.最后再对照自己写出来的程序代码去理解书本的意思.29.应用和游戏是2个方向,没有一个公司会同时做游戏又做应用,即使是外包公司,大多也只做一块.专精一个就可以了.30.每次做完一个项目,要强迫自己做总结,通过这个项目,我学到了什么新技术?犯了哪些

SB错误?

android的学习总结 第3篇

伴随着移动通信终端技术的发展,越来越多的手机操作系统应运而生,各种各样的应用在手机上得以实现,移动设备的优势主要在于便于携带,为了满足终端用户的需求,本文介绍了移动学习应用系统在Android平台上的开发与实现过程。移动学习软件可以帮助用户随时随地地利用手机进行学习,在线完成各种相关的测试题,提高学习效率。一个移动学习系统至少包含以下三部分:一是获取在线试卷:二是获得试题及各种选项;三是得到答案。单机的应用程序需要将所有的内容存储在移动设备上,而由于手机本身硬件资源的限制使得其本身无法进行大量内容的存储,而分布式移动学习系统只是在需要时才对所需内容进行加载。本文采用基于Web服务方式来实现,系统框架如图1。

二、Android平台

1.Android操作系统

Android操作系统是一个由Google公司开发的手机操作系统,Android平台是一个开放源码项目,允许任何人在移动设备上使用。Android操作系统的架构如图2所示。

Android基于Linux内核,它是一个单内核。内核包括对移动设备的硬件驱动程序,如屏幕、键盘、摄像头、USB、蓝牙等。内核提供了硬件及内存管理、进程和其他资源的开发端口。

2,Android应用程序开发

一般来说Android程序主要由Activity,Broadcast Intent Receive,Service和Content Provider四部分组成。

(1)Activity一般代表手机屏幕的一屏。一般一个Android应用是由多个Activity组成的,多个Activity之间可以进行相互跳转。通过Intent (意向)我们可以在多个Activity之间进行跳转。一个Intent就是一次对将要执行的操作的抽象描述。

(2)Broadcast Intent Receive用来对外部事件做出响应。例如,当电话呼入(外部事件)到来的时候,可以使用BroadcastReceiver进行处理。它不能产生UI,所以对用户来说是透明的,用户是看不到的。BroadcastReceiver在运行时的代码中,使用Context.registerReceiver()进行注册。注册完成,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。

(3) Service作为服务,比较直观的例子就是,当我们的手机的媒体播放器在播放过程中,我们将手机屏幕,即某个Activity切换到另外的界面,而媒体播放器仍在运行,直到播放完毕后结束。它在后台运行,但是不能自己运行,需要通过某一个Activity或者其他Context对象来调用,如Context.startService ()和Context.bindService ()两种方式启动Service。

(4) Content Provider类实现了一组标准的方法接口,从而能够让其他的应用程序保存或读取此Content Provider的各种数据类型。即一个程序可以通过实现一个Content Provider的抽象接口将自己的数据暴露出去,外界可以通过这一套既标准又统一的接口对程序里的数据进行操作。

Android应用程序的开发所需要的开发环境和工具有:Eclipse+ADT插件+Android SDK。

三、图形用户界面

程序界面主要包括三个与用户进行交互的Activity:

(1)测试题选择。

(2)问题和选项。

(3)问题答案。

为了减少应用所需的内存量,本项目没有添加任何图片及声效,界面简单直观,便于操作。首先将测试题选择界面作为主界面,程序运行时首先加载此项。将此Activity在AndroidManifest.xml配置文件中进行声明,当应用程序启动后,会首先显示出测试题的列表。该清单是一个ListView的类型的对象。而列表元素通过XML的资源文件进行定义。核心代码如下:

为了启动一个新的Activity,所有活动必须要在AndroidManifest.xml文件中进行声明:

当用户从列表中选择一个测试,相关的第一个问题的屏幕会显示出来。而针对测试题目的相关操作放在主菜单中完成,界面如图3所示。菜单主要包括以下三项:

(1)上一题/下一题之间的切换。

(2)查看应用程序版本。

(3)退出应用程序。

问题只有一个正确答案,测试者可以按顺序作答。下面的代码是基于AdapterView.OnltemClickListener接口用来显示与不同问题及选项相关的Activity。

为了完成从一个Activity到另外一个Activity之间复杂的对象传递,需要实现接口android.os.Parcelable。例如类Intrebare代表着一个问题,用以下方式实现了writeToParcel方法:

测试问题按照问题的编码进行显示,答案存储在HashMap中,故测试者有机会回顾答案并计算测试分数。

四、Wed服务

为此应用开发的Web服务,采用Microsoft.NET技术,为移动学习系统提供许多的Web方法。采用kSOAP2方式与Web服务进行连接,kSOAP 2是一个手机上的SOAP Web服务的客户端包。使用时需要添加第三方类库,这些库是基于SOAP框架并不需要proxy/stub方式来调用Web服务的方法。

一个SOAP信封是通过Soap-SerializationEnvelope类创建的,并要求详细的参数添加到信封体(使用SoapObject类)。在程序中getIntrebare方法的功能是访问Web服务并通过调用特定的方法获得指定的问题。方法部分源代码如下:

对于上述方法最为重要的是传递正确的参数,在本系统中,对各项参数初始化如下:

() NAMESPACE=http://tempuri.org/;Web服务的命名空间。

(2) URL_WS=http://server/Service.asmx;Web服务的URL。

(3) GET_INTREBARE=“GetIntrebare”;Web服务方法名。

应用程序需要指定的权限才可以使用Web服务,权限信息存储在AndroidManifest.xml文件中。对于此移动学习的应用,需要添加如下内容:

在此应用中,所有数据都存储在设备内存中,在程序执行时加载所有的问题及答案。

五、结束语

移动应用的开发中必须要考虑的是移动设备资源的限制和不同设备之间程序的兼容性。基于Web服务的移动学习系统,可以提供一个统一的方式在移动客户端与服务器之间进行通信。而它的局限性主要有:数据量、安全问题等。在未来开发中,可以考虑的方向主要有增加新的功能、界面的美观、用户管理等方面。

参考文献

android的学习总结 第4篇

关键词:移动学习;数字化学习;Android;学习类App;App Inventor

中图分类号TP399 文献标识码:A 文章编号:1009-3044(2016)20-0092-02

随着智能移动终端的迅速发展与普及,一种全新的学习模式逐渐得到人们的关注,这就是移动学习。移动学习是一种在移动设备帮助下能够在任何时间、任何地点发生的学习,移动学习所使用的移动计算设备必须能够有效地呈现学习内容并且提供教师与学习者之间的双向交流 [1]。它具有良好的交互性、学习设备可随身携带、学习者可随时随地学习等优点,成为教育技术领域研究的又一个新热点。

移动学习的研究起步于欧洲和北美部分经济发达国家,就研究进展来看它的发展非常迅猛,出现了很多新技术、新思想和新方法。较之欧美等发达国家,我国移动学习的研究起步相对较晚。但这几年发展迅速,越来越多的人开始关注移动学习,移动学习的理论与应用研究取得了一定的成绩。文章针对移动学习的特点,对移动学习类APP的设计与实现展开论述,并且设计开发了一款基于Android平台的智能移动终端学习类APP 软件。

1 移动学习的特点

移动学习是在数字化学习的基础上发展起来的,是数字化学习的扩展。它除具备了数字化学习的所有特征之外,还有独一无二的特性:

1)自由性。即学习者不再被限制在电脑桌前,可在任何时间任何地点学习任何内容。

2)片段性。学习者可以充分利用时间碎片(例如坐车时)进行学习。碎片化学习要求充分利用人们的时间空隙,所以移动端学习内容应该是学习时间相对较短的学习组块,学习内容单元之间松散连接。

3)情境性。学习者可以携带移动设备在真实或仿真环境中进行情境体验,这有助于促进学习者理解和运用所学的知识。

2 开发环境及开发工具

2.1 开发环境—Android

Android是一种基于Linux自由及开放源代码的移动设备操作系统。同Palm OS、Symbian、Windows mobile、 iPhone OS等移动端操作系统相比,Android 具有开放性、应用程序平等性、应用程序间无界限和方便快速的应用程序开发等 4 个无可比拟的优点。[2]目前,Android已经成为市场份额最高的移动操作系统。Android应用开发最大特点是将界面开发与业务开发完美地区分开,并且各种资源配置也有其相应的位置存放,用工厂模式便可方便快捷地使用资源。[3]所以,在Android平台下APP开发的大部分精力都放在用户体验方面,大大减轻了开发者的负担。

2.2开发工具—App Inventor

App Inventor是谷歌公司推出用来开发Android应用程序的平台。它是一个完全在线开发的环境,在此环境下所有的项目都储存在云端服务器。因此,开发者能在任何一台可以上网的机器上进行APP设计和开发。

App Inventor主要有三大作业模块:

(1)组件设计:提供图像、按钮等各种组件用以界面设计;

(2)逻辑设计:通过将封装好的程序代码进行连接完成“程序设计”;

(3)模拟器:设计开发时可用模拟器来进行测试,但模拟器在部分功能上无法提供测试(如重力传感器等)。

App Inventor通过搭建积木块的方式开发Android平台下的APP,开发者无需直接编写程序代码。这大大降低了开发的技术难度,可以让学习类APP开发者专注于学习资源的设计和开发。

3 学习类APP设计开发

下面将以一款学习类APP—《轻松学做网页》为例,展示其设计和开发过程。该款APP的使用对象是在校大学生,开发的内容是介绍使用Dreamweaver CS6制作网页。APP中提供了众多的资源和功能,具有良好的交互性,能帮助同学们轻松掌握网页制作技能。

3.1组件设计

《轻松学做网页》APP共分成基本理论、操作视频、实验实训、行业认证、精品赏析、信息反馈六个模块。“基本理论”介绍了网页设计的基本知识,如什么是网页、网页常见布局等。“操作视频”演示了Dreamweaver CS6软件的使用。“实验实训”放置了7个实训项目,对基本理论和操作进行实际验证。“行业认证”介绍了Adobe网页设计师认证情况。“精品赏析”中给出了国内外优秀网页的图片,用以提高学习者的美术功底。“信息反馈”则让用户通过文字、语音等方式反馈APP使用过程中的问题及建议。

在App Inventor中,界面是通过组件设计完成的。App Inventor 提供了“用户界面”、“界面布局”、“多媒体”等10类共计60个组件。如此丰富的组件资源能使开发者轻松地完成界面设计。该项目APP的主界面制作过程如下:1)将“界面布局”下的表格布局组件拖入屏幕,在右侧的属性面板中设置为6行3列;2)拖动“用户界面”中的按钮组件到表格中相应的位置,一共放置六个按钮;3)用加工好的六张图片作为按钮背景。APP的主界面效果图如图1所示。

每个模块的子界面制作过程大体相同:(1)点击“增加屏幕”按钮,添加一个新的屏幕用以设计子界面;(2)在新增的屏幕上拖入相应的组件并设置组件属性,如需显示图像就先拖入图像组件,然后设置其图片、高度、宽度等属性。

3.2 逻辑设计

逻辑设计用来检测用户的行为(如点击按钮、滑动屏幕)并做出相对的反应,如当用户点击“基本理论”按钮后打开介绍基本理论的屏幕。App Inventor中的逻辑设计是通过封装好的程序模块拼接完成,共有“逻辑”、“控制”、“数学”、“文本”、“列表”、“颜色”、“变量”、“过程”八类模块。每一类的模块都用不同颜色显示。点击“基本理论”按钮的逻辑设计步骤如下:1)点击“逻辑设计”按钮将工作面板切换到逻辑设计视图;2)选中“模块”面板下的“按钮1_基本理论”,拖动“控制”模块下的“按钮被点击”代码块到逻辑设计界面;3)拖动“打开屏幕”代码块到“当按钮1_基本理论.被點击”代码块下;4)将“文本”模块下的“空字符串”代码块拼接到“打开屏幕 屏幕名称”代码块后。完成后的效果如图2所示。主界面中其它按钮的逻辑设计和“基本理论”类似。在子界面下返回主界面的逻辑设计如图3所示。

4 结束语

本文分析了移动学习的特点,在移动学习理论的指导下,设计和开发了一款基于Android系统的学习类APP。此APP提供了丰富的学习资源,能满足在校大学生的使用需求。随着移动学习类应用的丰富,人们可以方便地获取自己所需的学习资源,进而推动移动学习的快速发展。

参考文献:

[1]百度百科.移动学习[EB/OL].[2016-05-20].http://baike.baiu.com/view/3003454.htm.

[2]曾健平,邵艳洁.Android 系统架构及应用程序开发研究[J].微计算机信息,2011(9):1-3.

android的学习总结 第5篇

BroadCast(广播),概念:一种在系统内进行通信的机制.通过这种机制,它能够将系统中的某个进程的信息或者意图传递到其他的对这些信息或者意图感兴趣的进程.广播发送者:想要主动传递自己的信息或者意图给系统或者特定的接收者,以便其作出响应.广播接收者:想要接收系统或者特定进程的某些信息或意图,以便作出相应的响应.Android广播机制包含三个基本要素: 广播(Broadcast)-----用于发送广播。

广播接收器(BroadcastReceiver)-----用于接收广播。

意图内容(Intent)-----用于保存广播相关信息的媒介。

广播的过程:首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象,然后通过调用Context.sendBroadcast()、Context.sendOrderBroadcast()方法,把Intent对象以广播的方式发出去。当Intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的Intentfilter是否与发送的Intent相匹配,若匹配就会调用BroadcastReceiver的void onReceive(Context curContext, Intent broadcastMsg)方法,onReceiver()方法执行完成后,BroadcastReceiver的实例就会销毁。

sendBroadCast():发送普通广播可以在同一时刻被所有接收者收到

优点:消息传递效率高

缺点:各个接收者之间无法通信,无法终止消息传播

sendOrderedBroadCast:发送有序广播

接收者将按预先声明的优先级依次接收广播消息 优先级设置: android:priority(-1000∽1000)数越大级别越高 也可调用IntentFilter对象的setPriority()设置

上一个接收者可往广播中压入数据传递给下一个接收者

任意一个接收者都可终止广播的传播,下一个就不能接收 注意:

如果找不到合适的BroadcastReceiver组件,应用不会有任何问题。onReceiver()方法不能在10秒执行完成,会认为该进程无响应。弹出ANR(application no response)的对话框。

源代码实例如下: 发送普通广播: Aactivity:

protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button =(Button)findViewById(R.id.button1);button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0){ Intent intent = new Intent();

intent.setAction(“com.coslay.action.CUSTOM_BROADCAST”);intent.putExtra(“msg”,“简单的消息”);sendBroadcast(intent);} });} 程序启动BroadcastReceiver只需要两步: 创建需要启动的BroadcastReceiver的Intent 调用Context的sendBroadcast()或sendOrderedBroadcast()方法来启动指定的BroadcastReceiver BroadcastReceiver:

public class CustomReceiver extends BroadcastReceiver{ @Override public void onReceive(Context arg0, Intent arg1){

Toast.makeText(arg0, “接收到的Intent的Action为:”+arg1.getAction()+“n消息内容是:”+arg1.getStringExtra(“msg”), Toast.LENGTH_LONG).show();} 只要重写BroadcastReceiver的onReceive(Context context,Intent intent)方法即可。然后在如下注册监听器即可。

AndroidManifest.xml:

指定该BroadcastReceiver能匹配的Intent有两种方式: 1.使用代码进行指定: IntentFilter filter = new IntentFilter(“android.provider.Telephony.SMS_RECEIVED”);SomeReceiver receiver = new SomeReceiver();registerReceiver(receiver,filter);2.在AndroidManifest.xml文件中配置。如上所示。发送有序广播: Aactivity:

button2 =(Button)findViewById(R.id.button2);button2.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ Intent intent = new Intent();

intent.setAction(“com.coslay.action.SORTED_BROADCAST”);intent.putExtra(“msg”, “简单的消息”);sendOrderedBroadcast(intent, null);} });BroadcastReceiver:

public class SortedBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent){

Toast.makeText(context, “接收到的Intent的Action为:”+intent.getAction()+“n消息内容是:”+intent.getStringExtra(“msg”), Toast.LENGTH_LONG).show();//创建一个Bundle对象,并存入数据 Bundle bundle = new Bundle();//将bundle存入结果中

bundle.putString(“first”, “第一个BroadcastReceiver存入的消息”);setResultExtras(bundle);//取消Broadcast的继续传播 //abortBroadcast();} } 优先接收到Broadcast的接收者可以通过 setResultExtras(bundle);方法将处理结果存入Broadcast中,然后传给下一个接收者,下一个接收者通过代码:Bundle bundle = getResultExtras(true)可以获取上一个接收者存入的数据。

AndroidManifest.xml:

接收系统广播(接收开机广播启动服务): BroadcastReceiver如下:

public class LaunchReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent){ Intent tIntent = new Intent(context , LaunchService.class);// 启动指定Service context.startService(tIntent);} } Service如下:

public class LaunchService extends Service { @Override public IBinderonBind(Intent intent){ return null;} @Override public void onCreate(){ // 定义1秒执行一行输出

new Timer().schedule(new TimerTask(){ @Override public void run(){ System.out.println(“-----” + new Date()+ “-----”);} }, 0, 1000);} } AndroidManifest.xml:

BroadcastReceiver可以实现Service与Activity之间的通信: Activity如下:

public class MusicBox extends Activity implements OnClickListener { // 获取界面中显示歌曲标题、作者文本框 TextView title, author;// 播放/暂停、停止按钮 ImageButton play, stop;ActivityReceiveractivityReceiver;public static final String CTL_ACTION = “org.crazyit.action.CTL_ACTION”;public static final String UPDATE_ACTION = “org.crazyit.action.UPDATE_ACTION”;// 定义音乐的播放状态,0x11代表没有播放;0x12代表正在播放;0x13代表暂停 int status = 0x11;String[] titleStrs = new String[] { “心愿”, “约定”, “美丽新世界” };String[] authorStrs = new String[] { “未知艺术家”, “周蕙”, “伍佰” };

@Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);// 获取程序界面界面中的两个按钮

play =(ImageButton)this.findViewById(R.id.play);stop =(ImageButton)this.findViewById(R.id.stop);title =(TextView)findViewById(R.id.title);author =(TextView)findViewById(R.id.author);// 为两个按钮的单击事件添加监听器 play.setOnClickListener(this);stop.setOnClickListener(this);activityReceiver = new ActivityReceiver();// 创建IntentFilter IntentFilter filter = new IntentFilter();// 指定BroadcastReceiver监听的Action filter.addAction(UPDATE_ACTION);// 注册BroadcastReceiver registerReceiver(activityReceiver, filter);Intent intent = new Intent(this, MusicService.class);// 启动后台Service startService(intent);}

// 自定义的BroadcastReceiver,负责监听从Service传回来的广播 public class ActivityReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent){ // 获取Intent中的update消息,update代表播放状态 int update = intent.getIntExtra(“update”,-1);// 获取Intent中的current消息,current代表当前正在播放的歌曲 int current = intent.getIntExtra(“current”,-1);if(current >= 0){ title.setText(titleStrs[current]);author.setText(authorStrs[current]);} switch(update){ case 0x11: play.setImageResource(R.drawable.play);status = 0x11;break;// 控制系统进入播放状态 case 0x12: // 播放状态下设置使用暂停图标

play.setImageResource(R.drawable.pause);// 设置当前状态 status = 0x12;break;// 控制系统进入暂停状态 case 0x13: // 暂停状态下设置使用播放图标

play.setImageResource(R.drawable.play);// 设置当前状态 status = 0x13;break;} } }

@Override public void onClick(View source){ // 创建Intent Intentintent = new Intent(“org.crazyit.action.CTL_ACTION”);switch(source.getId()){ // 按下播放/暂停按钮 case R.id.play: intent.putExtra(“control”, 1);break;// 按下停止按钮 case R.id.stop: intent.putExtra(“control”, 2);break;} // 发送广播,将被Service组件中的BroadcastReceiver接收到 sendBroadcast(intent);} } Service的实例代码如下:

public class MusicService extends Service { MyReceiverserviceReceiver;AssetManager am;String[] musics = new String[] { “wish.mp3”, “promise.mp3”, “beautiful.mp3” };MediaPlayermPlayer;// 当前的状态,0x11 代表没有播放 ;0x12代表 正在播放;0x13代表暂停 int status = 0x11;// 记录当前正在播放的音乐 int current = 0;

@Override public IBinderonBind(Intent intent){ return null;}

@Override public void onCreate(){ am = getAssets();// 创建BroadcastReceiver serviceReceiver = new MyReceiver();// 创建IntentFilter IntentFilter filter = new IntentFilter();filter.addAction(MusicBox.CTL_ACTION);registerReceiver(serviceReceiver, filter);// 创建MediaPlayer mPlayer = new MediaPlayer();// 为MediaPlayer播放完成事件绑定监听器

mPlayer.setOnCompletionListener(new OnCompletionListener()//① { @Override public void onCompletion(MediaPlayermp){ current++;if(current >= 3){ current = 0;} // 发送广播通知Activity更改文本框

Intent sendIntent = new Intent(MusicBox.UPDATE_ACTION);sendIntent.putExtra(“current”, current);// 发送广播,将被Activity组件中的BroadcastReceiver接收到 sendBroadcast(sendIntent);// 准备、并播放音乐

prepareAndPlay(musics[current]);} });super.onCreate();}

public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent){ int control = intent.getIntExtra(“control”,-1);switch(control){ // 播放或暂停 case 1: // 原来处于没有播放状态 if(status == 0x11){ // 准备、并播放音乐

prepareAndPlay(musics[current]);status = 0x12;} // 原来处于播放状态 else if(status == 0x12){ // 暂停

mPlayer.pause();// 改变为暂停状态 status = 0x13;} // 原来处于暂停状态 else if(status == 0x13){ // 播放

mPlayer.start();// 改变状态 status = 0x12;} break;// 停止声音 case 2: // 如果原来正在播放或暂停

if(status == 0x12 || status == 0x13){ // 停止播放 mPlayer.stop();status = 0x11;} } // 发送广播通知Activity更改图标、文本框

Intent sendIntent = new Intent(MusicBox.UPDATE_ACTION);sendIntent.putExtra(“update”, status);sendIntent.putExtra(“current”, current);// 发送广播,将被Activity组件中的BroadcastReceiver接收到 sendBroadcast(sendIntent);} }

private void prepareAndPlay(String music){ try { // 打开指定音乐文件

AssetFileDescriptorafd = am.openFd(music);mPlayer.reset();// 使用MediaPlayer加载指定的声音文件。mPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());// 准备声音 mPlayer.prepare();// 播放

android的学习总结 第6篇

在这段时间主要对Android平台有了一定的了解,对一些简单的设计也有了一定的掌握Android概念

Android是一个基于Linux核心的开放手持设备(主要是手机)平台操作系统,与Windows Moble、Symbian等手机操作系统处于同一级别。“Android大奖赛“首页上列出的可能设计方向

多媒体工具社交网络新闻、资讯工具环保、慈善协作生产力工具Android Developer Challenge(ADC)游戏实时资讯服务崭新的用户界面您想到的应用程序项目构架

src/:源代码(sourse)目录

“src”目录包含了“Android应用程序”各个程序源文件。对于上例 ”Bmi.java”是新 序项目中的主要程序块。gen/:自动生成(Generate)目录

gen目录中存放所有自动生成的文件。最关键就是R.java,这个文件是自动产生的,与”res”目录下的XML文件内容同步更新。

Android<版本号>/:参考函数目录

此目录的作用是将AndroidSDK里所有可呼叫的类、方法函数,分门别类的列出,好方便开发者来参考。

assert/:对此目录目前还不是太懂 res/:资源(Resource)目录

res目录存放所有程序中用到的资源文件。在里边还有两个经常访问的目录,分别 “layout/:页面布局(layout)目录”和“values/:参数值(values)目录”

“AndroidManifest.xml”是Android应用程序的功能列表,每个应用程序都在这个文件中,列出该程序所提供的功能。我完成的BMI程序

此程序是我参考书上的例子所完成的程序。

BMI,英文全称:Body Mass Index,中文名称:身高体重指数,是一个计算值,整个程序的思路是当我们在对应的文本框内输入身高(cm)、体重(kg),输入完成后按下“计算BMI”键,屏幕上就会显示计算结果,并弹出“你应该节食”、或“你应该多吃点”等健康建议的信息框。

健康指标的计算方法是:身高(height)/(体重(weight)/100)只要BMI值超过25时就算偏胖、BMI值低于20就算偏瘦,介于这之间算正常。

下面是我完成的程序界面:

计算得到的BMI值是20.57,在20—25之间,体型正常。由于我对两个文本框内输入的内容进行了限制,因此只容许输入数字

BMI值为25.56,信息框弹出“你该节食了”

在界面的下侧有一个“健康小常识按钮”,当点击此按钮时,会链接到一个有关健康生活小常识的网页上:

在每次点击“计算BMI值”按钮后首先会弹出一个消息框,消息框中包括两个按 钮,当点击确认按钮时消息框消失;当点击首页按钮时会连接到相应的网页

下图为点击消息框确认按钮后显示的网页:

总结

android学习方法总结 第7篇

1.Java基础 很多朋友一上手就开始学习Android,似乎太着急了一些。Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。那么Java学到什么程度才算是过关呢?我个人认为至少要掌握以下两个方面的内容:

a) Java基础语法: 具体的知识点列表可以在这里下载:《Java知识点列表》V1.0。这部分内容没有讨价还价的余地,必须烂熟于胸。至于具体的学习方法,可以看书或者是看视频,但是关键是要多加练习,无论是书上的练习还是视频里面的练习,都需要仔仔细细的完成;

b)设计模式:由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣。设计模式的种类非常之多,一个一个的全部掌握,是不现实的,必须首先掌握面向对象的基础设计原则,有了这些基础原则的支持,就可以举一反三。这部分内容可以在《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》这两本书中找到。

2.Linux基础知识: 大家都知道,Android系统的基础是Linux操作系统。在开发过程当中,我们也需要使用到一些Linux命令。所以说一些Linux的基础知识是必须的(话说现在的程序员,不懂Linux都不好意思跟人家打招呼),推荐大家看看《鸟哥的私房菜》这本书,写的相当不错;

3.数据库基础知识 这个比较简单,就是一个增删改查的数据库操作,可以看一下这本书:《SQL编程练习与解答》

4.网络协议 至少需要学习两种基础的协议,HTTP协议与Socket协议;

5.Android基础知识 有了以上的铺垫,再来看Android,是不是觉得轻松了很多呢?至于基础知识的学习顺序,最好的方法就是按照Android SDK帮助文档当中的Dev Guide里面的顺序,我的《Android视频教程》也基本上是按照这个顺序录制的;

6.服务器端开发知识: 由于很多Android应用程序都需要服务器端的支持,所以掌握一些服务器端开发知识还是非常有必要的。至于选择哪一种服务器端知识进行学习,就比较麻烦了,因为技术的种类实在是太多了:

a)Java EE: 就是上面邮件当中所提到的SSH—Struts+Spring+Hibernate。这种技术的优点的功能完整、强大,已经使用了很多年,而且既然大家已经非常熟悉Java了,那么学习SSH看起来也顺理成章。但是使用这种技术开发服务器端程序,非常麻烦。即使是一些简单的功能,也可能需要大量的代码和配置文件来实现;

b)PHP: 简单易学,开发快速。但是我们需要多学一种语言,是否得不偿失,就要大家自己判断了;

c).NET: 这项技术的特点和Java EE差不多,但是要想掌握.NET,则需要掌握c#,也是个麻烦的事情;

android的学习总结 第8篇

关键词:移动学习,成语学习,Android

0引言

移动学习( Mobile Learning,简称M - Learning) 已经逐渐成为当今网络学习的一个重要发展方向,具体是在数字化的基础上结合现代移动计算机技术和互联网技术而为广大学习者生成并提供了一种全新的学习模式[1,2]。这一模式的创建使得随时随地学习成为可能,同时,因为智能机、PDA等移动式便携设备的高度普及,更使得日后的学习者不会再因为高昂的培训费或囿于时间、地点而失去学习良机。

尽管移动学习的发展,为学习者提供了更多的学习机会,但如何选择合适的学习软件进行学习则是事关其发展的重要一环[3]。一个好的学习软件不仅要能够创造一个优良的学习情境,更要有一定的针对性和应用性,同时还要符合一个人正常的学习习惯并在学习的过程中促进学习者的兴趣提升。目前市场上一个功能完善的有关成语的移动学习软件仍付诸阙如[4,5,6]。基于此,本文即开展了这一软件的研发工作。研发中,除了基本成语的学习之外,增加了猜谜游戏等,在学习中玩,而且在玩的时候体验每个成语的应用等, 增强了与学习者的互动[7,8]。

1系统设计与实现

成语移动学习软件主要由六个基本功能模块组成: 系统设置、成语学习、成语搜搜、成语收藏、猜谜小游戏、帮助,而成语数据存放主要使用自己开发的Web Service接口[9],这是由于后台Web Service的使用为系统提供了数据的更新和强大的成语模糊搜索功能。系统的总体架构如图1所示。

通过对系统功能模块的全面分析,可以得到整个的业务逻辑流程,如图2所示。

1.1成语学习

成语学习是整个学习软件的主要功能模块。该模块按照平时人们的常识和习惯对成语进行分类,将成语主要划分为: 动物类、人物类、季节类、自然类、数字类、寓言型、另类、 其他类,每类都有与之对应的说明图片,为用户提供了简洁友好的界面。用户可以选择自己感兴趣的分类来进行学习。 客户端收集了上千条实用性强的成语,每条成语都包括: 成语文字、成语的读音、成语的释义、成语的近义词、成语的反义词、及该成语对应的英语解释。同时支持成语收藏功能, 记录学习位置功能,记录功能也就是当用户学习到一个成语之后退出了该界面,那么当再次进入该界面时会继续定位在上次的位置,这样用户不用每次都从头开始,也不用担心忘记学到哪个成语的位置。而且连接Web Service还支持成语更新功能。

类似标签,浏览位置记录算法实现主要代码如下:

记录浏览位置的流程如图3所示,整个的位置记录是在后台运行,用户无需亲自操作。

1.2成语收藏

在成语学习的过程中,很可能对某个成语感兴趣或者想加深对该成语的认识,此时可以点击成语后面的收藏夹按钮,收藏的成语会添加到SQLite数据库中[5]。如果用户点击收藏的标签,可以查看所有收藏的成语,而若点击一个成语也可以查看成语的详细信息。如果用户学会了收藏夹内的成语,当然也可将其删除。同时,收藏过的成语还会在手机屏幕上方进行实时的滚动显示,帮助学习者在潜移默化中掌握成语。

1.3成语猜谜

成语猜谜游戏,属于该软件的休闲娱乐部分。为了让用户在学中玩、玩中学,在软件中增加了成语猜谜功能,可以锻炼用户的逻辑思维,同时巩固已学习的成语。在成语谜语中,谜底正确或者错误都有相应的图片提示,也会显示本局总得分; 可以查看本题答案,也可以重新选择一组题( 默认每组为10题) ; 历史记录可以查看历史最高总分,评价可以查看本局游戏的正确率等信息。

成语猜谜每次出现的10个题目都是随机出现的,每一次的题目选项都是通过radiobutton按钮来控制的,每次只能选择一个答案,答案是唯一的[5,10,11]。并且每次题目都不一样,即使用户记住答案也不能保证下次猜谜能用得上,猜得对。此部分的主要代码实现如下所示:

接下来,将成语放到了一个数组中,并且将成语数组重新排列,再将成语对应的答案与之实现匹配。

1.4成语搜搜

就像英语移动学习软件那样,可以通过连接网 上的Web Service来查询单词,在网上有许多关于英语的Web Service服务[12,13,14],但是关于成语的Web Service还是很少的,所以本系统是通过自己开发Web Service来满足成语查询的功能。成语的搜索功能是通过连接Web Service服务器[9]来实现的。Web Service的体系结构如图4所示。

Android连接Web Service可以通过以下方式连接:

在服务器端录入了新华词典中绝大部分的成语,支持用于根据首字母模糊查询,方便用于搜索成语。通过连接WebService服务器实现查询,提高了查询速度,节省手机资源。

1.5系统设置

系统设置将有利于某些系统选项的直观设定,可方便用户进一步执行系统操作。当每次进入软件时都会默认将背景音乐打开,有了背景音乐即可使用户沉浸在中国的古代文化中,给人以视听双重享受[15]。在系统设置部分涉及到的知识是Intent和Service,因为背景音乐是不断在后台运行的,则可将其作为一个服务进行处理[10,11]

背景音乐设置的相关代码如下:

此后,将用一个服务连接来监听音乐是否还在播放,也就是要监听auto Service是否已经被清除,代码如下所示:

2结束语

android的学习总结

android的学习总结(精选8篇)android的学习总结 第1篇Android学习总结Android的学习总结现在对于Android的学习已有斗个学期了,但它对我...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部