真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android自適應(yīng),android自適應(yīng)圖標(biāo)

android中如何讓程序自適應(yīng)屏幕大???

不同的android

成都創(chuàng)新互聯(lián)10多年企業(yè)網(wǎng)站制作服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站制作及推廣,對(duì)展覽展示等多個(gè)方面擁有豐富的網(wǎng)站推廣經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。

target會(huì)有不同的大小,應(yīng)用程序的界面需要針對(duì)不同的大小調(diào)整界面元素的尺寸。而且屏幕也可以在橫屏和豎屏之間切換,界面也需要調(diào)整。

默認(rèn)情況下,當(dāng)屏幕方面切換時(shí),activity的oncreate()方法會(huì)被重新調(diào)用,所以可以在其中通過以下代碼來讀取屏的方向:

public

void

oncreate()

{

if(this.getresources().getconfiguration().orientation

==

configuration.orientation_landscape)

{

log.i("info",

"landscape");

}

else

if

(this.getresources().getconfiguration().orientation

==

configuration.orientation_portrait)

{

log.i("info",

"portrait");}}

如果在androidmanifest.xml中加入配置

android:configchanges="orientation|keyboardhidden|navigation

當(dāng)屏幕翻轉(zhuǎn)時(shí),activity就不會(huì)重復(fù)的調(diào)用oncreate()、onpause()和onresume().

而是調(diào)用onconfigurationchanged(configuration

newconfig)

int

screenwidth,screenheight;

windowmanager

windowmanager

=

getwindowmanager();

display

display

=

windowmanager.getdefaultdisplay();

screenwidth

=

display.getwidth();

screenheight

=

display.getheight();

也有人提到另一種方法:

displaymetrics

dm

=

new

displaymetrics();

getwindowmanager().getdefaultdisplay().getmetrics(dm);

Android程序如何自適應(yīng)屏幕的方向和大小

 不同的Android target會(huì)有不同的大小,應(yīng)用程序的界面需要針對(duì)不同的大小調(diào)整界面元素的尺寸。而且屏幕也可以在橫屏和豎屏之間切換,界面也需要調(diào)整。  默認(rèn)情況下,當(dāng)屏幕方面切換時(shí),activity的onCreate()方法會(huì)被重新調(diào)用,所以可以在其中通過以下代碼來讀取屏的方向: public void onCreate() { if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { Log.i("info", "landscape"); } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { Log.i("info", "portrait");}} 如果在androidmanifest.xml中加入配置 android:configChanges="orientation|keyboardHidden|navigation 當(dāng)屏幕翻轉(zhuǎn)時(shí),Activity就不會(huì)重復(fù)的調(diào)用onCreate()、onPause()和onResume(). 而是調(diào)用onConfigurationChanged(Configuration newConfig) int screenWidth,screenHeight; WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); screenWidth = display.getWidth(); screenHeight = display.getHeight();  也有人提到另一種方法: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm);

如何讓Android自適應(yīng)不同分辨率或不同屏幕大小的layout布局

一:不同的layout

Android手機(jī)屏幕大小不一,有480x320, 640x360, 800x480.怎樣才能讓App自動(dòng)適應(yīng)不同的屏幕呢?

其實(shí)很簡(jiǎn)單,只需要在res目錄下創(chuàng)建不同的layout文件夾,比如layout-640x360,layout-800x480,所有的layout文件在編譯之后都會(huì)寫入R.java里,而系統(tǒng)會(huì)根據(jù)屏幕的大小自己選擇合適的layout進(jìn)行使用。

二:hdpi、mdpi、ldpi

在之前的版本中,只有一個(gè)drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個(gè),這三個(gè)主要是為了支持多分辨率。

drawable- hdpi、drawable- mdpi、drawable-ldpi的區(qū)別:

(1)drawable-hdpi里面存放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854)

(2)drawable-mdpi里面存放中等分辨率的圖片,如HVGA (320x480)

(3)drawable-ldpi里面存放低分辨率的圖片,如QVGA (240x320)

