GMS2009灌浆统计系统怎么注册

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
第8章 钻孔与灌浆工程.doc 23页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
钻孔与灌浆工程
本标段钻孔与灌浆工程包括岩基固结灌浆、岩基帷幕灌浆、地勘洞回填灌浆、边坡排水孔及反渗排水管灌浆封堵等项目。岩基帷幕灌浆布置在大坝趾板和右岸灌浆洞内,单孔最大孔深78m,在1819m高程以下为双排帷幕(即主、副帷幕),其它部位及右岸灌浆洞内为单排帷幕,孔距2 m,排距1.5m,均为竖直孔;岩基固结灌浆布置在趾板帷幕线的上下游侧,在1796m高程以下为三排(上游一排,下游两排),其它部位为两排(上、下游各一排),孔距3 m,排距1.5m,钻孔垂直岩基面布置,在1819m高程以上深入岩石5 m,其它部位深入岩石8 m。
坝址区出露岩基主要为白垩系下统河口群,分布于坝址区河床及两岸较低部位以及木场村一带为紫红色中细砂岩,砖红色泥质粉砂岩,砖红色泥铁质粉砂岩,灰色砾岩,该层岩性软弱,力学强度较低,软弱夹层及裂隙较发育;分布于坝址区两岸为紫红色、青灰色中细砂岩夹紫红色砾岩,紫红色、紫灰色砾岩,局部夹泥质粉砂岩,单层厚25~40cm,该层强度中等,软弱夹层及裂隙中等发育。坝址区地震基本烈度为7度。
地下水主要为氯化物-硫酸-钾纳钙水,PH值为8.2~8.6,矿化度0.229~0.331g/,属弱碱性,对普通水泥不具侵蚀性。
趾板基础相对隔水层顶板埋深(单位吸水率w < 3Lu)为:左岸在岩基面下40~50m,局部达70m;河床在岩基面下40~50m,局部达95m;右岸在砾砂岩底板下40~50m,局部达75m。
钻孔与灌浆工程计划从2008年月开始,日结束,具备验收条件,灌浆试验拟在2008年4月日~月31日完成。主要项目工程量见表8-1。
8.2 施工方案及工艺流程
8.2.1施工总体布置
,见JSX5-TB-8-1)。
主要项目工程量表项目名称 单位 数量 备注
1、趾板固结灌浆
钻混凝土孔 m 298.1
钻岩石 m 2792 深入岩石5m和8m
灌浆 t 209.4
预埋钢管 m 73.4 埋深0.2m、89
2、固结灌浆试验
钻混凝土孔 m 20
钻岩石 m 150 深入岩石8m
预埋灌浆管 m 4 埋深0.2m、89
3、趾板及右岸帷幕灌浆
钻混凝土孔 m 244.9 其中洞内12m
钻岩石 m 16150 其中洞内1347m
灌浆 t 2753.2 其中洞内354.5t
预埋钢管 m 211.8 89
4、帷幕灌浆试验
钻混凝土孔 m 20
钻岩石 m 1190
灌浆 t 180
预埋灌浆管 m 5 89
5、回填灌浆 m2 500
6、断层处理固结灌浆 m2 2152
钻混凝土孔 m 200
钻岩石 m 1000 深入岩石8m
7、边坡处理排水孔
钻孔 m 5828
孔口PVC管 m 583 50
8、地质钻孔封堵 m 5000
9、反渗排水管封堵 m 100
浆现场室、计算机房集中制浆站和等设施,拟在施工现场布置两处,第一处拟在上游下基坑道路路边1790m高程,利用石渣回填形成平台进行布置,控制灌浆范围为1819m高程以下2008年月日。第二处拟在右岸灌浆洞洞口布置,控制灌浆范围为1819m高程以上2009年月日JSX5-TB-8-2)。遵循交通便利、视线开阔、联络方便的原则合理布置。水路、电路、通线路等根据施工区统一规划接支路工作面。50胶管接引,系统临时停水后进行管路冲洗等工作,使用右岸设置的1875m高位水池(备用水源)。施工排水设施的布置:在段趾板上游侧,两岸坡脚各设1个直径1m深1.5m,配4LP80/50型污水泵抽排在岸坡趾板面使污水流至集水坑用砂浆筑截流坎灌浆集水坑,配4LP80/50型污水泵抽排。右岸灌浆洞集水坑布置在口处,配4LP80/50型污水泵抽排。以上集水坑中的污水抽排图JSX5-TB-8-1),处理后清水排至堰前黄河内,沉淀物拉运至指定渣场堆放,污水站设计详见8.5.2.2(4)。
8.2.2施工方案
本标段拟组建基础处理队负责钻孔与灌浆施工在趾板混凝土全部浇筑完成后开始施工见图JSX5-TB-8-3),右岸灌浆洞设一个工作面作业;趾板水平段及右岸灌浆洞内铺设轻轨并在轻轨上固定钻灌设备,趾板岸坡段全部铺设轻轨并设计钻灌台车固定钻灌设备。
单元工程内先固结灌浆,检查合格后进行帷幕灌浆;固结灌浆先施工边排,再完成中间排,排内分序加密帷幕灌浆先灌注下游排,后灌注上游排,排内分序加密8.2.3 施工工艺流程
8. 2.3.1施工工艺流程
施工准备→测量放孔→钻灌就位→抬动观测孔施工→→固结灌浆Ⅱ序孔施工→检查孔施工→资料整理
正在加载中,请稍后...单片机、电路板
连接器、接插件
其他元器件
灌浆记录仪
灌浆记录仪
gms2004灌浆数据自动采集及处理系统简介gms2004灌浆数据自动采集及处理系统,是运用电子计算机对灌浆施工过程的技术参数进行自动采集和记录,以及按设定程序对灌浆过程进行自动监控及对灌浆数据进行处理。是在j31、j31b型智能灌浆记录仪和gms2004灌浆自动监测系统的基础上发展起来的,是由中国水利水电基础工程局小浪底工程项目经理部和西安交通大学、美国爱科美公司共同开发、研制的,是目前国内灌浆
gms2004灌浆数据自动采集及处理系统简介gms2004灌浆数据自动采集及处理系统,是运用电子计算机对灌浆施工过程的技术参数进行自动采集和记录,以及按设定程序对灌浆过程进行自动监控及对灌浆数据进行处理。是在j31、j31b型智能灌浆记录仪和gms2004灌浆自动监测系统的基础上发展起来的,是由中国水利水电基础工程局小浪底工程项目经理部和西安交通大学、美国爱科美公司共同开发、研制的,是目前国内灌浆自动记录仪的更新换代产品。该系统将原产品的分别控制改为集中控制,操作人员从监视器上可直接监视数个灌浆过程,控制每一个灌浆过程按预定程式进行。系统性能更优越更可靠,便于集中控制和远程监测,是理想的灌浆监测设备。所有统计报表输出按规范要求,基本实现了无手工录入数据的过程。gms2004灌浆自动监测一体机系统是开发者利用高科技手段创新的结晶,是集中国内外同行的智慧。转换机对灌浆施工过程的技术参数自动进行采集和转换,并运用电子计算机对采集转换后的数据进行处理和记录,可同时监控8 套灌浆设备、64个(种)不同类型传感器,还可同时进行几种不同方法的灌浆,支持多台计算机采集的数据自动合并。在采集灌浆数据的同时可实时显示灌浆过程中的各种参数.、记录和曲线,并进行智能处理,使灌浆现场采集的数据自动生成各种曲线、报表和数据成果分析、图表等,省去了人工进行灌浆数据统计分析的烦恼,提高了报表的准确率。该软件是目前我国灌浆行业唯一实现采集与数据整理的软件。开发者将根据用户的需求,不断更新版本,力求达到用户满意。1.仪器的特点⑴本仪器采用国外军工技术将工业计算机、转换机、显示器、打印机、抗干扰电源有机地结合成一体,均为适应灌浆工程施工记录的特殊要求,应用高新技术专门开发研制的,因而,硬件高度集成,外观结构简单、轻便小巧,适应水利水电工地的流动性和频繁搬迁的需要;⑵监测机具有多种显示和记录功能,液晶显示屏实时显示灌浆过程中每一时刻的灌浆压力、注入率以及累积注入灰量、注浆体积;还可显示出灌浆压力和时间、注入率和时间、单位注入量和时间、可灌性和注入水泥量、灌浆压力和注入灰量共六种曲线,并且可通过打印机输出这些数据和曲线。数据准确、图象清晰,便于阅读、分析和储存。适合于施工现场质控、内业资料整理等;⑶记录时间间隔从1min开始无级调节,可任意设置,满足不同需求;⑷计算机采样频率高,每50ms采样一次,不会遗漏极值(最大和最小压力、注入率);⑸经过国家认证的专门的计量机构检定,计量精度高,在注入率小于0.4l/min时仍具有良好的分辨率;⑹监测机主机适应于流量传感器和压力传感器在灌浆管路中的多种接法,可用于各种灌浆方法、各种复杂地层。⑺自行研制的高精度数据采集、转换机,数据误差率≤1%,并配有抗干扰精密电源,具有省电和适用于电压波动大、电磁干扰强的施工场地;⑻具有良好的防潮、防湿、去潮、除湿、抗震动功能,适用于隧道中施工,以及长途运输等工况;⑼该系统可以实现远距离监测。⑽该系统共设八个通道,每个通道可同时采集:压力、流量、密度、抬动(位移)等四组不同的数据。2.仪器的组成部分gms2004灌浆自动监测一体机系统结构分为一体机、变送器、多路显示器等三大部分。各部分主要功能为:⑴变送器 即压力传感器、流量传感器、密度传感器和抬动(位移)传感器,它们直接串联在灌浆管路中或测浆桶中或抬动架上,将灌浆浆液的压力、流量、密度和抬动信息转变为电信号送入转换机。⑵多路显示器 现场实时显示灌浆过程中的压力、流量和密度,便于现场操作人员观看和控制灌浆过程中的压力、流量和密度。⑶一体机 将变送器的电信号经过i/v、a/d转换后,在计算机的控制下完成数据采集、数字滤波、故障诊断、数据处理、通过监视器实时显示压力、流量、水灰比或密度和抬动信息及地层的可灌性,随时可调用,通过打印机打印出平均压力、最大压力、平均流量、累计注入浆量、累计每米注入浆量及灰量、gin值等,可一次打印(窄行)出六种可灌性曲线,在外接标准型打印机后可打印各种宽行报表。 图2仪器结构组成示意图压力传感器1-8流量传感器1-8密度传感器1-864路i/v转换器64路a/d转换器工业控制机精密稳压电源监视器打印输出设备抬动传感器1-8图1 gms2004灌浆自动监测一体机3.主要技术性能⑴压力变送器适应范围∶0~9.99mpa(程序可根据硬件任意调整)计量精度∶0.5%⑵流量变送器适应范围∶0~99.9l/min(程序可根据硬件任意调整)适应压力∶不小于6mpa,计量精度∶0~20l/min为0.2l
上一篇:已经是第一篇
型号/产品名
深圳优耐检测技术有限公司
深圳优耐检测技术有限公司
深圳优耐检测技术有限公司
深圳优耐检测技术有限公司
深圳优耐检测技术有限公司(window.slotbydup=window.slotbydup || []).push({
id: '2014386',
container: s,
size: '234,60',
display: 'inlay-fix'
&&|&&1次下载&&|&&总22页&&|
您的计算机尚未安装Flash,点击安装&
阅读已结束,如需下载到电脑,请使用积分()
下载:10积分
0人评价4页
相关分类推荐
0人评价13页
0人评价1页
0人评价1页
0人评价15页
0人评价18页
所需积分:(友情提示:大部分文档均可免费预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)
(多个标签用逗号分隔)
文不对题,内容与标题介绍不符
广告内容或内容过于简单
文档乱码或无法正常显示
文档内容侵权
已存在相同文档
不属于经济管理类文档
源文档损坏或加密
若此文档涉嫌侵害了您的权利,请参照说明。
我要评价:
价格:10积分VIP价:········
频道头条 Big News
中医药科技成果推广
凤凰网财经
今日热图昨日热图
最热万象VIPAndroid(安卓系统) - 搜狗百科
&&历史版本
Android(安卓系统)
该版本已锁定
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。
Content Provider 是Android提供的第三方应用数据的访问方案。
  谷歌移动服务(英文:Google Mobile Service)是的一项服务,该服务简称“GMS”,指在让用户利用或其他移动设备使用谷歌搜索、、、、等谷歌服务产品。   谷歌将(GMS)内嵌到Android手机系统中,并且对android手机生产商给予不同程度的授权。   GMS是Android操作系统的灵魂,大部分用户使用Android手机,其实就是为了使用谷歌服务。
Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。中文名:安卓、安致外文名:Android开发商:Google/开放手持设备联盟发行商:Google发行时间:日编程语言:C/C++(底层) Java等(应用层)源码模式:混合(自由免费,开放源码)包类型:APK支持平台:ARM、MIPS、x86内核类:整块性核心(Linux)
  Google收购了成立仅22个月的高科技企业Android公司。
  11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成。这一联盟将支持谷歌发布的手机操作系统以及应用软件,将共同开发Android系统的开放源代码。
  5月28日,Patrick Brady于Google I/O大会上提出Android HAL架构图。   8月18日,Android获得美国联邦通信委员会的批准。   9月22日,谷歌正式对外发布第一款Android手机——HTC G1。   9月23日,谷歌发布Android1.0。   9月24日,全球业界都表示不看好Android操作系统,并且声称最多1年,Android就会被Google关闭。
  4月30日,Android1.5正式发布。   5月10日,HTC G1和HTC G2市场大卖,成为仅次于iPhone的热门机型。   9月25日,Android1.6正式发布。   9月29日,HTC Hero G3广受欢迎,成为全球最受欢迎的机型。   10月28日,Android 2.0 智能手机操作系统正式发布。   11月10日,由于Android的火热,Android平台出现第一个恶意间谍软件:Mobile Spy。
  1月7日,Google发布了旗下第一款自主品牌手机:Nexus one(HTC G5)。   1月,谷歌与Linux基金会就Linux内核的同步和维护意见不一致而产生了矛盾。   2月3日,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”上除去。   5月19日,Google正式对外发布Android2.2智能操作系统。   5月20日,Google对外正式展示了搭载Android系统的智能电视-Google TV,该电视为全球首台智能电视。   7月1日,Google宣布正式与雅虎、亚马逊合作,并且在Android上推出多项Kindle服务和雅虎服务。   7月9日,美国NDP集团调查显示,Android系统已占据了美国手机市场28%的份额,全球17%的市场份额。   8月12日,Android平台出现第一个木马病毒:Trojan-SMS.AndroidOS.FakePlayer.a。   9月,Android应用数量超过9万个。   9月21日,Google对外公布数据,每日销售的Android设备的新用户数达到20万。   10月26日,Google宣布Android达到第一个里程碑:电子市场上Android应用数量达到10万个。   12月7日,Google正式发布Android2.3操作系统。
  1月,Google对外宣布Android Market上的应用数量超过20万。   1月,Google对外公布数据,每日Android设备的新用户数达到了30万。   2月,美国移动用户36%拥有智能手机。当中,48%的智能手机用户选择Android智能手机。约32.1%的智能手机用户选择了苹果iPhone。黑莓及其它智能手机占有11.6%的份额。   2月2日,Android3.0正式发布。   2月3日,谷歌发布了专用于平板电脑的Android 3.0蜂巢系统。   6月,Android在日本的智能手机操作系统市场占有率达到57%。   7月,Android在欧洲的智能手机操作系统市场占有率达到了22.3%   7月,Google对外公布数据,Android每天的新用户达到55万,Android设备用户总数达1.35亿。   8月,谷歌收购摩托罗拉移动。   8月,Google对外宣布Android Market上的应用数量超过30万。   8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。   8月,Android在韩国的智能手机操作系统市场占有率达到了95%。   8月,Android系统在35个国家市场占有率第一,平均市场占有率达到48%。   8月,Android系统成为亚太地区第一大系统,市场占有率为亚太地区第一大。   9月,Android在美国的智能手机操作系统市场占有率达到43%。   10月19日,谷歌正式发布Android 4.0操作系统。   11月,Android Market上提交审核的应用程序数量达到50万。   11月初,谷歌对Android Market上的应用程序进行了大清理,据统计,此次共清理了约18万个应用程序,包括流氓应用、病毒软件、侵犯版权、低质量和滥竽充数的各种程序,谷歌将这一系列应用删除后,使得Android市场中的优质应用程序总数到31.5万。   11月15日,Android在中国大陆的智能手机操作系统市场占有率达到了58%。   11月20日,谷歌宣布启动了Android Market应用审核、取缔、清扫行为,定期对电子市场上存在的不合格、低质量、违法恶意的应用程序进行清理。   11月18日,美国NPD数据显示,Android和iOS平台上的游戏占有率都首度超过任天堂的DS掌机和索尼的PSP掌机,手机游戏玩家也超过了掌机玩家,游戏开发商更倾向于向Android和iOS手机上开发游戏。   11月18日,谷歌报告显示,通过谷歌服务器激活的Android设备用户总数已经超过2亿,每天激活的新用户数超过55万,而这仅仅是通过谷歌服务器激活的用户设备数。   12月9日,Google对外宣布,Android Market的累计下载量已经突破100亿次,平均每月的下载量为10亿次。   12月18日,Google移动事业部副总裁Andy Rubin表示,每天激活的Android设备已达到70万部。   12月26日,Andy Rubin通过Twitter宣布,圣诞节的前两天24日和25日,共有370万部Android设备被激活。
  1月4日,数据显示,Android Market上的应用程序数量突破40万个,每4个月增加10万个应用程序   1月5,数据显示,在谷歌电子市场上登记的Android开发者已经达到了10万名。   1月20日,谷歌报告显示,通过谷歌服务器激活的Android设备用户总数已经超过2.5亿,距离去年11月的数量,在短短2个月时间内全球共卖出5000万台安卓设备,平均每秒钟就卖出10台安卓设备。   2月4日,comScore等数据市场研究机构的数据显示,安卓在美国手机市场的占有率达到了47.3%。   2月5日,美国联邦政府宣布成立专门的Android实验室进行适用于军方的Android第三方ROM的定制工作。   2月15日,美国联邦政府总务署宣布已经采购了2万台Android手机供政府人员使用。   2月22日,Android在中国大陆的智能手机操作系统市场占有率达到了68.4%。   2月28日,谷歌正式宣布,Android设备每天激活量达到85万台,通过谷歌服务器激活的Android设备用户总数突破3亿台,距离2012年1月的数量,在短短1个月时间内全球共卖出5000万台安卓设备,平均每秒钟就卖出15台安卓设备。   2月28日,谷歌官方数据显示,Android电子市场(Android Market)上的应用程序数量已经突破45万个,一年内增加30万个。   3月1日,Google对外宣布,Android Market的累计下载量已经突破130亿次。   3月4日,Android在印度的智能手机操作系统市场占有率达到了34%。   4月4日,Android在美国市场的占有率增长到了50.1%。   5月1日,Android在东南亚各国的平均份额达到了49%。
  Android的系统架构和其它操作系统一样,采用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。   Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。   在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。   而在Android系统底层方面,Android使用C/C++作为开发语言。
应用程序(部分)
  早期的Android应用程序开发,通常通过Android SDK(Android软件开发包)下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同。   例如开发者可以通过Android NDK(Android Native开发包)使用C语言或者C++语言来作为编程语言开发应用程序。同时谷歌还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的Visual Basic语言。此外,谷歌公司还推出了Google App Inventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。
Java开发方面
  Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。
Android结构其中Activity等同于J2ME的MIDlet,一个 Activity 类(Class)负责创建视窗(Windows),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(Stopped),甚至被系统清除(Kill)。   View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有BitMap等同于J2ME的Image。
C/C++开发方面
  早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步。2010年4月,谷歌正式对开发者发布了Android NDK,NDK允许开发者使用C/C++作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C++在Android开发中的希望。   但是,当前版本的NDK在功能上还有很多局限性:NDK并没有提供对应用程序生命周期的维护;NDK也不提供对Android系统中大量系统事件的支持;对于作为应用程序交互接口的UI API,当前版本的NDK中也没有提供。但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进。   由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好。
  操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。   Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。   Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。   Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。   Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。   Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。
硬件抽像层
  Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展。   HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函数(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 这些操作函数。HAL 里包含了许多的 stub(代理人)。Runtime 只要说明“类型”,即 module ID,就可以取得操作函数。
  Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。   目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。
安全权限机制
  Android本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。   系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。   Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。   安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。从用户角度看,一款Android应用通常会要求如下的权限:   拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。   一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑。
3G梦工场是湖北首家3G软件工程师人才实训基地,由武汉四维创意教育科技有限公司公司承办,2009年12月学校正式启动,致力于打造中国高端3G应用开发领域集技术培训、项目辅导、创业孵化为一体的服务品牌。致力于培养3G前端应用开发工程师、iphone 软件应用开发工程师、Android开发工程师、J2ME 开发工程师、Windows Mobile开发工程师、Symbian初级、中级、高级开发工程师。
经过接近两年的努力,成为国内知名的3G培训品牌,并且已是国家工信部3G项目管理中心授权为湖北3G工程师指定考试中心,并且是3G工程师试题指定提供单位。并且和国内一些企业合作,开设了校企示范班,学员毕业后可进入合作企业进行工作。
3G梦工场采取小班授课、项目教学、商业项目开发的教学方式,通过企业定向培养,入学签订就业推荐协议等人才培养模式,吸引众多大学生就读。课程提供内容丰富、教材形式多样,配图教材,多媒体动画PPT,清晰的授课思路以及随时可以观摩的在线咨询。提高授课质量,降低学生学习难度。
3G梦工场地处湖北武汉广埠屯(华中师范大学正北门),属于武汉的中心地带,对面武汉大学,西邻武汉理工,东侧华中科技大学,背后是湖北工业大学商贸学院,有强烈的教育文化和浓厚的学习气氛!
  主词条目:Android开发   android四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。
1 Activity
  Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。   一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。   当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,因为Android 会把每个应用的开始到
activity的生命周期  当前的每一个屏幕保存在堆栈中。Activity 是由Android 系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期,对于Activity,关键是其生命周期的把握,其次就是状态的保存和恢复(onSaveInstanceState onRestoreInstanceState),以及Activity 之间的跳转和数据传输(intent)。
  Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android 浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。service 可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD 卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。开启service有两种方式:   (1) Context.startService():Service会经历onCreate -& onStart(如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次 );stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。 注意,多次调用Context.startservice()不会嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动了多少次,一旦调用Context.stopService()或者stopSelf(),他都会被停止。补充说明:传递给startService()的Intent对象会传递给onStart()方法。调用顺序为:onCreate --& onStart(可多次调用) --& onDestroy。   (2) Context.bindService():Service会经历onCreate() -& onBind(),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind -& onDestroyed相应退出,所谓绑定在一起就共存亡了 。   下图所示为其生命周期:
3 BroadcastReceiver
  在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver 进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver 进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager 来通知用户这些事情发生了。BroadcastReceiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast () 将它们自己的intent broadcasts广播给其他应用程序。注册BroadcastReceiver有两种方式:   (1)在AndroidManifest.xml进行注册。这种方法有一个特点即使你的应用程序已经关闭了,但这个BroadcastReceiver依然会接受广播出来的对象,也就是说无论你这个应用程序时开还是关都属于活动状态都可以接受到广播的事件;   (2)在代码中注册广播。   第一种俗称静态注册,第二种俗称动态注册,这两种注册BroadcastReceiver的区别:   动态注册较静态注册灵活。实验证明:当静态注册一个BroadcastReceiver时,不论应用程序是启动与否。都可以接受对应的广播。   动态注册的时候,如果不执行unregisterReceiver();方法取消注册,跟静态是一样的。但是如果执行该方法,当执行过以后,就不能接受广播了。
4 Content Provider
  Content Provider 是Android提供的第三方应用数据的访问方案。   在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件、等等内容,都是不允许其他直接访问的。Andorid当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。应用想对外提供的数据,可以通过派生ContentProvider类, 封装成一枚Content Provider,每个Content Provider都用一个uri作为独立的标识,形如:content://com.xxxxx。所有东西看着像REST的样子,但实际上,它比REST 更为灵活。和REST类似,uri也可以有两种类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给你id的uri你也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。   另外,Content Provider不和REST一样只有uri可用,还可以接受Projection,Selection,OrderBy等参数,这样,就可以像数据库那样进行投影,选择和排序。查询到的结果,以Cursor(参见:reference/android/database/Cursor.html )的形式进行返回,调用者可以移动Cursor来访问各列的数据。   Content Provider屏蔽了内部数据的存储细节,向外提供了上述统一的接口模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更方便的途径。Content Provider内部,常用数据库来实现,Android提供了强大的Sqlite支持,但很多时候,你也可以封装文件或其他混合的数据。   在Android中,ContentResolver是用来发起Content Provider的定位和访问的。不过它仅提供了同步访问的Content Provider的接口。但通常,Content Provider需要访问的可能是数据库等大数据源,效率上不足够快,会导致调用线程的拥塞。因此Android提供了一个AsyncQueryHandler(参见:reference/android/content/AsyncQueryHandler.html),帮助进行异步访问Content Provider。   在各大组件中,Service和Content Provider都是那种需要持续访问的。Service如果是一个耗时的场景,往往会提供异步访问的接口,而Content Provider不论效率如何,都提供的是约定的同步访问接口。
命名规则  Android用甜点作为它们系统版本的代号的命名方法开始于 Android 1.5 发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:,,,,,,,根据最新消息新一代Android版本将命名为果冻豆(Jelly Bean)。 发行版本   版本备注Android1.12008 年9月发布的Android第一版 Cupcake (纸杯蛋糕)日,官方1.5版本(Cupcake 纸杯蛋糕)的Android发布。主要的更新如下: 1、拍摄/播放影片,并支持上传到Youtube 2、支持立体声耳机,同时改善自动配对性能 3、最新的采用技术的浏览器,支持复制/贴上和页面中搜索 4、性能大大提高 5、提供屏幕虚拟键盘 6、主屏幕增加音乐播放器和相框widgets 7、应用程序自动随着手机旋转 8、短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件 9、相机启动速度加快,拍摄图片可以直接上传到 10、来电照片显示 Donut (甜甜圈)日,1.6(Donut 甜甜圈)版本发布。主要的更新如下: 1、重新设计的Android Market手势 2、支持支持网络 3、文字转语音系统(Text-to-Speech) 4、快速搜索框 5、全新的拍照接口 6、查看应用程序耗电 7、支持(VPN) 8、支持更多的屏幕分辨率。 9、支持OpenCore2媒体引擎 10、新增面向视觉或听觉困难人群的易用性插件Android2.0/2.0.1/2.1 Eclair (松饼)日,2.0(Eclair 松饼)版本软件开发工具包发布。主要的更新如下: 1、优化硬件速度 2、&Car Home&程序 3、支持更多的屏幕分辨率 4、改良的用户界面 5、新的浏览器的用户接口和支持 6、新的联系人名单 7、更好的白色/黑色背景比率 8、改进3.1.2 9、支持Microsoft Exchange 10、支持内置相机闪光灯 11、支持数码变焦 12、改进的虚拟键盘 13、支持蓝牙2.1 14、支持动态桌面的设计/2.2.1 Froyo (冻酸奶)日,2.2(Froyo 冻酸奶)版本软件开发工具包发布。主要的更新如下: 1、整体性能大幅度的提升 2、3G网络共享功能。 3、Flash的支持。 4、App2sd功能。 5、全新的软件商店。 6、更多的Web应用API接口的开发。 Gingerbread (姜饼)日,2.3(Gingerbread 姜饼)版本软件开发工具包发布。主要的更新如下: 1、增加了新的垃圾回收和优化处理事件 2、原生代码可直接存取输入和感应器事件、EGL/OpenGL ES、OpenSL ES。 3、新的管理窗口和生命周期的框架。 4、支持VP8和WebM视频格式,提供AAC和AMR宽频编码,提供了新的音频效果器 5、支持前置摄像头、SIP/VOIP和NFC(近场通讯) 6、简化界面、速度提升: 7、更快更直观的文字输入: 8、一键文字选择和复制/粘帖: 9、改进的电源管理系统: 10、新的应用管理方式:
Honeycomb (蜂巢)日, 3.0(Honeycomb 蜂巢)版本主要更新如下: ·优化针对平板 ·全新设计的UI增强网页浏览功能 ·n-app purchases功能 Honeycomb (蜂巢)日在Google I/O开发者大会宣布发布,版本主要更新如下: 蜂巢(改进3.0BUG) 经过优化的Gmail电子邮箱; 全面支持GoogleMaps 将Android手机系统跟平板系统再次合并从而方便开发者。 任务管理器可滚动,支持USB 输入设备(键盘、鼠标等)。 支持 Google TV.可以支持XBOX 360无线手柄 widget支持的变化,能更加容易的定制屏幕widget插件。 Honeycomb (蜂巢)日发布,版本更新如下: 支持7英寸设备 引入了应用显示缩放功能 Ice Cream Sandwich (冰激凌三明治)日 在香港发布, 4.0(Ice Cream Sandwich 冰激凌三明治)版本主要更新如下: 1、全新的ui 2、全新的浏览器,有离线阅读,16标签页,隐身浏览模式等。 3、截图功能 4、更强大的图片编辑功能 5、自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序 6、Gmail加入手势、离线搜索功能,UI更强大。 7、新功能People:以联系人照片为核心,界面偏重滑动而非点击,集成了Twitter、Linkedin、Google+等通讯工具。有望支持用户自定义添加第三方服务。 8、新增流量管理工具,可具体查看每个应用产生的流量。 9、正在运行的程序可以像电脑一样的互相切换 10、人脸识别功能 11、系统优化、速度更快 12、支持虚拟按键,手机可以不再拥有任何按键 13、更直观的程序文件夹: 14、平板电脑和智能手机通用 15、支持更大的分辨率 16、专为双核处理器编写的优化驱动 17、全新的Linux内核 18、增强的复制粘贴功能 19、语音功能 20、全新通知栏: 21、更加丰富的数据传输功能 22、更多的感应器支持 23、语音识别的键盘: 24、全新的3D驱动, 游戏支持能力提升 25、全新的谷歌电子市场 26、增强的桌面插件自定义Android N.n Jelly Bean “果冻豆”继“冰激凌三明治”之后的下一版Android系统。
  2005年事件   Google收购了成立仅22个月的高科技企业Android。   2007年事件   11月5日,公司正式向外界展示Android操作系统。   11月5日,Google与34家手机制造商、软件开发商、电信运营商和芯片制造商共同创建开放手持设备联盟。   2008年事件   5月28日,Patrick Brady于Google I/O大会上提出Android HAL架构图。   8月18日,Android获得的批准。   9月22日,谷歌正式对外发布第一款Android手机——HTC G1。   9月23日,谷歌发布Android1.0。   9月24日,全球业界都表示不看好Android操作系统,并且声称最多1年,Android就会被Google关闭。   2009年事件   4月30日,Android1.5正式发布。   5月10日,HTC G1和HTC G2市场大卖,成为仅次于iPhone的热门机型。   9月25日,Android1.6正式发布。   9月29日,HTC Hero G3广受欢迎,成为全球最受欢迎的机型。   10月28日,Android 2.0 智能手机操作系统正式发布。   11月10日,由于Android的火热,Android平台出现第一个恶意间谍软件:,该程序会自动记录用户所输入的任何信息并发送到黑客的邮箱中,还可以视频录下用户的所有操作过程。   2010年事件   1月7日,Google发布了旗下第一款自主品牌手机:Nexus one(HTC G5)。   1月,谷歌与就谷歌修改了Linux内核而产生了矛盾。   2月3日,内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”上除去,从此,Android与Linux开发分道扬镳。   5月19日,Google正式对外发布Android2.2智能操作系统。   5月20日,Google对外正式展示了搭载Android系统的-Google TV,该电视为全球首台智能电视。   7月1日,Google宣布正式与雅虎、亚马逊合作,并且在Android上推出多项Kindle服务和雅虎服务。   7月9日,美国NDP集团调查显示,Android系统已占据了美国手机市场28%的份额,全球17%的市场份额。   8月12日,Android平台出现第一个:Trojan-SMS.AndroidOS.FakePlayer.a,该木马病毒会伪装成应用程序,当用户不小心安装之后,它便会疯狂地发送短信,使用户的手机开通高额的收费服务。   9月,Android应用数量超过9万个。   9月21日,Google对外公布数据,每日销售的Android设备的新用户数达到20万。   10月26日,Google宣布Android达到第一个里程碑:电子市场上的Android应用数量达到10万个。   12月7日,Google正式发布Android2.3操作系统。   2011年事件   1月,Android应用数量超过20万。   1月,Google对外公布数据,每日Android设备的新用户数达到30万。   2月2日,Android3.0正式发布。   2月3日,谷歌发布了专用于平板电脑的Android 3.0Honeycomb系统,它带来了很多激动人心的新特性。这是首个基于Android的平板电脑专用操作系统。   6月,Android在的智能手机操作系统市场占有率达到57%。   7月,Android在的智能手机操作系统市场占有率达到了22.3%   7月,Google对外公布数据,Android每天的新用户达到55万,Android设备用户总数达1.35亿。   8月,谷歌收购移动。   8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian()的霸主地位,跃居全球第一。   8月,Android在的智能手机操作系统市场占有率达到了95%。   8月,Android系统在35个国家市场占有率第一,平均市场占有率达到48%。   8月,Android系统成为第一大系统,市场占有率为亚太地区第一大。   9月,Android在的智能手机操作系统市场占有率达到43%。   10月19日,谷歌正式发布Android 4.0操作系统。   11月15日,Android在的智能手机操作系统市场占有率达到了58%。   11月18日,美国NPD数据显示,Android和平台上的游戏占有率都首度超过的掌机和的掌机,手机游戏玩家也超过了掌机玩家,游戏开发商更倾向于向Android和iOS手机上开发游戏。   11月18日,谷歌报告显示,通过谷歌服务器激活的Android设备用户总数已经超过2亿,每天通过谷歌服务器激活的新用户数超过55万,而这仅仅是通过谷歌服务器激活的用户设备数。   12月9日,Google对外宣布,Android达到另一个里程碑,Android电子市场即Android Market的累计下载量已经突破100亿次,平均每月的下载量为10亿次。 12月18日,Google移动事业部副总裁Andy Rubin表示,每天激活的Android设备已达到70万部。   12月26日,Andy Rubin通过Twitter宣布,圣诞节的前两天24日和25日,共有370万部Android设备被激活。
  Android是以Linux为核心的手机操作平台,作为一款开放式操作系统,随着Android的快速发展,如今已允许开发者使用多种来开发Android,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。   在Android中,开发者可以使用作为编程语言来开发应用程序,也可以通过NDK使用C/作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:、、、等等),还有其他诸如:(qt for android)、(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过,开发者还可以使用作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android ,该语言类似。而在网页编程语言方面,,,HTML5,、、dojo、mobl、PhoneGap等等都已经支持Android开发。   而在Android系统底层方面,Android使用C/C++作为开发语言。 应用程序(部分)  早期的Android应用程序开发,通常通过(Android软件开发包)下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同。   例如开发者可以通过Android NDK(Android Native开发包)使用C语言或者C++语言来作为编程语言开发应用程序。同时谷歌还推出了适合初学者编程使用的语言,该语言类似微软公司的语言。此外,谷歌公司还推出了Google App Inventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。   Java开发方面   Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。 其中Activity等同于J2ME的MIDlet,一个 Activity 类()负责创建视窗(Windows),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(Stopped),甚至被系统清除(Kill)。   View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。   C/C++开发方面   早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步。2010年4月,谷歌正式对开发者发布了Android NDK,NDK允许开发者使用C/C++作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C++在Android开发中的希望。   但是,当前版本的NDK在功能上还有很多局限性:NDK并没有提供对应用程序生命周期的维护;NDK也不提供对Android系统中大量系统事件的支持;对于作为应用程序交互接口的UI API,当前版本的NDK中也没有提供。但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进。   由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好。 中介软件  与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。   Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。   Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。   Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。   Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。   Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。 硬件抽像层  Android 的 (硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展。   HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函数(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 这些操作函数。HAL 里包含了许多的 stub(代理人)。Runtime 只要说明“类型”,即 module ID,就可以取得操作函数。 内核  Android 是运行于 Linux kernel之上,但并不是/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。   目前Android 的 Linux kernel控制包括安全(),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。 安全权限机制  Android本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。   系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。   Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。   安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。从用户角度看,一款Android应用通常会要求如下的权限:   拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人信息、读取日程信息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。   一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加内容需要下载,那么它要求访问网络的权限就比较可疑。,也没有任何附加内容需要下载,那么它要求访问网络的权限就比较可疑。
  android四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。
1 Activity
  Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。   一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。   当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,因为Android 会把每个应用的开始到当前的每一个屏幕保存在堆栈中。Activity 是由Android 系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期,对于Activity,关键是其生命周期的把握,其次就是状态的保存和恢复(onSaveInstanceState onRestoreInstanceState),以及Activity 之间的跳转和数据传输(intent)。
  Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android 浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。service 可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD 卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。开启service有两种方式:   (1) Context.startService():Service会经历onCreate -& onStart(如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次 );stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。 注意,多次调用Context.startservice()不会嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动了多少次,一旦调用Context.stopService()或者stopSelf(),他都会被停止。补充说明:传递给startService()的Intent对象会传递给onStart()方法。调用顺序为:onCreate --& onStart(可多次调用) --& onDestroy。   (2) Context.bindService():Service会经历onCreate() -& onBind(),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind -& onDestroyed相应退出,所谓绑定在一起就共存亡了 。   下图所示为其生命周期:
3 BroadcastReceiver
  在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver 进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver 进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager 来通知用户这些事情发生了。BroadcastReceiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast () 将它们自己的intent broadcasts广播给其他应用程序。注册BroadcastReceiver有两种方式:   (1)在AndroidManifest.xml进行注册。这种方法有一个特点即使你的应用程序已经关闭了,但这个BroadcastReceiver依然会接受广播出来的对象,也就是说无论你这个应用程序时开还是关都属于活动状态都可以接受到广播的事件;   (2)在代码中注册广播。   第一种俗称静态注册,第二种俗称动态注册,这两种注册BroadcastReceiver的区别:   动态注册较静态注册灵活。实验证明:当静态注册一个BroadcastReceiver时,不论应用程序是启动与否。都可以接受对应的广播。   动态注册的时候,如果不执行unregisterReceiver();方法取消注册,跟静态是一样的。但是如果执行该方法,当执行过以后,就不能接受广播了。
4 Content Provider
  Content Provider 是Android提供的第三方应用数据的访问方案。   在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件、等等内容,都是不允许其他直接访问的。Andorid当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。应用想对外提供的数据,可以通过派生ContentProvider类, 封装成一枚Content Provider,每个Content Provider都用一个uri作为独立的标识,形如:content://com.xxxxx。所有东西看着像REST的样子,但实际上,它比REST 更为灵活。和REST类似,uri也可以有两种类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给你id的uri你也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。   另外,Content Provider不和REST一样只有uri可用,还可以接受Projection,Selection,OrderBy等参数,这样,就可以像数据库那样进行投影,选择和排序。查询到的结果,以Cursor(参见:reference/android/database/Cursor.html )的形式进行返回,调用者可以移动Cursor来访问各列的数据。   Content Provider屏蔽了内部数据的存储细节,向外提供了上述统一的接口模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更方便的途径。Content Provider内部,常用数据库来实现,Android提供了强大的Sqlite支持,但很多时候,你也可以封装文件或其他混合的数据。   在Android中,ContentResolver是用来发起Content Provider的定位和访问的。不过它仅提供了同步访问的Content Provider的接口。但通常,Content Provider需要访问的可能是数据库等大数据源,效率上不足够快,会导致调用线程的拥塞。因此Android提供了一个AsyncQueryHandler(参见:reference/android/content/AsyncQueryHandler.html),帮助进行异步访问Content Provider。   在各大组件中,Service和Content Provider都是那种需要持续访问的。Service如果是一个耗时的场景,往往会提供异步访问的接口,而Content Provider不论效率如何,都提供的是约定的同步访问接口。
在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从2007年iPhone上市后,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。
丰富的硬件
这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。
Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。
Google应用
在互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。

我要回帖

更多关于 GMS评估 的文章

 

随机推荐