Android学习路线(十九)支持不同设备——支持不同(Android)平台版本号
当最新的Android版本号为你的应用提供着非常棒的APIs时。你却要在很多其它的设备更新之前继续支持老的系统版本号。这篇课程怎样在继续支持低版本号的系统的情况下使用新版本号的高级API。
Platform Versions 仪表板展示了最新的活跃设备上执行的Android系统版本号的分布。基于设备訪问Google Play商店的次数。
通常情况下,支持90%的活跃设备同一时候使用最新版本号作为target是一个好习惯。
贴士: 为了在不同的Android版本号上提供最好的特性和功能,你应该在你的应用中使用Android Support Library ,它可以同意你在老版本号的系统上使用一些近期版本号的APIs。
指定最小以及目标API级别
AndroidManifest.xml 文件描写叙述了你的应用的详情以及它支持的系统版本号。 特别的。<use-sdk元素的minSdkVersion 和targetSdkVersion 属性分别指定了应用最低兼容的API级别以及你为应用所设计以及測试的最高API级别。
比如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
...
</manifest>
因为新版的Android系统公布,一些样式和行为肯能改变。为了同意你的应用利用这些改变而且确保你的应用使用每一个用户的设备,你须要将targetSdkVersion 的值设置为最低可用的Android版本号。
在执行时检查系统版本号
Android为每一个平台版本号在Build 常量类中提供了唯一的标识码。在你的应用中使用这个标识码来创建条件确保仅仅有在系统版本号支持的情况下运行高API级别的代码。
private void setUpActionBar() {
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
提示: 当解析XML资源时,Android系统会忽略XML属性不被当前设备支持的情况。因此你能够安全的使用仅仅支持最新版本号的XML属性而不用操心在老版本号上会崩溃。
比如,假设你设置targetSdkVersion="11",你的应用在默认情况下再Android 3.0或更高版本号中包括ActionBar。然后要为action
bar加入菜单项目。你须要在你的menu下的资源文件里设置android:showAsAction="ifRoom" 。在一个跨版本号的XML文件里这样做也是全然没问题的,由于老版本号的Android直接忽略了这个属性(这种话。你就没有必要分开创建一个res/menu-v11/文件夹)。
使用平台的样式和主题
Android为用户提供了用户体验主题,它赋予应用底层操作系统的界面和感觉。这些主题能够在你的应用的清单文件里被应用。通过设用这些内置的样式和主题,你的应用就会具有每一个公布版本号的界面和感觉。
让你的activity看起来像一个对话框:
<activity android:theme="@android:style/Theme.Dialog">
让你的activity背景透明:
<activity android:theme="@android:style/Theme.Translucent">
应用你的在/res/values/styles.xml中定义的自己定义主题:
<activity android:theme="@style/CustomTheme">
要让主题应用到整个应用中(全部的activity),在 <application>元素中加入android:theme属性:
<application android:theme="@style/CustomTheme">
很多其它关于创建和使用主题。请參阅Styles and Themes向导。
Android学习路线(十九)支持不同设备——支持不同(Android)平台版本号的更多相关文章
- android 学习随笔十九(对话框、样式、主题、国际化 )
1.对话框 package com.itheima.dialog; import android.os.Bundle; import android.app.Activity; import andr ...
- Android学习(十九)Dialog对话框
一.什么是Dialog对话框 对话框是当前页面中弹出的一个小窗口,用于显示重要的提示信息,提示用户输入信息,确认信息,或者显示某种状态,如下载进度,退出提示等等.用户需要与对话框进行交互,才能回到原窗 ...
- Android学习路线(二十四)ActionBar Fragment运用最佳实践
转载请注明出处:http://blog.csdn.net/sweetvvck/article/details/38645297 通过前面的几篇博客.大家看到了Google是怎样解释action bar ...
- Android学习路线(二十一)运用Fragment构建动态UI——创建一个Fragment
你能够把fragment看成是activity的模块化部分.它拥有自己的生命周期,接受它自己的输入事件,你能够在activity执行时加入或者删除它(有点像是一个"子activity&quo ...
- 学习笔记:CentOS7学习之十九:Linux网络管理技术
目录 学习笔记:CentOS7学习之十九:Linux网络管理技术 本文用于记录学习体会.心得,兼做笔记使用,方便以后复习总结.内容基本完全参考学神教育教材,图片大多取材自学神教育资料,在此非常感谢MK ...
- Android学习路线总结,绝对干货
title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...
- 十一、Android学习第十天——项目开始(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天——项目开始 Android知识点的学习告一 ...
- Android学习路线指南
看到这位大牛的博文,不禁得感概,我最近也遇到了很多问题,内心彷徨不堪,转载大牛这篇博文,是为了更好的勉励自己.原文地址在最后面. 前言 看到一篇文章中提到"最近几年国内的初级Android程 ...
- (转)Android学习路线总结,绝对干货
一.前言 不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知.懂的越多的时候你才会发现懂的越少. 如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大. ...
- python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法
python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法 同一台机器同时安装 python2.7 和 python3.4不会冲突.安装在不同目录,然 ...
随机推荐
- 框架—Mybatis入门
1:Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的一个数据持久层的框架. MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果. ...
- DBLINK引起的SQL性能问题
最近发现报表系统上有一存储过程越来越慢,在数据库中查询后,发现有以下条SQL --优化前:耗时>1h select c.policyno, c.endorseno, r.item_code, s ...
- (14) openssl x509(签署和自签署)
主要用于输出证书信息,也能够签署证书请求文件.自签署.转换证书格式等. openssl x509工具不会使用openssl配置文件中的设定,而是完全需要自行设定或者使用该伪命令的默认值,它就像是一个完 ...
- 如何用纯 CSS 创作一种文字断开的交互特效
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/LmjNgL 可交互视频教程 此视 ...
- (二十二)python 3 sort()与sorted()
Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列 一,最简单的排序 1.使用sort排序 my_list = [3 ...
- 阿里云服务器ecs配置之安装mysql
安装mysql数据库 1.安装工作: 下载 mysql 源安装包 [root@ming ~]# wget http://dev.mysql.com/get/ ...
- UI入门教程
常常会听到这么一些忠告“多看 多想 多做” 你有没有发现一个问题,每天都在看各种设计作品,真到自己做的时候,一下子全都忘记了,脑子短路傻逼了.之前看到那么多好的设计作品也都白看了,人家的还是人家的 ...
- luoguT21777
#include <algorithm> #include <iostream> #include <cstring> #include <cstdio> ...
- webservice学习第二天
1 课程回顾 l 什么是webservice 远程调用技术:系统和系统之间的调用,获取远程系统里的业务数据 Webservice使用http传输SOAP协议的数据的一种远程调用技术 l Webserv ...
- Relocation(状压DP)
Description Emma and Eric are moving to their new house they bought after returning from their honey ...