系統(tǒng)會(huì)根據(jù)機(jī)器的分辨率來分別到這幾個(gè)文件夾里面去找對(duì)應(yīng)的圖片。

更正:應(yīng)該是對(duì)應(yīng)不同density 的圖片

在開發(fā)程序時(shí)為了兼容不同平臺(tái)不同屏幕,建議各自文件夾根據(jù)需求均存放不同版本圖片。

[i]備注:三者的解析度不一樣,就像你把電腦的分辨率調(diào)低,圖片會(huì)變大一樣,反之分辨率高,圖片縮小。 [/i]

屏幕方向:

橫屏豎屏自動(dòng)切換:

可以在res目錄下建立layout-port-800x600和layout-land兩個(gè)目錄,里面分別放置豎屏和橫屏兩種布局文件,這樣在手機(jī)屏幕方向變化的時(shí)候系統(tǒng)會(huì)自動(dòng)調(diào)用相應(yīng)的布局文件,避免一種布局文件無法滿足兩種屏幕顯示的問題。

不同分辨率橫屏豎屏自動(dòng)切換:

以800x600為例

可以在res目錄下建立layout-port-800x600和layout-land-800x600兩個(gè)目錄

不切換:

以下步驟是網(wǎng)上流傳的,不過我自己之前是通過圖形化界面實(shí)現(xiàn)這個(gè)配置,算是殊途同歸,有空我會(huì)把圖片貼上來。

還要說明一點(diǎn):每個(gè)activity都有這個(gè)屬性screenOrientation,每個(gè)activity都需要設(shè)置,可以設(shè)置為豎屏(portrait),也可以設(shè)置為無重力感應(yīng)(nosensor)。

要讓程序界面保持一個(gè)方向,不隨手機(jī)方向轉(zhuǎn)動(dòng)而變化的處理辦法:

在AndroidManifest.xml里面配置一下就可以了。加入這一行android:screenOrientation="landscape"。

例如(landscape是橫向,portrait是縱向):

Java代碼:

?xml version="1.0" encoding="utf-8"?

manifest xmlns:android=""

package="com.ray.linkit"

android:versionCode="1"

android:versionName="1.0"

application android:icon="@drawable/icon" android:label="@string/app_name"

activity android:name=".Main"

android:label="@string/app_name"

android:screenOrientation="portrait"

intent-filter

action android:name="android.intent.action.MAIN" /

category android:name="android.intent.category.LAUNCHER" /

/intent-filter

/activity

activity android:name=".GamePlay"

android:screenOrientation="portrait"/activity

activity android:name=".OptionView"

android:screenOrientation="portrait"/activity

/application

uses-sdk android:minSdkVersion="3" /

/manifest

另外,android中每次屏幕的切換動(dòng)會(huì)重啟Activity,所以應(yīng)該在Activity銷毀前保存當(dāng)前活動(dòng)的狀態(tài),在Activity再次Create的時(shí)候載入配置,那樣,進(jìn)行中的游戲就不會(huì)自動(dòng)重啟了!

有的程序適合從豎屏切換到橫屏,或者反過來,這個(gè)時(shí)候怎么辦呢?可以在配置Activity的地方進(jìn)行如下的配置android:screenOrientation="portrait"。這樣就可以保證是豎屏總是豎屏了,或者landscape橫向。

而有的程序是適合橫豎屏切換的。如何處理呢?首先要在配置Activity的時(shí)候進(jìn)行如下的配置:android:configChanges="keyboardHidden|orientation",另外需要重寫Activity的 onConfigurationChanged方法。實(shí)現(xiàn)方式如下,不需要做太多的內(nèi)容:

@Override

public void onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig);

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {

// land do nothing is ok

} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {

// port do nothing is ok

}

}

寫一個(gè)支持多分辨的程序,基于1.6開發(fā)的,建立了三個(gè)資源文件夾drawable-hdpi drawable-mdpi drawable-ldpi,里面分別存放72*72 48*48 36*36的icon圖標(biāo)文件。當(dāng)我在G1(1.5的系統(tǒng))上測(cè)試時(shí),圖標(biāo)應(yīng)該自適應(yīng)為48*48才對(duì)啊,但實(shí)際顯示的是36*36。怎么才能讓其自適應(yīng) 48*48的icon圖標(biāo)呢

