首页 文章 精选 留言 我的

精选列表

搜索[多语言适配],共10001篇文章
优秀的个人博客,低调大师

AnyText —— 多语言视觉文本生成和编辑

AnyText 包含一个具有两个主要元素的 diffusion pipeline:辅助潜在模块和文本嵌入模块。 前者使用文本字形、位置和蒙版图像等输入来生成用于文本生成或编辑的潜在特征。后者采用 OCR 模型将笔划数据编码为嵌入,与 tokenizer 中的图像标题嵌入混合,生成与背景无缝集成的文本。采用 text-control diffusion loss和 text perceptual loss 进行训练,以进一步提高书写准确性。

优秀的个人博客,低调大师

Spring Cloud Alibaba Sidecar 多语言微服务异构

Spring Cloud Alibaba Sidecar 介绍 自 Spring Cloud Alibaba 2.1.1 版本后增加了 spring-cloud-alibaba-sidecar 模块作为作为一个代理的服务来间接性的让其他语言可以使用spring cloud alibaba等相关组件。通过与网关的来进行路由的映射,从而可以做到服务的获取,然后可以使用Ribbon间接性调用。 如上图, Spring Cloud 应用 请求 sidercar 然后转发给其他语言的模块,优势是对于异构服务代码 零侵入,不需要直接根据 nacos 或其他注册中心 api 注册等 使用入门 构建其他语言接口服务 基于go 写个简单的服务接口 http://127.0.0.1:8089/sidecar package main import ( "encoding/json" "fmt" "log" "net/http" ) func main() { http.HandleFunc("/sidecar", sidecar) http.HandleFunc("/heath", health) log.Fatal(http.ListenAndServe(":8089", nil)) } func sidecar(w http.ResponseWriter, r *http.Request) { _, _ = fmt.Fprintf(w, "hello spring cloud alibaba sidecar") } func health(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") actuator := make(map[string]string) actuator["status"] = "UP" _ = json.NewEncoder(w).Encode(actuator) } 构建 sidercar 应用 增加 sidecar 依赖 <dependency> <groupid>com.alibaba.cloud</groupid> <artifactid>spring-cloud-starter-alibaba-sidecar</artifactid> <version>2.1.1.RELEASE</version> </dependency> 配置 application.yml server: port: 8088 spring: cloud: nacos: discovery: server-addr: localhost:8848 application: name: go-provider # 配置异构服务 sidecar: ip: localhost port: 8089 health-check-url: http://localhost:8089/health 构建 nacos consumer应用 application.yml server: port: 8087 spring: cloud: nacos: discovery: server-addr: localhost:8848 application: name: nacos-consumer consumer 逻辑 @RestController @EnableDiscoveryClient @SpringBootApplication public class NacosConsumerApplication { public static void main(String[] args) { SpringApplication.run(NacosConsumerApplication.class, args); } @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } @Autowired private RestTemplate restTemplate; @GetMapping("/test") public String test() { return restTemplate.getForObject("http://go-provider/sidecar", String.class); } } 测试使用 访问spring cloud consumer 应用 curl http://localhost:8087/test 输出 go-provider应用 hello spring cloud alibaba sidecar > 项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注

优秀的个人博客,低调大师

Android适配难题全面总结

