精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

談談android 布局 的優化

移動開發 移動應用
設配android的屏幕一定是一個噩夢,就好比那些搞網頁設計的為了折騰各種瀏覽器,廢寢忘食的去設配,其實,這樣想想,設配android屏幕還真和那些網頁設計去設配瀏覽器沒啥區別…最近,在寫一套通過在view上綁定tag命令的小框架,特定的再回到API文檔中,找找那些沉睡在api文檔中好用的方法!

 1.沒有一勞永逸的方案!

有經常關注android官方文檔的,一定知道在android4.0發布不久,官方就推出了一套UI設計教程,

官方原版:Android Design

非官方簡體中文版: 非官方簡體中文版

6寸e-ink pdf版: 6寸版本

有人會說,這不是UI設計嗎?這是美工和設計干的事情,跟我們這些程序猿有什么關系!嚴重跑題!!!

關于一個程序猿要不要懂點設計,這個問題,不做討論,不過,個人經驗,有時候,可能因此而靈感閃現,解決了一個不大不小的問題.

很多人都嘗試在屏幕設配上,找出一條通用的解決方案,可惜的是,就算是官方也沒法提供這樣的幫助, 更別說我們這些苦逼的程序員,這里有個小故事,大家都知道Instagram,android版吧,有個采訪,Instagram的初始人就說,我每天收到最多的用戶反饋就是為什么不能在他的android手機上運行,但是,我已經設配了幾百個android手機了!!!

所以,想找出一條康莊大道幾乎是不太可能的事情,不過,我們可以修內功,出現問題,不可怕,可怕的是出現問題無法解決,接下來,我就談談關于屏幕設配的一些經驗之談.

2.這世界究竟有多少種屏幕?

我們每天都在究竟怎么去設配屏幕,那么這世上有多少屏幕要讓我們去設配呢?下面應用了一個官方的最新資料:有興趣的可以直接到:官方統計的屏幕分布

取之2012/5/7

 

chart

 

ldpi mdpi hdpi xhdpi

small 2.3% 2.4%

normal 0.7% 26.2% 57.8% 0.9%

large 0.3% 2%

xlarge 7.4%

很多人第一次看這個圖的時候肯定會感到疑惑,怎么不是分辨率?這是什么鬼數據,這讓人怎么去設配屏幕!買手機的時候可沒有人會說”你好,我要一個Normal大小屏幕,密度最好是hdpi的手機”.

描述過于模糊!!!這可能是為什么設配android屏幕是一件很困難的事情,關于什么是Normal,什么是hdpi,如果,不清楚這點朋友,我建議先去看看官方文檔:Supporting Multiple Screens

有些東西竟然官方竟然告訴了我們,為啥還要去重復呢?

順便推薦一個算DPI的在線小工具:DPI Calculator / PPI Calculator 大概計算一下,當前分辨率的手機處于哪個區間里面,至于詳情,我還是建議大家去看一下官方文檔,里面已經說得很清楚了!!

竟然,官方文檔都寫好了,還有你寫來干嘛啊!那么接下來就開始說一些開發碰到的問題.

3.開始布一個局

1,新建一個android項目,把新建一個Activity那個選項選上!然后用模擬器運行項目!什么?!!

你沒看錯,記住照著做就沒錯了…因為,今天,我們要講如何優化和兼容View ,所以,一切從研究View開始!

2,打開hierarchyviewer

這是一個幫助我們優化view的非常重要的工具的,接下來的大部分時間,都會借住這個工具進行講解,這個工具沉睡在android sdk 目錄 tools下 hierarchyviewer.bat,或者用Everything這樣的搜索硬盤的工具直接找到!

3,分析

還記得我們第一步運行的項目嗎?接著用hierarchyviewer這樣的神器,就可以導出這樣的圖!

 

H

 

這么一張圖就是我們一個Hello,World項目的View 布局結構,在HierarchyViewer上你點擊每個按鈕就會有非常詳細的布局信息,所以,這里對于hierarchyViewer的介紹到此為止!關于這個工具的詳細使用,請查閱Debugging and Profiling User Interfaces 這里不做贅述!

4,如何布好一個局?

關于這點我在開發中總結了一下幾點

1.熟讀API文檔!

布局這東西不是比酷的東西,不是比誰的布局越復雜,那個人就越牛叉,以最少的步驟完成,設計圖的要求,這應該是每個android開發程序員的宗旨!!

案例一:做一個帶箭頭的返回按鈕

經理:那個小與啊,你根據這設計圖搞一個按鈕

 

image

 

小與:這還不簡單三分鐘搞定