解決辦法 drawable-hdpi drawable-mdpi drawable-ldpi改成drawable-480X320 drawable-800X480的多分辨支持的文件夾

android如何實(shí)現(xiàn)屏幕的自適應(yīng)

在網(wǎng)頁代碼的頭部?jī)?nèi)加入一行viewport元標(biāo)簽。

meta?name="viewport"?content="width=device-width,?initial-scale=1"?/

viewport的說明:

viewport是網(wǎng)頁默認(rèn)的寬度和高度,上面這行代碼的意思是,網(wǎng)頁寬度默認(rèn)等于屏幕寬度(width = device-width),原始縮放比例(initial-scale = 1)為1.0,即網(wǎng)頁初始大小占屏幕面積的100%。所有主流瀏覽器都支持這個(gè)設(shè)置。

關(guān)于viewport的基本屬性:

width=device-width :表示寬度是設(shè)備屏幕的寬度

initial-scale=1.0:表示初始的縮放比例

minimum-scale=0.5:表示最小的縮放比例

maximum-scale=2.0:表示最大的縮放比例

user-scalable=yes:表示用戶是否可以調(diào)整縮放比例

Android P 的自適應(yīng)電池和自適應(yīng)亮度

早在谷歌宣布Android P的名字之前,該公司就在用最新版本的移動(dòng)操作系統(tǒng)來宣傳人工智能。兩個(gè)最有趣的“AI特性”是自適應(yīng)電池和自適應(yīng)亮度。默認(rèn)情況下,兩個(gè)都在PUI上,可以很容易地被禁用(設(shè)置= 電池= 自適應(yīng)電池和設(shè)置=顯示=自適應(yīng)亮度),并在后臺(tái)自動(dòng)工作-機(jī)器學(xué)習(xí)處理所有的重舉。

然而,到目前為止,Google還沒有分享關(guān)于這兩個(gè)功能到底如何發(fā)揮作用的信息,也沒有分享Android用戶可能看到的影響。這很有道理——公司的內(nèi)部dogfood號(hào)碼不一定具有代表性,而且在beta測(cè)試程序期間有很多迭代(Android Pie看到了5個(gè)開發(fā)人員預(yù)覽)。但三周前,Android派最終定稿,并慢慢開始推出,所以我們趕上了谷歌來談?wù)摷?xì)節(jié)。

小組產(chǎn)品經(jīng)理Ben Poiesz負(fù)責(zé)一個(gè)負(fù)責(zé)Android智能特性的團(tuán)隊(duì),他和我們一起坐下來解釋Adaptive Battery和Adaptive Brightness是如何產(chǎn)生的,Google在Android P測(cè)試版中看到了什么,以及這些特性的內(nèi)部工作原理。每個(gè)Android設(shè)備用戶都有自己獨(dú)特的偏好和用例,但是沒有哪個(gè)頭腦正常的人想積極地優(yōu)化電池壽命和屏幕亮度,他們也不應(yīng)該這么做。

Poiesz的團(tuán)隊(duì)與谷歌,AI公司,谷歌在2014年1月收購了這兩個(gè)特點(diǎn)。這不是一個(gè)短的項(xiàng)目---早期頭腦風(fēng)暴和在android O 2017年8月發(fā)貨之前調(diào)查。

“Android和深淵團(tuán)隊(duì)都在倫敦出現(xiàn),”Poiesz說?!八麄?cè)谕粭潣牵皇遣煌臉菍?。它使我們緊密合作,找出正確的策略是什么,什么是正確的API,并建立一些東西。每個(gè)人都有很多人,但不幸的是我不能說出確切的數(shù)字?!?/p>

Poiesz分享數(shù)據(jù)的地方,你應(yīng)該記住,我們討論的是Android P測(cè)試版,它比之前的Android測(cè)試版要多,因?yàn)樗粌H限于Google手機(jī),還包括來自索尼、小米、諾基亞、Oppo、Vivo、OnePlus和Es.al的設(shè)備。

