Android 屏幕兼容性理解

Android目标类型选择指南 您应该根据应用程序的需求和目标受众来选择最低Android版本、目标设备屏幕尺寸和目标设备功能。通过在AndroidManifest.xml文件中使用适当的元素和属性,您可以准确地定义您的应用程序的目标类型。这取决于您使用的API级别和所需的功能。根据目标类型的选择,应用程序可以在不同的设备上运行,并利用各种Android平台的功能。如果您的应用程序需要特定的设备功能(例如相机、位置服务等),您可以选择特定的目标设备功能。如果您的应用程序对不同屏幕尺寸的适应性很重要,您可以选择特定的目标设备屏幕尺寸。 阅读详情
基本概念 
屏幕大小:以对角线的长度来衡量屏幕的大小 
分辨率:屏幕上的像素个数。如320x480,就表示宽方向有320个像素,高方向有480个像素,整个屏幕有153,600个像素。 
宽高比:宽的物理长度/高的物理长度,如:6cm/8cm。而不是用像素的比值来表示,如320/480。 
屏幕密度:也可以是像素密度,即单位面积上存在多少个像素,单位是dpi。160dpi就是单位面积上有160个像素,240dpi就是单位面积上有240个像素。 
屏幕的密度是由分辨率和屏幕大小(物理尺寸)决定的,320x480的分辨率在3寸的屏幕上与6寸的屏幕上密度是不同的。 
dp(dpi):与像素无关的大小单位,将dp作为单位的可以看作是物理值。android将160dp作为一个标准(即单位面积上有160个像素点时),此时1dp=1px;当将1dp放到240dp的屏幕上去时,android就会自动将1dp调整为1.5px。 

android将所有的密度泛化为:ldpi, mdpi, hdpi。将屏幕大小泛化为small, medium, large, xlarge。

Manifest.xml中的support-screens元素 
<support-screens 
    android:smallScreens="false" 
    android:mediumScreens="false" 
    android:largeScreens="false" 
    android:xlargeScreens="false" 
    android:anyDensity="false" 
/> 

anyDensity:程序是否可在任何密度的屏幕上运行。该值主要是为使用了px作为单位的程序设计的。 
设为false时,anroid会启用density-compability特性,根据不同的屏幕密度将px值转换为合理的大小。 
设为true时,就会关闭density-compability特性。 
如果程序是以dp作为长度单位的,无论设为false, true都可以。 
xxxScreens:是否支持某屏幕。 
设为false时,表示不支持该大小的屏幕,android会启用size-compability特性,即只显示标准屏幕(normal size, mdpi)的大小。 
设为true时,表示支持该大小的屏幕,android就不会做任何处理,将程序直接显示。

Manifest.xml中的uses-sdk元素 
<uses-sdk 
    android:minSdkVersion="integer" 
    android:targetSdkVersion="integer" 
    android:maxSdkVersion="integer" 
/> 
minSdkVersion:标识程序可以在低版本的andriod系统上运行,且最低的版本是多少。默认时为1 
targetSdkVersion:该值主要是会影响support-screens元素中的属性的默认值。 
maxSdkVersion:程序最高可运行在什么版本的android系统上,该属性一般不需要设置,android 2.0.1之后,android也不会去检查该属性,只有android market才会用到

android为兼容多分辨率提供的兼容特性 
density-compatibility: 
1. dp,密度无关的单位 
2. 根据屏幕密度将px转换为合理的值 
3. pre-scale bitmap,根据当前的屏幕,从具有相应后缀的资源目录中加载资源(如:drawable-hdpi);同时,在相应后缀中无法找到指定资源时,就加载默认资源目录(drawable或drawable-mdpi)中的资源,并进行相应的缩放。 
4. auto-scale bitmap,自己创建bitmap时,android会为对其进行缩放。 
5. size-compatibility: 在support-screens的xxxScreen属性设为false,就会启用该特性。就是当程序运行在大屏幕上时,还是以正常屏幕的大小显示,其余的部分留黑。

