安卓中win7碎片整理在哪里上的按钮在哪里捕捉

数据告诉你安卓的“碎片化”有多严重
| 科学人 | 果壳网 科技有意思
数据告诉你安卓的“碎片化”有多严重
OpenSignalMaps发布数据告诉你安卓的“碎片化”有多严重
本文作者:小行踪
安卓系统的“碎片化”已经成为了业界共识,由于系统的开源性,用户、开发者、OEM厂商、运营商都可以按照自己的想法对这只绿色机器人进行改造,这种“碎片化”的程度有多严重呢?最近国外的一家互联网公司OpenSignalMaps(以下简称OSM)发布了一份调查报告,他们在过去六个月中对下载该公司同名监测应用的681900台设备进行了调查,并从机型、品牌、系统版本号以及屏幕分辨率四个方面进行了统计,为我们展示出了一幅支离破碎的安卓版图。
在这次调查中,OSM公司共统计出3997种不同的机型,三星的GT-i9100(Galaxy S II)的占有率毫无悬念地问鼎榜首,共有61389个持有该设备的用户下载了OSM软件。但是在统计中出现了一个问题:有许多用户的自制ROM在安装后会覆盖厂商原有的机型信息,导致各个机型的数量并不准确,这也是为何有多达1363个机型只出现了一次的原因之一。另一个原因就是这些“隐士型机型”的确非常小众——其中有来自匈牙利的10.1寸平板电脑“Concordo Tab”,来自印度的双卡手机Lemon P1,来自西班牙的家庭娱乐平板Energy Tablet i724等等。上面是OSM网站制作的
,只要将鼠标移动到相应的机型色块上,你就能看到对应的品牌和设备信息(色块面积代表设备的占有百分比)。
调查中OSM公司发现了599个不同品牌的安卓设备(上面提到的自制ROM覆盖信息问题同样存在),这真是一个谁都能做手机的时代。
我们来看看调查中比较有趣的数据:2台FusionGarage出品的平板电脑,这个最早涉足平板电脑的公司由于经营不利已经在4个月之前宣布清盘;7台宝丽来公司出品的“智能相机”;还有大约200台Marvell公司出产的设备,请注意,这并不是那个拥有复仇者联盟的Marvel公司。
当然,冠军仍旧属于三星,共有270144台三星设备参与了此次调查,约占总样本数的40%。
系统版本号
随着谷歌一次又一次地发布新的版本,安卓系统的版本碎片化也越来越严重。运行旧版本系统的设备仍旧大量存在,各厂商又无法对其进行统一升级,导致近一年来安卓系统各版本的市场占有率并无太大变化。
我们可以看下图,在2011年4月的统计中,运行安卓2.3(姜饼)系统的设备占65.6%,时隔一年后,运行安卓2.3.3(2.3的修正版,加入了部分新特性,同样也名为姜饼)的设备仍然占55.4%。但安卓的两个使用率最高的版本(2.3和2.2)占有率已经从90%降到了75%,这对开发者们来说无疑又是一个坏消息——他们在开发应用时得兼顾更多的版本了。
屏幕分辨率
这幅图能很好地显示出安卓设备的屏幕分辨率种类之繁杂,颜色深浅代表其数量大小,深色标注出了几种最主要的分辨率。
无法停止的“碎片化”?
如此严重的“碎片化”,对于安卓来说既是福音,又是诅咒。
从好的方面看来,“碎片化”让每个用户都可以与众不同,选择最适合自己的机型和UI,也给了每个厂商自我创新的机会(就连腕表品牌“豪雅表”都推出了一款安卓手机),而且参与此次调查的用户来自195个国家,其中参与用户最多的五个国家为美国、巴西、中国、俄罗斯和墨西哥,能够用一个系统覆盖如此之大的市场,安卓也足以自豪了。
另一方面,高度“碎片化”给安卓带来的弊端也非常多,最严重的问题就是安卓的“应用生态系统”无法良好运行,大批的开发者们萌生退意,这也让谷歌非常头疼。自从推出安卓4.0之后,谷歌就开始努力地解决这个问题,他们甚至将允许多个厂商生产自己的Nexus手机,由此加快各厂商设备的升级速度。
但是每个厂商都想用自己的方式来设计手机系统,对于用户来说,五花八门的的UI和ROM也是促进其购买欲的一大因素。谷歌想要把失控的安卓抓回掌心,还得好好想想办法。
文章编译自opensignalmaps网站: The many faces of a little green robot
你可能感兴趣
杀!!!-Come frome Guokr Reader-
不敢相信!
Windows是怎么做到的?
是不是要考虑不再买安卓了
数字媒体技术学士
先来感叹下竟然能用metro方格面积和简单的方框颜色深浅来直观展示调查结果 再感叹下确实只有够足量够碎片的调查数据才能出这么好的视觉效果啊...
这个确实是个严重的问题,但水果依旧3.5寸,不能换电池;wp7又各种拘束各种蛋疼…
木办法,继续安卓~
电脑的配置和屏幕也碎片化吧
以后手机游戏出来干脆给个推荐配置列表
玩不动就准备升级手机…感觉跟pc越来越像了-Come frome Guokr Reader-
的话:Windows是怎么做到的?windows的api和shell起码是一定的
我在乎的是
图标里简写是Me的公司是不是魅族?
最近水果和痿软越来越炮轰安卓了哈。 人谷歌站在旁边看戏(我只是路过的。)
的话:Windows是怎么做到的?windows并不是开源的软件,所以就不存在像谷歌一样的“碎片化”问题。静待谷歌下一步的处理。。。
的话:先来感叹下竟然能用metro方格面积和简单的方框颜色深浅来直观展示调查结果 再感叹下确实只有够足量够碎片的调查数据才能出这么好的视觉效果啊...嗯,这个调查结果真心的不错~~值得借鉴~
再用两年DEFY换WIN8机,IOS方面只用IPAD足矣
电子信息硕士,高校教师,奶爸
的话:先来感叹下竟然能用metro方格面积和简单的方框颜色深浅来直观展示调查结果 再感叹下确实只有够足量够碎片的调查数据才能出这么好的视觉效果啊...用了WP的METRO风来表现ANDROID……
电子信息硕士,高校教师,奶爸
的话:windows并不是开源的软件,所以就不存在像谷歌一样的“碎片化”问题。静待谷歌下一步的处理。。。不仅如此,WP还定义了每一代的硬件指标(其实也就两代),可以看到,每一代的各家产品CPU,内存,屏幕尺寸和分辨率都是一样的,这样才能更好的发挥硬件的效能。安卓的做法实际类似JAVA,在硬件之上搭建了一个FRAME,使得它可以获得更好的兼容性,缺陷在于,无法发挥最大性能,于是只好拼硬件了。BTW,我是WP/ANDROID用户……
这个确实是个不小的问题
是啊是啊,头痛!
空间信息与数字技术专业
原文在此,脚本很大,口味很重。。。
3997个ROM!
主流的也有十几个吧 一个应用软件开发要考虑这么多的兼容 够头疼的
斗吧,每个人都来参一脚吧。作为消费者看鹬蚌相争就行了...
第一张图略微有点密集恐惧啊
的话: 原文在此,脚本很大,口味很重。。。恩。。大家可以点进这个链接看原文。。脚本的确很新颖。。
的话:先来感叹下竟然能用metro方格面积和简单的方框颜色深浅来直观展示调查结果 再感叹下确实只有够足量够碎片的调查数据才能出这么好的视觉效果啊...没错,两方都是好样的——做这个数据的和安卓厂商们
空间信息与数字技术专业
的话:恩。。大家可以点进这个链接看原文。。脚本的确很新颖。。把我的 ie 卡死了两次每次开有木有。。。
其实还可以吧?我感觉碎片这东西很难影响到用户。。。
足够的碎片和IOS形成鲜明对比,这两个系统对于平板电脑和手机的开发商来说是两种极端。
iPhone被偷了后用安卓真心蛋疼啊...
开源的android,虽不是完全的自由软件,却是继承了许多自由软件的特点。既然自由那么,“碎片化“是不可避免的
可怜的安卓系统,-Come frome Guokr Reader-
显示所有评论
(C)果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号&&&&
违法和不良信息举报邮箱:&&&&举报电话:&&&&&&&&没有更多推荐了,
不良信息举报
举报内容:
Android学习之动态调用碎片
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
不良信息举报
举报内容:
Android 碎片Fragment讲解
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!Android滑动页碎片_网图抓取器开发步骤_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Android滑动页碎片_网图抓取器开发步骤
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩16页未读,
定制HR最喜欢的简历
你可能喜欢关于android系统碎片 - 简书
关于android系统碎片
碎片是什么碎片 (Fragment) 是一种可以嵌入在 Activity 当中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。虽然碎片对你来说应该是个全新的概念,但我相信你学习起来应该毫不费力,因为它和 Activity 实在是太像了,同样都能包含布局,同样都有自己的生命周期。你甚至可以将碎片理解成一个迷你型的 Activity,虽然这个迷你型的 Activity 有可能和普通的 Activity 是一样大的。那么究竟要如何使用碎片才能充分地利用平板屏幕的空间呢?想象我们正在开发一个新闻英语,其中一个界面使用 ListView 展示了一组新闻的标题,当点击了其中一个标题,就打开另一个界面显示新闻的详细内容。如果是在手机中设计,我们可以将新闻标题列表放在一个 Activity 中,将新闻的详细内容放在另一个 Activity 中。碎片的使用方式1、新建一个FragmentTest 项目在一个活动当中添加两个碎片,并让这两个碎片平分活动空间。新建一个左侧碎片布局left_fragment.xml,代码如下所示:[html]android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"&android:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:text="Button"/&这个布局非常简单,只放置了一个按钮,并让它水平居中显示。2、新建右侧碎片布局right_fragment.xml[html]android:layout_width="match_parent"android:layout_height="match_parent"android:background="#00ff00"android:orientation="vertical"&android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:textSize="20sp"android:text="This is right fragment"/&我们将这个布局的背景色设置成绿色,并放置了一个TextView 用于显示一段文本。3、新建一个LeftFragment 类,继承自Fragment注意,这里可能会有两个不同包下的Fragment 供你选择,建议使用.app.Fragment,因为我们的程序是面向Android 4.0以上系统的,另一个包下的Fragment 主要是用于兼容低版本的Android 系统。LeftFragment的代码如下所示:[java]publicclassLeftFragmentextendsFragment{@OverridepublicView onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){View view = inflater.inflate(R.layout.left_fragment, container,false);}}这里仅仅是重写了Fragment 的onCreateView()方法,然后在这个方法中通过LayoutInflater的inflate()方法将刚才定义的left_fragment 布局动态加载进来,整个方法简单明了。4、用同样的方法再新建一个RightFragment[java]publicclassRightFragmentextendsFragment{@OverridepublicView onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){View view = inflater.inflate(R.layout.right_fragment, container,false);}}基本上代码都是相同的,相信已经没有必要再做什么解释了。5、修改activity_main.xml中的代码[java]android:layout_width="match_parent"android:layout_height="match_parent"&android:id="@+id/left_fragment"android:name="com.example.fragmenttest.LeftFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"/&android:id="@+id/right_fragment"android:name="com.example.fragmenttest.RightFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"/&可以看到,我们使用了标签在布局中添加碎片,其中指定的大多数属性都是熟悉的,只不过这里还需要通过android:name 属性来显式指明要添加的碎片类名,注意一定要将类的包名也加上。这样最简单的碎片示例就已经写好了。6、运行程序动态添加碎片在上一节当中我们已经学会了在布局文件中添加碎片的方法,不过碎片真正的强大之处在于,它可以在程序运行时动态地添加到活动当中。根据具体情况来动态地添加碎片,就可以将程序界面定制得更加多样化。我们还是在上一节代码的基础上继续完善:1、新建another_right_fragment.xml[html]android:layout_width="match_parent"android:layout_height="match_parent"android:background="#ffff00"android:orientation="vertical"&android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:textSize="20sp"android:text="This is another right fragment"/&这个布局文件的代码和right_fragment.xml 中的代码基本相同,只是将背景色改成了黄色,并改动了显示的文字。2、新建AnotherRightFragment 作为另一个右侧碎片[java]publicclassAnotherRightFragmentextendsFragment{@OverridepublicView onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){View view = inflater.inflate(R.layout.another_right_fragment,container,false);}}代码同样非常简单,在onCreateView()方法中加载了刚刚创建的another_right_fragment布局。这样我们就准备好了另一个碎片。3、将碎片动态地添加到活动当中修改activity_main.xml,代码如下所示:[html]android:layout_width="match_parent"android:layout_height="match_parent"&android:id="@+id/left_fragment"android:name="com.example.fragmenttest.LeftFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"/&android:id="@+id/right_layout"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"&android:id="@+id/right_fragment"android:name="com.example.fragmenttest.RightFragment"android:layout_width="match_parent"android:layout_height="match_parent"/&可以看到,现在将右侧碎片放在了一个FrameLayout 中在上一章中我们学过,这是中最简单的一种布局,它没有任何的定位方式,所有的控件都会摆放在布局的左上角。由于这里仅需要在布局里放入一个碎片,因此非常适合使用FrameLayout。4、在代码中替换FrameLayout 里的内容从而实现动态添加碎片的功能。修改MainActivity 中的代码,如下所示:[html]public class MainActivity extends Activity implements OnClickListener{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Buttonbutton= (Button) findViewById(R.id.button);button.setOnClickListener(this);}@Overridepublic void onClick(View v){switch (v.getId()){case R.id.button:AnotherRightFragmentfragment=newAnotherRightFragment();FragmentManagerfragmentManager=getFragmentManager();FragmentTransactiontransaction=fragmentManager.beginTransaction();transaction.replace(R.id.right_layout, fragment);transaction.commit();default:}}}首先我们给左侧碎片中的按钮注册了一个点击事件,然后将动态添加碎片的逻辑都放在了点击事件里进行。结合代码可以看出,动态添加碎片主要分为5 步。1. 创建待添加的碎片实例。2. 获取到FragmentManager,在活动中可以直接调用getFragmentManager()方法得到。3. 开启一个事务,通过调用beginTransaction()方法开启。4. 向容器内加入碎片,一般使用replace()方法实现,需要传入容器的id 和待添加的碎片实例。5. 提交事务,调用commit()方法来完成。这样就完成了在活动中动态添加碎片的功能,重新运行程序,可以看到和之前相同的界面在碎片中模拟返回栈FragmentTransaction 中提供了一个addToBackStack()方法,可以用于将一个事务添加到返回栈中,修改MainActivity 中的代码,如下所示:publicclassMainActivityextendsActivityimplementsOnClickListener{……@OverridepublicvoidonClick(View v){switch(v.getId()){caseR.id.button:AnotherRightFragment fragment =newAnotherRightFragment();FragmentManager fragmentManager = getFragmentManager();FragmentTransaction transaction = fragmentManager.beginTransaction();transaction.replace(R.id.right_layout, fragment);transaction.addToBackStack(null);transaction.commit();default:}}}这里我们在事务提交之前调用了FragmentTransaction 的addToBackStack()方法,它可以接收一个名字用于描述返回栈的状态,一般传入null 即可。现在重新运行程序,并点击按钮将AnotherRightFragment 添加到活动中,然后按下Back 键,你会发现程序并没有退出,而是回到了RightFragment 界面,再次按下Back 键程序才会退出。为了方便碎片和活动之间进行通信,FragmentManager提供了一个类似于findViewById()的方法,如下所示://在活动中调用碎片的方法:RightFragment rightFragment = (RightFragment)getFragmentManager().findFragmentById(R.id.right_fragment);//在碎片中调用活动:MainActivity activity = (MainActivity)getActivity();//碎片通信其他碎片:(首先获取与当前碎片关联的活动,再通过这个活动获取另一个碎片的实例LeftFragment leftFragment = (LeftFragment)activity.getFragmentManager().findFragmentById(R.id.left_fragment);
转自:http://blog.csdn.net/qibin0506/article/details/ 今天来了解一下Android最新给我们带来的数据绑定框架——Data Binding Library。数据绑定框架给我们带来了更大的方便性,以前我们可能需要...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
Fragment要点 Fragment作为Activity界面的一部分组成出现 可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用。 在Activity运行过程中,可以添加、移除或者替换Fragment(ad...
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候想用MVP的,代码写着写着就变成了MVC,久而久之就对它们三个的选择产生了...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
每个 OC 对象有 ** 4** 个字节的空间来存储空间来存储引用计数器.
decode() : 从指定编码方式解码为unicode方式eg: bytes.decode(encoding=&utf-8&, errors=&strict&)encoding : 要使用的编码errors : 设置不同错误的处理方案。默认为 'strict',意为编码错...
懂, 不是一个字, 而是一颗心。
以前喝大杯大杯的咖啡打着哈欠维持夜晚写作,现在吃了神经衰弱药物也睡不着 这个时候就会觉得自己不足够美好。年岁不够青春,颜色不够鲜艳 我从很小的时候就羡慕杜拉斯笔下那个扎着印第安人麻花辫,涂着口红,穿着金丝边高跟鞋,神情淡漠的女人,15岁,就在渡轮上遇见了和她纠缠一生的男人。...

我要回帖

更多关于 电脑碎片整理在哪里 的文章

 

随机推荐