Poiesz確實(shí)注意到,Android P的公開推出可能由于自選偏向而影響自適應(yīng)電池和自適應(yīng)亮度的結(jié)果。注冊(cè)測(cè)試版的用戶與廣大的Android用戶不一樣——他們以不同的方式使用他們的設(shè)備,安裝不同的應(yīng)用程序,等等。這就是說,Poiesz承諾貝塔人口“給了我們統(tǒng)計(jì)上顯著的結(jié)果”。

下面是Poiesz如何解釋這個(gè)特征背后的想法。

“不幸的是,直到P,對(duì)于所有的人來說,由于他們選擇安裝的應(yīng)用程序,或者bug,或者不管它是什么,都非常小心手機(jī)的電池壽命,”他說。這是Android用戶不應(yīng)該考慮的事情,Poiesz認(rèn)為,但Android應(yīng)該負(fù)責(zé)。

谷歌多年來為Android發(fā)布了各種電池壽命特性,如DoZE和App Stand。然而,Android Poice中的自適應(yīng)電池的所有基礎(chǔ)工作都是在Android ORIO中進(jìn)行的,背景執(zhí)行限制。

當(dāng)應(yīng)用程序以O(shè)reo為目標(biāo)時(shí),與后臺(tái)服務(wù)相反,它們必須依靠使用作業(yè)和警報(bào)(這些作業(yè)和警報(bào)有時(shí)限,但是沒有嚴(yán)格定義的開始和停止時(shí)間)來完成后臺(tái)工作。隨著越來越多的開發(fā)人員采用這種方式,自適應(yīng)電池等功能將變得更加有效。

“所以Android P的自適應(yīng)電池真的在考慮‘操作系統(tǒng)是否可以提供對(duì)您正在使用哪些應(yīng)用程序以及如何與它們進(jìn)行交互的獨(dú)立審計(jì)?Poiesz解釋道?!叭缓罂纯催@些應(yīng)用程序希望如何運(yùn)行,然后做出更明智的決定……那么,我們應(yīng)該什么時(shí)候運(yùn)行作業(yè)?”我們應(yīng)該什么時(shí)候報(bào)警?這個(gè)應(yīng)用程序應(yīng)該如何在后臺(tái)進(jìn)行處理?是否應(yīng)該允許它停電或等到它上電或等待一些特殊情況才有意義?如果操作系統(tǒng)具有這種謹(jǐn)慎性,用戶就不必?fù)?dān)心。這是自適應(yīng)電池的主要目標(biāo)——為設(shè)備帶來一致性?!?/p>

一致性并不一定意味著電池的全面消耗會(huì)越來越慢。這意味著消除你用完果汁的日子。

Poiesz指出:“如果你每個(gè)月只有一個(gè)壞電池,你就會(huì)記住一個(gè)糟糕的一天?!薄澳阋苍S每隔一天都表現(xiàn)得很好,但如果是在你腦海深處,那就是‘對(duì)我而言可能失敗’——那是個(gè)壓力源?!边@是首要目標(biāo),就是要達(dá)到這樣的穩(wěn)定水平,這樣你可以在設(shè)備上安裝的單個(gè)應(yīng)用程序就不會(huì)耗盡你的電池。”

自適應(yīng)電池使用深度卷積神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)在未來幾個(gè)小時(shí)內(nèi)您將使用哪些應(yīng)用程序,以及哪些應(yīng)用程序可能直到稍后才會(huì)使用。DeepMind嘗試了不同的策略,但是選擇了一個(gè)卷積神經(jīng)網(wǎng)絡(luò),因?yàn)樗谧龀稣_的決策和使用最少的功率開銷之間提供了正確的平衡。這個(gè)團(tuán)隊(duì)依靠DeepMind來選擇正確的機(jī)器學(xué)習(xí)方法,然后為Android構(gòu)建一些定制的東西,但是從一開始就不清楚AI會(huì)扮演什么角色。