屏幕密度,分辨率等数据获取和转换 

Java代码 
  1. DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();  
  2.   
  3. displayMetrics.density; // density比例,160dpi的为1,240dpi的为1.5(以160dpi为标准,240/160dpi)  
  4.   
  5. displayMetrics.densityDpi; // 屏幕密度。160dpi,240dpi等  
  6. displayMetrics.scaledDensity; // 字体缩放比例  
  7.   
  8. displayMetrics.heightPixels; // 高上有多少个像素  
  9. displayMetrics.widthPixels; // 宽上有多少个像素  
  10.   
  11. displayMetrics.xdpi; // 以dp值来表示的宽  
  12. displayMetrics.ydpi; // 以dp值来表示的高  

术语和概念 
屏幕尺寸 
屏幕的物理尺寸,以屏幕的对角线长度作为依据(比如 2.8寸, 3.5寸)。 
简而言之, Android把所有的屏幕尺寸简化为三大类:大,正常,和小。 
程序可以针对这三种尺寸的屏幕提供三种不同的布局方案,然后系统会负责把你的布局方案以合适的方式渲染到对应的屏幕上,这个过程是不需要程序员用代码来干预的。

屏幕长宽比 
屏幕的物理长度与物理宽度的比例。程序可以为制定长宽比的屏幕提供制定的素材,只需要用系统提供的资源分类符long和 notlong。

分辨率
屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示为“宽度×长度”,但分辨率并不意味着屏幕长宽比。在Android系统中,程序一般并不直接处理分辨率。

密度 
以屏幕分辨率为基础,沿屏幕长宽方向排列的像素。 
密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多 ——甚至会非常非常多——像素排列在同一区域。屏幕的密度是非常重要的,举个例子,长宽以像素为单位定义的界面元素(比如一个按钮),在低密度的屏幕上会 显得很大,但在高密度的屏幕上则会显得很小。 

密度无关的像素( DIP ) 
指一个抽象意义上的像素,程序用它来定义界面元素。它作为一个与实际密度无关的单位,帮助程序员构建一个布局方案(界面元素的宽度,高度,位置)。 
一个与密度无关的像素,在逻辑尺寸上,与一个位于像素密度为 160DPI的屏幕上的像素是一致的,这也是Android平台所假定的默认显示设备。在运行的时候,平台会以目标屏幕的密度作为基准,“透明地”处理所有需要的DIP缩放操作。要把密度无关像素转换为屏幕像素,可以用这样一个简单的公式: pixels = dips * (density / 160)。举个例子,在 DPI为 240的屏幕上, 1个 DIP等于 1.5个物理像素。我们强烈推荐你用 DIP来定义你程序的界面布局,因为这样可以保证你的 UI在各种分辨率的屏幕上都可以正常显示。 

图表形式

术语

说明

备注

Screen size(屏幕尺寸)

指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸

摩托罗拉milestone手机是3.7英寸

Aspect Ratio(宽高比率)

指的是实际的物理尺寸宽高比率,分为long和nolong

Milestone是16:9,属于long

Resolution(分辨率)

和电脑的分辨率概念一样,指手机屏幕纵、横方向像素个数

Milestone是854*480

DPI(dot per inch)

每英寸像素数,如120dpi,160dpi等,假设QVGA(320*240)分辨率的屏幕物理尺寸是(2英寸*1.5英寸),dpi=160

可以反映屏幕的清晰度,用于缩放UI的

Density(密度)

屏幕里像素值浓度,resolution/Screen size可以反映出手机密度

 

Density-independent pixel (dip)

指的是逻辑密度计算单位,dip和具体像素值的对应公式是dip/pixel=dpi值/160

 