支持多种屏幕 Android 可在各种具有不同屏幕尺寸和密度的设备上运行。对于 应用,Android 系统在不同设备中提供一致的开发环境, 可以处理大多数工作,将每个应用的用户界面调整为适应其显示的 屏幕。同时,系统提供 API,可用于控制 应用适用于特定屏幕尺寸和密度的 UI,以针对 不同屏幕配置优化 UI 设计。例如,您可能想要不同于手机 UI 的 平板电脑 UI。 虽然系统为使您的应用适用于不同的屏幕, 会进行缩放和大小调整,但您应针对不同的屏幕尺寸和密度优化 应用。这样可以最大程度优化所有设备上的用户体验,用户会 认为您的应用实际上是专为他们的设备而设计,而不是 简单地拉伸以适应其设备屏幕。 按照本文档所述的做法,您可以创建 正常显示的应用,然后使用 一个 .apk 文件在所有支持的屏幕配置中提供优化的用户体验。 注:本文档中的信息假设您的 应用设计用于 Android 1.6(API 级别 4)或更高级别。 另请注意,Android 3.2 引入了新的 API,可用于更 精确地控制应用用于不同屏幕尺寸的布局资源。如果您要开发针对平板电脑优化的应用,这些新 功能特别重要。 屏幕支持概览 本节概述 Android 对多种屏幕的支持,包括: 本文档和 API 中所用术语和概述的简介、 系统支持的屏幕配置摘要,以及 API 和基本 屏幕兼容性功能的概述。 术语和概念 屏幕尺寸 按屏幕对角测量的实际物理尺寸。 为简便起见,Android 将所有实际屏幕尺寸分组为四种通用尺寸:小、 正常、大和超大。 屏幕密度 屏幕物理区域中的像素量;通常称为 dpi(每英寸 点数)。例如, 与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域的像素较少。 为简便起见,Android 将所有屏幕密度分组为六种通用密度: 低、中、高、超高、超超高和超超超高。 方向 从用户视角看屏幕的方向,即横屏还是 竖屏,分别表示屏幕的纵横比是宽还是高。请注意, 不仅不同的设备默认以不同的方向操作,而且 方向在运行时可随着用户旋转设备而改变。 分辨率 屏幕上物理像素的总数。添加对多种屏幕的支持时, 应用不会直接使用分辨率;而只应关注通用尺寸和密度组指定的屏幕 尺寸及密度。 密度无关像素 (dp) 在定义 UI 布局时应使用的虚拟像素单位,用于以密度无关方式表示布局维度 或位置。 密度无关像素等于 160 dpi 屏幕上的一个物理像素,这是 系统为“中”密度屏幕假设的基线密度。在运行时,系统 根据使用中屏幕的实际密度按需要以透明方式处理 dp 单位的任何缩放 。dp 单位转换为屏幕像素很简单: px = dp * (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等于 1.5 物理像素。在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。 支持的屏幕范围 从 Android 1.6(API 级别 4)开始,Android 支持多种屏幕尺寸和密度,反映设备可能具有的多种不同屏幕配置。 您可以使用 Android 系统的功能优化应用在各种屏幕配置下的用户界面 ,确保应用不仅正常渲染,而且在每个屏幕上提供 最佳的用户体验。 为简化您为多种屏幕设计用户界面的方式,Android 将实际屏幕尺寸和密度的范围 分为: 四种通用尺寸:小、正常、 大 和超大 注:从 Android 3.2(API 级别 13)开始,这些尺寸组 已弃用,而采用根据可用屏幕宽度管理屏幕尺寸的 新技术。如果为 Android 3.2 和更高版本开发,请参阅声明适用于 Android 3.2 的平板电脑布局以了解更多信息。 六种通用的密度: ldpi(低)~120dpi mdpi(中)~160dpi hdpi(高)~240dpi xhdpi(超高)~320dpi xxhdpi(超超高)~480dpi xxxhdpi(超超超高)~640dpi 通用的尺寸和密度按照基线配置(即正常尺寸和 mdpi(中)密度)排列。 此基线基于第一代 Android 设备 (T-Mobile G1) 的屏幕配置,该设备采用 HVGA 屏幕(在 Android 1.6 之前,这是 Android 支持的唯一屏幕配置)。 每种通用的尺寸和密度都涵盖一个实际屏幕尺寸和密度范围。例如, 两部都报告正常屏幕尺寸的设备在手动测量时,实际屏幕尺寸和 高宽比可能略有不同。类似地,对于两台报告 hdpi 屏幕密度的设备,其实际像素密度可能略有不同。 Android 将这些差异抽象概括到应用,使您可以提供为通用尺寸和密度设计的 UI,让系统按需要处理任何最终调整。 图 1 说明不同的尺寸和密度如何粗略归类为不同的尺寸 和密度组。 图 1. 说明 Android 如何将实际尺寸和密度粗略地 对应到通用的尺寸和密度(数据并不精确)。 在为不同的屏幕尺寸设计 UI 时,您会发现每种设计都需要 最小空间。因此,上述每种通用的屏幕尺寸都关联了系统定义的最低 分辨率。这些最小尺寸以“dp”单位表示 — 在定义布局时应使用相同的单位 — 这样系统无需担心屏幕密度的变化。 超大屏幕至少为 960dp x 720dp 大屏幕至少为 640dp x 480dp 正常屏幕至少为 470dp x 320dp 小屏幕至少为 426dp x 320dp 注:这些最小屏幕尺寸在 Android 3.0 之前未正确定义,因此某些设备在正常屏幕与大屏幕之间变换时可能会出现分类错误的情况。 这些尺寸还基于屏幕的物理分辨率,因此设备之间可能不同 — 例如,具有系统状态栏的 1024×720 平板电脑因系统状态栏要占用空间,所以可供 应用使用的空间要小一点。 要针对不同的屏幕尺寸和密度优化应用的 UI,可为任何通用的尺寸和密度提供 替代 资源。通常,应为某些不同的屏幕尺寸提供替代布局,为不同的屏幕密度提供替代位图图像。 在运行时,系统会根据当前设备屏幕的通用 尺寸或密度对应用使用适当的资源。 无需为屏幕尺寸和 密度的每个组合提供替代资源。系统提供强大的兼容性功能,可处理在任何设备屏幕上 渲染应用的大多数工作,前提是您已经使用 可以适当调整大小的技术实现 UI(如下面的最佳做法所述)。 注:定义设备通用屏幕 尺寸和密度的特性相互独立。例如,WVGA 高密度屏幕 被视为正常尺寸屏幕,因为其物理尺寸与 T-Mobile G1 (Android 的第一代设备和基线屏幕配置)大约相同。另一方面,WVGA 中密度 屏幕被视为大尺寸屏幕。虽然它提供相同的分辨率(相同的 像素数),但 WVGA 中密度屏幕的屏幕密度更低,意味着每个像素 实际上更大,因此整个屏幕大于基线(正常尺寸)屏幕。 密度独立性 应用显示在密度不同的屏幕上时,如果它保持用户界面元素的物理尺寸(从 用户的视角),便可实现“密度独立性” 。 保持密度独立性很重要,因为如果没有此功能,UI 元素(例如 按钮)在低密度屏幕上看起来较大,在高密度屏幕上看起来较小。这些 密度相关的大小变化可能给应用布局和易用性带来问题。图 2 和 3 分别显示了应用不提供密度独立性和 提供密度独立性时的差异。 图 2. 不支持不同密度的示例应用在低、中、高密度屏幕上的显示情况。 图 3. 良好支持不同密度(密度独立)的示例应用在低、中、高密度屏幕上的显示情况。 Android 系统可帮助您的应用以两种方式实现密度独立性: 系统根据当前屏幕密度扩展 dp 单位数 系统在必要时可根据当前屏幕 密度将可绘制对象资源扩展到适当的大小 在图 2 中,文本视图和位图可绘制对象具有以像素(px 单位)指定的尺寸,因此视图的物理尺寸在低密度屏幕上更大,在高密度 屏幕上更小。这是因为,虽然实际屏幕尺寸可能相同,但高密度屏幕 的每英寸像素更多(同样多的像素在一个更小的区域内)。在图 3 中,布局 尺寸以密度独立的像素(dp 单位)指定。由于 密度独立像素的基线是中密度屏幕,因此具有中密度屏幕的设备看起来 与图 2 一样。但对于低密度和高密度屏幕,系统 将分别增加和减少密度独立像素值,以适应 屏幕。 大多数情况下,确保应用中的屏幕独立性很简单,只需以适当的密度独立像素(dp 单位)或 “wrap_content” 指定所有 布局尺寸值。系统然后根据适用于当前屏幕密度的缩放比例适当地缩放位图可绘制对象,以 适当的大小显示。 但位图缩放可能导致模糊或像素化位图,您或许已经在上面的屏幕截图中 发现了这些问题。为避免这些伪影,应为 不同的密度提供替代的位图资源。例如,应为高密度 屏幕提供分辨率较高的位图,然后系统对中密度 屏幕将使用这些位图,而无需调整位图大小。下一节详细说明如何为 不同的屏幕配置提供替代资源。 如何支持多种屏幕 Android 支持多种屏幕的基础是它能够管理针对当前屏幕配置 以适当方式渲染应用的布局和位图 可绘制对象。系统可处理大多数工作,通过适当地 缩放布局以适应屏幕尺寸/密度和根据屏幕密度缩放位图可绘制对象 ,在每种屏幕配置中渲染您的应用。但是,为了更适当地处理不同的屏幕配置 ,还应该: 在清单中显式声明您的应用 支持哪些屏幕尺寸 通过声明您的应用支持哪些屏幕尺寸,可确保只有 其屏幕受支持的设备才能下载您的应用。声明对 不同屏幕尺寸的支持也可影响系统如何在较大 屏幕上绘制您的应用 — 特别是,您的应用是否在屏幕兼容模式中运行。 要声明应用支持的屏幕尺寸,应在清单文件中包含 supports-screens 元素。 为不同屏幕尺寸提供不同的布局 默认情况下,Android 会调整应用布局的大小以适应当前设备屏幕。大多数 情况下效果很好。但有时 UI 可能看起来不太好,需要针对 不同的屏幕尺寸进行调整。例如,在较大屏幕上,您可能要调整 某些元素的位置和大小,以利用其他屏幕空间,或者在较小屏幕上, 可能需要调整大小以使所有内容纳入屏幕。 可用于提供尺寸特定资源的配置限定符包括 small、normal、large 和 xlarge。例如,超大屏幕的布局应使用 layout-xlarge/。 从 Android 3.2(API 级别 13)开始,以上尺寸组已弃用,您 应改为使用 swdp 配置限定符来定义布局资源 可用的最小宽度。例如,如果多窗格平板电脑布局 需要至少 600dp 的屏幕宽度,应将其放在 layout-sw600dp/ 中。声明适用于 Android 3.2 的平板电脑布局一节将进一步讨论如何使用新技术声明布局资源。 为不同屏幕密度提供不同的位图可绘制对象 默认情况下,Android 会缩放位图可绘制对象(.png、.jpg 和 .gif 文件)和九宫格可绘制对象(.9.png 文件),使它们以适当的 物理尺寸显示在每部设备上。例如,如果您的应用只为 基线中密度屏幕 (mdpi) 提供位图可绘制对象,则在高密度 屏幕上会增大位图,在低密度屏幕上会缩小位图。这种缩放可能在 位图中造成伪影。为确保位图的最佳显示效果,应针对 不同屏幕密度加入不同分辨率的替代版本。 可用于密度特定资源的配置限定符(在下面详述) 包括 ldpi(低)、mdpi(中)、 hdpi(高)、xhdpi(超高)、xxhdpi (超超高)和 xxxhdpi(超超超高)。例如,高密度屏幕的位图应使用 drawable-hdpi/。 注:仅当要在 xxhdpi 设备上提供比正常位图大的启动器图标时才需要提供 mipmap-xxxhdpi 限定符。无需为所有应用的图像提供 xxxhdpi 资源。 有些设备会将启动器图标增大 25%。例如,如果您的最高 密度启动器图标已是超超高密度,缩放处理会降低其 清晰度。因此应在 mipmap-xxxhdpi 目录中提供更高密度的启动器图标,系统将改为增大较小 的图标。 请参阅提供 xxx-高密度启动器图标以了解详细信息。对启动程序图标以外的 UI 元素不应使用 xxxhdpi 限定符。 注:将您的所有启动器图标放在 res/mipmap-[density]/ 文件夹中,而非 res/drawable-[density]/ 文件夹中。无论安装应用的设备屏幕分辨率如何,Android 系统都会将资源保留在这些密度特定的文件夹中,例如 mipmap-xxxhdpi。此 行为可让启动器应用为您的应用选择要显示在主 屏幕上的最佳分辨率图标。如需了解有关使用 mipmap 文件夹的详细信息,请参阅管理项目概览。 尺寸和密度配置限定符对应于 前面支持的屏幕范围中所述的通用尺寸和密度。 在运行时,系统通过 以下程序确保任何给定资源在当前屏幕上都能保持尽可能最佳的显示效果: 系统使用适当的替代资源 根据当前屏幕的尺寸和密度,系统将使用您的应用中提供的任何尺寸和 密度特定资源。例如,如果设备有 高密度屏幕,并且应用请求可绘制对象资源,系统将查找 与设备配置最匹配的可绘制对象资源目录。根据可用的其他 替代资源,包含 hdpi 限定符(例如 drawable-hdpi/)的资源目录可能是最佳匹配项,因此系统将使用此 目录中的可绘制对象资源。 如果没有匹配的资源,系统将使用默认资源,并按需要向上 或向下扩展,以匹配当前的屏幕尺寸和密度。 “默认”资源是指未标记配置限定符的资源。例如,drawable/ 中的资源是默认可绘制资源。 系统假设默认资源设计用于基线屏幕尺寸和密度,即 正常屏幕尺寸和中密度。 因此,系统对于高密度屏幕向上扩展默认密度 资源,对于低密度屏幕向下扩展。 当系统查找密度特定的资源但在 密度特定目录中未找到时,不一定会使用默认资源。系统在缩放时可能 改用其他密度特定资源提供更好的 效果。例如,查找低密度资源但该资源不可用时, 系统会缩小资源的高密度版本,因为 系统可轻松以 0.5 为系数将高密度资源缩小至低密度资源,与以 0.75 为系数 缩小中密度资源相比,伪影更少。 如需有关 Android 如何通过使配置 限定符与设备配置匹配来选择替代资源的更多信息,请参阅 Android 如何 查找最佳匹配资源。 使用配置限定符 Android 支持多种配置限定符,可让您控制系统 如何根据当前设备屏幕的特性选择替代资源。配置限定符是可以附加到 Android 项目中资源目录的字符串,用于指定在其中设计资源的配置。 要使用配置限定符: 在项目的 res/ 目录中新建一个目录,并使用以下 格式命名: <resources_name>-<qualifier> <resources_name> 是标准资源名称(例如 drawable 或 layout)。 <qualifier> 是下表 1 中的配置限定符,用于指定 要使用这些资源的屏幕配置(例如 hdpi 或 xlarge)。 您可以一次使用多个 <qualifier> — 只需使用短划线分隔每个 限定符。 将适当的配置特定资源保存在此新目录下。这些资源 文件的名称必须与默认资源文件完全一样。 例如,xlarge 是超大屏幕的配置限定符。将 此字符串附加到资源目录名称(例如 layout-xlarge)时,它指向 要在具有超大屏幕的设备上使用这些资源的系统。 表 1. 可用于为 不同屏幕配置提供特殊资源的配置限定符。 屏幕特性 限定符 说明 尺寸 small 适用于小尺寸屏幕的资源。 normal 适用于正常尺寸屏幕的资源。(这是基线尺寸。) large 适用于大尺寸屏幕的资源。 xlarge 适用于超大尺寸屏幕的资源。 密度 ldpi 适用于低密度 (ldpi) 屏幕 (~120dpi) 的资源。 mdpi 适用于中密度 (mdpi) 屏幕 (~160dpi) 的资源。(这是基线 密度。) hdpi 适用于高密度 (hdpi) 屏幕 (~240dpi) 的资源。 xhdpi 适用于超高密度 (xhdpi) 屏幕 (~320dpi) 的资源。 xxhdpi 适用于超超高密度 (xxhdpi) 屏幕 (~480dpi) 的资源。 xxxhdpi 适用于超超超高密度 (xxxhdpi) 屏幕 (~640dpi) 的资源。此限定符仅适用于 启动器图标,请参阅上面的注。 nodpi 适用于所有密度的资源。这些是密度独立的资源。不管当前屏幕的密度如何,系统都不会 缩放以此限定符标记的资源。 tvdpi 适用于密度介于 mdpi 和 hdpi 之间屏幕(约为 213dpi)的资源。它并不是 “主要”密度组,主要用于电视,而大多数应用都不 需要它 — 对于大多数应用而言,提供 mdpi 和 hdpi 资源便已足够,系统将根据需要对其进行 缩放。如果发现必须提供 tvdpi 资源,应以 1.33*mdpi 的系数 调整其大小。例如,mdpi 屏幕的 100px x 100px 图像应该相当于 tvdpi 的 133px x 133px。 方向 land 适用于横屏(长宽比)的资源。 方向port 适用于竖屏(高宽比)的资源。 纵横比 long 适用于纵横比明显高于或宽于(分别在竖屏 或横屏时)基线屏幕配置的屏幕的资源。 notlong 适用于使用纵横比类似于基线屏幕 配置的屏幕的资源。 注:如果是为 Android 3.2 和 更高版本开发应用,请参阅有关声明适用于 Android 3.2 的平板电脑布局的章节,了解 在为特定屏幕尺寸声明布局资源时应使用的 新配置限定符(而不是使用表 1 中的尺寸限定符)。 如需了解有关这些限定符如何粗略地对应于实际屏幕 尺寸和密度的更多信息,请参阅本文档前面的支持的屏幕范围 。 例如,以下应用资源目录 为不同屏幕尺寸和不同可绘制对象提供不同的布局设计。使用 mipmap/ 文件夹放置 启动器图标。 res/layout/my_layout.xml//layoutfornormalscreensize(“default”) res/layout-large/my_layout.xml//layoutforlargescreensize res/layout-xlarge/my_layout.xml//layoutforextra-largescreensize res/layout-xlarge-land/my_layout.xml//layoutforextra-largeinlandscapeorientation res/drawable-mdpi/graphic.png//bitmapformedium-density res/drawable-hdpi/graphic.png//bitmapforhigh-density res/drawable-xhdpi/graphic.png//bitmapforextra-high-density res/drawable-xxhdpi/graphic.png//bitmapforextra-extra-high-density res/mipmap-mdpi/my_icon.png//launchericonformedium-density res/mipmap-hdpi/my_icon.png//launchericonforhigh-density res/mipmap-xhdpi/my_icon.png//launchericonforextra-high-density res/mipmap-xxhdpi/my_icon.png//launchericonforextra-extra-high-density res/mipmap-xxxhdpi/my_icon.png//launchericonforextra-extra-extra-high-density 请注意,当 Android 系统在运行时选择使用哪些资源时,它会使用 特定逻辑确定“最佳匹配”资源。也就是说,您使用的限定符无 需在所有情况下精确匹配当前屏幕配置,系统也可 使用它们。特别是,根据屏幕尺寸限定符选择资源时,如果没有更好的匹配资源,则系统将 使用专为小于当前屏幕的屏幕而设计的 资源(例如,如有必要,大尺寸屏幕将使用标准尺寸的屏幕 资源)。但是,如果唯一可用的资源大于当前屏幕, 则系统不会使用这些资源,并且如果没有其他资源与设备 配置匹配,应用将会崩溃(例如,如果所有布局资源均用 xlarge 限定符标记, 但设备是标准尺寸的屏幕)。 提示:如果您有一些系统 应该永远不会缩放(或许是因为您在 运行时亲自对图像做一些调整)的可绘制对象资源,则应将它们放在有 nodpi 配置限定符的目录中。 使用此限定符的资源被视为与密度无关,系统不会缩放 它们。 设计替代布局和可绘制对象 您应该创建的替代资源类型取决于应用的需求。 通常,您应该使用尺寸和方向限定符提供替代布局资源 ,并且使用密度限定符提供替代位图可绘制对象资源。 以下各节摘要说明您可能要如何使用尺寸和密度限定符 来分别提供替代布局和可绘制对象。 替代布局 一般而言,在不同的屏幕配置上测试应用后,您会知道 是否需要用于不同屏幕尺寸的替代布局。例如: 在小屏幕上测试时,可能会发现您的布局不太适合 屏幕。例如,小屏幕设备的屏幕宽度可能无法容纳一排 按钮。在此情况下,您应该为小屏幕提供调整 按钮大小或位置的替代布局。 在超大屏幕上测试时,可能会发现您的布局无法 有效地利用大屏幕,并且明显拉伸填满屏幕。 在此情况下,您应该为超大屏幕提供替代布局,以提供 针对大屏幕(例如平板电脑)优化、重新设计的 UI。 虽然您的应用不使用替代布局也能在大屏幕上正常运行,但 必须让用户感觉您的应用看起来像是专为其 设备而设计。如果 UI 明显拉伸,用户很可能对 应用体验不满意。 而且,对比横屏测试和竖屏测试时 可能会发现,竖屏时置于底部的 UI 在横屏时应位于屏幕右侧。 简而言之,您应确保应用布局: 适应小屏幕(让用户能实际使用您的应用) 已针对大屏幕优化,可以利用其他屏幕空间 已同时针对横屏和竖屏方向优化 如果 UI 使用的位图即使在系统缩放 布局后也需要适应视图大小(例如按钮的背景图片),则应使用九宫格位图文件。九宫格文件基本上是一个指定可拉伸的二维区域的 PNG 文件。 当系统需要缩放使用位图的视图时,系统 会拉伸九宫格位图,但只拉伸指定的区域。因此,您无 需为不同的屏幕尺寸提供不同的可绘制对象,因为九宫格位图可 调整至任何大小。但您应该为不同的屏幕密度提供 九宫格文件的替代版本。 替代可绘制对象 图 4. 支持每种密度的 位图可绘制对象的相对大小。 基本上每个应用都应该具有不同密度的替代可绘制对象 资源,因为基本上每个应用都有启动器图标,而且该图标应该在 所有屏幕密度中看起来都很好。同样,如果您的应用中包含其他位图可绘制对象(例如 应用中的菜单图标或其他图形),则应该为不同密度提供替代版本或 每种密度一个版本。 注:您只需要为 位图文件(.png、.jpg 或 .gif)和九宫格文件 (.9.png) 提供密度特定的可绘制对象。如果您使用 XML 文件定义形状、颜色或其他可绘制对象资源,应该 将一个副本放在默认可绘制对象目录中 (drawable/)。 要为不同的密度创建替代位图可绘制对象,应遵循六种通用密度之间的 3:4:6:8:12:16 缩放比率。例如,如果您的 位图可绘制对象是对中密度屏幕使用 48×48 像素,则所有不同的尺寸应为: 36×36 (0.75x) 用于低密度 48×48(1.0x 基线)用于中密度 72×72 (1.5x) 用于高密度 96×96 (2.0x) 用于超高密度 144×144 (3.0x) 用于超超高密度 192×192 (4.0x) 用于超超超高密度(仅限启动器图标;请参阅上面的 注) 如需了解有关设计图标的更多信息,请参阅图标设计指南, 其中包含各种位图可绘制对象(例如启动器图标、菜单 图标、状态栏图标、选项卡图标等)的大小信息。 声明适用于 Android 3.2 的平板电脑布局 对于第一代运行 Android 3.0 的平板电脑,声明平板电脑 的正确方式是将它们放在有 xlarge 配置限定符的目录(例如 res/layout-xlarge/)中。为适应其他类型的平板电脑和屏幕 尺寸 — 特别是 7 英寸平板电脑 — Android 3.2 引入了为更具体的屏幕尺寸指定资源 的新方式。新技术基于布局需要的空间量 (例如 600dp 宽),而不是尝试让您的布局容纳通用化的尺寸组 (例如大或超大)。 使用通用化的尺寸组时,为 7 英寸平板电脑设计很棘手的原因在于, 7 英寸平板电脑在技术上与 5 英寸手机属于同一个组(大组)。虽然 这两种设备在尺寸上似乎很接近,但用于 应用 UI 的空间量明显不同,用户交互的方式也是如此。因此,7 英寸和 5 英寸 屏幕不一定使用相同的布局。为便于您为这两种屏幕提供不同的 布局,Android 现在允许您 根据实际适用于应用布局的宽度和/或高度指定布局资源( 以 dp 单位数指定)。 例如,在设计要用于平板电脑样式设备的布局之后,您可能 发现该布局在屏幕宽度小于 600dp 时不适用。此阈值 于是变成平板电脑布局需要的最小尺寸。因此,您现在可以指定应仅当至少有 600dp 宽度供应用的 UI 使用时才使用这些布局资源。 应选择一个宽度并将其设计为最小尺寸,或者在布局设计完成后测试 其支持的最小宽度。 注:请记住,这些新尺寸 API 使用的所有数据是密度独立的像素 (dp) 值,您的布局尺寸也应始终 使用 dp 单位定义,因为您关注的是系统 考虑屏幕密度后可用的屏幕空间量(与使用原始像素分辨率相反)。如需了解 密度独立像素的更多信息,请参阅本文档前面的术语和概念 。 使用新尺寸限定符 因为微信字数限制,请点击左下角原文链接阅读完整内容。 本文作者:佚名 来源:51CTO

优秀的个人博客,低调大师

Android 6.0动态权限适配

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/53585894 前言 最近项目发现比较多的问题是关于Android 6.0的问题,APP安装之后,在Android 6.0之后的系统,点击直接奔溃打不开,这是为什么昵?这就是Android 6.0以上的系统引入运行时权限--默认所有涉及用户隐私的权限都被关闭,我们在AndroidManifest.xml中申请了,之后我们还得动态申请权限,不然我们每次安装完APP后,就得在“设置=》应用=》安装的APP”打开我们所需权限。 Android 6.0 需要动态申请的权限 Android M引入了运行时权限。所有权限仍然需要在AndroidManifest中声明。但是,当访问需要权限的API时,活动或片段必须验证权限已被授予或使用通过支持库的调用请求缺少的权限。Android 6.0需要单独申请的权限,共分为9组,每组只要有一个权限申请成功了,就默认整组权限都可以使用了。如下所示: group:android.permission-group.CONTACTS permission:android.permission.WRITE_CONTACTS permission:android.permission.GET_ACCOUNTS permission:android.permission.READ_CONTACTS group:android.permission-group.PHONE permission:android.permission.READ_CALL_LOG permission:android.permission.READ_PHONE_STATE permission:android.permission.CALL_PHONE permission:android.permission.WRITE_CALL_LOG permission:android.permission.USE_SIP permission:android.permission.PROCESS_OUTGOING_CALLS permission:com.android.voicemail.permission.ADD_VOICEMAIL group:android.permission-group.CALENDAR permission:android.permission.READ_CALENDAR permission:android.permission.WRITE_CALENDAR group:android.permission-group.CAMERA permission:android.permission.CAMERA group:android.permission-group.SENSORS permission:android.permission.BODY_SENSORS group:android.permission-group.LOCATION permission:android.permission.ACCESS_FINE_LOCATION permission:android.permission.ACCESS_COARSE_LOCATION group:android.permission-group.STORAGE permission:android.permission.READ_EXTERNAL_STORAGE permission:android.permission.WRITE_EXTERNAL_STORAGE group:android.permission-group.MICROPHONE permission:android.permission.RECORD_AUDIO group:android.permission-group.SMS permission:android.permission.READ_SMS permission:android.permission.RECEIVE_WAP_PUSH permission:android.permission.RECEIVE_MMS permission:android.permission.RECEIVE_SMS permission:android.permission.SEND_SMS permission:android.permission.READ_CELL_BROADCASTS Android 6.0动态权限申请主要方法 Android6.0动态权限申请主要用到v4包中的下面三个函数: 权限通过ActivityCompat类中的checkselfpermission 方法。 权限请求是通过Activitycompat 类中的requestpermissions方法,在回调activitycompat收到响应。onrequestpermissionsresultcallback # onrequestpermissionsresult方法。 应用程序可以提供一个额外的合理的使用权限调用Activitycompat # shouldshowrequestpermissionrationale方法。Android原生系统中,如果第二次弹出权限申请的对话框,会出现“以后不再弹出”的提示框,如果用户勾选了,你再申请权限,则shouldShowRequestPermissionRationale返回true,意思是说要给用户一个 解释,告诉用户为什么要这个权限。然而,在实际开发中,需要注意的是,很多手机对原生系统做了修改,比如小米,小米4的6.0的shouldShowRequestPermissionRationale 就一直返回false,而且在申请权限时,如果用户选择了拒绝,则不会再弹出对话框了。。。。 所以说这个地方有坑,我的解决方法是,在回调里面处理,如果用户拒绝了这个权限,则打开本应用信息界面,由用户自己手动开启这个权限。 Android 6.0动态权限申请示例 上面讲了Android6.0动态权限申请的原理,下面我们来看一下如何申请动态权限。 1、首先在AndroidManifest.xml文件中申请所需要的权限。比如我要申请照相机的权限 2、在build.gradle文件中修改targetSdkVersion即APP所支持的sdk版本号大于等于23,我这里设置为23.因为23就是Android 6.0的sdk版本号。 3、开始申请权限,我们通过流程图来看一下 代码示例: 检查权限 //检查权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { //进入到这里代表没有权限. ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, REQUEST_CODE); } else { showcamera(); } 我们还需要写回掉方法: @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case REQUEST_CODE: if(grantResults.length >0 &&grantResults[0]==PackageManager.PERMISSION_GRANTED){ //用户同意授权 showcamera(); }else{ //用户拒绝授权 } break; } } 如果拒绝提示用户 我们用上面的方法,如果申请时用户拒绝授予权限时,APP会崩溃,所以我们需要在用户拒绝授予权限后,提示用户我们为什么要这个权限。 //检查权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { //进入到这里代表没有权限. if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CAMERA)){ //已经禁止提示了 Toast.makeText(MainActivity.this, "您已禁止该权限,需要重新开启。", Toast.LENGTH_SHORT).show(); }else{ ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, REQUEST_CODE); }

优秀的个人博客,低调大师

Android 6.0 permission 权限适配

1、获取危险权限列表,每个分组申请其中一个权限即可: bogon:~ hujason$ adb shell pm list permissions -d -f -g Dangerous Permissions: + group:android.permission-group.LGT_CONTENT package:android label:LGT Contents description:LGT Contents + group:com.sec.enterprise.permission-group.mdm package:android label:移动设备管理 description:Allow Enterprise Device Administrator applications to apply management and security policies by configuring the device, restricting device functionality and querying device status. + group:android.permission-group.CONTACTS package:android label:联系人 description:使用您的通讯录 + permission:android.permission.WRITE_CONTACTS package:android label:修改您的通讯录 description:允许该应用修改您手机上存储的联系人的相关数据,包括您通过打电话、发送电子邮件或以其他方式与特定联系人通信的频率。此权限可让应用删除联系人数据。 protectionLevel:dangerous + permission:android.permission.GET_ACCOUNTS package:android label:查找设备上的帐户 description:允许该应用获取手机已知的帐户列表,其中可能包括由已安装的应用创建的所有帐户。 protectionLevel:dangerous + permission:android.permission.READ_CONTACTS package:android label:读取您的通讯录 description:允许该应用读取您手机上存储的联系人的相关数据,包括您通过打电话、发送电子邮件或以其他方式与特定个人通信的频率。此权限可让应用保存您的联系人数据,而恶意应用可能会在您不知情的情况下分享联系人数据。 protectionLevel:dangerous + group:android.permission-group.PHONE package:android label:电话 description:拨打电话和管理通话 + permission:android.permission.READ_CALL_LOG package:android label:读取通话记录 description:允许该应用读取手机的通话记录,包括有关来电和外拨电话的数据。此权限可让应用保存您的通话记录数据,而恶意应用可能会在您不知情的情况下分享通话记录数据。 protectionLevel:dangerous + permission:android.permission.READ_PHONE_STATE package:android label:读取手机状态和身份 description:允许该应用访问设备的电话功能。此权限可让该应用确定本机号码和设备 ID、是否正处于通话状态以及拨打的号码。 protectionLevel:dangerous + permission:android.permission.CALL_PHONE package:android label:直接拨打电话号码 description:允许该应用在您未执行操作的情况下拨打电话号码。此权限可能会导致意外收费或呼叫。请注意,此权限不允许该应用拨打紧急电话号码。恶意应用可通过拨打电话产生相关费用,而无需您的确认。 protectionLevel:dangerous + permission:android.permission.WRITE_CALL_LOG package:android label:写入通话记录 description:允许该应用修改手机的通话记录,包括有关来电和外拨电话的数据。恶意应用可能会借此清除或修改您的通话记录。 protectionLevel:dangerous + permission:android.permission.USE_SIP package:android label:拨打/接听SIP电话 description:允许该应用拨打和接听SIP电话。 protectionLevel:dangerous + permission:android.permission.PROCESS_OUTGOING_CALLS package:android label:重新设置外拨电话的路径 description:允许应用在拨出电话时查看拨打的电话号码,并选择改为拨打其他号码或完全中止通话。 protectionLevel:dangerous + permission:com.android.voicemail.permission.ADD_VOICEMAIL package:android label:添加语音邮件 description:允许应用向您的语音信箱收件箱添加邮件。 protectionLevel:dangerous + group:com.sec.permission-group.SECURITY package:com.sec.android.providers.security label:控制设备安全设置的服务 description:允许应用程序读取或更改当前设备的安全政策 + group:android.permission-group.CALENDAR package:android label:日历 description:访问您的日历 + permission:android.permission.READ_CALENDAR package:android label:读取日历活动和机密信息 description:允许该应用读取您手机上存储的所有日历活动,包括朋友或同事的活动。此权限可让该应用分享或保存您的日历数据,而不论这些数据是否属于机密或敏感内容。 protectionLevel:dangerous + permission:android.permission.WRITE_CALENDAR package:android label:添加或修改日历活动,并在所有者不知情的情况下向邀请对象发送电子邮件 description:允许该应用添加、删除、更改您可在手机上修改的活动,包括朋友或同事的活动。此权限可让该应用冒充日历所有者发送消息,或在所有者不知情的情况下修改活动。 protectionLevel:dangerous + group:android.permission-group.CAMERA package:android label:相机 description:拍摄照片和录制视频 + permission:com.sec.android.app.camera.permission.SHOOTING_MODE package:com.sec.android.app.camera label:相机模式 description:该应用程序将在您的设备上安装可与相机应用程序交互的相机模式。请注意,恶意软件有可能会导致相机功能不稳定。 protectionLevel:dangerous + permission:android.permission.CAMERA package:android label:拍摄照片和视频 description:允许该应用使用相机拍摄照片和视频。此权限可让该应用随时使用相机,而无需您的确认。 protectionLevel:dangerous + group:com.subscription.permission package:com.when.coco.csa label:null description:null + group:com.sec.orca.remoteshare.permission-group.RSHARE package:com.samsung.android.coreapps label:CoreApps EasyShare Provider Permissions description:Share media files with contacts + group:com.samsung.android.app.memo.permission package:android label:null description:null + group:android.permission-group.SENSORS package:android label:身体传感器 description:访问与您的生命体征相关的传感器数据 + permission:android.permission.BODY_SENSORS package:android label:人体传感器(如心跳速率检测器) description:允许该应用存取监测您身体状况的传感器所收集的数据,例如您的心率。 protectionLevel:dangerous + group:android.permission-group.LOCATION package:android label:位置信息 description:使用此设备的位置信息 + permission:android.permission.ACCESS_FINE_LOCATION package:android label:精确位置(基于GPS和网络) description:允许该应用通过全球定位系统(GPS)或网络位置信息源(例如基站和WLAN)获取您的精确位置信息。您必须在设备上开启这些位置信息服务,应用才能获得位置信息。应用会使用此类服务确定您的位置,这可能会消耗更多电量。 protectionLevel:dangerous + permission:android.permission.ACCESS_COARSE_LOCATION package:android label:大致位置(基于网络) description:允许该应用获取您的大致位置信息。这类位置信息来自于使用网络位置信息源(例如基站和WLAN)的位置信息服务。您必须在设备上开启这些位置信息服务,应用才能获得位置信息。应用会使用此类服务确定您的大概位置。 protectionLevel:dangerous + group:android.permission-group.STORAGE package:android label:存储 description:访问您设备上的照片、媒体内容和文件 + permission:android.permission.READ_EXTERNAL_STORAGE package:android label:读取您的SD卡中的内容 description:允许应用读取您SD卡的内容。 protectionLevel:dangerous + permission:android.permission.WRITE_EXTERNAL_STORAGE package:android label:修改或删除您的SD卡中的内容 description:允许应用写入SD卡。 protectionLevel:dangerous + group:com.sina.weibo.permission-group package:com.sina.weibo label:微博 description:微博权限组 + permission:com.sina.weibo.permission.USER package:com.sina.weibo label:监听微博帐户 description:该权限允许接收和处理微博的用户名、密码 protectionLevel:dangerous + group:android.permission-group.MICROPHONE package:android label:麦克风 description:录制音频 + permission:android.permission.RECORD_AUDIO package:android label:录音 description:允许该应用使用麦克风录制音频。此权限可让该应用不经您的确认即可随时录制音频。 protectionLevel:dangerous + group:com.samsung.permission-group.SKT package:android label:SKT Services description:Allows application to use SKT and SKP services + group:android.permission-group.SMS package:android label:短信 description:发送和查看短信 + permission:android.permission.READ_SMS package:android label:读取您的讯息(短信或彩信) description:允许该应用读取您手机或SIM卡上存储的短信。此权限可让该应用读取所有短信,而不考虑短信内容或机密性。 protectionLevel:dangerous + permission:android.permission.RECEIVE_WAP_PUSH package:android label:接收讯息 (WAP) description:允许该应用接收和处理 WAP 消息。此权限包括监视发送给您的消息或删除发送给您的消息而不向您显示的功能。 protectionLevel:dangerous + permission:android.permission.RECEIVE_MMS package:android label:接收讯息(彩信) description:允许该应用接收和处理彩信。这就意味着,该应用可能会监视发送到您设备的彩信,或删除发送到您设备的彩信而不向您显示。 protectionLevel:dangerous + permission:android.permission.RECEIVE_SMS package:android label:接收讯息(短信) description:允许该应用接收和处理短信。这就意味着,该应用可能会监视发送到您设备的短信,或删除发送到您设备的短信而不向您显示。 protectionLevel:dangerous + permission:android.permission.SEND_SMS package:android label:发送和查看短信 description:允许该应用发送短信。此权限可能会导致意外收费。恶意应用可能会未经您的确认而发送短信,由此产生相关费用。 protectionLevel:dangerous + permission:android.permission.READ_CELL_BROADCASTS package:android label:读取小区广播消息 description:允许应用读取您的设备收到的小区广播消息。小区广播消息是在某些地区发送的、用于发布紧急情况警告的提醒信息。恶意应用可能会在您收到小区紧急广播时干扰您设备的性能或操作。 protectionLevel:dangerous + group:com.sec.android.app.sysscope.permission-group.SYSTEM_DIAGNOSIS package:com.sec.android.app.sysscope label:SysScope 许可 description:允许应用程序运行 SysScope 服务 + ungrouped: + permission:com.sec.smartcard.permission.SMARTCARD_ADAPTER package:com.sec.smartcard.manager label:智能卡加密 description:允许应用程序使用智能卡加密。 protectionLevel:dangerous 2,获取所有用户权限列表: bogon:~ hujason$ adb shell pm list permissions -g -u -f Dangerous and Normal Permissions: + group:com.google.android.gms.permission.CAR_INFORMATION package:com.google.android.gms label:汽车信息 description:查看您的汽车信息。 + permission:com.google.android.gms.permission.CAR_VENDOR_EXTENSION package:com.google.android.gms label:汽车供应商渠道 description:查看汽车的供应商渠道,以交换汽车专属信息。 protectionLevel:dangerous + permission:com.google.android.gms.permission.CAR_MILEAGE package:com.google.android.gms label:汽车里程 description:查看汽车的里程信息。 protectionLevel:dangerous + permission:com.google.android.gms.permission.CAR_FUEL package:com.google.android.gms label:汽车油量 description:查看汽车的油量信息。 protectionLevel:dangerous + group:android.permission-group.CONTACTS package:android label:通讯录 description:使用您的通讯录 + permission:android.permission.WRITE_CONTACTS package:android label:修改通讯录 description:允许应用修改手机上存储的联系人的相关数据,包括您通过打电话、发送电子邮件或以其他方式与特定联系人通信的频率。此权限可让应用删除联系人数据。 protectionLevel:dangerous + permission:android.permission.GET_ACCOUNTS package:android label:查找设备上的帐户 description:允许应用获取手机已知的帐户列表,其中可能包括由已安装的应用创建的所有帐户。 protectionLevel:dangerous + permission:android.permission.READ_CONTACTS package:android label:读取您的通讯录 description:允许应用读取手机上存储的联系人的相关数据,包括您通过打电话、发送电子邮件或以其他方式与特定个人通信的频率。此权限可让应用保存您的联系人数据,而恶意应用可能会在您不知情的情况下分享联系人数据。 protectionLevel:dangerous + group:android.permission-group.PHONE package:android label:电话 description:拨打电话和管理通话 + permission:android.permission.READ_CALL_LOG package:android label:读取通话记录 description:允许该应用读取手机的通话记录,包括有关来电和外拨电话的数据。此权限可让应用保存您的通话记录数据,而恶意应用可能会在您不知情的情况下分享通话记录数据。 protectionLevel:dangerous + permission:android.permission.READ_PHONE_STATE package:android label:读取手机状态和身份 description:允许应用访问设备的电话功能。此权限可让该应用确定本机号码和设备 ID、是否正处于通话状态以及拨打的号码。 protectionLevel:dangerous + permission:android.permission.CALL_PHONE package:android label:直接拨打电话号码 description:允许应用在您未执行操作的情况下拨打电话号码。此权限可能会导致意外收费或呼叫。请注意,此权限不允许该应用拨打紧急电话号码。恶意应用可通过拨打电话产生相关费用,而无需您的确认。 protectionLevel:dangerous + permission:android.permission.WRITE_CALL_LOG package:android label:写入通话记录 description:允许该应用修改手机的通话记录,包括有关来电和外拨电话的数据。恶意应用可能会借此清除或修改您的通话记录。 protectionLevel:dangerous + permission:android.permission.USE_SIP package:android label:拨打/接听互联网通话 description:允许该应用使用 SIP 服务拨打/接听互联网电话。 protectionLevel:dangerous + permission:android.permission.PROCESS_OUTGOING_CALLS package:android label:重新设置呼出的路径 description:允许该应用处理呼出以及更改要拨打的号码。此权限可让该应用监视、重定向或阻止呼出。 protectionLevel:dangerous + permission:com.android.voicemail.permission.ADD_VOICEMAIL package:android label:添加语音邮件 description:允许应用向您的语音信箱收件箱添加邮件。 protectionLevel:dangerous + group:android.permission-group.CALENDAR package:android label:日历 description:直接访问日历和活动 + permission:android.permission.READ_CALENDAR package:android label:读取日历活动和机密信息 description:允许应用读取手机上存储的所有日历活动,包括朋友或同事的活动。此权限可让该应用分享或保存您的日历数据,而不论这些数据是否属于机密或敏感内容。 protectionLevel:dangerous + permission:android.permission.WRITE_CALENDAR package:android label:添加或修改日历活动,并在所有者不知情的情况下向邀请对象发送电子邮件 description:允许应用程序以日历所有者的名义发送活动邀请,同时允许其添加、删除和更改您能够在设备上修改的活动(包括朋友或同事的活动)。拥有此权限的恶意应用程序可以假借日历所有者的名义发送垃圾邮件,还可以在所有者不知情的情况下修改活动或添加虚假活动。 protectionLevel:dangerous + group:android.permission-group.CAMERA package:android label:相机 description:直接使用相机以拍摄图片或视频 + permission:android.permission.CAMERA package:android label:拍摄照片和视频 description:允许应用使用相机拍摄照片和视频。此权限可让该应用随时使用相机,而无需您的确认。 protectionLevel:dangerous + group:android.permission-group.SENSORS package:android label:身体传感器 description:访问与您的生命体征相关的传感器数据 + permission:android.permission.BODY_SENSORS package:android label:人体传感器 (如心跳速率检测器) description:允许应用访问您用于测量身体状况 (如心跳速率) 的传感器中的数据。 protectionLevel:dangerous + permission:android.permission.USE_FINGERPRINT package:android label:使用指纹硬件 description:允许该应用使用指纹硬件进行身份验证 protectionLevel:normal + group:com.taobao.permission-group.ACCOUNT package:com.taobao.taobao label:淘宝账号 description:您的淘宝账号 + group:android.permission-group.LOCATION package:android label:您的位置 description:使用此设备的位置信息 + permission:android.permission.ACCESS_FINE_LOCATION package:android label:精准的 (GPS) 位置 description:允许该应用通过全球定位系统(GPS)或网络位置信息源(例如基站和 WLAN)获取您的精确位置信息。您必须在设备上开启这些位置服务,应用才能获得位置信息。应用会使用此类服务确定您的位置,这可能会消耗更多电量。 protectionLevel:dangerous + permission:com.google.android.gms.permission.CAR_SPEED package:com.google.android.gms label:车速 description:查看车速。 protectionLevel:dangerous + permission:android.permission.ACCESS_COARSE_LOCATION package:android label: (基于网络的) 大概位置 description:访问位置提供程序根据基站和 WLAN 等网络源确定的大概位置。当这些位置服务可用且处于启用状态时,此权限可让该应用确定您的大概位置。 protectionLevel:dangerous + group:android.permission-group.STORAGE package:android label:存储 description:访问 SD 卡 + permission:android.permission.READ_EXTERNAL_STORAGE package:android label:读取您的 SD 卡中的内容 description:允许应用读取 SD 卡的内容。 protectionLevel:dangerous + permission:android.permission.WRITE_EXTERNAL_STORAGE package:android label:修改或删除 SD 卡中的内容 description:允许应用写入 SD 卡。 protectionLevel:dangerous + group:com.sina.weibo.permission-group package:com.sina.weibo label:微博 description:微博权限组 + permission:com.sina.weibo.permission.USER package:com.sina.weibo label:监听微博帐户 description:该权限允许接收和处理微博的用户名、密码 protectionLevel:dangerous + group:android.permission-group.MICROPHONE package:android label:麦克风 description:直接使用麦克风录制音频 + permission:android.permission.RECORD_AUDIO package:android label:录音 description:允许应用使用麦克风录制音频。此权限可让该应用不经您的确认即可随时录制音频。 protectionLevel:dangerous + group:android.permission-group.SMS package:android label:短信 description:发送和查看短信 + permission:android.permission.READ_SMS package:android label:读取您的文字讯息 (短信或彩信) description:允许应用读取您手机或 SIM 卡上存储的短信。此权限可让该应用读取所有短信,而不考虑短信内容或机密性。 protectionLevel:dangerous + permission:android.permission.RECEIVE_WAP_PUSH package:android label:接收文字讯息 (WAP) description:允许应用接收和处理 WAP 消息。此权限包括监视发送给您的消息或删除发送给您的消息而不向您显示的功能。 protectionLevel:dangerous + permission:android.permission.RECEIVE_MMS package:android label:接收文字讯息 (彩信) description:允许应用接收和处理彩信。这就意味着,该应用可能会监视发送到您设备的彩信,或删除发送到您设备的彩信而不向您显示。 protectionLevel:dangerous + permission:android.permission.RECEIVE_SMS package:android label:接收文字讯息 (短信) description:允许应用接收和处理短信。这就意味着,该应用可能会监视发送到您设备的短信,或删除发送到您设备的短信而不向您显示。 protectionLevel:dangerous + permission:android.permission.SEND_SMS package:android label:发送短信 description:允许应用发送短信。此权限可能会导致意外收费。恶意应用可能会未经您的确认而发送短信,由此产生相关费用。 protectionLevel:dangerous + permission:android.permission.READ_CELL_BROADCASTS package:android label:读取小区广播消息 description:允许应用读取设备收到的小区广播消息。小区广播消息是在某些地区发送的、用于发布紧急情况警告的提醒信息。恶意应用可能会在您收到小区紧急广播时干扰您设备的性能或操作。 protectionLevel:dangerous + ungrouped: + permission:android.permission.ACCESS_WIMAX_STATE package:android label:查看 WiMAX 状态 description:允许应用程序查看有关 WiMAX 状态的信息。 protectionLevel:normal + permission:com.huawei.appmarket.SEND_THIRD_COMMON_MSG package:com.huawei.appmarket label:接收插件启动结果信息,进行统计 description:插件消息发送权限。 protectionLevel:normal + permission:android.permission.RESTART_PACKAGES package:android label:关闭其他应用 description:允许应用结束其他应用的后台进程。此权限可导致其他应用停止运行。 protectionLevel:normal + permission:android.permission.USE_CREDENTIALS package:android label:null description:null protectionLevel:normal + permission:android.permission.MODIFY_AUDIO_SETTINGS package:android label:更改您的音频设置 description:允许应用修改全局音频设置,例如音量和用于输出的扬声器。 protectionLevel:normal + permission:org.simalliance.openmobileapi.SMARTCARD package:org.simalliance.openmobileapi.service label:SmartcardServicePermission label description:null protectionLevel:normal + permission:com.huawei.android.sns.sdk.permission package:com.huawei.hwid label:null description:null protectionLevel:normal + permission:android.permission.ACCESS_NOTIFICATION_POLICY package:android label:“勿扰”模式使用权限 description:允许此应用读取和写入“勿扰”模式配置。 protectionLevel:normal + permission:android.permission.MANAGE_ACCOUNTS package:android label:null description:null protectionLevel:normal + permission:com.tencent.mtt.permission.SDK package:com.tencent.mtt label:使用QQ浏览器 description:允许使用QQ浏览器内核获取更好浏览体验 protectionLevel:normal + permission:com.huawei.wallet.permission.WALLET_ORDER package:com.huawei.wallet label:null description:null protectionLevel:normal + permission:com.android.keyguard.permission.SEND_STEP_INFO package:com.android.keyguard label:null description:null protectionLevel:normal + permission:com.huawei.android.permission.VR package:android label:null description:null protectionLevel:normal + permission:com.qihoo.appstore.update.permission.clear_sdk package:com.qihoo.appstore label:null description:null protectionLevel:normal + permission:android.permission.NFC package:android label:控制近距离通信 description:允许应用与近距离无线通信 (NFC) 标记、卡和阅读器进行通信。 protectionLevel:normal + permission:com.android.keyguard.permission.RECEIVE_COVER_STATE package:com.android.keyguard label:null description:null protectionLevel:normal + permission:com.vodafone.vodafone360updates.permission.SHOW_SETUP_WIZARD package:com.huawei.hwstartupguide label:null description:null protectionLevel:normal + permission:com.gsma.services.nfc.permission.TRANSACTION_EVENT package:com.android.nfc label:TRANSACTION_EVENT description:null protectionLevel:normal + permission:com.huawei.pushagent.permission.RICHMEDIA_PROVIDER package:com.huawei.android.pushagent label:存储消息 description:存储消息 protectionLevel:dangerous + permission:android.permission.PM_INTERNAL_BROADCAST package:com.huawei.android.powermonitor label:null description:null protectionLevel:normal + permission:android.permission.CHANGE_NETWORK_STATE package:android label:更改网络连接性 description:允许该应用更改网络连接的状态。 protectionLevel:normal + permission:android.permission.PERSISTENT_ACTIVITY package:android label:让应用始终运行 description:允许该应用在内存中持续保留其自身的某些组件。这会限制其他应用可用的内存,从而减缓手机运行速度。 protectionLevel:normal + permission:android.permission.WRITE_SYNC_SETTINGS package:android label:启用和停用同步 description:允许应用修改某个帐户的同步设置。例如,此权限可用于在“联系人”应用与某个帐户之间启用同步。 protectionLevel:normal + permission:com.huawei.lifeservice.permission.SELF_BROADCAST package:com.huawei.lives label:null description:null protectionLevel:normal + permission:com.android.permission.SEND_HUAWEI package:com.huawei.appmarket label:接收插件启动结果信息,进行统计 description:插件消息发送权限。 protectionLevel:normal + permission:android.permission.RECEIVE_BOOT_COMPLETED package:android label:开机启动 description:允许应用在系统完成引导后立即自动启动。这样可能会延长手机的启动时间,并允许应用始终运行,从而导致手机总体运行速度减慢。 protectionLevel:normal + permission:android.permission.SUBSCRIBED_FEEDS_READ package:android label:null description:null protectionLevel:normal + permission:imcs.permission.MUSIC_CONTROL package:com.huawei.internetaudioservice label:智能线控 description:null protectionLevel:normal + permission:android.permission.SET_TIME_ZONE package:android label:设置时区 description:允许该应用更改手机的时区。 protectionLevel:normal + permission:android.permission.EXPAND_STATUS_BAR package:android label:展开/收拢状态栏 description:允许该应用展开或折叠状态栏。 protectionLevel:normal + permission:com.android.launcher.permission.UNINSTALL_SHORTCUT package:android label:卸载快捷方式 description:允许应用自行删除主屏幕快捷方式。 protectionLevel:normal + permission:android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS package:android label:null description:null protectionLevel:normal + permission:android.permission.READ_PROFILE package:android label:null description:null protectionLevel:normal + permission:android.permission.BLUETOOTH package:android label:与蓝牙设备配对 description:允许应用查看手机上的蓝牙配置,以及建立和接受与配对设备的连接。 protectionLevel:normal + permission:android.permission.CHANGE_WIFI_MULTICAST_STATE package:android label:允许接收 WLAN 多播 description:允许该应用使用多播地址接收发送到 WLAN 网络上所有设备(而不仅仅是您的手机)的数据包。该操作的耗电量比非多播模式要大。 protectionLevel:normal + permission:com.android.alarm.permission.SET_ALARM package:android label:设置闹钟 description:允许应用在已安装的闹钟应用中设置闹钟。有些闹钟应用可能无法实现此功能。 protectionLevel:normal + permission:com.tencent.applink.sdk.permission.APPLINK_WRITE_PERMISSION package:com.tencent.android.qqdownloader label:null description:null protectionLevel:normal + permission:com.google.android.gms.permission.AD_ID_NOTIFICATION package:com.google.android.gms label:广告 ID 通知 description:允许应用在用户的广告 ID 或限制广告跟踪偏好设置更新时接收通知。 protectionLevel:normal + permission:android.permission.GET_TASKS package:android label:检索正在运行的应用 description:允许应用检索近期运行的和当前正在运行的任务的相关信息。此权限可让该应用了解设备上使用了哪些应用。 protectionLevel:normal + permission:android.permission.SUBSCRIBED_FEEDS_WRITE package:android label:null description:null protectionLevel:normal + permission:android.permission.AUTHENTICATE_ACCOUNTS package:android label:null description:null protectionLevel:normal + permission:android.permission.INTERNET package:android label:完全的网络访问权限 description:允许该应用创建网络套接字和使用自定义网络协议。浏览器和其他某些应用提供了向互联网发送数据的途径,因此应用无需该权限即可向互联网发送数据。 protectionLevel:normal + permission:android.permission.TRANSMIT_IR package:android label:发射红外线 description:允许应用使用手机的红外线发射器。 protectionLevel:normal + permission:android.permission.REORDER_TASKS package:android label:对正在运行的应用重新排序 description:允许应用将任务移动到前台和后台。该应用可能不经您的命令自行执行此操作。 protectionLevel:normal + permission:com.android.browser.permission.READ_HISTORY_BOOKMARKS package:android label:null description:null protectionLevel:normal + permission:android.permission.BLUETOOTH_ADMIN package:android label:蓝牙管理 description:允许该应用配置本地蓝牙手机,以及发现远程设备并进行配对。 protectionLevel:normal + permission:com.huawei.hwid.permission.ACCESS package:com.huawei.hwid label:com.huawei.hwid.permission.ACCESS description:null protectionLevel:normal + permission:com.huawei.phoneservice.permission.SMART_FAQS_ACCESS package:com.huawei.phoneservice label:访问智能问答 description:null protectionLevel:normal + permission:android.permission.WRITE_SOCIAL_STREAM package:android label:null description:null protectionLevel:normal + permission:android.permission.GET_PACKAGE_SIZE package:android label:计算应用存储空间 description:允许该应用检索其代码、数据和缓存大小。 protectionLevel:normal + permission:android.permission.WRITE_PROFILE package:android label:null description:null protectionLevel:normal + permission:ctrip.android.view.push package:ctrip.android.view label:null description:null protectionLevel:normal + permission:com.tencent.mm.ext.permission.SPORT package:com.tencent.mm label:null description:null protectionLevel:normal + permission:com.huawei.health.ACHIEVE package:com.huawei.health label:null description:null protectionLevel:normal + permission:com.sina.permission.SINA_PUSH package:com.sina.weibo label:null description:null protectionLevel:normal + permission:com.android.providers.media.permission.SCAN_FOLDER package:com.android.providers.media label:null description:null protectionLevel:normal + permission:android.permission.ACCESS_LOCATION_EXTRA_COMMANDS package:android label:获取额外的位置信息提供程序命令 description:获取额外的位置信息提供程序命令。恶意应用程序可借此干扰 GPS 或其他位置源的正常工作。 protectionLevel:normal + permission:android.permission.BROADCAST_STICKY package:android label:发送持久广播 description:允许该应用发送持久广播消息,此类消息在广播结束后仍会保留。过度使用可能会导致手机使用过多内存,从而降低其速度或稳定性。 protectionLevel:normal + permission:com.android.permission.SEND_GAME_HUAWEI package:com.huawei.gamebox label:com.android.permission.SEND_GAME_HUAWEI description:null protectionLevel:normal + permission:android.permission.WRITE_SMS package:android label:null description:null protectionLevel:normal + permission:com.huawei.wallet.permission.PUSH package:com.huawei.wallet label:null description:null protectionLevel:normal + permission:com.huawei.hwid.permission.CONTENT_PROVIDER package:com.huawei.hwid label:com.huawei.hwid.permission.CONTENT_PROVIDER description:null protectionLevel:normal + permission:com.huawei.gamebox.SEND_THIRD_COMMON_MSG package:com.huawei.gamebox label:com.huawei.gamebox.SEND_THIRD_COMMON_MSG description:null protectionLevel:normal + permission:huawei.permission.USE_SMARTKEY package:android label:null description:null protectionLevel:normal + permission:android.permission.CHANGE_WIFI_STATE package:android label:更改 WLAN 状态 description:允许应用程序连接到 WLAN 接入点以及与 WLAN 接入点断开连接,并对配置的 WLAN 网络进行更改。 protectionLevel:normal + permission:android.permission.READ_INSTALL_SESSIONS package:android label:读取安装会话 description:允许应用读取安装会话。这样,应用将可以查看有关当前软件包安装的详情。 protectionLevel:normal + permission:com.sina.weibo.permission.NOUSER_BROADCAST package:com.sina.weibo label:null description:null protectionLevel:normal + permission:android.permission.FLASHLIGHT package:android label:控制闪光灯 description:允许应用控制闪光灯。 protectionLevel:normal + permission:android.permission.ACCESS_NETWORK_STATE package:android label:查看网络连接 description:允许应用查看网络连接的相关信息,例如存在和连接的网络。 protectionLevel:normal + permission:android.permission.DISABLE_KEYGUARD package:android label:停用锁屏 description:允许应用停用键锁以及任何关联的密码安全措施。例如,让手机在接听来电时停用键锁,在通话结束后重新启用键锁。 protectionLevel:normal + permission:com.huawei.skytone.permission.VSIM_UI package:com.huawei.android.dsdscardmanager label:null description:null protectionLevel:normal + permission:android.permission.SET_WALLPAPER package:android label:设置壁纸 description:允许该应用设置系统壁纸。 protectionLevel:normal + permission:com.huawei.hwid.permission.RECEIVE_ACCESS package:com.huawei.health label:null description:null protectionLevel:normal + permission:com.huawei.android.launcher.permission.PIFLOW_NEWS_RECEIVE package:com.huawei.android.launcher label:com.huawei.android.launcher.permission.PIFLOW_NEWS_RECEIVE description:null protectionLevel:normal + permission:android.permission.KILL_BACKGROUND_PROCESSES package:android label:关闭其他应用 description:允许应用结束其他应用的后台进程。此权限可导致其他应用停止运行。 protectionLevel:normal + permission:com.huawei.permission.sec.MDM package:androidhwext label:null description:null protectionLevel:normal + permission:com.qq.AppService.permission.out.CACHE_READ_PERMISSION package:com.tencent.android.qqdownloader label:null description:null protectionLevel:normal + permission:android.permission.WRITE_USER_DICTIONARY package:android label:null description:null protectionLevel:normal + permission:com.huawei.permission.INTELLIGENT_NOTIFICATION_MSG_BRACELET package:com.huawei.intelligent label:null description:null protectionLevel:normal + permission:android.permission.READ_SYNC_STATS package:android label:读取同步统计信息 description:允许应用读取某个帐户的同步统计信息,包括同步活动历史记录和同步数据量。 protectionLevel:normal + permission:com.huawei.appmarket.provider.readPermission package:com.huawei.appmarket label:读取应用更新数目 description:允许该应用获取当前可以更新的应用的数目。 protectionLevel:normal + permission:com.tencent.applink.sdk.permission.APPLINK_READ_PERMISSION package:com.tencent.android.qqdownloader label:null description:null protectionLevel:normal + permission:com.huawei.authentication.HW_ACCESS_AUTH_SERVICE package:com.huawei.securitymgr label:null description:null protectionLevel:normal + permission:com.huawei.motion.permission.MOTION_EX package:com.huawei.motionservice label:null description:null protectionLevel:dangerous + permission:org.fidoalliance.uaf.permissions.FIDO_CLIENT package:com.huawei.fido.uafclient label:FIDO UAF Client description:FIDO UAF Client protectionLevel:dangerous + permission:android.permission.SET_WALLPAPER_HINTS package:android label:调整壁纸大小 description:允许该应用设置有关系统壁纸大小的提示。 protectionLevel:normal + permission:android.permission.READ_SYNC_SETTINGS package:android label:读取同步设置 description:允许该应用读取某个帐户的同步设置。例如,此权限可确定“联系人”应用是否与某个帐户同步。 protectionLevel:normal + permission:android.permission.WRITE_APP_BADGE package:com.huawei.android.launcher label:null description:null protectionLevel:normal + permission:com.android.browser.permission.WRITE_HISTORY_BOOKMARKS package:android label:null description:null protectionLevel:normal + permission:android.permission.VIBRATE package:android label:控制振动 description:允许该应用控制振动器。 protectionLevel:normal + permission:com.huawei.android.launcher.permission.CHANGE_BADGE package:com.huawei.android.launcher label:null description:null protectionLevel:normal + permission:com.huawei.phoneservice.permission.CENTER_SERVICE_ACCESS package:com.huawei.phoneservice label:访问服务网点 description:null protectionLevel:normal + permission:android.permission.READ_USER_DICTIONARY package:android label:null description:null protectionLevel:normal + permission:com.sina.weibo.permission.WEIBO_SDK_PERMISSION package:com.sina.weibo label:null description:null protectionLevel:normal + permission:android.permission.ACCESS_WIFI_STATE package:android label:查看 WLAN 状态 description:允许应用程序查看有关 WLAN 状态的信息。 protectionLevel:normal + permission:huawei.android.permission.MULTIWINDOW_SDK package:android label:null description:null protectionLevel:normal + permission:com.huawei.contacts.permission.CHOOSE_SUBSCRIPTION package:com.android.contacts label:通过联系人应用拨打电话 description:通过联系人应用拨打电话 protectionLevel:dangerous + permission:android.permission.CHANGE_WIMAX_STATE package:android label:更改 WiMAX 状态 description:允许应用程序连接到 WiMAX 网络以及从 WiMAX 网络断开连接。 protectionLevel:normal + permission:android.permission.REQUEST_INSTALL_PACKAGES package:android label:请求安装文件包 description:允许应用请求安装文件包。 protectionLevel:normal + permission:com.android.launcher.permission.INSTALL_SHORTCUT package:android label:安装快捷方式 description:允许应用自行添加主屏幕快捷方式。 protectionLevel:normal + permission:com.huawei.hwid.ACTION_MAIN_SETTING_ACCESS package:com.huawei.hwid label:com.huawei.hwid.ACTION_MAIN_SETTING_ACCESS description:null protectionLevel:normal + permission:com.subao.permission.USE_SDK.com.tencent.tmgp.sgame.KingsGlory package:com.tencent.tmgp.sgame label:null description:null protectionLevel:normal + permission:com.qihoo.antivirus.update.permission.freewifi package:com.qihoo.freewifi label:null description:null protectionLevel:normal + permission:android.permission.READ_SOCIAL_STREAM package:android label:null description:null protectionLevel:normal + permission:android.permission.WAKE_LOCK package:android label:防止手机休眠 description:允许该应用阻止手机进入休眠状态。 protectionLevel:normal 3、安卓6.0后获取用户权限授权の开源项目: PermissionGen PermissionsDispatcher MPermissions Grant

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册