也許Android P可以簡(jiǎn)單地使用經(jīng)典的啟發(fā)式算法來節(jié)制哪些應(yīng)用程序呢?如果一個(gè)應(yīng)用程序在后臺(tái)運(yùn)行,這無疑是浪費(fèi)電力,也許操作系統(tǒng)可以推遲它直到用戶插入他們的設(shè)備。以Android不破壞應(yīng)用程序的方式完成這個(gè)任務(wù)是很棘手的,但是一旦實(shí)現(xiàn)了,就歸結(jié)為調(diào)整啟發(fā)式。下一步是問幾個(gè)機(jī)器學(xué)習(xí)專家,如果問題是合適的。

他們看著它說:“是的,我們認(rèn)為我們可以在這里做一些事情?!盤oiesz解釋道?!八晕覀兘⒘诉@樣一個(gè)模型,在那里他們與基線啟發(fā)式競(jìng)爭(zhēng)”。今天的基線啟發(fā)式算法。他們的目標(biāo)是,我們必須比基線更好,所以這意味著機(jī)器學(xué)習(xí)不僅必須做更好的預(yù)測(cè),它還必須做足夠的更好的預(yù)測(cè)來超過運(yùn)行機(jī)器學(xué)習(xí)模型的成本。它必須做得更好,而不是更好一點(diǎn)。他們能做到。他們熱衷于“機(jī)器學(xué)習(xí)不僅僅是機(jī)器學(xué)習(xí)”這一概念。它必須是有意義的?!?/p>

在今年早些時(shí)候的I/O開發(fā)者大會(huì)上,Google分享的數(shù)字(減少了30%的“應(yīng)用程序CPU喚醒”)是基于內(nèi)部dogfooding。但這只是一個(gè)模糊的度量,現(xiàn)在測(cè)試版已經(jīng)上線,公司基于更廣泛的測(cè)試人群有了具體的結(jié)果:

對(duì)于5%個(gè)數(shù)字來說,理論上來說,DeepMind團(tuán)隊(duì)取得的成績(jī)更大。實(shí)際上,運(yùn)行機(jī)器學(xué)習(xí)模型的成本是必須考慮的因素。

關(guān)于第二個(gè)數(shù)字,我要求更多的上下文。

Poiesz說:“假設(shè)你有一個(gè)應(yīng)用程序進(jìn)行大量的處理,它有一個(gè)預(yù)定的工作?!薄澳悴皇褂媚莻€(gè)應(yīng)用程序,但它繼續(xù)進(jìn)行處理。這個(gè)系統(tǒng)會(huì)扼殺這個(gè)應(yīng)用程序直到你打開電源。當(dāng)你處于電源狀態(tài)時(shí),所有被拔掉的CPU都可以被推到電源上。那只是直接儲(chǔ)蓄。因?yàn)楫?dāng)你插上電時(shí),你所做的任何事情都是儲(chǔ)蓄。它高度依賴于應(yīng)用程序所做的事情。你可以有一個(gè)不使用背景的應(yīng)用程序,所以節(jié)省是零。你也可以有一個(gè)在后臺(tái)工作時(shí)非常積極的應(yīng)用程序,你可以節(jié)省很多錢?!?/p>

有趣的是,移動(dòng)數(shù)據(jù)的節(jié)省不是一個(gè)目標(biāo),但是如果你考慮一下,儲(chǔ)蓄是有意義的。“如果應(yīng)用程序在拔出時(shí)運(yùn)行較少,這意味著它們也不會(huì)傳輸。數(shù)據(jù)也是力量。因?yàn)楫?dāng)你要調(diào)出調(diào)制解調(diào)器的時(shí)候,你將進(jìn)入廣播狀態(tài),這就需要力量。但這也導(dǎo)致了消費(fèi)者數(shù)據(jù)計(jì)劃的節(jié)省。

這些數(shù)字聽起來不錯(cuò),但這些好處要花多長(zhǎng)時(shí)間才能生效呢?