支持的屏幕分辨率范围 
1.5及更早版本的 Android系统,在设计的时候假定系统只会运行在一种分辨率的设备上—— HVGA( 320× 480)分辨率,尺寸为 3.2寸。由于系统只能工作在一种屏幕上,开发人员就可以针对那个屏幕来编写自己的程序,而无需去考虑程序在其他屏幕上的显示问题。 
但自从 Android 1.6以来,系统引入了对多种尺寸、多种分辨率屏幕的支持,以此满足拥有各种配置的新平台的运行需求。这就意味着开发人员在针对 Android 1.6或更新版系统开发程序的时候,需要为自己的程序在多种分辨率的屏幕上良好显示作出额外的设计。 
为了简化程序员面在对各种分辨率时的困扰,也为了具备各种分辨率的平台都可以直接运行这些程序, Android平台将所有的屏幕以密度和分辨率为分类方式,各自分成了三类: 
·三种主要的尺寸:大,正常,小; 
·三种不同的密度:高( hdpi),中( mdpi)和低( ldpi)。 
如果需要的话,程序可以为各种尺寸的屏幕提供不同的资源(主要是布局),也可以为 各种密度的屏幕提供不同的资源(主要是位图)。除此以外,程序不需要针对屏幕的尺寸或者密度作出任何额外的处理。在执行的时候,平台会根据屏幕本身的尺寸 与密度特性,自动载入对应的资源,并把它们从逻辑像素( DIP,用于定义界面布局)转换成屏幕上的物理像素。 
下表列出了 Android平台支持的屏幕中一些比较常用的型号,并显示了系统是如何把它们分类到不同的屏幕配置里的。有些屏幕分辨率并不在下面的列表上,但系统仍会把它们归入下列的某一个类型中。

 低密度( 120), ldpi 中密度( 160), mdpi 高密度( 240), hdpi 
小 屏幕 · QVGA( 240× 320),2.6~ 3.0寸   
普通 屏幕 · WQVGA( 240×400), 3.2~ 3.5寸 
· FWQVGA( 240×432), 3.5~ 3.8寸 
· HVGA( 320× 480),3.0~ 3.5寸 · WVGA( 480× 800),3.3~ 4.0寸 
· FWVGA( 480×854), 3.5~ 4.0寸 
大 屏幕  · WVGA( 480× 800),4.8~ 5.5寸 
· FWVGA( 480×854), 5.0~ 5.8寸 
 

如上表所示,所有分辨率的屏幕,都围绕在基准屏幕 周围,而基准屏幕在分类中,为“正常”尺寸,与“中”密度。之所以用 HVGA屏幕作为基准屏幕,是因为所有针对 Android 1.5或更早的程序都是针对这片屏幕所写的(因为只支持这一片),比如 T-Mobile G1。 

虽然系统支持上面 9种不同配置 的屏幕,但你并不一定需要为它们都提供各自不同的资源。系统已经提供了足够鲁棒(就是在各种恶劣环境下正常工作,对环境变化不敏感)的兼容特性,用于在各 种不同的屏幕上良好显示你的程序。这在下面的文档中会详细描述,如果你需要更多的资料,请查看“与屏幕无关的最佳实践”。

Android中图标尺寸:

AndroidManifest.xml中指定图标,名字不一定非叫icon
<application android:icon="@drawable/icon" android:label="@string/app_name">
2.0以后有三种尺寸,分别为36*36/48*48/72*72
你会看到drawable-hdpi/drawable-ldpi/drawable-mdpi不同的目录用来存储不同尺寸的图标,在AndroidManifest.xml中只需要写@drawable/icon就可以,它会根据屏幕分辨率去找不同目录下的图标
hdpi里面主要放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
mdpi里面主要放中等分辨率的图片,如HVGA (320x480)
ldpi里面主要放低分辨率的图片,如QVGA (240x320)

类型 hdpi mdpi ldpi
ICON 72*72 48*48 36*36
Notification图标 48*48 32*32 24*24
标签Tab图标 48*48 32*32 24*24

icon            36*36                                                   48*48                                                      72*72

Android的icon尺寸

在运行时,程序为最佳显示效果提供了三种方法:

