求OangeApps打开程序跳转不到其他程序

资源是指代码使用的附加文件和静态内容,例如位图、布局定义、界面字符串、动画说明等。

您应始终外部化应用资源(例如图像和代码中的字符串),以便单独对其进行维护。此外,您还应为特定设备配置提供备用资源,方法是将其进行分组并放入专门命名的资源目录中。在运行时,Android 会根据当前配置使用合适的资源。例如,您可能需根据屏幕尺寸提供不同的界面布局,或根据语言设置提供不同的字符串。

外部化应用资源后,您便可使用在项目 R 类中生成的资源 ID 来访问这些资源。本文档会介绍如何对 Android 项目中的资源进行分组,如何为特定的设备配置提供备用资源,以及如何从您的应用代码或其他 XML 文件访问这些资源。

您应将各类资源放入项目 res/ 目录的特定子目录中。例如,以下是一个简单项目的文件层次结构:


  

在此情况下,您无需在资源引用中指定包名称,因为资源来自您自己的资源包。如要引用系统资源,则您需要加入包名称。例如:


  

请注意:您应始终使用字符串资源,以便将您的应用本地化为其他语言。如需了解有关创建备用资源(例如本地化字符串)的信息,请参阅。如需查看将应用本地化为其他语言的完整指南,请参阅。

您甚至可以在 XML 中使用资源创建别名。例如,您可以创建一个可绘制对象资源,将其作为另一个可绘制对象资源的别名:


  

这听起来多余,但对使用备用资源可能很有帮助。阅读更多关于的内容。

利用样式属性资源,您可以在当前应用的主题背景中引用某个属性的值。借助引用样式属性,在自定义界面元素的外观时,您无需采用提供硬编码值这种方式,您可以通过为其设置样式,以匹配当前主题背景提供的标准变体来达成目的。引用样式属性的实质作用是,“在当前主题背景中使用此属性定义的样式”。

如要引用样式属性,名称语法几乎与普通资源格式完全相同,区别在于您需将 at 符号 (@) 改为问号 (?),并且资源类型部分为可选项。例如:


  

例如,以下代码展示了如何通过引用属性来设置文本颜色设,使其匹配系统主题背景的“基本”文本颜色:


  

的值。由于系统资源工具知道此环境中肯定存在某个属性资源,因此您无需显式声明类型(类型应为 ?android:attr/textColorSecondary)— 您可以将 attr 类型排除在外。

尽管并不常见,但您的确有可能需要访问原始文件和目录。如果确有需要,则将文件保存在 res/ 中并没有用,因为从 res/ 读取资源的唯一方法是使用资源 ID。您可以改为将资源保存在 assets/ 目录中。

保存在 assets/ 目录中的文件没有资源 ID,因此您无法通过 R 类或在 XML 资源中引用它们。您可以改为采用类似普通文件系统的方式查询 assets/ 目录中的文件,并利用 读取原始数据。

不过,如果您只需要读取原始数据(例如视频文件或音频文件)的能力,则可将文件保存在 res/raw/ 目录中,并利用 读取字节流。

Android 包含许多标准资源,例如样式、主题背景和布局。如要访问这些资源,请通过 android 包名称限定您的资源引用。例如,您可以将 Android 提供的布局资源用于 中的列表项:


    


    

在上例中, 是平台为 中的项目所定义的布局资源。您可以使用该资源,而不必自行创建列表项布局。

利用资源提供最佳设备兼容性

为使应用支持多种设备配置,请务必为应用使用的每种资源类型提供默认资源,这一点非常重要。

例如,如果应用支持多种语言,请始终包含不带values/ 目录(用于保存字符串)。相反,如果您将所有字符串文件放入带有语言和区域限定符的目录中,且设备语言已设为您的字符串所不支持的语言,则应用在该设备上运行时将崩溃。但是,只要提供默认 values/ 资源,应用便会正常运行(即使用户不理解该语言,但总比崩溃要好)。

同样,如果您根据屏幕方向提供不同的布局资源,则应选择一个方向作为默认方向。例如,不要在 layout-land/layout-port/ 中分别提供横向和纵向的布局资源,而是保留其一作为默认设置,例如:layout/ 用于横向,layout-port/ 用于纵向。

提供默认资源至关重要,这不仅是因为应用可能会在超出预期的配置上运行,也因为新版 Android 有时会添加旧版本不支持的配置限定符。如果您使用新的资源限定符,但希望维持对旧版 Android 的代码兼容性,则当旧版 Android 运行应用时,应用将在无默认资源的情况下崩溃,因为此时它无法使用以新限定符命名的资源。例如,如果您将 设置为 4,并使用(nightnotnight,API 级别 8 中的新增配置)限定所有可绘制对象资源,则 API 级别 4 设备无法访问可绘制对象资源,而且会崩溃。在此情况下,您可能希望 notnight 成为默认资源,所以您应排除该限定符,使可绘制对象资源位于 drawable/

因此,为提供最佳的设备兼容性,请始终为应用正确运行所需的资源提供默认资源。然后,请使用配置限定符为特定的设备配置创建备用资源。

这条规则有一个例外:如果应用的 为 4 或更高版本,则在提供带限定符的备用可绘制对象资源时,您需要默认可绘制对象资源。即使没有默认可绘制对象资源,Android 也可从备用屏幕密度中找到最佳匹配项并根据需要缩放位图。但是,为了在所有类型的设备上提供最佳体验,您应为所有三种类型的密度提供备用可绘制对象。