“對(duì)于自適應(yīng)電池,你可以立即看到它,因?yàn)橛行┮?guī)則是根本不同的。有一個(gè)基本模型,所以今天,如果你有一個(gè)新的電話上奧利奧,你不會(huì)有任何應(yīng)用程序得到這些限制。當(dāng)為P加載基本模型時(shí),沒有什么比這更寬松了,因?yàn)檫@些規(guī)則以前不存在,所以它顯式地更具限制性。這樣你就會(huì)立刻得到一筆存款,然后它會(huì)繼續(xù)精益求精。

你可以認(rèn)為自適應(yīng)亮度是自動(dòng)亮度。它通過學(xué)習(xí)如何在不同的環(huán)境下設(shè)置你的亮度滑塊來學(xué)習(xí)你的習(xí)慣,然后試著為你做。

一般用戶需要多長(zhǎng)時(shí)間才能看到收益?“我的個(gè)人經(jīng)歷大約是一個(gè)星期,當(dāng)我感覺我不再在調(diào)整它時(shí),”Poiesz說。“你不會(huì)覺得情況更糟,這正是我們真正想要解決的問題——當(dāng)你得到升級(jí)時(shí),你不會(huì)覺得那里有降級(jí)。只是當(dāng)你和它互動(dòng)時(shí),它會(huì)變得更好。我發(fā)現(xiàn)一個(gè)星期后,我覺得我?guī)缀鯖]碰它。”

PoeSz不能為所有用戶提供答案很簡(jiǎn)單:每個(gè)人都是不同的。自適應(yīng)亮度大約需要一周左右的時(shí)間來穩(wěn)定,但是只要用戶正在進(jìn)行交互,它就可以持續(xù)學(xué)習(xí)。如果你接近基線模型,它可以花費(fèi)更少的時(shí)間。如果你走得很遠(yuǎn),可能會(huì)更長(zhǎng)。

“用戶對(duì)亮度有不同的偏好,”Poiesz解釋說?!霸诨跈C(jī)器學(xué)習(xí)的新策略出現(xiàn)之前,我們所采用的亮度策略還讓人們不得不稍微對(duì)設(shè)置進(jìn)行混淆。我們?cè)O(shè)置曲線的方式并不理想——在中間位置仍然非常好,但是到了極端情況,比如在漆黑或死光中,用戶很難優(yōu)化兩種場(chǎng)景。你必須把系統(tǒng)推向光明的一面,或者把系統(tǒng)推向黑暗的一面。自適應(yīng)亮度能夠更有效地利用全譜。在用戶給它足夠的輸入之后,它在優(yōu)化極端之間的曲線以及您想要走多遠(yuǎn)極端方面變得越來越好?!?/p>

所有這些都是棘手的,因?yàn)楣雀柰瑫r(shí)試圖改善電池壽命。要不斷地了解最佳亮度設(shè)置在不排水的情況下對(duì)每種情況都是不容易的。

Poiesz說:“這樣做的目的并不一定是為了節(jié)省電力,因?yàn)槿我夤?jié)省電力會(huì)使用戶不高興,因?yàn)樗麄儾荒芎芎玫乜吹狡聊?。”“這是為了讓屏幕上的電源,用戶需要在屏幕上感覺舒適?!?/p>

換句話說,Google發(fā)現(xiàn),當(dāng)用戶將設(shè)備的動(dòng)態(tài)亮度曲線改變?yōu)榱粱虬禃r(shí),系統(tǒng)在識(shí)別光譜的一端方面變得更好,而在另一端同時(shí)變得更差。機(jī)器學(xué)習(xí)模型在頻譜的兩端同時(shí)更加智能,而不是偏向于某一個(gè)或另一個(gè)。

與自適應(yīng)電池不同,自適應(yīng)亮度不需要輸入,只需要使用Android設(shè)備。

“基線模型,我們?cè)谀抢?,如果你想要一些不同的東西,那就是當(dāng)你必須給它輸入…通過與滑塊互動(dòng)?!币坏┠阋惶斓酵矶冀o它反饋——大多數(shù)人已經(jīng)把滑塊弄亂了,這未必是一個(gè)新現(xiàn)象——那么它會(huì)變得更好,你與它互動(dòng)的需求會(huì)越來越低?!?/p>