1.图片缩放

基于当前屏幕的 精度,平台自动加载任何未经缩放的限定尺寸和精度的图片。如果图片不匹配,平台会加载默认资源并且在放大或者缩小之后可以满足当前界面的显示要求。例如, 当前为高精度屏幕,平台会加载高精度资源(如图片),如果没有,平台会将中精度资源缩放至高精度。

2.自动定义像素尺寸和位置

如果程序不支持多种精度屏幕,平台会自动 定义像素绝对位置和尺寸值等,这样就能保证元素能和精度160的屏幕上一样能显示出同样尺寸的效果。例如,要让WVGA高精度屏幕和传统的HVGA 屏 幕一样显示同样尺寸的图片,当程序不支持时,系统会对程序慌称屏幕分辨率为320×533,在(10,10)到(100,100)的区域内绘制图形完成之 后,系统会将图形放大到(15,15)到(150,150)的屏幕显示区域。

3.兼 容更大尺寸的屏幕

当前屏幕超过程序所支持屏幕的上限时,定义supports- screens元素,这样超出显示的基准线时,平台在此显示黑色的背景图。例如,WVGA 中精度屏幕上,如程序不支持这样的大屏幕,系统会谎 称是一个320×480的,多余的显示区域会被填充成黑色。

但为了达到最佳的显示效 果,最好的方法还是设计多套图片。那就有必要对于所有的屏幕依据精度值进行分级(高中低),之后再设计三套icon:

先为主流的中精度屏 幕(HVGA)设计一套icon,确定图片的像素尺寸。
为高精度屏幕将图片放大到150%,为低精度屏幕将图片缩小至75%。
将这三套资 源放置到程序的三个文件夹下 :res/drawable-mdpi/ 、res/drawable-hdpi/、 res/drawable- ldpi/。程序在运行时,平台会根据屏幕的精度调取合适的icon。

Android程序对不同手机分辨率自适应总结:

各种Android操作系统的手机简直就是琳琅满目,屏幕分辨率的差异可想而知。目前比较主流的有WVGA=800x480,HVGA=480x320,另外的还有QVGA=320x240。当然还有魅族M9的DVGA=960x640,还有蛋疼的摩托罗拉的FWVGA=854x480。

其实,在你layout的xml文件中,编写的时候是不是用了许多的padding呢?如果是,那你就蛋疼了。因为这样的布局永远是无法适应所有手机屏幕的。

正确的做法应该是使用的是weight属性。将你控件的layout中的width、height设置为fill-parent,不要使用wrap——content。因为wrap-content的大小是不固定的。而weight(权重)这个属性很好的解决了这个问题。

当包裹在控件外面的Layout的width、height属性都设置为fill-parent时,可以利用weight的反比特性。即如果控件A设置weight为5,控件B设置weight为7,那么A所占的空间为5/(5+7),B所占的空间为7/(5+7)。这样的反比属性对任何分辨率下的手机都是合适的。

当然,字体就不行了。那怎么保证字体能够跟布局一样能够自适应呢? 呵呵,很简单,就是在你的res文件夹中创建一个文件夹,叫做values-320x240。其中320x240是你手机屏幕的分辨率,根据你手机屏幕的情况做不同的命名,例如values- 800x480。在该文件夹下创建一个dimens.xml文件,定义各种字体的大小。那么系统就会自动根据你手机屏幕的分辨率去调用x相应的文件夹。

另外,值得提醒的是,记得在你默认的values文件下的dimens.xml文件中也要写上相应的字体大小哦,因为当系统无法认识你手机屏幕大小的时候,它会自动去找你默认文件中的东西,没有写的话程序会崩溃

以下是结论:
    屏幕分辨率:1024x600
    density:1(160)
    文件夹:values-mdpi-1024x600

    屏幕分辨率:1024x600
    density:1.5(240)
    文件夹:values-hdpi-683x400  由1024/1.5  600/1.5得到,需要四舍五入。

    屏幕分辨率:800x480
    density:1(160)
    文件夹:values-mdpi-800x480

    屏幕分辨率:800x480
    density:1.5(240)
    文件夹:values-hdpi-533x320  由800/1.5  480/1.5得到,需要四舍五入。

