Android 4.4版本及特性

Android版本日新月异,几乎每年都有一到两个新的版本发布,在此整理一下Android各个版本的特性。

KitKat

Api Level 19 Android 4.4 有以下个人觉得经常用的特性 详细见官方文档

READ_EXTERNAL_STORAGE权限改动

这个版本最早开始引入Android的安全机制,权限申请功能。官方文档是这么说的,在这个版本中,无法读取外部存储空间上的共享文件,manifest中申请READ_EXTERNAL_STORAGE权限,否则无法访问

getExtrenalStoragePublicDirectory()

返回目录中的文件,但是如果只需要访问

getExternalFilesDir()

提供的应用持有目录就不需要这个权限

WebView 改动

官方声明在这个版本WebView
底层代码和相关的api 升级为基于现代chromium的源代码,就是说在这个版本后webView的性能得到大幅度提升,所以说嵌入H5过多的应用可以将targetSdkVersion更改到18 来测试对于老手机的兼容性

短信提供程序

个人觉得这个功能主要是用在验证码比较多的应用中,像贷款,和金融类应用,经常需要一堆验证码,可以考虑接一个这个自动获取验证码

telephony 内容提供程序允许应用读取设备的短息和彩信包含已经接受、起草、发送、挂起等操作的短信。 通过侦听SMS_RECEIVED_ACTION 来获取短信里的内容。

红外线发射器

这个功能主要是我之前写过一个遥控器的应用去搞公司那个牛掰的空调。
这个功能要求设备必须有红外线发射器才可以 可以通过

hasIrEmitter() //获取设备是否附带红外发射器
<uses-feature> "android.hardware.consumerir"</uses-feature>
ConsumerIdManager consumerManager = (ConsumerIdManager)Context.getSystemService(Context.CONSUMER_IR_SERVICE)

来获取参数,然后通过

getCarrierFrequencies() //查询设备支持的红外线频率
transmit()//发射信号

多媒体

我没怎么开发过多媒体应用,所以这里感觉写的挺牛逼的,但是没怎么实践过

动画和图形

场景和转场动画

在这里说一下转场动画这个东西,当我们需要转场的时候步骤一般是这样的:

1、制定包含您要更改的UI组件的ViewGroup
2、指定表示变更的最终结果的布局(下一个场景)
3、指定应添加布局变更动画的转场类型
4、转场

您可以使用 Scene对象完成第 1 步和第 2 步。Scene` 包含描述执行转场所必需的布局属性的元数据,其中包括场景的父视图和场景布局。您可以使用类构造函数或静态方法 getSceneForLayout()创建 Scene

然后,您必须使用 TransitionManager 完成第 3 步和第 4 步。其中一个方法是将您的 Scene 传递到静态方法 go()。这样可在当前布局中找到场景的父视图,并在子视图上执行转场,以实现 Scene 定义的布局。

或者,您根本不需要创建 Scene`对象,而是改为调用 beginDelayedTransition(),指定一个包含您要更改的视图的 ViewGroup。然后,添加、移除或重新配置目标视图。在系统根据需要进行更改后,转场开始以动画方式呈现所有受影响的视图。

要进行其他控制,您可以使用项目 res/transition/ 目录中的 XML 文件定义应在预定义的场景间发生的转场集。在 <transitionManager> 元素内部,指定一个或多个 <transition> 标记,每个标记均指定一个场景(引用布局文件)以及进入和/或退出该场景时将应用的转场。然后,使用 inflateTransitionManager() 扩展此转场集。使用返回的 TransitionManager 通过 transitionTo() 执行每个转场,传递一个由 <transition> 标记表示的 Scene。您还可以使用 TransitionManager API 以编程方式定义转场集。

指定转场时,您可以使用 Transition 的子类(如 FadeChangeBounds`)定义的多个预定义类型。如果您不指定转场类型,系统会默认使用 AutoTransition,其根据需要自动消失、移动和重新调整视图。此外,您也可以通过扩展其中的任何一个类来创建自定义转场,以执行您需要的动画。自定义转场可以跟踪您想要跟踪的任何属性变更,并基于这些变更创建您需要的任何动画。例如,您可以提供 Transition的子类,用于侦听对视图的“旋转”属性进行的变更,然后以动画方式呈现所有变更。

如需了解详细信息,请参阅 TransitionManager 文档。

用户界面模块

沉浸式全屏

要为您的应用提供填充整个屏幕的布局,适用于 setSystemUiVisibility() 的新标记 SYSTEM_UI_FLAG_IMMERSIVE(与 SYSTEM_UI_FLAG_HIDE_NAVIGATION 结合使用时)将启用新的沉浸式全屏模式。在启用沉浸式全屏模式后,您的 Activity 将继续接收所有触摸事件。用户可以沿着系统状态栏正常出现的区域向内滑动来显示系统状态栏。这将清除 SYSTEM_UI_FLAG_HIDE_NAVIGATION 标记(如果应用了 SYSTEM_UI_FLAG_FULLSCREEN标记,也会清除该标记),因此系统状态栏保持可见状态。但是,如果您想要系统状态栏在片刻后再次隐藏,可以改用 SYSTEM_UI_FLAG_IMMERSIVE_STICKY 标记。

透明系统状态栏

现在,您可以使用新主题背景 Theme.Holo.NoActionBar.TranslucentDecorTheme.Holo.Light.NoActionBar.TranslucentDecor 将系统状态栏设置为部分透明。通过启用透明系统状态栏,您的布局将填充系统状态栏后面的区域,因此,您也必须为不应被系统状态栏覆盖的布局部分启用 fitsSystemWindows

如果您要创建自定义主题背景,则将其中某个主题背景设置为父主题背景,或在您的主题背景中添加 windowTranslucentNavigationwindowTranslucentStatus 样式属性

增强的通知侦听器

Android 4.3 添加了 NotificationListenerService API,从而允许应用在系统发布新通知后接收有关新通知的信息。在 Android 4.4 中,通知侦听器可以检索通知的附加元数据,并填写有关通知操作的详细信息:

新增的 Notification.extras字段包含一个 Bundle,以向您的通知生成器提供 EXTRA_TITLEEXTRA_PICTURE等附加元数据。新增的 Notification.Action 类定义附加到通知的操作的特性,您可以从新的 actions 字段中检索这些特性。

无障碍功能
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标...
    VincentHK阅读 5,335评论 3 44
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,084评论 1 32
  • 《移动端设计的思维模式》 原文地址:Thinking Like An App Designer http://ww...
    幺九阅读 609评论 0 1
  • 离开了你,我更离开的是快乐 真的,那时你不开心 你说,孤寂 你说伤心的过去是真的 那时你都不理我 我站在河边 双手...
    隔着玻璃亲嘴阅读 185评论 0 0