初学Android的总结
一、对Android的初步认识有以下几方面:
1.Android是什么?
Android是Google在20##年11月首次发布的,当时它被定位成一款针对智能手机的操作系统。现在是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Android SDK 提供了在Android平台上使用Java语言进行Android应用开发必须的工具和API(应用程序编程接口)。Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,而且依赖于linux操作系统。Android更是一款完整的操作系统和应用框架,设计用于ARM处理器(是一个32位元精简指令集处理器架构,其广泛地使用在许多嵌入式系统设计)。Android也是一个平台,主要包括Linux微内核,中间件(SQLite等),而且提供JAVA框架,以及Android中的JVM。
2.Android的特点:
①具有关键类如:视图、ContentProviders(应用交互管理类)、ResourceManager(非编码资源管理类)、NotificationManager(通告管理类)、ActivityManager(生命周期管理类)。
②应用构成一般由四个关键部分构成Acitvity、InerntRecciver、Service、ContentProvider,其中Acitvity是必要部分。它们应用到的场合如下:
Activity每个应用都是必须得,Activity代表一个应用的一个具体的界面管理类,其本身并不显示。
InerntRecciver可使应用对外部事件做出响应,比如,当应用正在执行,突然有了来电,这个时候可使用InerntRecciver做出处理使应用更健壮。
Service Android应用的生命周期是由Android系统来决定的,不由具体的应用的线程左右,当应用要求在没有界面显示的情况还能正常运行,(要求有后台线程,而后台线程是不会被系统回收,直到线程结束)这个时候就需要用到Service。
ContentProvider可以说ContentProvider封装很多Android当中的上下文环境,包括SQLite,这就使得在不同应用之间交互成为可能。
③布局管理:
FrameLayout:左上角只显示一个组件。
LinearLayout:线性布局管理器,分为水平和垂直两种,中能进行单行布局。
TableLayout:任 意行和列的表格布局管理器。其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。
AbsoluteLayout:绝对布局管理器,坐标轴的方式,左上角是(0,0)点,往右X轴弟增,往下Y轴递增。
RelativeLayout:相对布局管理器,更具最近一个视图组件,或是顶层父组件来确定下一个组件的位置。
④Activity交互:
Intent方式:Intent其实就是用来在Activity之间做交互用的。
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置。它类似过去Windows系统上inti配置文件,但分多种权限,可以全局共享访问,最终是以XML方式来保存,效率不如Intent,但可共享,所以可以再Activity交互,但其效率比SQLite要高。
⑤生命周期:每一个Android应用都是以一个进程的方式运行的,其生命周期不是有自身控制,而是由系统根据运行的应用的一些特征来决定。如应用的初始化应该放到onCreate方法中,应用暂停的时候应用重写onPause方法来保存当前应用操作结果。
⑥SQLite是Android中提供的内置DB,也是开源产品,比MySql更轻巧。
3.Android体系结构如下图:
Android体系结构图是Google关方给出的一个体系结构图,它主要被分成四层,最下层是Linux的核心,Android的整个操作系统都是基于这个Linux的核心的,它主要包括一些驱动程序如:显示器,照相机,闪存的驱动,以及电源管理,就是说Linux提供是操作系统的最核心、最基础的功能;在Linux的核心之上有一些Libraries,主要是一些程序包,它们一般都是用C/C++编写的,主要包括一些我们比较熟悉的OPENGL是3D开发的一个API(应用程序编程接口),SQLite是一个关系DB,WebKit是一个开源的浏览的内核,Media Framework是操作媒体的框架等等,这些功能都是用C/C++写的封装好的,在这层同时还有一个Android运行环境,它包括一个核心包,主要是JAVA常见的类库(I/O),还有一个Google自己开发的JAVA虚拟机,这个虚拟机是针对于手机设备格外优化的;在这层之上是Application Framework (应用程序框架),它提供了一些手机开发最基本的API;我们开发时主要就是真对这个应用程序进行开发的;在这层之上是Applications(应用程序层),我们主要开发的就是应用程序层,它通过向下调用Application Framework(应用程序框架)(这部分代码主要就是用JAVA编写的)之后在向下调用Libraries以及基于Android运行环境来运行,最后调用最底层Linux操作系统来完成和硬件进行交互的过程。
4. Android发展前景
根据调查Android移动操作系统正获得越来越多应用开发者的支持,Android以其便捷的操作,继承了Linux开源优势,引起很多人重视,在Google的大力支持下Android在名气和开发环境方面都有很大优势。根据最新调查显示,超过半数的受访者认为谷歌Android在众多智能手机操作系统中最具长期潜力。而苹果 iOS仅获得40%的支持率。调查也再次证明Android在于苹果的竞争中获得优势。根据谷歌公布的数据,目前市面上有约60款基于Android系统的设备和超过6万款应用,Android系统每天增加超过10万名用户。而研究公司Gartner称,Android将在20##年超过iOS成为世界上第二大最受欢迎的移动操作系统。Appcelerator营销副总裁斯科特·斯瓦茨佐夫(Scott Schwarzhoff)表示:“谷歌和苹果正在下象棋,而其他人则在拼命追赶。”
Android不仅在智能手机市场与苹果、微软、RIM等公司进行争夺,索尼、罗技和东芝等10多家厂商均计划在生产的平板电脑、网本、机顶盒、电子书阅读器以及电视机上使用Android系统。Gartner副总裁肯·杜兰尼(Ken Dulaney)说:“Android是目前唯一一个能够取代iOS的产品。”随着Android的快速发展,Android的营收规模迟早会超越苹果,Android的营收规模迟早会超越苹果,随着Android未来的装机量快速增长,以及手机支付手段的畅通,Android实现营收前景良好。
5.Android的升级和扩展:
1). Android内核支持用于实现更高效电源管理的扩展,并对进程之间的通信进行了修改。
2). Android用自己的Bionic替换了Glibc库。Bionic库占用的容量小且速度快,并且Bionic库支持BSD授权而不是GPL授权,从而使用户不需要GPL授权。
3).包括有嵌入应用程序需要经常用到的多个库,如WebKit(网页渲染)、媒体框架、SQLLite和其它库。
4).有一个硬件抽象层,用于定义硬件驱动程序所需要的接口。
5).机器人运行环境,由Dalvik,优化用于嵌入式应用的Java虚拟机和用于应用程序开发的核心Java API组成。尽管Android的“主导模式”是在Java环境下开发应用程序,但也可以用C和其它语言来编写应用程序,然后使用本地开发工具包将其编译成本地ARM代码。
6). Android应用程序框架,用于实现Java Android应用程序的面向对象的标准结构。
Android是开源的,但设计目标是为了将商业开发人员与GPL更好地分隔开。Linux内核在GPL之下,但Android其余大部分的内容以更为较宽松的Apache授权进行发布,允许其在专有和开源开发中使用。简单来说,相比标准Linux,Android让授权变得更加简单和明了。
6.Android的优缺点:
优点:1.开放性,有强大的开发软件者的支持,让消费者有很多软件可用。
2.无缝结合的Google应用。
3.对网络友好,丰富的功能选择。
4.软件兼容性比较好。
缺点:1.版本太多,升级太快
2.用户体验不一致
3.相对Windows Mobile来说,商务性差。
7.在我们的医疗设备中使用Android的好处?
给医疗设备选定操作系统,在很大的程度上和为任何其它设备选择操作系统是一样的:我们选择我们认为能够将医疗设备的价值在其生命周期内最大化的操作系统。需要考虑的因素包括:
? 产品能多快上市?
? 开发成本为多少?
? 这一选择将如何影响我们销售商品的成本?
? 授权费用为多少?
? 一旦我们的产品推向市场之后,维持技术性成本需要多少钱?
? 我们对我们的时间/成本估算有多大的信心?
举个例子说:如果是一个医疗项目,则还要包括以下一个额外的问题:
? 做这个选择,是否能得到一款风险能被病人和用户所接受的设备?
众所周知,医疗器械和其它大多数设备不同,因为医疗器存在重大风险,特别是病人而言。依据医疗设备对病人的危险程度以及FDA认为合理的监管审查力度,FDA将所有医疗设备划分为三大类。
1类设备的风险最小,包括像压舌板、绷带和基本的手术器械。 2类设备具有中等风险,包括心电图机、X光机、血液气体分析器和输液泵。3类设备的风险最高,包括植入式除颤器 ,人工心脏瓣膜和植入式小脑刺激器。
相比主要针对可靠性而设计的更小型、更方便测试的操作系统,重量级操作系统基本上更容易出现故障。就是说重量级操作系统必然经常出故障。对于许多设备而言,每年一次重新启动来修复软件锁定就可以了。因此,所以,考虑到重量级操作系统所具有的用户界面更好、上市速度更快以及其它优点,偶尔重新启动带来的不便可以被原谅。但是,对于植入式除颤器来说,每年重新启动一次可能是不行的。
依据通常的经验,Android和与之类似的操作系统适用于1类和2类设备,而3类设备通常需要使用具有高可靠性的更小型的操作系统。当然,每台设备的情况不同。不论是开发何种医疗设备,我们都要充分考虑和了解与操作系统相伴随的风险。
一个用于获得“两全其美”的方法是将处理任务分成两部分:用一个采用高可靠操作系统的处理器来执行核心功能,用一个采用重量级OS的处理器来处理没那么重要的任务。输液泵就是一个例子,一个采用高可靠性操作系统的处理器在输液过程中控制电机,而另一个运行Android的处理器则运行GUI、通信,等等。值得注意的是,用到两个处理器的解决方案并不是一个立竿见影的方法。需要充分考虑和详细规划。要确保医疗设备的安全性和可测试性。
Android是一款经过彻底调试的系统,目前有超过10万款支持Android的应用程序,其中有很多程序可以简化和加速开发过程。这样看来,Android开发并不是很复杂,有庞大的开发人员群支持Android。对于那些对软件可靠性要求不高,且价格可以支持所需硬件的医疗设备,Android具有很强的竞争力。它在功能、资源需求和生产力之间做了很好的平衡,并且具有以规模庞大且繁荣的Linux产业链为基础的额外优势。
二、在Windows下Android开发环境的搭建
1).JDK安装 下载地址://java.sum.com/javase/downloads/index.jsp下载 (jdk-6u25-windows-i586.exe)之后进行安装,按默认安装,完成后可以检查是否安装成功,单击“开始”选“运行”输入CMD运行,打开CMD窗口输入java -version如果下图显示信息,说明JDK安装成功了。
还要配环境变量:右击我的电脑,属性->高级->环境变量,然后添加如下系统环境变量:
(1)在PATH环境变量后追加JDK安装路径中的bin路径,本机为:
C:\Program Files\Java\jdk1.6.0_10\bin
(2)新建CLASSPATH环境变量或在CLASSPATH环境变量后追加JDK安装路径中的lib路径 和demo路径,本机为:
C:\Program Files\Java\jdk1.6.0_10\demo;C:\Program Files\Java\jdk1.6.0_10\bin
2).Eclipse安装 安装好JDK后,就可以接着安装Eclipse了。 网址:http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/heliossr1
下载(eclipse-java-galileo-win32.zip)下载完成后解压即可使用。
3).Android SDK安装
在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。
运行SDK Manager.exe,之后出现如图:
点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的"Force https://..."这项,再点击Available Packages 。 选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包 在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:\android-sdk-windows\tools)(会等很长时间)。
4).ADT安装
1 打开Eclipse,Help->Install New Software。将看到如下Install对话框:
点Add按钮,将弹出如下对话框,填好Name和Location,点ok。
现在应该回到了Install对话框中,在Work with下拉列表中选择刚填好的地址,下方将列出可供更新的源,如上图:全部勾选,然后一路next即可(下载插件需要的时间可能会非常长,耐心等). 完成之后:选择Window > Preferences... 在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径,本机为:D:\AndroidDevelop\android-sdk-windows 点击Apply、OK。配置完成。
5).创建AVD 为使Android应用程序可以在模拟器上运行,必须创建AVD。
1、在Eclipse中。选择Windows > Android SDK and AVD Manager 如图:
点击左侧面板的Virtual Devices,再右侧点击New 会弹出:
2、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创建AVD
注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候你:点击左侧面板的Available Packages,在右侧勾选https://dl-ssl.google.com/android/repository/repository.xml.然后点击Install Selected按钮,接下来就是按提示做就行了要做这两步。
注意:在windows搭建Android平台时,总会遇到一些问题如:
1.在装完Eclipse点击install new software,然后输入一个网站https://dl-ssl.google.com/android/eclipse/
或者 http://dl-ssl.google.com/android/eclipse/,然后出现了Developer tools,但是选中后点击next,就一点没有进度:卡在Calculating requirements and dependencies.(需要很长时间耐心等)上.
2.eclipse 的版本也有影响,最好是Eclipse IDE for java EE Developers.下载地址为:http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/heliossr1。有时和电脑的配置也有关系。
解决方法:下载了各种版本,各种试,总会有一个会适合你的。在搭建之前多找些资料,特别是多看看视频。