以此类推
    一般情况下需要创建出values 、values-mdpi 、 values-hdpi文件夹,以备在一些没有规定的尺寸屏幕上找不到资源的情况。

    然后在里面使用不同的dimens文件,Layout中不要使用显示的数字,所有的尺寸定义全都援引dimens里面的内容。

    这样能够保证深度UI定制的情况

    另外在工程的default.properties中如果split.density=false,则分辨率适配的时候文件夹命名不需要与scale相除

例:
  屏幕分辨率:800x480
  density:1.5(240)
  文件夹:values-hdpi-800x480

关于dimens 

  位置:res\values
    单位:px   Pixel 以画面的像素为单位;
         in     Inches以画面的多少英寸为单位;
         mm  Millimeter以画面的多少毫米为单位;
         pt     Points 一点为1/72英寸;
         dp或dip  Density-indepentdent 为160dpi屏幕的一个pixel;
         ap Scale-independent Pixels 随屏幕尺寸改变的一个pixel;

假设需要适应320x240,480x320分辨率。在res目录下新建文件夹values-320x240, values-480x320。然 后在文件夹 values ,values-320x240 和  values-480x320 下新建xml文件dimens.xml,该xml文件内容如下:

1
2
3
4
<? xml  version = "1.0"  encoding = "utf-8" ?>
< resources >
     < dimen  name = "btnTextSize" >14dip</ dimen >
</ resources >

针对不同的分辨率,btnTextSize的值不同。在布局文件中,用下面的方式引用该值:

1
2
3
4
< TextView  android:layout_width = "fill_parent"
     android:layout_height = "wrap_content"  android:gravity = "center"
     android:id = "@+id/lblSet"  style = "@style/btntext"  android:textSize = "@dimen/btnTextSize" >
</ TextView >

通过这种方法,可以方便设置在不同分辨率下,字体的大小了。当然,不仅仅字体大小,宽和高等其他的一些属性,也可以通过类似的方式来设置layout中设置图片自适应大小,并且设置最大宽高,当图片的宽高大于设置的最大值时,宽高值为设置的最大值。

[xhtml]  view plain copy print ?
  1. <ImageView android:id="@+id/image_view"    
  2.       android:layout_width="wrap_content"  
  3.       android:layout_height="wrap_content"  
  4.       android:adjustViewBounds="true"  
  5.       android:maxWidth="42dp"  
  6.       android:maxHeight="42dp"  
  7.       android:scaleType="fitCenter"  
  8.       android:layout_marginLeft="3dp"  
  9.       android:src="@drawable/icon"  
  10.       />  

 


Android适配心得:提升老司机飙车技术 通过了解不同设备的屏幕尺寸和分辨率,使用合适的尺寸单位进行布局,利用资源适配限定符和兼容性库,我们可以确保应用在不同设备上呈现出一致的效果。Android提供了一系列的限定符,可以根据不同的设备特性提供不同的资源。最小宽度是指显示内容的可用区域的最小宽度。在进行布局时,我们应该使用合适的尺寸单位,以使布局在不同的设备上呈现一致的效果。通过使用适当的限定符,我们可以根据设备的特性提供不同的资源,以确保应用在不同设备上呈现出最佳效果。通过使用合适的尺寸单位,我们可以确保在不同的设备上保持一致的布局效果。 阅读详情

相关推荐

CentOS7下通过YUM源高效部署Zabbix7 Agent指南

本文详细指导在已结束生命周期的CentOS7系统上,通过更换YUM源(如阿里云镜像)并添加Zabbix官方仓库,高效部署Zabbix7 Agent。文章涵盖从源配置、软件安装、关键参数修改到服务启动与防火墙设置的全流程,帮助用户解决依赖错误,快速建立服务器监控。