總的來說,Poiesz的團(tuán)隊(duì)看到人們?cè)跍y(cè)試期間對(duì)滑塊所做的調(diào)整減少了10%,只是在用戶進(jìn)入和改變亮度的次數(shù)方面。此外,用戶總體上分享關(guān)于亮度特征的正反饋。同時(shí),這是至關(guān)重要的——從整體上看,Android并沒有使用更多的電力。

“如果你過火,人們很好。通常情況下,除非你在黑暗中,如果你有點(diǎn)太亮,那就沒什么大不了的。如果你太昏昏沉沉,這是個(gè)問題。如果我們……避免太暗,也不用太亮而矯正過度,那么用戶感知是“哇,這是一個(gè)更好、更亮的屏幕”,盡管在現(xiàn)實(shí)中,這可能不是正在發(fā)生的事情;您可能只是更準(zhǔn)確。這就是我們的發(fā)現(xiàn):我們的總動(dòng)力是一樣的?!?/p>

所有的機(jī)器學(xué)習(xí)都為球隊(duì)帶來了一個(gè)有趣的發(fā)現(xiàn):奧利奧的模型太黯淡了。這意味著,即使你不調(diào)整滑塊很多(或根本),餡餅應(yīng)導(dǎo)致更好的亮度體驗(yàn)。研究小組發(fā)現(xiàn),你自然能夠找到認(rèn)為奧利奧的模型還不錯(cuò)的人,但總體來說,它需要改進(jìn)。

“新的基線顯示出更高的亮度。這有助于作為起點(diǎn)。現(xiàn)在我們可以更有效地使用全范圍和這些自動(dòng)模式,因?yàn)樗惴ǜ?,再加上更好的基礎(chǔ),讓人們覺得他們的手機(jī)更亮,即使不是這樣?!?/p>

簡(jiǎn)而言之,餡餅的底線比奧利奧的更亮,新的模型知道它需要暗淡的區(qū)域。請(qǐng)記住,很多時(shí)候,您的屏幕可能被設(shè)置成比您自己設(shè)置要暗得多,有時(shí)人們只是提高亮度,然后結(jié)束一天的工作。

“我們發(fā)現(xiàn)了一個(gè)有趣的數(shù)據(jù):電池保護(hù)器,過去,我們通常把亮度減半。Poiesz說:“我們?cè)赑中采用了這個(gè)特性?!薄霸蚴牵琜在電池儲(chǔ)藏器啟動(dòng)后]人們把亮度往后推,有時(shí)他們會(huì)把亮度往上推,比以前更亮?!币?yàn)檫@樣很難吸引眼球。我們的想法是,如果我們的亮度達(dá)到你所需要的,如果你打開電池保護(hù)器,你的眼睛就不會(huì)改變。亮度是亮度。機(jī)器學(xué)習(xí)最終會(huì)發(fā)生什么,它會(huì)與你想要的地方保持一致,然后你會(huì)感到快樂?!?/p>

如果你要求人們?cè)黾恿炼?,他們不?huì)選擇最佳的亮度,但是隨著時(shí)間的推移,機(jī)器學(xué)習(xí)模型會(huì)。人們不會(huì)給自己設(shè)置一個(gè)太暗的屏幕,但是它們會(huì)超調(diào),這會(huì)消耗更多的能量。

“這就是我們獲得總儲(chǔ)蓄的方法。如果我們避免用戶必須進(jìn)行增強(qiáng),試圖擺脫這些暗淡的情況——每次你避免這種情況,并且你處于最佳狀態(tài),那就是節(jié)省?!白鳛橐粋€(gè)人,你很難找到最佳的亮度。沒有人真的想挑剔。所以這個(gè)模型在試圖幫助你找到正確的水平而不必考慮這一點(diǎn)上是相當(dāng)寬容的。

自適應(yīng)亮度只有兩個(gè)輸入:來自設(shè)備傳感器的環(huán)境照明和設(shè)置的亮度。為什么不考慮其他因素,比如輸入是人工還是自然光?有幾個(gè)原因。首先,最重要的是,所有的機(jī)器學(xué)習(xí)和優(yōu)化都在設(shè)備上本地運(yùn)行。