于是小于程序猿,敲下了如下代碼

 

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center" >

 

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/btn_headtita"

android:textColor="#ffffff"

android:text="@string/back" />

 

android:id="@+id/imageView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_centerVertical="true"

android:src="@drawable/header_back" />

 

看代碼多累啊,我們用剛剛介紹的hierarchyviewer來分析一下,這個按鈕有什么問題!

 

image

 

我們從這個圖中,我們可以看到,為了這么一個按鈕我們用了view的三個節點去完成!假設,我們的一個view 有三個類似的按鈕就意味著我們要用9個節點去完成,我們可以簡單得出這是一個3N級的復雜度布局,我們可以嘗試去優化嗎?

技巧一:熟讀官方的API文檔!

個人建議,常用的Widget的所有參數都盡量了解一遍!在閱讀官方文檔的時候我們發現了Button,有一個可以把圖繪制在左邊的參數:android:drawableLeft

于是,我們優化了一下小與的代碼

 

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/btn_headtita"

android:drawableLeft="@drawable/header_back"

android:gravity="center"

android:padding="10dp"

android:text="@string/back"

android:textColor="#ffffff" />

用hierarchyviewer來分析一下

 

image

 

瞬間一個3N級復雜度的布局,變成了一個N級復雜的!所以,我建議各位android開發朋友,在考慮優化的時候先把api文檔里面的內容爛熟與心,不然,這樣折騰下去,很浪費時間!

有細心的朋友可能會問:android:padding="10dp" 這個用來做什么了?

我先告訴大家,不用這個參數:你將會看到:

 

image

 

用了以后:

 

image

 

這下大家能夠明白了吧?

所以,當你在進行布局的時候,如果碰到比較繁瑣的時候,你先想想會不會已經API本身就有這樣的參數呢?

簡單是所有布局開始最重要的原則!

簡單意味著不容易出現兼容問題!

簡單意味著性能不錯!

2.模塊化布局

 

480x800_MarkMan

 

所謂,模塊化布局就是要你熟悉使用 這個標簽!

一個經典的Tab類布局由三部分組成,我們可以根據這三部分創建三個可以重用的布局

head_menu.xml

content_showweibo.xml

bottom_menu.xml

然后我們可以很靈活的組合我們要顯示的,例如要完成上面的那個weibo布局

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

>

 

熟練的使用標簽就可以大大的減少我們日后都維護工作!

3.合并沒必要的節點

還記得我們一開始的那個項目嗎?

 

image

 

在高效布局里面,有一條準則就是,盡量的減少節點!!!!如圖,我們發現,其實LinearLayout其實啥都沒干,我們卻耗費了那么一點性能去繪制了這么沒用的節點!

接下來,我們為了消滅這個節點,我們需要一個這么的標簽

修改咱們的代碼讓它,性能更好!

>

 

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/btn_headtita"

android:drawableLeft="@drawable/header_back"

android:gravity="center"

android:layout_gravity="center_vertical|center_horizontal"

android:padding="10dp"

android:text="@string/back"

android:textColor="#ffffff" />

 

打開hierarchyviewer 一看!

 

image

 

哦也!優化了一個節點!并且顯示快了那么一點點...

5.總結

講了,這么一大堆東西,貌似,沒怎么如何去優化?都是在說一些操作性的東西,其實,這世上沒有絕對的優化方案,所謂的優化方案都是基于一個最初的基本原則出發,例如,內存用得再少一點!那么如何才能將這內存用得再少一點做的了,這樣就需要一些最基本的方法,關于布局這部分的基本方法,我在上面已經很詳細的說了一遍了,當進行布局的時候你要牢記

1,盡量使用view自身的參數

2,減少一個布局的不必要節點

3,盡量重用一個布局文件

兼容問題呢?兼容問題出現的原因千奇百怪,沒有一套通用的法則!關于這點談一下自己的看法

1,減少復雜度,往往,兼容問題的出現,就是布局太復雜了,例如,我舉的那個按鈕布局,本來一個View就能完成,你卻用了三個view完成,在使用的時候,出現問題的概念也大幅度提升!所以,布局以簡單為本,那樣兼容問題就可以盡量避免!

2,熟練使用工具,還記得hierarchyviewer 嗎?當出現兼容問題的時候,用這個軟件可以快速定位到錯誤位置!

順便說一下…

如果你覺得這篇文章幫到你…剛好你又有一個eoeandroid的賬號…那就去支持一下吧…

http://www.eoeandroid.com/thread-171427-1-1.html

【編輯推薦】

  1. Android已經完全不受Google控制了
  2. MonoTouch與Mono for Android的第三方庫
  3. 美國智能手機使用比重超50% Android仍領先
