Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的平台版本

原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/platforms.html

每当APP使用了Android所提供的最新版的API时,应用应该继续对老版本提供支持,直到所有的设备都更新到最新版。这一节将会展示如何使用更流行的新版本API时还能继续良好的支持老版本。

Platform Versions的信息图表会基于访问GooglePlayStore(谷歌应用商店)的许多设备从而有规律的统计更新Android每一个版本的活跃设备分布图。这对于更新APP编译环境到最新Android版本而且还可以支持90%以上的活跃设备来说是最好的实践。

Tips:为了可以在若干个Android版本上还可以提供最佳的特性与功能,你应该在APP中使用 Android Support Library(Android支持库),它可以使得你可以在旧版本上使用若干较新的平台API。

指定最低API等级与目标API等级

文件AndroidManifest.xml详细描述了APP相关的信息以及支持的Android版本。特别的,< uses-sdk标签中的minSdkVersion,targetSdkVersion属性分别指明了APP兼容的最低版本以及最高版本:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... ><uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />...
</manifest>

每当Android的新版本发布,一些风格与习惯可能会被改变。为了允许APP采用这些更为优秀的变化,以确保APP对每一台用户设备进行风格匹配,你应该设置targetSdkVersion的值为最新的安卓可用版本。

在运行时检查系统版本

Android在Build常量类中提供了每一个平台版本的唯一编码。在APP中使用这些编码以确保这些API在当前的系统上是可用的。

private void setUpActionBar() {// Make sure we're running on Honeycomb or higher to use ActionBar APIsif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {ActionBar actionBar = getActionBar();actionBar.setDisplayHomeAsUpEnabled(true);}
}

Note:当解析XML资源时,Android会自动忽略当前设备不支持的xml属性。所以在使用XML的时候可以完全放心。举个例子,如果你设置了targetSdkVersion=”11”,然后包含了ActionBar的APP默认是跑在Android 3.0及以上的。然后为了向ActionBar上添加菜单按钮,你需要在菜单资源XML文件中添加android:showAsAction=”ifRoom”。在交叉版本的XML文件中这样做是安全的,因为老版本的Android平台会自动忽略showAsAction属性(所以,你就不用专门再在res/menu-v11/中做区分)。

使用平台风格和主题

Android为APP提供了与底层系统感官上相一致的用户体验主题。这些主题可以通过清单文件应用到APP中。通过使用这些内嵌的风格和主题,你的APP很自然的可以和最新的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">

如果要将自定义主题应用到整个APP中,在< application>标签中添加 android:theme 属性:

<application android:theme="@style/CustomTheme">

更多有关创建和使用主题的相关信息,请参见指南: Styles and Themes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊如何提升推荐系统的结果多样性

文 | 洪九(李戈)源 | 知乎个性化推荐系统的出现为处理信息过载问题提供了一个有效的工具&#xff0c;已经成为互联网各大平台(电商、信息流等)的标配&#xff0c;并在技术(个性化召回、个性化排序等)上取得了长足的发展&#xff0c;逐渐从传统模型过度到深度学习时代。但是&…

论文浅尝 | GNN with Generated Parameters for Relation Extraction

论文笔记整理&#xff1a;申时荣&#xff0c;东南大学博士生。地址&#xff1a;https://arxiv.org/pdf/1902.00756.pdf来源&#xff1a;ACL2019在许多自然语言处理任务&#xff08;例如关系提取&#xff09;中&#xff0c;多跳关系推理是必不可少的&#xff0c;而图神经网络&am…

大众点评信息流基于文本生成的创意优化实践

1. 引言 信息流是目前大众点评除搜索之外的第二大用户获取信息的入口&#xff0c;以优质内容来辅助用户消费决策并引导发现品质生活。整个大众点评信息流&#xff08;下文简称点评信息流&#xff09;围绕个性化推荐去连接用户和信息&#xff0c;把更好的内容推荐给需要的用户。…

LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)

1. 题目 给定二叉搜索树&#xff08;BST&#xff09;的根节点和要插入树中的值&#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。 注意&#xff0c;可能存在多种有效的插入方式&#xff0c;只要树在插入后仍保持为二叉搜索…

docker的简单操作和端口映射

docker的简单操作和端口映射&#xff1a;https://www.cnblogs.com/lixaingyang/p/11976827.html docker的简单操作和端口映射 一&#xff1a;简介 Docker镜像 在Docker中容器是基于镜像启动的 镜像是启动容器的核心 镜像采用分层设计&#xff0c;最顶层为读写层 使用快照COW技…

Android官方开发文档Training系列课程中文版:管理Activity的生命周期之启动一个Activity

原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/index.html 导言 用户通过导航退出或者返回应用的时候&#xff0c;应用中Activity的生命周期会在不同的状态之间变换。举个例子&#xff0c;当Activity初次启动的时候&#xff0c;它会来到系统的…