Poiesz強(qiáng)調(diào):“模型越簡(jiǎn)單,推理時(shí)間就越短,運(yùn)行起來就越便宜,這樣就節(jié)省了功率。”“你必須始終確保額外的成本運(yùn)行模型超出了儲(chǔ)蓄。”

每當(dāng)你的亮度被自動(dòng)調(diào)整時(shí),所有的計(jì)算都不會(huì)發(fā)生——只有當(dāng)你介入時(shí)?!爱?dāng)你在計(jì)算模型應(yīng)該是什么時(shí),你正在做更重的提升。當(dāng)設(shè)備說‘哦,這是來自環(huán)境傳感器的新的亮度輸入,屏幕的nit水平應(yīng)該是多少?’這樣一來,你就不會(huì)注意到Android餡餅和它的前身相比在調(diào)整亮度上所花費(fèi)的時(shí)間有什么有意義的差別了。

下一步,無論是在內(nèi)部還是外部,在優(yōu)化方面都沒有多大關(guān)系。但是團(tuán)隊(duì)調(diào)查了其他因素,比如你正在運(yùn)行的應(yīng)用程序,以及你在應(yīng)用程序之間切換的時(shí)候。

Poiesz說:“當(dāng)你做應(yīng)用程序切換時(shí),突然你的亮度發(fā)生了變化,這可能真的令人不安?!薄拔覀儼l(fā)現(xiàn)最基本的事情相當(dāng)有效,當(dāng)我們進(jìn)行狗食和beta測(cè)試時(shí),用戶反應(yīng)非常積極?!?/p>

最后,這僅僅是個(gè)開始——更多的優(yōu)化正在進(jìn)行中。Poiesz解釋說:“我們將在今年和明年研究更多的選擇,以了解我們應(yīng)該向模型中提供哪些更多信息?!?/p>

可以說,與自適應(yīng)電池和自適應(yīng)亮度最大的協(xié)議是,它們可以獨(dú)立于Android進(jìn)行更新。該團(tuán)隊(duì)不必等待Android 9.1或下一次空中(OTA)更新來改進(jìn)他們的模型。這是可能的,因?yàn)槟P婉v留在Android應(yīng)用程序(APK文件)中:設(shè)備健康服務(wù)。

出于好奇,除了自適應(yīng)電池和自適應(yīng)亮度之外,在設(shè)置應(yīng)用程序中,這個(gè)應(yīng)用程序還負(fù)責(zé)預(yù)測(cè)電池何時(shí)耗盡。

“這兩個(gè)組件都可以在傳統(tǒng)OTA之外更新,”Poiesz共享?!斑@將給我們提供很多靈活性來不斷改進(jìn)模型。[谷歌游戲]商店可以更新邏輯。如果我們有更好的模型,我們會(huì)更新它。如果事情發(fā)生變化,基線變化,或者如果我們發(fā)現(xiàn)一個(gè)更好的效率,那么我們將更新它。

事實(shí)上,其他Android設(shè)備制造商可以選擇使用他們自己的型號(hào)。PoeSz聽起來懷疑合作伙伴是否會(huì)選擇使用谷歌以外的東西?!拔蚁嘈湃绻腥四茏龅酶茫珼eepMind會(huì)很興奮。”他補(bǔ)充道。

既然這是一個(gè)APK,它能被移植到以前版本的Android嗎?

“不,不幸的是。我們必須在OS中做很多鉤子,讓這個(gè)APK提供數(shù)據(jù),以便OS能夠做出這些決定。應(yīng)用程序不在這里工作,應(yīng)用程序就是模型。所有的工作仍在OS中進(jìn)行?!?/p>

也許這是件好事。這可能有助于推動(dòng)更多的設(shè)備。


網(wǎng)頁名稱:android自適應(yīng),android自適應(yīng)圖標(biāo)
當(dāng)前URL:http://weahome.cn/article/dscijhh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部