weixin_29230059的博客 267

Android各种版本正确获取屏幕分辨率的方法

由于,Android版本碎片化的问题,导致hendu

399

用c++生成随机迷宫_自动生成随机迷宫(1)prim算法

“程序 = 数据 + 算法”,一款好的作品不单单是代码的堆砌,还有其灵魂的部分,那就是算法;算法是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法既然是解决某类型问题的规范,那么我们就学习它,并在我们的作品中使用它。从这一期开始做一个迷宫系列,包括用算法生成随机迷宫,用算法自动寻址走迷宫。 三大迷宫生成算法之一“随机Prim算法不是...

weixin_31787547的博客 2596

从用户画像到实时推送:构建基于兴趣标签的推荐系统全流程实践

推荐系统是现代互联网应用的核心技术之一,其本质是通过算法模型,在海量信息中为用户匹配最可能感兴趣的内容。其基本原理通常遵循“数据采集-特征工程-召回-排序-推送”的流程,其中用户画像和兴趣标签是刻画用户偏好的关键。这项技术的核心价值在于提升用户体验、增加用户粘性,并广泛应用于内容平台、电商、社交等场景。在工程实践中,为了实现精准的个性化推送,需要构建实时数据处理链路,并设计高效的召回与排序策略。本文以“流萤厨”这一具体兴趣标签为例,详细拆解了如何利用Apache Flink进行实时兴趣计算,并结合Sprin

weixin_34138056的博客 460

ABAP on HANA/CDS view/AMDP 大乱炖

文章目录1. HANA的三大杀器1.1 内存式数据库1.2 多核架构1.3 列式存储1.3.1 数据压缩1.3.2 并行处理1.3.3 聚集和索引1.3.4 代码下移2. CDS 概念2.1 ABAP 开发环境2.2 OPEN SQL语句2.3 CDS 到底是啥2.4 CDS 类型2.5 创建CDS view3. CDS 实战3.1 Annotation注解3.2 Case 语句3.3 数学计算3.4 字符串表达3.5 货币转换3.6 聚集语句3.7 Join3.8 Union3.9 参数3.10 作为子C

weixin_45689053的博客 4783

考完CAIE认证一年后,谈谈它对我的职业的真实影响(干货)

大门,让面试官愿意给你机会,但进门之后的发展,还得靠持续的学习和项目积累。说实话,当时的心态是“考都考了,总比闲着强”,对这张证书能带来什么实际价值,心里并没有底。这种广泛的生态认可,让这张证书的“流通性”变得很强——无论跳槽还是在原公司发展,它都是一个被市场验证过的能力证明。对我个人而言,虽然没跳槽,但在年度调薪和争取内部项目时,持证经历也成了一个有力的“加分项”。这种巨大的薪资差距,恰恰反映了市场对“能落地、懂技术”的深度人才的渴求。考完证后的这一年,我看到了两条清晰的职业发展路径在自己面前展开。

qq_16014487的博客 817

Android屏幕分辨率和运行系统兼容性问题-总结

一、dp(dip)、px、sp之间的区别和使用场景 在分辨率下(是设备屏幕横向和纵向的像素的个数),px是固定像素,一般用于画像素表格线或阴影线的时候,sp与dp(dip)很类似,但是常用于文字大小设置。dp(dip)是按照像素密度密切相关,Android 系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)、超高(320dpi),它们对应dp搭配px的系数分别是0

qq_17478479的博客 1914

PLL锁相环性能上不去?可能是电荷泵的电流失配在捣鬼(附Jae-Shin Lee经典方案解析)

本文深入分析了PLL锁相环性能瓶颈的根源——电荷泵电流失配问题,详细解析了Current Mismatch和Current Deviation的区别及其对系统的影响。重点介绍了Jae-Shin Lee的多级电流镜技术,该方案通过运放构建虚拟短路和四级电流镜结构,显著降低了电流失配,使参考杂散改善15dB以上。文章还提供了从仿真到流片的完整优化流程,帮助工程师系统解决电荷泵性能问题。