責任編輯:冰凝兒 來源: 博客園
相關推薦

2014-07-29 15:23:06

Android

2013-09-17 10:17:39

Android布局

2022-12-08 16:02:39

數據架構工具

2011-03-24 09:03:13

Android SDKAndroid

2011-05-27 16:57:13

Android widget

2009-07-16 17:22:56

JDBC數據庫編程

2011-06-27 14:29:06

2015-08-07 10:24:17

AndroidMaterialDes

2023-08-25 08:06:04

項目布局LazyRow?

2020-06-11 13:03:04

性能優化緩存

2017-08-28 15:30:49

Android編碼器編碼

2009-12-31 15:21:48

Silverlight

2009-07-14 14:12:14

Javascript

2013-01-07 13:15:39

Android開發窗口背景視圖

2017-03-20 18:03:51

2013-09-16 16:56:09

AndroidBitmap內存優化

2021-06-17 07:08:19

Tapablewebpack JavaScript

2013-03-12 09:52:04

技術文檔技術反饋程序員

2017-01-15 15:13:37

Android性能優化優化點

2011-12-16 17:07:22

安全事件
點贊
收藏

51CTO技術棧公眾號

国产精品一国产精品最新章节| 亚洲美女在线视频| 日本中文字幕一级片| 国产成人精品免费看视频| aa国产精品| 亚洲一区999| 欧美人与性动交α欧美精品 | 综合av色偷偷网| 日本xxxx免费| 国产美女久久| 午夜视频一区二区| 亚洲国产日韩欧美| 日韩一区二区三区在线观看视频| 久久久噜噜噜久久狠狠50岁| 久热精品视频在线免费观看| 四虎国产精品成人免费入口| 日本伊人久久| 在线观看日韩一区| 欧美视频在线观看视频| 日本美女高清在线观看免费| 成人av在线一区二区| 国产精品爽黄69| 中日韩精品视频在线观看| 亚洲女同另类| 伊人一区二区三区久久精品| www.555国产精品免费| 日韩漫画puputoon| 欧美日韩免费观看中文| 91看片淫黄大片91| 国产九色在线| 99久久综合精品| 性一交一乱一色一视频麻豆| 成人中文字幕视频| 西野翔中文久久精品字幕| 黄网站色欧美视频| 日韩欧美一级在线| 成人免费黄色网页| 91视频一区二区三区| 91夜夜未满十八勿入爽爽影院| 久草视频一区二区| a91a精品视频在线观看| 欧美激情免费看| 精品国产精品国产精品| 欧美精品系列| 亚洲欧美日韩精品久久奇米色影视| 欧美一区二区三区影院| 亚洲免费看片| 欧美日韩一区二区不卡| 99草草国产熟女视频在线| 国模精品视频| 亚洲 国产 欧美一区| 欧美精品一级片| 91久久夜色精品国产按摩| 亚洲精品在线观看www| 免费看男女www网站入口在线| 久久精品国产一区二区三 | 久久国产柳州莫菁门| 亚洲精品动态| 亚洲欧洲在线观看| 在线欧美三级| 日韩国产精品久久久| 91av福利视频| 日韩毛片在线播放| 亚洲欧美日本视频在线观看| 欧美在线观看网站| 无码人妻精品一区二区蜜桃色欲| 香蕉久久夜色精品国产| 中文字幕精品久久久久| www.激情网| 日本在线观看高清完整版| 亚洲另类在线制服丝袜| 亚洲精品视频免费在线观看| 一本色道综合久久欧美日韩精品 | 无码人妻aⅴ一区二区三区| 群体交乱之放荡娇妻一区二区 | 日本福利专区在线观看| 中文字幕亚洲精品在线观看| 女同性恋一区二区| 欧美性受ⅹ╳╳╳黑人a性爽| 亚洲国产美女搞黄色| 欧美,日韩,国产在线| 三级成人黄色影院| 欧美丰满少妇xxxbbb| 自拍偷拍激情视频| 啪啪国产精品| 中文字幕亚洲欧美在线| 久久高清内射无套| 亚洲精品孕妇| 国产精品三级美女白浆呻吟| 国内精品久久久久久久久久 | 男女做爰猛烈刺激| 午夜国产一区二区| 久久久久久中文| 国产一级精品毛片| 国产不卡在线一区| 欧美日韩亚洲在线| a视频在线观看| 日韩欧美亚洲国产一区| 免费黄频在线观看| 亚洲盗摄视频| 欧美床上激情在线观看| 男人午夜免费视频| 国产麻豆欧美日韩一区| 动漫一区二区在线| 精品成人一区二区三区免费视频| 亚洲人吸女人奶水| 成人在线激情网| 日韩在线精品强乱中文字幕| 一本大道亚洲视频| 五月天综合在线| 久久精品国产在热久久| 麻豆av一区二区三区| 在线你懂的视频| 在线观看一区二区精品视频| 日韩无码精品一区二区| 久久久久久久久久久妇女| 欧美做受高潮1| 粉嫩小泬无遮挡久久久久久| 国产精品伦理在线| 国产乱子夫妻xx黑人xyx真爽| 一区二区在线免费播放| 日韩在线免费高清视频| 日韩在线 中文字幕| 成人18视频在线播放| www.黄色网址.com| 懂色aⅴ精品一区二区三区| 亚洲精品乱码久久久久久金桔影视| 麻豆天美蜜桃91| 六月婷婷色综合| 视频一区二区三区在线观看 | 欧美成人日韩| 国产精品久久久久久影视| 日本护士...精品国| 亚洲成av人片在线| 精品人妻二区中文字幕| 中文字幕免费精品| 亚洲最大福利视频| 精品视频在线一区二区| 欧美日韩不卡在线| 男人天堂资源网| 美女视频黄免费的久久| 色一情一乱一伦一区二区三区 | 欧美人与禽猛交乱配| 91精品国产91综合久久蜜臀| 国产精品麻豆一区| 麻豆精品视频在线观看| 亚洲精品成人久久久998| 欧美日韩免费看片| 国产亚洲精品久久| 姑娘第5集在线观看免费好剧| 国产日产精品一区| 精品久久久久久久无码| 欧美午夜精品一区二区三区电影| 国产精品成av人在线视午夜片| 韩国中文字幕2020精品| 在线中文字幕不卡| 伊人影院综合网| 麻豆精品视频在线观看视频| 午夜啪啪福利视频| 成人av动漫| 2019中文字幕在线观看| 免费在线观看一级毛片| 欧美影院一区二区三区| 国产精品综合激情| 国产在线播放一区三区四| 日本道在线视频| 国偷自产视频一区二区久| 91国内精品久久| 黄色片在线免费看| 欧美日本精品一区二区三区| 国产日韩欧美在线观看视频| 成人午夜精品在线| 欧美色图另类小说| 日本不卡电影| 99国产在线观看| 亚洲精品永久免费视频| 国产一区二区三区18 | 亚洲激情自拍图| 亚洲黄网在线观看| 自拍偷拍欧美精品| 久久久高清视频| 日本欧美韩国一区三区| 国产日产欧美一区二区| 久久夜色电影| 国产免费一区视频观看免费 | 成人伊人精品色xxxx视频| 性欧美video高清bbw| 日韩福利在线播放| 在线观看亚洲国产| 亚洲成av人片| 中国美女黄色一级片| 成人在线综合网| 三级a在线观看| 精品999网站| 日本高清视频一区二区三区| 蜜桃在线一区| 国产精品白嫩美女在线观看| 女人黄色免费在线观看| 亚洲视频精品在线| 丰满人妻一区二区三区免费| 欧美午夜精品一区| 国产精品2020| 一区在线观看免费| 瑟瑟视频在线观看| 高清在线成人网| 亚洲一区在线不卡| av不卡免费看| 亚洲精品天堂成人片av在线播放| 尤物tv在线精品| 国产69精品久久久久9999apgf| 91成人在线| 2021国产精品视频| 色呦呦网站在线观看| 中文字幕日韩精品在线| 天天摸天天干天天操| 欧美一区二区二区| 中文字幕一级片| 色综合久久中文综合久久牛| 九九热视频精品| 国产精品黄色在线观看| 少妇真人直播免费视频| 99免费精品在线| 亚洲美女精品视频| 国产在线麻豆精品观看| 国产免费视频传媒| 久久国产高清| 国产精品动漫网站| 99成人在线| 青青草国产免费| 国内在线观看一区二区三区| 超碰成人在线免费观看| 日韩av久操| 日韩欧美一区二区视频在线播放 | 国产黄色激情视频| 亚洲五月综合| 992tv成人免费观看| 婷婷亚洲图片| 在线视频一区观看| 91免费精品| 国产精品h视频| 亚洲国产一区二区三区在线播放| 一区二区欧美日韩| 99久久99久久精品国产片果冰| 亚洲精品国产系列| 日韩国产综合| 在线观看免费91| 香蕉国产精品| 久草热视频在线观看| 美女av一区| 国产精品一区二| 国产精品白浆| 精品国产一区二区三区日日嗨| 日韩精品一区二区三区中文| 亚洲一区二区久久久久久| 日韩国产大片| 91丝袜美腿美女视频网站| 亚洲成a人片777777久久| 国产精品欧美亚洲777777 | 欧美亚洲一区在线| 欧美一级鲁丝片| 日韩av手机在线看| 一区在线影院| 成人综合网网址| 欧美国产中文高清| 国产经典一区二区三区| 美女av一区| 午夜精品一区二区在线观看| 国产国产精品| 久久国产精品网| 亚久久调教视频| 亚欧美在线观看| 国产成人免费视频网站高清观看视频| 亚洲v在线观看| xf在线a精品一区二区视频网站| 精品无码人妻一区| 国产精品国产三级国产专播品爱网| 26uuu成人网| 亚洲成人av电影| www.欧美色| 欧美一区永久视频免费观看| 日批视频免费播放| 一个人www欧美| 在线三级中文| 国产91色在线免费| 国产成年精品| 欧美日本韩国在线| 一区二区影视| 人妻内射一区二区在线视频| 国精产品一区一区三区mba桃花 | 欧洲成人免费aa| 欧美一区二区三区婷婷| 国产91一区二区三区| 国产一区二区三区四区五区传媒| 免费国产成人看片在线| 欧美一级视频| 在线观看视频在线观看| 久久青草欧美一区二区三区| 玖玖爱这里只有精品| 一本大道久久a久久综合| av在线资源观看| 一区二区三区在线播放欧美| 免费看电影在线| 国产精品专区第二| 亚洲精华一区二区三区| 国产小视频免费| 麻豆一区二区在线| 亚洲视频在线播放免费| 亚洲欧洲av在线| 中文字幕一区在线播放| 欧美草草影院在线视频| av网页在线| 日本久久91av| 免费看久久久| 欧美视频在线第一页| 麻豆成人久久精品二区三区红 | 欧美日韩中文字幕一区二区三区 | 四虎影院中文字幕| 色综合av在线| 五月婷婷六月色| 欧美大片免费观看在线观看网站推荐| 欧美一级大黄| 久久久av水蜜桃| 在线精品亚洲| 色诱av手机版| 亚洲九九爱视频| 91麻豆视频在线观看| 国产亚洲美女精品久久久| 蜜桃av在线播放| 国产综合欧美在线看| 欧美久久视频| 宇都宫紫苑在线播放| 最新国产精品久久精品| 中文字幕在线观看欧美| 亚洲视频视频在线| 黑人巨大亚洲一区二区久| 精品久久一区二区三区蜜桃| 伊人成人在线| 无码成人精品区在线观看| 一区二区三区小说| 国产成人精品无码高潮| 麻豆国产精品va在线观看不卡| 日本在线一区二区| 亚洲国产婷婷香蕉久久久久久99 | 精品久久久久久久久久| 高潮毛片7777777毛片| 欧美国产日韩精品| 亚洲国产一区二区三区网站| 国产成人生活片| 国产v综合v亚洲欧| 中文字幕第28页| 亚洲福利在线播放| ririsao久久精品一区| 国产乱码一区| 亚洲影视在线| 国产sm调教视频| 欧美日韩国产综合一区二区三区| av大片在线看| 亚洲999一在线观看www| 欧美日韩精品| 亚洲熟女乱综合一区二区三区| 狠狠干狠狠久久| jizz在线观看中文| 成人国产精品免费视频| 中文无码久久精品| 日韩av无码一区二区三区不卡| 欧美午夜精品久久久久久浪潮| 国产高清视频免费最新在线| 国产精品自拍偷拍| 欧美a级片网站| yy1111111| 欧洲一区二区三区在线| 精品黄色免费中文电影在线播放| 91精品入口蜜桃| 国产深夜精品| 欧美88888| 亚洲二区中文字幕| 婷婷激情一区| 日韩视频一二三| 91免费视频网| 一区二区三区黄| 高清欧美性猛交xxxx黑人猛交| 亚欧洲精品视频在线观看| 亚洲欧美国产中文| 亚洲综合一区在线| 男人的天堂av高清在线| 成人免费淫片aa视频免费| 影音先锋中文字幕一区二区| 人妻少妇无码精品视频区| 91麻豆精品久久久久蜜臀| 国产在线看片免费视频在线观看| 亚洲国产一区二区三区在线 | 欧美日韩免费不卡视频一区二区三区| 97caopron在线视频| 欧美激情国产日韩| 国产精品主播直播| 丁香社区五月天| 欧美贵妇videos办公室| 欧美男gay| 91精品又粗又猛又爽| 欧美另类videos死尸|