精华内容
下载资源
问答
  • 编者按:近几年,在美国有一派作先驱研究的生物家认为,目前整个自然界生态系统中,物种之间是有隔绝的。马不可能和熊,鱼不可能和企鹅,就连人都不可能和近亲猩猩生出宝宝。虽然组成我们这颗行星上的自然生态物种,...

    编者按:近几年,在美国有一派作先驱研究的生物家认为,目前整个自然界生态系统中,物种之间是有隔绝的。马不可能和熊,鱼不可能和企鹅,就连人都不可能和近亲猩猩生出宝宝。虽然组成我们这颗行星上的自然生态物种,其DNA都是四种最为基本的物质——ACGT。但是不同物种之间,是无法通过交换基因的机制,衍生出一种崭新的生命和物种的。我们这个自然界中,不同的物种之间的基因交换是被隔绝的。生物科学的生态系统,究竟与我们今天的移动应用开发的生态系统有着怎样的相似和可以借鉴的地方呢?

    上帝:保护生态系统,需要施加隔绝

    在圣经中是这样描述上帝创造物种和生态系统,上帝说:“地要生出活物来,各从其类;牲畜、昆虫、野兽,各从其类。(创世记 1:24)

    如果上帝是一名程序员,那么所有的物种起源,就要归功于上帝编写的一行行DNA代码。在自然界生态系统建造的最初阶段,物种的DNA编码几乎都是开放的,甚至上帝会自己作许多基因切片混搭与尝试。埃及的狮身人面像,人首蛇身的女娲和伏羲,米诺斯王国的牛头战士,希腊神话中狮头, 羊身, 蛇尾的吐火怪物奇美拉。最初物种之间是开放的,可以随意搭配,衍生出新物种。然而今天,物种之间是有隔绝的,由此可见开源之后必然是闭源,封闭性是对生态系统最好的保护。

    118_120627180354_1_lit.png

    图:开放的生态系统,必然会造就很多怪物

    Android的分裂是注定的宿命

    最近许多消费类的媒体,也慢慢开始关注Android生态系统日益严重的分裂问题。在很多专访和访谈中,问的最多一类问题就是:您如何看待Android的分裂;您的移动应用是如何做到完美适配的?如果你有一些起码的生物学基础,不难能看清这件事的本质:Android的分裂是注定的宿命。

    当今的移动互联网被两大生态系统所牢牢掌控,一个是谷歌号称开源系统的Android,另一个是苹果笃誓闭源的iOS。这是两种完全不同的生态系统。从一开始,乔布斯就对iOS下了定义,iPhone无论是硬件还是软件都是封闭的。即使有人得意洋洋的越狱了,依旧也仅仅能使用For iOS的应用。

    118_120627182242_1_lit.png

    图:Android手机出货榜单

    开放性的系统 引来混乱的生态

    当Android遇到不同的手机硬件制造商,不同硬件终端制造商,不同的OEM厂商,其各种Android UI系统和智能终端更是层出不穷,何止是九子能尽数呀。

    从2007年iPhone发布以来,其UI设计就不断的被Android和一些有着远大抱负的厂商所急功近利的追赶着。

    当Android遇到小米——MIUI

    当Android遇到腾讯——tita

    当Android遇到HTC——HTC Sense

    当Android遇到摩托罗拉——Moto Blur

    当Android遇到索爱——Sony Ericsson Rachael

    当Android遇到三星——TouchWiz

    当Android遇到魅族——Flyme OS

    当Android遇到联想——乐OS

    当Android遇到百度——易

    伊甸园时代:龙生九子

    在物种的进化史上,有个很辉煌的时期,那是“伊甸园”的时代。在那个时代里面所有的基因四处流动,物种的多样性得到了空前的爆炸式的增长。这个时代,也是物种进化史上的繁荣期。这里为大家举一个生动的例子:龙生九子子子不同。

    明人谢肇淛的《五杂爼》中对龙的描述非常精彩: “龙性最淫。故与牛交则生麟,与豕交则生象,与马交则生龙马,即妇人遇之,亦有为其所污者。此段大意是,龙是最为淫秽的动物,和牛姓交就生出来麒麟,和猪姓交就生出大象,和马姓交就生出龙马,即使女人碰到了龙,也有被这家伙奸污的……

    118_120627174350_1_lit.jpg

    李东阳《怀麓堂集》中记载,龙生九子为:

    排行/名称:老大-囚牛(qiú'niú)、老二-睚眦(yá'zì)、老三-嘲风(cháo'fēng)、老四-蒲牢(pú'láo)、老五-狻猊(suān’ní)、老六-赑屃(bì'xì)、老七-狴犴(bì’àn)、老八-负屃(fù'xì)、老九-螭吻/鸱尾(chī'wěn/chī'wěi)。

    谷歌的Android,从一开始便是开源的系统,好比龙一样。Android目前共有6大版本。(详见:Android系统历代记:v6.0 = Key Lime Pie

    1.0 无代号

    1.5 Cupcake 纸杯蛋糕

    1.6 Donut 甜甜圈

    2.0/2.1 Eclair 法式奶油夹心甜点

    2.2 Froyo 冻酸奶

    2.3 Gingerbread 姜饼

    3.0 Honeycomb 蜂巢

    4.0 Ice Cream Sandwich 冰激凌三文治

    5.0 Jelly Bean 糖豆

    6.0 Key Lime Pie 酸橙派

    118_120627173758_1_lit.png

    图:Key Lime Pie翻译过来就是这货


    人人都可以出手机的年代

    2012年,移动互联网已经渐渐走入成熟期,互联网公司又似乎开始纷纷打算扎堆做智能手机。继阿里巴巴、小米公司、百度、奇虎 360 相继宣布推出智能手机后,日前又有消息称,网易已经确定进军智能手机行业,目前已有样机机问世。甚至最近又有在微博上爆料:TP-Link也要出手机了!又甚至有实力的如Facebook更要闹到自己楔形概念手机。更更甚的是,蹭传闻罗永浩老师也要做手机……

    118_120627223715_1_lit.jpg

    图:Facebook概念手机

    今天的移动互联网,正在发生着巨变。从手机厂商、应用商店、广告联盟急寻开发者与移动应用,变为今天的App渴望在手机上预装和露出。整个产业链各界的厂商都希望能与终端用户直接对接。虽然APP可以直接与终端用户的手指零距离的接触,但是用户在手机上删程序也很容易。但如果App是内置在手机中的,那么用户想删之责如登泰山。

    几年的时间过去了,从最初的大家争锋出App客户端,到出订制的ROM系统,现在再到出自己的手机。可见,开放性的Android系统为整个产业带来了各种可能性,它让这些行业的门槛降低了,甚至使其市场繁荣到混乱的程度。

    118_120627182405_1_lit.png

    图:最让Android开发者头疼的就是屏幕适配问题

    反思:谷歌开始对Android生态系统施加隔绝

    谷歌正在意识到Android生态系统的开放性正在导致它最终走向极端的分裂,为了能让整个生态系统变得有序,谷歌开始对其施加某些隔绝与统一。

    Android v4.0的推出,同时也将终结各种自定义界面,这样就可以保证今后的系统更新可以第一时间推送到用户的手机之上。第三方手机制造商还是可以在系统里加入自己的预置功能, 但不能对UI做手术。其中UI方面加入了,Fragments与内容加载器、动作栏、可缩放的主屏幕widgets、丰富的通知、多点选择拖拽剪贴板。图形与动画方面,加入硬件加速的2D图形、基于属性的动画、3D图形特性。

    118_120627183210_1_lit.jpg

    2012-6-28 10:20 上传
    下载附件(91.14 KB)

    图:Android v4.0 UI界面

    在Android v4.0中还增加了新的GridLayout以实现更快的布局与渲染。通过TextureView,你可以像一般对象那样操纵OpenGL ES渲染,该特性非常适合于相机预览、视频解码与游戏场景等。现在可以硬件加速2D绘制了,这样就能以更加吸引人的方式对文本施加缩放、旋转或是其他变换了。

    为了呼吁各位Android开发者尽快投入原生Android设计,谷歌还推出了名为Android Design的相关站点来引导开发者们做出更加符合Android原生风味的APP应用。整个Android 4.0都拥有一套统一的界面设计风格,这套风格可以作为第三方设计师设计系统UI时的标准参考。

    通过上述一系列v4.0新特性和附加支持,诱导OEM厂商升级到Android v4.0,此后便可统一Android生态系统的UI。

    展开全文
  • android 安卓系统

    千次阅读 2012-02-23 11:07:49
    Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由Andy Rubin开发,最初主要支持手机。...
      
    

    Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。

    中文名:安卓、安致
    外文名:Android
    开发商:Google/开放手持设备联盟
    发行商:Google
    发行时间:2008年9月23日
    编程语言:C/C++(底层) Java等(应用层)
    源码模式:混合(自由免费,开放源码)
    包类型:APK
    支持平台:ARMMIPSx86
    内核类:整块性核心(Linux)

    名称来源

       Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的 科幻小说未来夏娃》( L'ève future)中。他将外表像人的机器起名为Android。

    版本

    命名规则

       Android用甜点作为它们系统版本的代号的命名方法开始于 Android 1.5 发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序: 纸杯蛋糕甜甜圈松饼冻酸奶姜饼蜂巢冰激凌三明治,根据最新消息新一代Android版本将命名为 果冻豆(Jelly Bean)。

    发行版本

      
    版本备注
    Android1.12008 年9月发布的Android第一版
    Android 1.5
    Cupcake
    (纸杯蛋糕)
    2009年4月30日,官方1.5版本(Cupcake 纸杯蛋糕)的Android发布。主要的更新如下:
    1、拍摄/播放影片,并支持上传到Youtube
    2、支持立体声蓝牙耳机,同时改善自动配对性能
    3、最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索
    4、GPS性能大大提高
    5、提供屏幕虚拟键盘
    6、主屏幕增加音乐播放器和相框widgets
    7、应用程序自动随着手机旋转
    8、短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件
    9、相机启动速度加快,拍摄图片可以直接上传到Picasa
    10、来电照片显示
    Android 1.6
    Donut
    (甜甜圈)
    2009年9月15日,1.6(Donut 甜甜圈)版本软件开发工具包发布。主要的更新如下:
    1、重新设计的Android Market手势
    2、支持CDMA网络
    3、文字转语音系统(Text-to-Speech)
    4、快速搜索框
    5、全新的拍照接口
    6、查看应用程序耗电
    7、支持虚拟私人网络(VPN)
    8、支持更多的屏幕分辨率。
    9、支持OpenCore2媒体引擎
    10、新增面向视觉或听觉困难人群的易用性插件
    Android2.0/2.0.1/2.1
    Eclair
    (松饼)
    2009年10月26日,2.0(Eclair 松饼)版本软件开发工具包发布。主要的更新如下:
    1、优化硬件速度
    2、"Car Home"程序
    3、支持更多的屏幕分辨率
    4、改良的用户界面
    5、新的浏览器的用户接口和支持HTML5
    6、新的联系人名单
    7、更好的白色/黑色背景比率
    8、改进Google Maps3.1.2
    9、支持Microsoft Exchange
    10、支持内置相机闪光灯
    11、支持数码变焦
    12、改进的虚拟键盘
    13、支持蓝牙2.1
    14、支持动态桌面的设计
    Android 2.2/2.2.1
    Froyo
    (冻酸奶)
    2010年5月20日,2.2(Froyo 冻酸奶)版本软件开发工具包发布。主要的更新如下:
    1、整体性能大幅度的提升
    2、3G网络共享功能。
    3、Flash的支持。
    4、App2sd功能。
    5、全新的软件商店。
    6、更多的Web应用API接口的开发。
    Android 2.3
    Gingerbread
    (姜饼)
    2010年12月7日,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、新的应用管理方式:

    Android 3.0
    Honeycomb
    (蜂巢)
    2011年2月2日, 3.0(Honeycomb 蜂巢)版本主要更新如下:
    ·优化针对平板
    ·全新设计的UI增强网页浏览功能
    ·n-app purchases功能
    Android 3.1
    Honeycomb
    (蜂巢)
    2011年5月11日在Google I/O开发者大会宣布发布,版本主要更新如下:
    Honeycomb蜂巢(改进3.0BUG)
    经过优化的Gmail电子邮箱;
    全面支持GoogleMaps
    将Android手机系统跟平板系统再次合并从而方便开发者。
    任务管理器可滚动,支持USB 输入设备(键盘、鼠标等)。
    支持 Google TV.可以支持XBOX 360无线手柄
    widget支持的变化,能更加容易的定制屏幕widget插件。

    Android 3.2
    Honeycomb
    (蜂巢)
    2011年7月13日发布,版本更新如下:
    支持7英寸设备
    引入了应用显示缩放功能

    Android 4.0
    Ice Cream Sandwich
    (冰激凌三明治)
    2011年10月19日 在香港发布,
    4.0(Ice Cream Sandwich 冰激凌三明治)版本主要更新如下:
    1、全新的ui
    2、全新的Chrome Lite浏览器,有离线阅读,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日, Google公司正式向外界展示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平台出现第一个恶意间谍软件: Mobile Spy,该程序会自动记录用户所输入的任何信息并发送到黑客的邮箱中,还可以视频录下用户的所有操作过程。

    2010年

      1月7日,Google发布了旗下第一款自主品牌手机:Nexus one(HTC G5)。
      1月,谷歌与 Linux基金会就Linux内核的同步和维护意见不一致而产生了矛盾。
      2月3日, Linux内核开发者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月,Google对外宣布Android Market上的应用数量超过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月,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万。随后,谷歌对Android Market上的应用程序进行了大清理,据统计,此次清理共清理了约18万个应用程序,包括流氓应用、病毒软件、 侵犯版权、低质量和 滥竽充数的各种程序,谷歌将这一系列应用删除后,使得Android市场中的 优质应用程序总数到31.5万。
      11月15日,Android在 中国大陆的智能手机操作系统市场占有率达到了58%。
      11月20日,谷歌宣布启动了Android Market应用审核、取缔、清扫行为,定期对电子市场上存在的不合格、低质量、违法恶意的应用程序进行清理,保证Android优质应用程序的增长。
      11月18日,美国NPD数据显示,Android和 iOS平台上的游戏占有率都首度超过 任天堂DS掌机和 索尼PSP掌机,手机游戏玩家也超过了掌机玩家,游戏开发商更倾向于向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设备被激活。

    2012年

      1月4日,应用商店调研公司Distimo的数据显示,Android电子市场(Android Market)上的应用程序数量突破40万个,每4个月增加10万个应用程序。同时在谷歌电子市场上登记的Android开发者达到了10万名。
      1月20日,谷歌报告显示,通过谷歌服务器激活的Android设备用户总数已经超过2.5亿,距离去年11月的数量,在短短2个月时间内全球共卖出5000万台安卓设备,平均每秒钟就卖出10台安卓设备。
      2月4日,comScore等多家数据市场研究机构的数据都一致显示,安卓在美国手机市场以47.3%的占有率巩固了自己的霸主地位。

    系统架构

      Android的系统架构和其它操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
      Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种 编程语言来开发Android 应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
      在Android中,开发者可以使用 Java作为编程语言来开发应用程序,也可以通过NDK使用C/ C++作为编程语言来开发应用程序,也可使用 SL4A来使用其他各种脚本语言进行编程(如: pythonluatclphp等等),还有其他诸如: Qt(qt for android)、 Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过 MonoDroid,开发者还可以使用 C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似 Basic语言。而在网页编程语言方面, JavaScriptajax,HTML5, jquerysencha、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等不同。 其中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状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。
      一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加内容需要下载,那么它要求访问网络的权限就比较可疑。

    程序组成

      一般来说Android 程序主要由下列四个部分组成,分别是:活动(Activity) - 用于表现功能服务(Service) - 相当于后台运行的Activity广播接收器(BroadcastReceiver) - 用于接收广播意图(Intent)- 用于连接以上各个组件,并在其间传递消息

    1 Activity 介绍

      Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Acitivity就相当于一个网页。在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)。

    2 Service 介绍

      Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长的时间,但是它却没有用户界面。这么说有点枯燥,我们来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android 的浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲的播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。service 可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD 卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。

    3 Broadcast

      在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver 进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver 进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager 来通知用户这些事情发生了。BroadcastReceiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast () 将它们自己的intent broadcasts广播给其他应用程序。注册BroadcastReceiver有两种方式:

    4 Intent 介绍

      Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android 各个组件之间的通讯。Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android 则根据此Intent 的描述,负责找到对应的组件,将Intent 传递给调用的组件,并完成组件的调用。因此,Intent 在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity 为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity)。为了实现这个目的,listActivity需要构造一个Intent,这个Intent 用于告诉系统,我们要做"查看"动作,此动作对应的查看对象是"某联系人",然后调用startActivity(Intent intent),将构造的Intent 传入,系统会根据此Intent 中的描述,到ManiFest中找到满足此Intent 要求的Activity,系统会调用找到的Activity,即为detailActivity,最终传入Intent,detailActivity 则会根据此Intent中的描述,执行相应的操作。Intent 主要是用来启动其他的activity 或者service,所以可以将intent 理解成activity 之间的粘合剂。Intent具体有一下3 种形式:
      通过startActivity 方法来启动一个新的Activity;
      通过broadcast Intent 机制可以将一个Intent 发送给任何对这个Intent 感兴趣的BroadcastReceiver;
      通过startService (Intent) 或bindService(Intent,ServiceConnection,int) 来和后台的Service 进行交互。 [1]
    展开全文
  • 安卓系统是一种基于Linux的自由及开放源代码的操作系统,主要用于智能手机、平板等移动设备以及智能投影等智能电子产品当中。因为其开源状态,所以也是目前全球使用最广泛的智能操作系统。“开源”的意思是指在开放...

    智能投影为何多用安卓系统?

    智能投影为何多用安卓系统?

    安卓系统是一种基于Linux的自由及开放源代码的操作系统,主要用于智能手机、平板等移动设备以及智能投影等智能电子产品当中。因为其开源状态,所以也是目前全球使用最广泛的智能操作系统。“开源”的意思是指在开放源代码许可证下所发布的软件,用来保障软件用户自由使用与接触源代码的权利。所有开发者在这个源代码的基础上可以创建出多种形式的应用模板,也就是说,多了更多创造可能性。

    5427604.html安卓系统的开放性示意(图片资料来源于网络)

    智能投影机多采用安卓系统的原因,一方面是开源状态下的智能操作系统更方便改造,能够实现定制化效果;另一方面则是其他类型的智能操作系统基本都拥有独家专利,除非是自己旗下产品,否则应用的可能性不大。

    5427604.html其他类型的智能操作系统基本都是闭源状态

    5427604.html智能投影机与手机的联系日益密切

    还有比较重要的一点就是,很多智能投影机,尤其是智能微投产品,需要支持与手机互动应用,采用安卓智能操作系统,可以实现与采用其他系统的手机互动,而采用其他系统,则只能与相同操作系统下的手机互动,从实用性角度来说,采用安卓系统的智能投影机所面对的受众群体更多。以耐克几年前所发布的那款智能手环为例,因为只支持ios操作系统,放弃庞大的安卓应用群体,导致销量比较惨淡。这对智能投影产品来说,是一个比较好的反面教材。

    展开全文
  •  现在此介绍一种通过修改Android平台系统层代码,根据指定的应用包名给对应的应用在该平台上开放系统权限,这样既不应用应用的兼容,又解决了应用想调用一些系统层接口而没有权限的矛盾。  该方法的核心是:
  • 常用的给应用开放系统权限的方法是直接将该应用做成系统应用(即在AndroidManifest.xml文件里加上:android:sharedUserId="android.uid.system"),但是这种做法限制了应用本身的自由,也就是说经过系统...

        常用的给应用开放系统权限的方法是直接将该应用做成系统应用(即在AndroidManifest.xml文件里加上:android:sharedUserId="android.uid.system"),但是这种做法限制了应用本身的自由,也就是说经过系统签名后的系统应用只能够在对应的Android平台上安装使用,无法向其他应用一样放到Android市场里兼容所有的Android设备。
        现在此介绍一种通过修改Android平台系统层代码,根据指定的应用包名给对应的应用在该平台上开放系统权限,这样既不应用应用的兼容性,又解决了应用想调用一些系统层接口而没有权限的矛盾。

        该方法的核心是:在ActivityManagerService的startProcessLocked接口中把uid和gid都改为0.

     

    需要开放系统权限的包名:
    1、net.forclass.fcstudent
    2、com.ckl.launcher
    3、com.creative.fcstudent

    修改步骤:
    1、应用安装在设备上之后,点击启动必定会调用ActivityManagerService的startProcessLocked接口来开启一个新的进程,而给应用开放系统权限目的其实就是使应用能够成为超级应用,运行在系统进程中,这样我们只需要在startProcessLocked接口里面将应用的uid修改为0即可。

     

    ActivityManagerService.java (frameworks\base\services\core\java\com\android\server\am)
        final ProcessRecord startProcessLocked(String processName, ApplicationInfo info,
                boolean knownToBeDead, int intentFlags, String hostingType, ComponentName hostingName,
                boolean allowWhileBooting, boolean isolated, int isolatedUid, boolean keepIfLarge,
                String abiOverride, String entryPoint, String[] entryPointArgs, Runnable crashHandler) {
            // modified by haming patch begin, configure system permission for some special application.
            if ("net.forclass.fcstudent".equals(info.packageName)
                    || "com.ckl.launcher".equals(info.packageName)
                    || "com.creative.fcstudent".equals(info.packageName)
                    || "com.hampoo.hampoointerfacetestdemo".equals(info.packageName)){
                info.uid = 0;
            }
            // modified by haming patch end.
            long startTime = SystemClock.elapsedRealtime();
            ProcessRecord app;
            ...... // 此处省略好多行
            checkTime(startTime, "startProcess: stepping in to startProcess");
            startProcessLocked( // 再次调用startProcessLocked重载方法
                    app, hostingType, hostingNameStr, abiOverride, entryPoint, entryPointArgs);
            checkTime(startTime, "startProcess: done starting proc!");
            return (app.pid != 0) ? app : null;
        }

    在重载方法startProcessLocked(ProcessRecord app, String hostingType,String hostingNameStr, String abiOverride, String entryPoint, String[] entryPointArgs)里面将应用的gid也改为0:

     

        private final void startProcessLocked(ProcessRecord app, String hostingType,
                String hostingNameStr, String abiOverride, String entryPoint, String[] entryPointArgs) {
            long startTime = SystemClock.elapsedRealtime();
            ...... // 此处省略好多行
    
            try {
                int uid = app.uid;
    
                int[] gids = null;
                int mountExternal = Zygote.MOUNT_EXTERNAL_NONE;
                if (!app.isolated) {
                    ...... // 此处省略好多行
                    // modified by haming patch begin, configure system permission for some special application.
                    if ("net.forclass.fcstudent".equals(app.info.packageName)
                        || "com.ckl.launcher".equals(app.info.packageName)
                        || "com.creative.fcstudent".equals(app.info.packageName)
                        || "com.hampoo.hampoointerfacetestdemo".equals(app.info.packageName)){
                        SystemProperties.set("sys.permission.enable", "true"); // 设置一个系统属性,在Zygote进行判断是否抛出异常
                        gids[0] = 0;
                        gids[1] = 0;
                    } else {
                        gids[0] = UserHandle.getSharedAppGid(UserHandle.getAppId(uid));
                        gids[1] = UserHandle.getUserGid(UserHandle.getUserId(uid));
                    }
                    // modified by haming patch end.
                }
                ...... // 此处省略好多行
            } catch (RuntimeException e) {
                // XXX do better error recovery.
                app.setPid(0);
                mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid);
                if (app.isolated) {
                    mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid);
                }
                Slog.e(TAG, "Failure starting process " + app.processName, e);
            }
        }

    2、ZygoteConnection.java里的applyUidSecurityPolicy(Arguments args, Credentials peer, String peerSecurityContext)接口会对进程id进行判断,如果小于Process.SYSTEM_UID(1000)则认为是非法,而zygote是具有root权限的唯一server,所有在判断之后就可以通过读取前面设定的系统属性“sys.permission.enable”的值来决定是否抛出异常。

     

    ZygoteConnection.java (frameworks\base\core\java\com\android\internal\os)
        private static void applyUidSecurityPolicy(Arguments args, Credentials peer,
                String peerSecurityContext)
                throws ZygoteSecurityException {
            int peerUid = peer.getUid();
    
            if (peerUid == 0) {
                // Root can do what it wants
            } else if (peerUid == Process.SYSTEM_UID ) {
                // System UID is restricted, except in factory test mode
                String factoryTest = SystemProperties.get("ro.factorytest");
                boolean uidRestricted;
    
                /* In normal operation, SYSTEM_UID can only specify a restricted
                 * set of UIDs. In factory test mode, SYSTEM_UID may specify any uid.
                 */
                uidRestricted
                     = !(factoryTest.equals("1") || factoryTest.equals("2"));
    
                // modified by haming patch begin, configure system permission for some special application.
                if (uidRestricted
                        && args.uidSpecified && (args.uid < Process.SYSTEM_UID)) {
                    if (!SystemProperties.getBoolean("sys.permission.enable", false)){
                        throw new ZygoteSecurityException(
                                "System UID may not launch process with UID < "
                                + Process.SYSTEM_UID);
                    } else {
                        SystemProperties.set("sys.permission.enable", "false");
                    }
                }
                // modified by haming patch end.
            } else {
                // Everything else
                if (args.uidSpecified || args.gidSpecified
                    || args.gids != null) {
                    throw new ZygoteSecurityException(
                            "App UIDs may not specify uid's or gid's");
                }
            }
            ...... // 此处省略好多行
        }

     

     

     

     

     

     

     


     

     

     

     

     

    展开全文
  • Android开放系统root权限,即使任何用户都可以执行su程序,以使得临时用户也具有了root的权限,然后去进行一些系统级的设置,如设置IP地址,DNS等。 1、修改su程序对临时用户的限制,默认su只允许root和shell用户...
  • android系统

    千次阅读 2012-11-27 23:19:01
    Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续进行对Android系统开发运营,它采用了软件堆层...
  • 为了实现与互联网的融合,家电采用Android的步伐正在不断加快。对于开发家电设备的厂商而言,索尼的信息泄露事件是一个反面教师。企业不仅要探索与黑客和平共处的道路,还要为系统配备多重防御功能。
  • Android L系统 剖析安卓5.0安卓L新特性

    千次阅读 2014-10-28 14:42:19
    新一代安卓系统此前一直传闻是安卓5.0,不过这次Google并没有按常理出牌,新一代安卓系统被命名为Android L,全新的命名更加彰显Google革新安卓系统的决心。Android L带来了诸多劲爆新特性,例如支持6
  • TurboMail邮件服务器作为完全自主研发的国产软件,以自主品牌进入国内邮件系统行业只不过是最近五年的事,但却以市场黑马的姿态,迅猛发展,不断的占领国内自建邮件系统市场份额,成为各大企业有口皆碑的邮件系统...
  • 北京时间10月20日消息,据国外媒体报道,军事制造业者...Raytheon 情报和信息系统部门分管商务发展的副主席MarkBigham说,选择Android是因为其资源开放的特点便于应用程序的开发。Raytheon将整个框架命名为RaytheonAn
  • Android系统框架

    千次阅读 2013-10-17 10:47:14
    它借助于 Linux强大的稳定性、开放性和可移植性,Java语言开发的广泛性、简单性和可移植性,一经推出就受动广泛关注和欢迎,在嵌入式开发中产生比较深远的 影响。 图1.1 Android系统架构 考虑到性能的问题,...
  • android 系统

    千次阅读 2014-02-26 11:12:49
    Android是Google公司开发的基于Linux平台的开源手机操作系统,它包括操作系统、中间件、用户界面和应用程序,而且不存在任何以往阻碍移动产业创新的专利权障碍,并由Google公司于2007年11月5日正式发布。同时,Google...
  • Android系统介绍与框架

    2014-12-30 16:06:42
    Android系统是Google开发的一款开源移动OS,Android中文名被国内用户俗称“安卓”。Android操作系统基于Linux内核设计,使用了Google公司自己开发的Dalvik Java虚拟机。Android操作系统已经成为全球最大的智能手机...
  • Android系统开放,使其用户可以自己查看系统和SD卡中的文件夹。就系统和SD卡中常见的目录代表什么意思,下面是一个较实用的总结: 一、SD卡中  1. /mnt/sdcard或者/sdcard这是Android手机中SD卡的文件夹...
  • 安卓9.0系统新特性

    千次阅读 2019-09-08 14:44:27
    日前针对Android系统特有的开放式特点,及其所带来的卡顿、运行不流畅问题,谷歌特意研制出最新版Android 9.0,以增强系统的封闭。于是,网上曝出了很多安卓“抄袭”“模仿”iOS的说法。不过在笔者看来,不管...
  • Android系统简介

    千次阅读 2018-06-20 11:40:18
    一、Android系统的前世今生 目前全球智能手机最主要的两大阵营是Android和IOS,Android和IOS是移动操作系统的名称,它们背后的公司是谷歌和苹果,所以有时候也叫做谷歌系统和苹果系统。这里出现了一个名词“操作...
  • 资源名称:Android系统原理及开发要点详解内容简介:《Android系统原理及开发要点详解》全面介绍开放的移动电话平台Android系统,包括Android系统中的Linux驱动、本地框架、Java框架和Java应用4个层次。《Android...
  • 鸿蒙系统基于Linux打造,其本质还是安卓系统

    万次阅读 多人点赞 2019-06-18 21:21:49
    安卓系统兼容性、开放性比较好,已经获得全球10亿以上的安装量。把安卓应用与生态移植到鸿蒙上直接就能用,不仅减少了华为重建生态的成本,而且减少了用户改变成本。 兼容安卓实际是蚕食安卓的生态,兼容就是抢...
  • Android系统基础介绍

    2017-07-28 21:56:04
    android最大的特点是开放性,虽然android遵循的是Apache开源软件许可证,和Linux遵从的GPL不同 合理的分层架构 现在的android系统分为5层结构,具体的分析下面再说 Application Application FrameWork
  • 1、首先,安卓系统坚持了它的开放性,为消费者和开发者同时留出了空间。这是安卓能够快速成长的关键因素。在安卓之前,没有任何一个智能操作系统的开源程度能够像安卓一样。免费开源的安卓系统节约了版权...
  • 安卓系统结构

    千次阅读 2012-06-18 11:22:41
    安卓系统结构详解 什么是Android?Android详解:Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新...
  • 2. 因为Android开放性,各大手机厂商可以任意定制自己的系统,他们的定制系统相当于在原生态系统上定制了一个外壳,这样也拖慢了系统的速度。 3. 硬件的参数,品控与损耗 Android手机型号丰富,硬件水准也...
  • 原标题:安卓系统为什么越用越卡?...凡事总有利弊,在你享受安卓系统开放性时也是要付出代价的。而这个代价就是导致安卓系统越用越卡的原因。因为开放性,使用很多app自己会捆绑操作,导致安卓系统变慢。同时加...
  • 安卓系统作为目前使用最为广泛的两大系统之一,由于其的开放性而受众多用户喜爱。但是同时由于安卓系统开放性,基本上很多安卓手机在出厂的时候已经被内置安装了很多软件应用,而这些软件应用又不是我们用户所接受...
  • 安卓系统内 的 安卓虚拟机

    万次阅读 2020-06-23 01:05:34
    虚拟大师是 Android 系统上的 Vmvare,完整的且自带 Root 系统能够让你实现无限可能,不论是 Xposed 还是游戏辅助,后台挂机都能完美适配。 虽然 Android Q 都已经发布两个预览版了,但是Xposed框架的Android...
  • android系统简介

    2012-06-23 18:05:53
    Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由...
  • 为了充分利用智能手机App的便捷解决校园网预约实验网速慢等问题同时也为广大学生提供实验预约环节更加人性化的途径特设计开发基于Android的手机App开放实验预约系统客户端通过智能手机预约实验比通过PC机预约实验室...
  • Android是google历经数年开发出的智能手机操作系统,也形成了一个组织—–开放手机联盟(OHA)。 作为一个庞大的系统Android包括了Linux操作系统、各种本地程序、虚拟机和运行环境、JAVA框架和JAVA应用程序等多方面...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,967
精华内容 21,986
关键字:

安卓系统开放性