让你的APP支持不同的设备

原创 2016年05月31日 18:36:16
  • 支持不同的语言
    为了让APP支持多种语言版本,最好的办法就是将UI中显示的字符串提取出来并保存到一个资源文件中,Android在这方面已经做了支持,当你创建完一个Android项目之后,Android SDK工具将会创建一个名为res的目录,这个目录中存放的是项目中用到的资源文件,在创建之初,该文件夹下会有一些默认的文件,例如res/values/strings.xml,string.xml用来存放上面提到的字符串,这个文件中默认是中文的,开发者要想添加多语言支持,需要在res文件夹下创建相应的资源文件,例如values-es/strings.xml,为每一个区域添加字符串。Android在运行时会根据手机的基础设置来设置APP中显示的字符串。

    例如:
    
    English (default locale), /values/strings.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="title">My Application</string>
        <string name="hello_world">Hello World!</string>
    
    
    Spanish, /values-es/strings.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="title">Mi Aplicación</string>
        <string name="hello_world">Hola Mundo!</string>
    </resources>
    
    
    French, /values-fr/strings.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="title">Mon Application</string>
        <string name="hello_world">Bonjour le monde !</string>
    </resources>
  • 支持不同的屏幕大小
    要想支持不同的屏幕大小,开发者应该从以下两方面入手:

    • Create Different Layouts
      官网提到目前屏幕的大小分为 small, normal, large, xlarge几类,除了大小之外,屏幕的横竖也会影响用户的体验,所以为了更好的适配开发者需要创建不同的layout文件。具体参考以下结构:

       res/
      layout/              # default (portrait)
          main.xml
      layout-land/         # landscape
          main.xml
      layout-large/        # large (portrait)
          main.xml
      layout-large-land/   # large landscape
          main.xml
    • Create Different Bitmaps
      创建了不同的layout,这还不够,为了在不同屏幕显示相同效果的图片,开发者需要提供多套图片资源,这些不同密度的相同图片一定要具有相同的名字,这样在运行时Android系统才能根据手机的密度自动加载相应的图片。具体可参考以下结构:

      res/
      drawable-xhdpi/
          awesomeimage.png
      drawable-hdpi/
          awesomeimage.png
      drawable-mdpi/
          awesomeimage.png
      drawable-ldpi/
          awesomeimage.png
  • 支持不同平台版本
    Android 版本更新之后,开发者仍需要兼容低版本机型,为了兼容更多版本,需要从以下几点入手:

    • 指定最低运行版本和目标运行版本

        每一个新的版本的style都会有一些改变,为了让APP更好的利用这写改变,目标运行版本最好设置成最新的安卓版本。
      <manifest xmlns:android="http://schemas.android.com/apk/res/android">
      <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
      </manifest>
    • 检查系统运行时版本
      为了避免高版本的组件运行在低版本手机出现崩溃情况,我们在使用新API中的组件或者方法时,必须判断运行时版本,在Android的Build类中提供了各个版本的唯一代码,开发者可以在自己的代码中直接调用。

          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);
      }
      }
    • 使用平台样式和主题
      Android提供了一些主题和样式,开发者可以在清单文件中应用这些主题,使用了这些内置的样式和主题,APP自然会跟着每一个新版本的变化展示最新版本的外观。

版权声明:本文为博主原创文章,未经博主允许不得转载。

APP支持不同的设备 之 支持不同屏幕

对android的屏幕分类,主要是依靠这2个属性来分类:size和density.你要意识到你的程序会被安装到的设备的屏幕,都是由size和density来限定这个屏幕的规格。这样的话,你的APP要包...
  • orionhan
  • orionhan
  • 2013年03月17日 22:24
  • 320

APP支持不同的设备 之 支持不同的语言

实现让你的APP支持多语言,通常最好的做法是把你的APP里面的字符串单独的提取存放到一个外部文件里面。android开发实现这个就很简单,每个项目里面都有这么一个资源目录。 如果你利用android...
  • orionhan
  • orionhan
  • 2013年03月17日 21:25
  • 354

APP支持不同的设备 之 支持不同版本的平台

当最新版本的平台可以为你的APP提供最好的API的时候,你还是需要去支持老版本的平台,直到更多的设备升级到最新的版本。这一节里面讲述如果让你的APP最的利用新平台的API同时也支持好旧的版本。 Pl...
  • orionhan
  • orionhan
  • 2013年03月17日 23:20
  • 465

如何在一个设备上安装一个App的两个不同版本

最近干了件蠢事,事情是这样的,我们App有2套图标,一套是测试版图标用于发布OTA的内部测试版,一套是正式版用于发布到AppStore,每次打包,我都会检查图标,结果上次粗心搞错了,把测试版的图标打包...
  • yangpansky
  • yangpansky
  • 2013年11月26日 12:03
  • 2415

Android支持不同的设备

因为我看的是android的官方文档,这里就根据官方文档的内容来写。Android支持不同的设备包括三个方面:支持不同的语言、支持不同的屏幕大小、支持不懂的版本。1.支持不同的语言android系统会...
  • u012178465
  • u012178465
  • 2017年07月11日 21:41
  • 85

支持不同的设备

例子见资源(不需要现在积分)  支持多国语言 为了让应用支持多种语言,在res/目录下添加相应的values目录,定义方式为values-  查看iso country code 点我,记得使用的...
  • wangfei199101
  • wangfei199101
  • 2014年04月15日 15:11
  • 361

pAdTy_-8 支持不同的设备

2015.10.22 个人英文翻译练习笔记(低水准)。原文地址:http://developer.android.com/training/basics/supporting-devices/ind...
  • misskissC
  • misskissC
  • 2015年11月10日 23:25
  • 434

蓝牙设备端只能与指定APP连接

设备端与特定APP相连,即设备只能与自己研发的APP相连,设备与其它被人所开发的APP不能相连。那么,这样的功能有什么意义,它又是如何实现的呢?   原理:在应用层做一个连接密码,这个密码可以是数字或...
  • u010979030
  • u010979030
  • 2015年03月02日 20:17
  • 3400

Android入门之支持不同的设备

支持不同的设备包括: 一、支持不同的语言 应用程序中的UI部分字符串定义在res/values/strings.xml文件中,这是一个很好的习惯! MyProject/ res/ ...
  • acmjk
  • acmjk
  • 2014年01月17日 16:33
  • 1006

APP兼容不同的设备之适配不同的语言

随着智能化时代的到来,Android设备具有了各种各样的大小和尺寸。为了让我们的APP能在不同平台的Android设备上使用,需要将APP兼容各种不同的设备类型,例如各个地区的语言、屏幕的尺寸大小和分...
  • ZhaiKun68
  • ZhaiKun68
  • 2017年02月22日 10:09
  • 186
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:让你的APP支持不同的设备
举报原因:
原因补充:

(最多只允许输入30个字)