weixin_30684743的博客 370

android兼容模式,Android基础知识之屏幕兼容模式

注意:如果你在低于安卓3.0的版本上进行应用开发,但其在更大屏幕的设备(比如平板电脑)上显示正常时,你就需要禁用屏幕兼任模式来保持最佳用户体验。要学习如何快速禁用用户选项,请跳转至禁用屏幕兼任模式。屏幕兼任模式是一种改善方法,用于不能正常适配大屏设备(如平板电脑)的情况。从安卓1.6开始,系统就能支持多种屏幕尺寸,并且调整应用布局的显示,来适应每一款屏幕。然而,如果在支持多种屏幕Supportin...

weixin_42429120的博客 1389

C语言实现定时任务

例:设置定时任务,每周周X的X时X分自动重启系统 思路:将设置好的重启时间保存到本地配置文件中,设置定时器定时一分钟,每一分钟信号触发一次事件,事件函数中获取配置文件信息与当前系统时间信息,将两个时间进行时间差计算,符合条件的自动重启系统. //创建定时器函数(通过信号触发事件timer_task函数启动) int create_timer() { struct sigevent evp; int ret = 0; memset(&evp, 0, sizeof(stru

佳佳鸽的博客 5036

DeepSeek Harness 工程实践与高级特性:从测试到安全的完整指南

AI Agent 能执行命令、读写文件、自主决策,能力越强风险越大——删文件、泄密钥、死循环、竞态条件随时可能发生。本文是 DeepSeek Harness 系列第三篇,深入剖析其工程实践与高级特性:从单元测试到真实 API 冒烟测试的分层策略,拒绝 Mock 依赖、坚持"验证世界而非自我报告";从正交结果、规范化契约到 Dispose 静止的防御式编程铁律;以及跨平台多层进程沙箱、文件系统版本守卫、fail-closed 审批机制、模型编写的工作流引擎与上下文压缩等高级能力。

program哲学 207

android开发之屏幕兼容

http://yulincqupt.iteye.com/blog/1683496 http://www.cnblogs.com/error404/p/3815739.html http://zhidao.baidu.com/link?url=5ISUkLCZZsOGazUTMgH9l5JgzLlNGBw-AoEolSXHFc203ItuJNG9Gj9kuWTNLOR3l48aeEd-l

在测试路上奔跑的小松鼠 427

RK3588 开启多窗口

这样就支持多窗口了。

tzj1058756809的博客 267

Android——兼容性

两种类型的兼容性:设备兼容性和应用兼容性。 设备的Android兼容性就是app能够正确运行的Android执行环境(Android execution environment)。Android执行环境的具体定义可参见 Android compatibility program,并且每个设备都必须通过CTS(Compatibility Test Suite)的兼容性认证。 设备的Andro

xpleemoon 1135

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android多屏幕适配相关知识和官方翻译文档

1、基本知识,看这里:http://www.androidlearner.net/android-multi-screen-about.html 2、官网翻译,   1)、适配不同尺寸屏幕-Supporting Different Screens                http://wiki.eoeandroid.com/Supporting_Different_Screen

scry5566的专栏 1554

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸

一、引言   Android的开源使厂商无需自行研发OS,大大降低了研发、生产的成本,使得Android平板品牌如雨后春笋般爆发,山寨机厂商们似乎又找到了一丝希望。与此同时带来的是广大开发者的苦不堪言,各种神奇的小板儿考验着app的兼容性,各种定制的rom不经意间就让app崩溃,光是界面上的调整就已经够你喝一壶了,是不? 二、适配可行性   早在Android设计之初就考虑到了这一点,为了让

学习笔记 1772