Android 如何查找最佳匹配资源

当您请求要为其提供备用资源的资源时,Android 会根据当前的设备配置选择要在运行时使用的备用资源。为演示 Android 如何选择备用资源,假设以下可绘制对象目录分别包含相同图像的不同版本:


  

同时,假设设备配置如下:

通过将设备配置与可用的备用资源进行比较,Android 会从 drawable-en-port 中选择可绘制对象。

系统使用以下逻辑决定要使用的资源:

图 2. Android 如何查找最佳匹配资源的流程图。

  1. 淘汰与设备配置冲突的资源文件。
    
          

    例外:屏幕像素密度是唯一一个未因冲突而被淘汰的限定符。尽管设备的屏幕密度为 hdpi,但是 drawable-port-ldpi/ 未被淘汰,因为此时每个屏幕密度均视为匹配。如需了解详细信息,请参阅文档。

  2. 选择列表()中(下一个)优先级最高的限定符。(从 MCC 开始,然后向下移动。)
  3. 是否有资源目录包含此限定符?
    • 若无,请返回到第 2 步,看看下一个限定符。(在该示例中,除非到达语言限定符,否则答案始终为“否”。)
    • 若有,请继续执行第 4 步。
  4. 淘汰不含此限定符的资源目录。在该示例中,系统会淘汰所有不含语言限定符的目录:
    
          

    例外:如果问题中的限定符是屏幕像素密度,则 Android 会选择最接近设备屏幕密度的选项。一般来说,Android 偏向于缩小较大的原始图像,而非放大较小的原始图像。请参阅。

  5. 返回并重复第 2 步、第 3 步和第 4 步,直到仅剩一个目录为止。在此示例中,屏幕方向是下一个判断是否匹配的限定符。因此,系统会淘汰未指定屏幕方向的资源:
    
        

尽管系统会对所请求的每个资源执行此程序,但是其仍会对某些方面做进一步优化。例如,已知设备配置后,系统会淘汰可能永远无法匹配的备用资源。比如,如果配置语言是英语(“en”),则系统绝不会将语言限定符设置为非英语的任何资源目录加入选中的资源池(不过,仍会将不带语言限定符的资源目录加入该池)。

在根据屏幕尺寸限定符选择资源时,如果没有更好的匹配资源,则系统将使用专为小于当前屏幕的屏幕而设计的资源(例如,必要时,大尺寸屏幕将使用标准尺寸的屏幕资源)。但是,如果唯一可用的资源大于当前屏幕,则系统不会使用这些资源,并且如果没有其他资源与设备配置匹配,应用将会崩溃(例如,如果所有布局资源均用 xlarge 限定符标记,但设备是标准尺寸的屏幕)。

请注意:限定符的优先级( 中)比与设备完全匹配的限定符数量更加重要。例如,在上面的第 4 步中,列表剩下的最后选项包括三个与设备完全匹配的限定符(屏幕方向、触摸屏类型和输入法),而 drawable-en 只有一个匹配参数(语言)。但是,语言的优先级高于其他两个限定符,因此系统会淘汰

}

项目,打开maven总是引入失败,后来

 安装环境文档:

这是由于按提示快捷键alt+enter导致。解决方法一直未找到合适的。 



需要破解文件的可以在我的上传资源里找到,绝对可以用,本人亲测的!

  最近开始微信公众平台的捣鼓,但相信和很多新手一样,遇到的第一件事就是如何配置url,主要是微信的80端口的蛋疼限制,我想这其中的流程应该是这样 的。我们在申请测试帐号时,微信需要指定一个URL和TOKEN,这样微信就可以根据分配给你的APPID和SECRET来通过你提供的URL来认证并且 通过这个接口返回你要的数据,所以也就是我们的程序和微信是能过这个URL来完成交互的,根据这个思路,我们需要一个能让微信访问到你项目的URL,至于 TOKEN可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)

在公司,首先应当解决的是怎么让外网访问你的项目,我用的是JAVA语言来做开发,刚 开始想通过3322动态解析平台让外网映射到公司来,然后用路由来做一个映射到我的tomcat 8080端口,但尝试后发现3322这个是不能用80端口做映射(很多都这样),所以没办法,也不能直接上公司的服务器来开发,而且80会被其他端口占 用,如果把项目托管到云服务器上也不方便开发,幸好在一个群里遇到高手,建议用直接把本地开放给外网(大喜),下载后直接把这个解压(我用的是ubuntu,所以下的linux版),在终端里运行./ngrok 8080,这样ngrok会返回一个动态的URL,果然可以访问了,但问题是我在微信里填写的这个URL不可能每次都变呀,于是运行./ngrok -subdomain=test 8080,但这个需要注册才可以用,于是去。 再根据提示运行一次验证,然后运行这个就OK了,这样我的URL就固定为。于是乎,我填写微信的URL为 /mywork/app/action/service(项目访问路径), 打开这tomcat,这样不要做任何更改就可以让外网访问了,然后点击申请认证,就可以看到微信平台已经访问到这我的项目了,接下来做一些验证(下篇贴出 验证代码-java版),OK。这下可以看到配置成功了。至此结束,开始微信之旅,这里感谢群里的老K,和其他的一些兄弟。



}

我要回帖

更多关于 c语言让程序跳转到绝对地址 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信