论文浅尝 | 利用多语言 wordnet 上随机游走实现双语 embeddings

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究方向为知识图谱问答。来源&#xff1a;Knowledge Based System链接&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0950705118301412?via%3Dihub双语word embedding将两种语言…

实践中学到的最重要的机器学习经验!

文 | 微调源 | 知乎问答今天我们讨论一个很有实际意义的问题&#xff1a;你在实践中学到的最重要的机器学习经验是什么&#xff1f;以下回答来自知乎优秀答主微调。1.永远保持怀疑机器学习是最容易得到错误结论的一种解决方案。和编程、做表格、或者纯粹的数学建模不同&#xf…

Selenium爬虫

import re import requests# 伪装头部&#xff0c;反爬 headers {Host: m.weibo.cn,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36,X-Requested-With: XMLHttpRequest } # 目标微博用户…

Android官方开发文档Training系列课程中文版:管理Activity的生命周期之暂停和恢复Activity

原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/pausing.html 在APP的正常使用过程中&#xff0c;在前台工作的Activity有时可能会被其他的可视化组件挡住&#xff0c;而引起Activity进入Paused状态。举个例子&#xff0c;当一个半透明的Activit…

Leaf:美团分布式ID生成服务开源

Leaf是美团基础研发平台推出的一个分布式ID生成服务&#xff0c;名字取自德国哲学家、数学家莱布尼茨的一句话&#xff1a;“There are no two identical leaves in the world.”Leaf具备高可靠、低延迟、全局唯一等特点。目前已经广泛应用于美团金融、美团外卖、美团酒旅等多个…

LeetCode 658. 找到 K 个最接近的元素(二分查找)

1. 题目 给定一个排序好的数组&#xff0c;两个整数 k 和 x&#xff0c;从数组中找到最靠近 x&#xff08;两数之差最小&#xff09;的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样&#xff0c;优先选择数值较小的那个数。 示例 1:输入: [1,2,3,4,…

负数的开方到底等于多少?

文&#xff1a;杨树森知乎编&#xff1a;小鹿鹿lulu负数的开方到底等于多少?举个栗子拿出小本本, 一通变换,得到:Really? 且看下面详解乘方来源于乘法&#xff0c;我们可以归纳地定义&#xff0c;设 是一个域&#xff0c;, 则上述的域 可以是有理数域 , 实数域, 或复数域 前两…

综述 | 知识图谱实体链接:一份“由浅入深”的综述

本文转载自公众号&#xff1a;PaperWeekly。 作者丨Nicolas单位丨追一科技 AI Lab 研究员研究方向丨信息抽取、机器阅读理解本文介绍实体链接&#xff08;Entity Linking&#xff09;这一技术方向&#xff0…

Android官方开发文档Training系列课程中文版:管理Activity的生命周期之停止和重启Activity

原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/stopping.html#Start 在activity的生命周期内&#xff0c;适当的停止和重新启动activity是一个非常重要的过程&#xff0c;它可以确保用户能感觉到APP一直是存活状态&#xff0c;并且不会丢失他们…

selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’解决

selenium.common.exceptions.WebDriverException: Message: chromedriver’解决&#xff1a; https://blog.csdn.net/weixin_44318830/article/details/103339273 今天在做selenium测试的时候,可能是很久没用了,直接报了这个异常! 相信很多第一次学习selenium的同学们也对这个异…

活动 Web 页面人机识别验证的探索与实践

在电商行业&#xff0c;线上的营销活动特别多。在移动互联网时代&#xff0c;一般为了活动的快速上线和内容的即时更新&#xff0c;大部分的业务场景仍然通过 Web 页面来承载。但由于 Web 页面天生“环境透明”&#xff0c;相较于移动客户端页面在安全性上存在更大的挑战。本文…

利用python提取网站曲线图数据

文章目录数据1数据2数据1 数据目标&#xff1a;曲线图 F12&#xff0c;如图位置输入JSON.stringify(dataSeries.dataPoints) copy&#xff0c;粘贴到data.txt 数据是一个列表&#xff0c;里面是多个字典 编写程序如下&#xff1a; import json as js datafile data1.txt…

论文浅尝 | HEAD-QA: 一个面向复杂推理的医疗保健数据集

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究方向为知识库问答。来源&#xff1a;ACL2019本文构建了一个面向复杂推理任务的多选问答数据集 HEAD-QA&#xff0c;该数据集中的问题来自一个西班牙的医疗保健专业测试&#xff0c;对于具备该方向专业…

Poor Man's BERT: 更小更快的Transformer模型

文 | sliderSun源 | 知乎NLP模型的大小不断增加&#xff0c;随之而来的是可用性降低&#xff0c;TinyBERT&#xff0c;MobileBERT&#xff0c;和DistilBERT都提出了一个独特的知识蒸馏框架&#xff0c;其共同目标是在保持性能的同时减小模型大小。尽管所有这些方法都以各自的方…