精确适配不同的dpi和屏幕尺寸

Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸 一、引言   Android的开源使厂商无需自行研发OS,大大降低了研发、生产的成本,使得Android平板品牌如雨后春笋般爆发,山寨机厂商们似乎又找到了一丝希望。与此同时带来的是广大开发者的苦不堪言,各种神奇的小板儿考验着app的兼容性,各种定制的rom不经意间就让app崩溃,光是界面上的调整就已经够你

java、android学习营 2899

android屏幕适配

1、 概述:       android里面常用度量单位有dp(dip)、px、sp等,由于android系统的开源,导致android市场的手机屏幕及分辨率千差万别,那么这就要求android程序员必须对屏幕适配方面有所了解,在屏幕适配方面对各度量单位及手机密度必须得了解,下面是本人在屏幕适配方面的一点小小总结; 2、单位:                px:屏幕的像素点

Vegetable的博客 500

Android应用如何支持屏幕多尺寸多分辨率问题

作为Android应用程序开发者都知道android是一个“碎片化”的世界。多种系统版本、多种尺寸、多种分辨率、多种机型,还有不同的厂商定制的不同ROM,你开发的应用会在不可预期的手机上报错。这给开发适配带来不小的难度。这篇文章会告诉我们怎么解决这个问题。 1、Android碎片化 1.1、android系统版本 Android更新较大的版本如下:

兰宝的专栏 388

Android 屏幕适配相关解决方案

什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?  什么是dp、dip、dpi、sp、px?他们之间的关系是什么?  什么是mdpi、hdpi、xdpi、xxdpi?如何计算和区分? 在下面的内容中我们将介绍这些概念。 屏幕尺寸 屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米 比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等

lilie008的专栏 1248

[Xamarin.Android] 不同分辨率下的图片使用概论

设计Android App的时候,其尺寸众多也是一个挑战之一。要针对不同尺寸设计Android App时,就要先来了一下dpi(dots per inch,每一英吋的点数量) 与ppi(pixel per square inch,每平方英吋的像素量)计算方式。这一篇研究就来讨论一下在设计Android APP,如何因应不同的尺寸来作呈现。 首先dpi的定义是指每一英吋下,有多少像素(pixel)。...

lks564的博客 439

Android 适配不同分辨率&hdpi、mdpi、ldpi&横屏竖屏

一:不同的layout Android手机屏幕大小不一,有480×320, 640×360, 800×480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640×360,layout-800×480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。

白猫 612

Android市场官方的统计信息

为什么80%的码农都做不了架构师?>>> ...

weixin_34329187的博客 65

android api guides 中文,API Guides -> Introduction -> Introduction to Android

介绍Android在基于Java语言环境的移动端,Android提供了一个非常丰富的框架来让你开发出创新的应用和游戏。文档左侧的导航,详细的列出了如何使用各种APIs来构建app如果你是一个开发新手,弄懂Android 应用框架的基本概念是非常重要的。app提供了多样的切入点Android apps 由多个独立的可被调用的组件构建而成。例如,一个独立的Activity提供一个单独的页面在用户屏幕上...

weixin_32892145的博客 206

一文搞懂Open-AutoGLM:手机端AI Agent快速上手

本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现自然语言驱动的安卓设备自动化操作。用户可快速完成屏幕理解、意图解析与跨应用执行,典型应用于微信订单号OCR提取、智能巡检截图回传等移动端RPA场景。

weixin_33240461的博客 764

ZXing Android版本适配终极指南:解决碎片化问题的10个关键策略

ZXing("Zebra Crossing")是一个功能强大的条形码扫描库,广泛应用于Java和Android平台。然而,Android设备的碎片化给开发者带来了诸多挑战。本指南将分享10个关键策略,帮助你轻松解决ZXing在Android版本适配中的常见问题,让你的条形码扫描应用在各种设备上都能完美运行。 ## 1. 理解ZXing项目结构 ZXing项目包含多个模块,其中与Android相

gitblog_00910的博客 898
上一篇: Android WebView使用总结
下一篇: Android软件开发之获取通讯录联系人信息
notebook034
博客等级 码龄16年 6粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值